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 JA-SIG Summer Conference

In June, I'll be doing a keynote at the The JA-SIG Summer Conference. This should be interesting because 1) I've never done a Keynote and 2) the other Keynote speakers are Phil Windley and Matt Asay. I've never met either one, but I've heard Matt's name a fair amount. As for Phil, I already like him from reading his blog:

Adobe Open-sources Flex

Yawn...

I'm not sure what the excitement is all about.

I'll be doing my Comparing Java Web Frameworks talk. They gave me the option to talk on whatever I wanted. I chose the CJWF talk because then I didn't need to do any extra work. ;-) I'm beginning to look like a one-trick pony, but that's OK - at least it's a fun talk to deliver. I'll be delivering it at OSCON as well. Yesterday, I submitted proposals for Acegi + SSO + Roller, AppFuse 2.0 and CJWF to CSS and JavaZone. I'll also be flying down to Dallas on June 13th to talk about AppFuse 2.0.

For those of you who don't know, the purpose of JA-SIG and the conference is to develop a global academic community providing education and research in the applied use of open technology architectures and systems in higher education. It sounds like a good conference - I'm looking forward to all the talks on CAS, uPortal and Ajax.

Posted in Java at Apr 26 2007, 01:33:30 PM MDT Add a Comment

AppFuse Light 1.8 Beta Released

AppFuse Light 1.8 Beta adds CSS Framework integration, as well as support for Stripes (1.4.2) and Wicket (1.2.6). This is a beta release so we can work out some kinks before the final release.

AppFuse Light now offers 60 possible combinations for download:

  • Web Frameworks: JSF (MyFaces), Spring MVC (with Ajax, Acegi Security, JSP, FreeMarker or Velocity), Stripes, Struts 1.x, Struts 2.x, Tapestry, WebWork, Wicket
  • Persistence Frameworks: Hibernate, iBATIS, JDO (JPOX), OJB, Spring JDBC

AppFuse Light Screenshot - click on the box at the bottom right of AL to activate StyleSheet Switcher

If you have any questions about this release, please subscribe to the AppFuse user mailing list by sending a blank e-mail to [email protected].java.net. You can also post questions in a forum-like fashion using Nabble: http://appfuse.org/forums.

If you're a developer of one of the frameworks that AppFuse Light uses - I'd love a code review to make sure I'm "up to snuff" on how to use your framework. I'm also more than willing to give commit rights if you'd like to improve the implementation of your framework.

Live demos are available at:

Update: Based on Martin's blog post, I've added the version numbers for Stripes and Wicket (1.4.2 and 1.2.6, respectively). While the Wicket guys recommended I use Wicket 1.3.0, I was already knee deep in 1.2.6 when I read their recommendation. If 1.3.0 really is that much better than 1.2.6, it should be a pleasure to upgrade (and a good learning experience too boot!).

Posted in Java at Apr 26 2007, 02:23:22 AM MDT 10 Comments

Maven Book and Flex Open Sourced

Maven From Andrew Williams:

Thats right, there is a new guide out there to help all those interested in Maven (or already using it) to get the most out of their build lifecycle. It is indeed the definitive guide and will be regularly updated so it stays that way. This book is produced by my colleges at Sonatype and is a free gift to the Maven community - no registration, no catches

More documentation has never hurt an open source project. Is the book open source too?

In other kick-ass news, Flex was open sourced today. Does this mean the server is open sourced too and we can run a Flex app for free? I see the competition between OpenLaszlo and Flex heating up in the near future. Both are pretty good if you like working with XML. Does your web framework have support for OpenLaszlo and Flex?

Posted in Java at Apr 26 2007, 12:01:34 AM MDT 2 Comments

What web framework are you using with AppFuse?

As part of my upcoming Comparing Java Web Frameworks talk, I'd like to show some statistics of web framework usage in AppFuse. Please vote for the one you're using by clicking on the link below. I'm mostly looking for current AppFuse users. By that, I mean folks that have used 1.x or 2.x on a project in the last 6 months, or plan on using it in the next month or two.

You'll need to create an account and login to vote. To do this, go to View > Account > Sign Up (after clicking on the link below).

