Matt RaibleMatt Raible is a Web Developer and Java Champion. 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.

Validation Framework Consolidation

Looks like Jason Carreira has stepped up to the plate to try and consolidate the validation frameworks we have in Java. I'm sure it was a joint effort among many, but Jason's name is the only one I see on the JSR. I applaud this effort - it's definitely needed.

I've used Commons Validator, the XWork Validation Framework as well as Hibernate's Validator. While Commons and XWork work, the ability to annotate a class and validate it anywhere/anyhow is pretty cool. I reviewed an article a couple months ago that hooked Hibernate Validator into Spring MVC and Prototype for client-side validation. There's a lot of good stuff in this space - let's hope this JSR creates something even better. More than anything, let's hope it doesn't brush off client-side validation like JSF did. ;-)

In an ideal world, the RIFE, Spring MVC, Stripes, Struts, Tapestry and Wicket developers will all participate and allow JSR-303's result to be used as their framework's validation engine. I think it's a given that this will be usable with JSF.

Posted in Java at Jul 11 2006, 02:05:37 PM MDT 18 Comments

DC Tech Meetup

Anyone out there still interested in a DC-Area tech meetup tomorrow night? If so, are there any good places near Tyson's Corner? We'd love to return to Brickskeller, but it'd be nice to avoid the 1.5 hour commute to get there. It's not that far, but traffic is something else around here.

Update: Vienna Inn (map) is the location - we'll be there around 8:00.

Posted in Java at Jul 11 2006, 11:04:35 AM MDT 12 Comments

AppFuse 1.9.3 Released

This release is primarily a bug fix release, but also contains upgrades to several dependent libraries, including Acegi Security 1.0.1.

To install and configure AppFuse for development, see the QuickStart Guide. Thanks to all the sponsors who have contributed products and free hosting to the project.

To see how AppFuse works, please see the following demos (username: mraible, password: tomcat):

Comments and issues can be sent to the mailing list or posted to JIRA.

Note: If you're building AppFuse on Linux, you should be aware of some non-English encoding issues. The solution is to add the following to your ~/.bashrc file.

export LC_CENGINE=en_US
export LANG=en_US
export LANGUAGE=en_US

Posted in Java at Jul 11 2006, 08:20:45 AM MDT 12 Comments

SiteMesh works with JSF?

It looks like Andres Castillo has figured out how to make SiteMesh work with JSF. In case you didn't know, SiteMesh has Tapestry support in its CVS repository.

To learn more about SiteMesh, see Introduction to SiteMesh and Advanced SiteMesh.

Posted in Java at Jul 10 2006, 06:03:03 PM MDT 2 Comments

Buildix - CruiseControl, Trac and Subversion for VMWare

From the CruiseControl mailing list a few minutes ago:

Just passing on the info... this is one of those projects I also wanted/intended to do. :) I'm glad someone beat me to it!

http://buildix.thoughtworks.com

It includes CruiseControl, Trac, Subversion all on a single live cd or vm ware image. Very nice!

After installing Ubuntu on VMWare server last weekend, I was getting ready to create something similar to this. I'm glad I saw this as it seems to be a much more complete package than the one I was going to create. I'd prefer Ubuntu over Debian/KNOPPIX, but since Ubuntu is based on Debian, it probably doesn't matter.

A couple additions I'd like to see are Maven 1, 2 and Continuum pre-installed. I doubt that'll happen though since CruiseControl is a Thoughtworks-sponsored project. Regardless, if I had a Buildix with those options, I'd likely use (and recommend) it for every future project. A lot of clients already have bug tracking and source control installed, so the build server is the main thing that interests me.

Posted in Java at Jul 06 2006, 08:17:38 AM MDT 11 Comments

AppFuse and Groovy/Grails?

Here's an interesting e-mail I received last night:

I see AppFuse's strong points is in integrating a lot of oss in a synergistic manner, which is really great and helpful. Just wondering whether there is any chance of integrating AppFuse with groovy and especially grails.

I also just found out about grails 0.1 and it looks really promising, for a 0.1 release.

I just feel that it has some synergy there, a java ruby on rails combines with the best oss integration available.

My response:

I think Grails and AppFuse are more likely competitors rather than compatible. Grails uses Spring, Spring MVC and Hibernate under-the-covers, whereas AppFuse uses the raw frameworks. Of course, it would be cool to allow different classes w/in AppFuse to be written in Groovy or JRuby. At this point, I think it's probably better for users to choose one or the other.

Grails definitely looks cool, and a lot like Rails. However, I think using Groovy is a pretty big step for the majority of Java Developers out there. If you're reading this post, you're probably not in the majority.

Posted in Java at Jul 06 2006, 07:35:49 AM MDT 3 Comments

Fun in DC

