Matt RaibleMatt Raible is a writer with a passion for software. Connect with him on LinkedIn.

The Angular Mini-Book The Angular Mini-Book is a guide to getting started with Angular. You'll learn how to develop a bare-bones application, test it, and deploy it. Then you'll move on to adding Bootstrap, Angular Material, continuous integration, and authentication.

Spring Boot is a popular framework for building REST APIs. You'll learn how to integrate Angular with Spring Boot and use security best practices like HTTPS and a content security policy.

For book updates, follow @angular_book on Twitter.

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: Angular, Bootstrap, and Spring Boot. All of these frameworks are wrapped up in an easy-to-use project called JHipster.

This book shows you how to build an app with JHipster, and guides you through the plethora of tools, techniques and options you can use. Furthermore, it explains the UI and API building blocks so you understand the underpinnings of your great application.

For book updates, follow @jhipster-book on Twitter.

10+ YEARS


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.

The best part about the Colorado Software Summit

The best part about the Colorado Software Summit has been the fact that I can travel home at night. Keystone is beautiful, the conference is well organized - but hopping in my car and sleeping in my own bed last night was awesome. This morning, I'll be heading to breakfast with the family, taking Abbie to school and then driving back up for some dynamite sessions this afternoon.

Tom Bender is speaking at 1:00 on "Mule - A Detailed Look at an Enterprise Service Bus", followed by Bruce's "Apache Geronimo Architecture and Community". I'm staying with both of these guys in a nice condo on the lake (across from the conference center) so it should be fun to hear them speak. I'll do my best to blog both sessions.

Posted in Java at Oct 26 2005, 06:09:23 AM MDT Add a Comment

My favorite quote from the Colorado Software Summit

Here's a good quote from John Soyring's keynote on Monday:

... Geronimo is a subset of Websphere ...

I especially enjoyed this b/c I was sitting next to Bruce Snyder, one of the founders of Geronimo.

This quote seems to have been backed up yesterday with IBM's release of WebSphere Community Edition.

Posted in Java at Oct 26 2005, 04:40:29 AM MDT Add a Comment

Spring MVC the most popular web framework among AppFuse users

At the beginning of October, I did an informal poll on the AppFuse mailing list to see which web framework users were developing their applications with. Surprisingly, Spring came out on top, and the component frameworks (JSF and Tapestry) are the least used. I find this interesting b/c AppFuse lowers the barriers and reduces the learning curve for all of these frameworks.

Poll Results

If you're an AppFuse user and didn't respond on the mailing list, please leave a comment with the web framework you're using.

On a related note, I noticed that java.net added RSS Feeds for mailing lists today. This means if you have an RSS Reader, you can subscribe to the AppFuse user mailing list.

Heh, I just subscribed and there's no messages in the feed. Maybe this feature needs a little more work.

Posted in Java at Oct 25 2005, 10:29:40 AM MDT 30 Comments

Keystone

Opening Keynote at Colorado Software Summit Keystone Keystone

Posted in Java at Oct 24 2005, 06:10:56 PM MDT 4 Comments

Heading to the Summit

Colorado Software Summit

In a couple of hours (after my fraternity's annual Alumni vs. Actives softball game), I'll be heading up to Keystone to attend the Colorado Software Summit. I'm pretty excited about going; it's at one of my favorite places to ski, and it's the first time I'll be attending. I've heard great things about this conference, and I'm sure it'll live up to its reputation.

On the other hand, I have a good case of the "it figures". I caught a nasty cold from the kids a couple of days ago and it's sure to be in full force by tomorrow. With any luck, I'll lose my voice sometime before a talk this week - or perhaps cough my way through one of them. Do you have a good story about speaking when you're sick? If so, please share.

Posted in Java at Oct 23 2005, 11:19:23 AM MDT 1 Comment

MySQLDialect vs. MySQLInnoDBDialect

I've used Hibernate's MySQLDialect ever since I started using Hibernate and MySQL. However, I noticed with Hibernate 3 there's a couple of new MySQL Dialects in town: MySQLInnoDBDialect and MySQLMyISAMDialect. Using MySQLDialect still seems to work fine for me - and it handles transaction rollbacks when I'm using InnoDB types.

What's the point of these fine-grained dialects? Should they be used when possible, or does MySQLDialect default to one of these based on MySQL metadata? IMO, Hibernate's javadocs could stand to have a little more "doc" action. Maybe I'm just not looking in the right place for the answer to this question.

Posted in Java at Oct 19 2005, 08:53:16 AM MDT 5 Comments

What's the best way to integrate Ajax into a Java webapp?

I received an e-mail over the weekend asking how to integrating Ajax into into the various web frameworks covered in my Java Web Framework Comparison Whitepaper. Below is my reply:

The best thing that I've seen is to use DWR, Prototype and Scriptaculous.
These will work with all web frameworks, and if you're using Spring on the backend -
DWR makes it easy to expose your beans as JavaScript objects.

Also, there's a number of tag library solutions that greatly simplify things:

  http://javawebparts.sf.net
  http://ajaxanywhere.sf.net
  http://ajaxtags.sf.net

I haven't used the first one, but I have used AjaxAnywhere and saw a demo of
AjaxTags from its developers.  They both look like they could be very useful.

For those of you using Ajax in your Java webapps - what's your advice? Do you use these same libraries or other ones?

This post was partially motivated by my desire to reiterate things that are so obvious. ;-)