I'll compile the results of this poll on Friday morning (April 27th), so you have until then for your vote to be counted!

On a related note, if anyone knows how to get the monthly posting statistics from Spring MVC's forums, I'd love to hear about it. My "mailing list traffic" slide has excluded them for the past couple of years because I've been unable to get a count of monthly postings.

NOTE: If you vote by adding a comment to this entry, it won't be counted.

Update: Thanks to the 64 of you that voted. Here's the results of the poll:

AppFuse Web Framework Usage

As I said last time, I find the results interesting because AppFuse lowers the barriers and reduces the learning curve for all of these frameworks.

Posted in Java at Apr 25 2007, 11:05:04 AM MDT 6 Comments

Chelan Cider to be carried by Hale's Ales

Chelan Cider My sister (Kalin) posted some good news last week.

I met with Mike Hale yesterday of Hale's Ales and he is interested in carrying our cider!!

If you haven?t been to Hale's Ales in Seattle, please check them out on the web @ www.halesales.com

If you happen to live in Seattle and like hard cider, you may be able to pick up a bottle of Kalin's "hooch" at Hales in the near future. Congrats sis!

Posted in General at Apr 23 2007, 04:53:03 PM MDT 1 Comment

Happy Anniversary Julie!

Married! Julie and I got married seven years ago today. For our wedding, we invited all our friends fly down to West Palm Beach and party it up for a week. Most folks flew down on Wednesday, some showed up Thursday, and all enjoyed the festivities on Saturday. If you happened to be at the wedding, you might want to reminisce with some old pictures. If nothing else, looking at the pictures will show you how much digital picture quality has improved in 7 years.

To celebrate, we went out to a fancy dinner downtown last night. After dinner, we barely slipped into Comedy Works for John Heffron. The show was sold out, but some folks didn't show up so we ended up getting front row seats! We hadn't even heard of John Heffron, but it turned out to be a really funny show.

Thanks Julie for such a fun married life!

Posted in General at Apr 22 2007, 10:50:41 AM MDT 2 Comments

Equinox (a.k.a. AppFuse Light) 1.7.1 Released!

Equinox 1.7.1 contains a number of dependency updates, and not much else. This will be the last release with the Equinox name. This project is changing its name to AppFuse Light and will be referred to by that name going forward. The project will be moving its source code to http://appfuse-light.dev.java.net. The equinox.dev.java.net project will remain because Cool URIs don't change. In addition to the name change, I'd like to try to merge the AppFuse and Equinox user communities. Since the technologies are so similar, and AppFuse 2.x will use some of Equinox's Ant scripts, it makes sense to bring these projects closer together.

In AppFuse Light 1.8, I plan on adding support for Stripes and Wicket as well as integrating the CSS Framework (like AppFuse uses).

50 possible combinations are available for download:

  • Web Frameworks: JSF (MyFaces), Spring MVC (with Ajax, Acegi Security, JSP, FreeMarker or Velocity), Struts 1.x, Struts 2.x, Tapestry, WebWork
  • Persistence Frameworks: Hibernate, iBATIS, JDO (JPOX), OJB, Spring JDBC

All of the frameworks used in Equinox, as well as most of its build/test system is explained in Spring Live. Going forward, documentation will be put on the AppFuse site.

A summary of the changes in this release are below:

  • Removed custom JavaScript and CSS for MyFaces Tomahawk's
  • Dependent packages upgraded:
    • Ajax4JSF 1.0.6
    • Cargo 0.9
    • Commons Collections 3.2
    • Commons DBCP 1.2.2
    • Commons Lang 2.3
    • Commons Validator 1.3.1
    • DWR 2.0 RC2
    • FreeMarker 2.3.9
    • JPOX 1.1.7
    • JUnit 3.8.2
    • Hibernate 3.2.1
    • iBATIS 2.3.0
    • MyFaces and Tomahawk 1.1.5
    • Spring 2.0.4
    • Spring Modules Validation 0.8
    • Struts 2.0.6
    • Tapestry 4.1.1
    • Velocity 1.5
    • Velocity Tools 1.3
    • WebWork 2.2.5