I made it back to Denver yesterday after quite a week in DC. The trip had to be the most fun I've ever had on a business trip. This was mostly due to my partners in crime, James Goodwill and Bryan Noll. Not only are these guys kick-ass Java developers, but they keep you entertained all day long. With my bad back, the ridiculous rain, and getting lost all the time in our rental car, we had quite a trip. The tech meetup on Wednesday night at Brickskeller was awesome. Thanks to all the guys that showed up - we'll definitely do it again in July.

Next week, we're working remotely, then we're back in DC on the 10th. Wednesday, July 12th looks like a good date for the next Tech Meetup. We're open to venue suggestions, but we're also more than willing to return to Brickskeller.

Posted in Java at Jul 01 2006, 12:17:57 PM MDT 2 Comments

JBoss Rules (Drools) 3.0.1 and AppFuse

Troy Kelley has written up a tutorial on how to integrate JBoss Rules (Drools) 3.0.1 with AppFuse.

While reading Matt's blog article I noticed this tutorial, which is pretty nice, but seems to assume that you're using version 2.x of JBoss Rules (Drools) - mainly because of the fact that the DRL is in XML.

Here's an updated version for 3.0.1 following the same outline as the previous tutorial.

Note that I'm using springmodules (I used 0.4) for the JSR support.

Good stuff Troy - thanks for putting this together.

Posted in Java at Jun 28 2006, 04:55:39 AM MDT Add a Comment

Tech Meetup near Washington, DC

In the comments of my last post, a few folks mentioned they'd be interested in doing a "tech meetup" this week. We're staying at the Sheraton Reston Hotel. We'd prefer to stay "close to home", but that's only because we get lost easily. ;-) In reality, we're open to anything as long as it's not raining cats and dogs like it has been.

Tomorrow (Wednesday) night looks like the best night. 7:00 is probably a good time - where do you want to meet?

Posted in Java at Jun 27 2006, 05:22:04 AM MDT 20 Comments

RE: What Web Application framework should you use?

Tim O'Brien has an interesting post titled What Web Application framework should you use?. The first thing I noticed about this post is the permalink. It looks like he started with "Isn't Rails supposed to change...", which makes me wonder what the rest of the title was. In this post, he rags on Java Web Frameworks and the lack of a clear path for choosing one. He ends up predicting that many will stick with Struts 1.x (poor bastards) and those that aren't tied to Java should move to Rails. I don't have a problem with folks moving to Rails, but I would like to comment on the Java Web Framework space and Tim's comments.

He says:

Prediction: The confusion over what is happening over at Struts is going to discourage people from continuing to use it. The Struts team did the right thing in recognizing that Struts 1.x was a dead-end, but that project needs a single public message. Is it Struts Action or is it Struts Faces? Or is it two frameworks capitalizing on the Struts brand name?

I think what is going on in the Struts project is definitely two frameworks capitalizing on a brand name. That was a concious choice on the project's part when they chose to start creating sub-projects. The interesting thing about Struts Shale is it's largely a prototype for JSF 2.0. Furthermore, it was rejected by many Struts developers as becoming Struts 2.0. Why? Because JSF sucks. Especially when used with JSP - which is what most folks are doing.

JSF continues to be the most over-hyped under-used framework in Javaland. If you read the blogs of first-time users, you'll find many complaints and issues on how things work. Granted, most of these problems are with JSP and the implementation, but still. If I were in charge of JSF, I'd dump JSP altogether, bundle Facelets with it and allow more flexible page navigation (including controller-to-page). Don't get me wrong, I like the ideas behind JSF, I just don't like the implementation (or the fact I have to wait years for things to be fixed in the spec).

That being said, I've yet to meet an unhappy WebWork fan. If you find someone that still likes Struts, ask them if they've used WebWork. Chances are they'll say no. As far as Tapestry is concerned, the learning curve is too high. It's been rejected time and time again by my clients because of the learning curve. Are they going to fix this? Yep, they're going to re-write the whole damn thing - again! Every major point release of Tapestry throws backwards-compatibility out the window. Furthermore, I've heard once you get over the learning curve, it's a joy to work with. I've also met people at conferences that've used it over a year and say they're still struggling with its concepts.

Spring MVC - I wish I had bad things to say about it, but I don't. It (obviously) has the best Spring integration, but I've found WebWork much more pleasurable to work with. Sure, Spring has a ThrowawayController, but with a name like that, you can tell it's a second-class citizen.

Inspired by Tim's post, here's my prediction:

Struts Action 2 will be the best choice for developing Java-based web frameworks. Not only does it support JSF, but it's easy to learn, test and use. Furthermore, it seems to be the most often used framework in major software products and web sites.

How's that for a clear message? Struts Action 2 is the shiznit, now let's get back to developing applications.

Disclaimer: This is my opinion with a lot of stuff thrown in to get folks riled up. I've never put a JSF, Tapestry or Spring MVC application into production (except for AppFuse of course), so most of my opinions are likely without foundation. In wonder how many applications Mr. O'Brien has put into production with these frameworks?

Posted in Java at Jun 20 2006, 08:32:41 AM MDT 57 Comments