Posted in Java at Oct 17 2005, 10:50:00 AM MDT 12 Comments

Integrating Axis into AppFuse

Via Technorati, I found Integrate Axis and Appfuse Part1. Good stuff - I'm looking forward to Part 2.

Posted in Java at Oct 15 2005, 02:28:46 PM MDT 2 Comments

Maven 2's Transitive Dependencies

I spent a few hours this week integrating Maven 2's Ant tasks into Equinox. Here's a things I discovered in the process.

  • The JAR you need to include to use the Maven Tasks is quite large, weighing in at a hefty 833K. Regardless, it's easier to include a ~1MB JAR in CVS than it is 10MB of JARs. Equinox (w/o the extras directory) weighs in at 10.2MB before, 1.3MB after.
  • The transitive dependencies feature needs to be cleaned up a fair bit. There are a *lot* of unnecessary dependencies downloaded for many libraries. For example, Hibernate downloads a bunch of JBoss JARs and the Display Tag downloads all the various web framework JARs. I found myself excluding almost as many dependencies as I added.
  • Using in-line dependencies (where you specify each one in your build.xml) is cleaner and requires less XML (b/c of attributes vs. elements). I went this route at first and it worked well, but to allow greater flexibility (for those who might want to use Maven 2), I ended up creating a pom.xml. 48 lines in build.xml turned into 195 lines in pom.xml.
  • The Maven Developer team provides fantastic support - both on the mailing list and IRC. Thanks Brett!
  • Maven 2.0 RC was released today.
  • I need to figure out a way to "install" the persistence/web framework options in Equinox. The easiest way from a maintenance perspective is to parse pom.xml to add new dependencies. Entity includes might make the project more extensible though - and easier to upgrade.
  • Once you have pom.xml in place, it's pretty easy to make the build/test/package process M2 friendly.
  • Maven 2 is faster than Ant.

Overall, it was a pretty frustrating experience, with lots of trail-and-error. In the end, I got it all figured out and the only "hack" I had to do was delete servlet-api-2.4.jar after copying dependencies into my WAR. This is b/c Ant is not smart enough to know that dependencies with a "provided" scope shouldn't be copied. I could probably have a 4th dependencies path to solve this, but deleting sounded easier at the time.

I'm not going to check anything in yet b/c I still have to modify all the installers to specify their dependencies. The main advantage I can see in using a download-dependencies feature is easier upgrading of dependencies. It'll also make a lot more sense in AppFuse b/c certain parts of project (i.e. appfuse-dao.jar) can be published as re-usable modules.

In the meantime, if you'd like to try out Equinox with this feature (works with both Maven 2 or Ant), you can integrate it into a CVS version with the following steps:

That's it! I'm sure some things can be improved - please let me know if you find any issues.

Posted in Java at Oct 15 2005, 12:57:39 PM MDT 7 Comments

Want to learn more about Ajax? Come to tonight's DJUG.

If you live in Denver and want to learn more about Ajax, you might want to attend tonight's Denver JUG. Steve Benfield will be delivering a presentation titled "Injecting Life into Web Applications with AJAX".

In this session we will cover how AJAX works, discuss architectural considerations for building AJAX-enabled applications, look at lots of code examples, explore some real-world AJAX examples, discuss using AJAX for returning dynamic data versus dynamic GUI elements, and cover emerging AJAX frameworks and patterns. We will end with a demonstration and comparison of an AJAX enabled business application versus a traditional HTML application.

Finally we will discuss what our team had to consider and some of the pitfalls we found when it came to implementing our own AJAX framework.

Looks like a good session. I won't be attending b/c I need to take care of some OS Rot on both my PowerBook and Desktop.

Posted in Java at Oct 12 2005, 09:10:05 AM MDT Add a Comment