For more information about installing the various options, see the README.txt file. Live demos (thanks to Contegix!) are available at:

If you have any questions, please read the comments from the 1.7 release or ask them on the AppFuse mailing list.

Posted in Java at Apr 21 2007, 05:27:33 PM MDT 2 Comments

New Swing Set

Below is what Julie built while I watched Caddy Shack last night (I know, I'm a slacker). Abbie and Jack couldn't be happier right now.

New Swing Set

Update on Sunday: Checkout the finished product - it has a climbing wall, slide and fort too boot!

New Playground

Posted in General at Apr 21 2007, 01:18:28 PM MDT 1 Comment

Spring Web Flow and JSF

Keith Donald has a nice and long writeup on Spring Web Flow 1.0.3's stellar support for JSF:

One important area where our integration is growing is with the Java Server Faces (JSF) community. Beginning with Spring Web Flow 1.0.3, our JSF integration is on-par with what the Spring community expects, and delivers what JSF developers in the trenches need most. This blog will illustrate the integration enhancements to show you the difference Spring Web Flow is making for JSF developers.

One of the most interesting parts of the post is a few paragraphs down:

Basically, Web Flow solves every problem this pour soul experienced with JSF's basic navigation capabilities. As one of our leading users noted, Web Flow can be used as a complete replacement for JSF's default "forward-centric" navigation model.

It's also interesting to note that ideas from SWF could be incorporated into JSF 2.0:

I'd also like to take this opportunity to encourage those already using Spring Web Flow in a JSF environment to speak out about your experience?send me an email, leave a comment here, write an article on JSF central, tell leaders in the JSF community about your experience. Your real world experience can help influence the direction of the JSF 2.0 specification in a time where the specification lead has asked for community feedback. Interface21 has been extended an invitation from Ed Burns, the JSF specification lead, to be a part of the JSF 2.0 expert group, which is a recognition of Web Flow's contribution as an innovative JSF extension. We have accepted that invitation and are excited about helping channel whats proven to work in the area of navigation and state management on a general basis back into JSF 2.0, while continuing to chart new territory and remaining usable in any environment.

Are you using SWF with JSF? If so, have your experiences been good or bad? I'm sure Keith would love to hear about them either way.

I think it's interesting to note that both Interface21 and JBoss are doing a lot to build solutions to JSF's problems. Is there money to be made from supporting JSF? In reality, you have to like what both companies are doing: they're building solutions to overcome the shortcomings of JSF and they're contributing those solutions back to the community for free. Even cooler is the fact that both companies are trying to get their solutions into the next version of JSF. This benefits everyone as far as I'm concerned.

What about those of you using Spring Web Flow with Spring MVC or Struts? How is it working for you?

I recently integrated Spring Web Flow into my current project using the Spring Webflow Plugin. In the past, I've used SWF with Spring MVC and JSF, so the Struts 2 Plugin seemed a bit odd. I guess I'll know more once I start using it more.

This brings up a good question - do you think it's better to create a page flow (i.e. a shopping cart) without Spring Web Flow first, and then refactor? Or do you think it's easier to use SWF from the beginning? My gut feeling is to start w/o it because you may not need it. Then if you do need it, you'll understand the problems it solves. What are your thoughts?

Posted in Java at Apr 21 2007, 10:22:32 AM MDT 8 Comments

Acegi Security adds OpenID support to its sandbox

From the Acegi Security mailing list:

Thanks to the efforts of Robin Bramley; we now have a first draft of OpenID support in the sandbox. The code is mostly as-is from when Robin submitted sent it to me. I've done all the standard jalopy formatting of the code so it blends in and has the proper file headers.

I don't know how much this will help folks developing intranet applications, but it's pretty cool for those doing otherwise. Anyone want to take a stab getting OpenID working with Roller? It uses Acegi and supports SSO, so hopefully it won't be too difficult.

See Timothy M. O'Brien's writeup as well as Ray Krueger's for more information.

Posted in Java at Apr 20 2007, 11:33:17 AM MDT 4 Comments