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.

[ANN] Equinox 1.2 Released

This release adds support for iBATIS, JDO (JPOX), Spring JDBC and OJB. For detailed documentation on how to use these frameworks with Spring, see Chapter 7 of Spring Live or the Spring Reference Documentation.

For a detailed comparison of the web frameworks included in Equinox, see Chapter 11 of Spring Live (to be released in mid January 2005). Detailed release notes are below:

- Added CruiseControl files and documentation to extras/cruisecontrol.
- Fixed export issue in userList.jsp for displaytag. Birthday should now export w/o any issues.
- Added deployment descriptor for Geronimo with Jetty.
- Added JUnit and UI tests for JSF and Tapestry.
- Added installations for Velocity and FreeMarker with Spring MVC.
- Added installations for iBATIS, JDO, OBJ and Spring JDBC. Hibernate is the default.
- Dependent packages upgraded:

  • Cargo 0.4
  • DisplayTag 1.0 RC2
  • Hibernate 2.1.6
  • Spring 1.1.3
  • StrutsTestCase 2.1.3

- Dependent packages added:

  • FreeMarker 2.3
  • iBATIS 2.0.8
  • JPOX 1.1.0-alpha-4
  • OJB 1.0.1
  • Url Rewrite Filter 1.2
  • Velocity 1.4

Download. For more information about installing the various options, see the README.txt file.

Demos are available at the links below:

NOTE: I didn't upgrade to Hibernate 2.1.7 because it doesn't create the HSQLDB database tables when the JVM starts up.

Posted in Java at Dec 29 2004, 11:49:15 AM MST 1 Comment

New AppFuse Developer: Nathan Anderson

Nathan Anderson has been a huge help on the AppFuse mailing list lately. He's also setup an IRC Channel and keeps the wiki up-to-date with all kinds of tips and tricks.

I've asked Nathan to join AppFuse as a Committer and he's accepted the offer. Welcome aboard Nathan!

Posted in Java at Dec 22 2004, 12:32:48 PM MST 1 Comment

Happy Holidays!

We're heading for the airport in the next hour. I stayed up and tried to finish off Chapter 11. I still have a few more hours to go, but I made a good dent in it. Our flight leaves in 2 hours (6 a.m.) and we'll be in West Palm Beach, FL until the 31st. Should be a fun day - no sleep, 2 kids and we don't arrive until 3 this afternoon.

Enjoy your holidays - I know I will (after today is over with).

Posted in General at Dec 21 2004, 03:45:46 AM MST 1 Comment

Increasing Productivity

I have a new plan for increasing my productivity. With any luck, she'll be writing Java by the time she's 3. Abbie's so cool

Abbie likes Macs

Posted in General at Dec 19 2004, 06:50:11 AM MST 8 Comments

What's up with my PowerBook?

My PowerBook seems to be dying a slow death. When I put it into hibernate mode (by closing it), often it won't startup again. I open the lid and nothing happens. I often have to hold down the power button, power it off, and then restart it.

What's this mean? It means I'm rebooting the damn thing once or twice a day. It's especially frustrating when I'm about to give a talk at JUG meetings or conferences. I get everything setup (IDEs open, Keynote open, etc.), close it as I walk to the front, and then after I plug it in and open it - nothing happens!. This leads to me spending the next 5 minutes rebooting and opening everything again. It's extremely frustrating - especially since it's such a slow-ass machine. ;-) This week, I've headed to the coffee shop (3 blocks away) several times to write, and it seems to happen every time I open it. Each time I think, "Did I save before I closed it?" Luckily, I have Word set to save every minute, so it hasn't been a problem yet.

I believe this happened when I first I bought the machine. However, it was only a couple of times per month. Now that it's become a daily event, and I think it's time to take it in. Has anyone else had similar issues?

The good news is I'm back in love with my PowerBook after using it so much this week. It's really an excellent laptop - especially for writing. I hooked it up to my 23" for the first time in a few months today and I thought, "I really need to get a G5." In reality, I don't want a G5 - my Windows box suites me just fine. What I want is a faster PowerBook - when's the next revision?

Posted in Mac OS X at Dec 18 2004, 05:18:15 PM MST 19 Comments

Did you make the list?

It would've been nice if the Spread Firefox team had let folks know before the Firefox Ad was published. But oh well, shit happens. At least I made the list (PDF).

Posted in The Web at Dec 17 2004, 11:00:47 PM MST Add a Comment

New Gig?

There's a possibility that I'll be looking for new gig starting in January. If you're looking for some help, let me know.

Posted in Java at Dec 16 2004, 01:28:12 PM MST 5 Comments

If you could add another framework to AppFuse, which would it be?

If you could add another web framework option to AppFuse, which one would it be and why? Please keep in mind it already includes Struts, Spring, WebWork, JSF and Tapestry.

Posted in Java at Dec 13 2004, 09:52:17 PM MST 38 Comments

AppFuse Tip: Backup and Restore Data with DbUnit

One of the nice things about having DbUnit integrated into AppFuse is you can easily import and export data. I've often used this feature to export a test database (or even production) into my development environment to try and reproduce data-related errors. Here's how to do it:

  1. Run "ant db-export -Ddatabase.host=otherhost". This exports all the data into an XML file named "db-export.xml" in the current directory.
  2. Run "ant db-load -Dfile=db-export.xml" to import the data into your local database.

I've used the db-export task for other things too - like populating the database through the UI and then updating the test data. All you have to do for this is to copy the db-export.xml file to metadata/sql/sample-data.xml.

NOTES:

  • For Oracle, you need to add a "schema" attribute to all the <dbunit> tasks in build.xml. You also need to do this for the "db-export" target for PostgreSQL.
  • If you want to limit the tables exported (i.e. from a production database), simply nest a bunch of <table name="table_name"/> elements inside the <export> element.
  • If you get errors about foreign key constraints when running "db-load" after "db-export" - you need to re-arrange the order of your tables in the imported XML file.
  • To clear out tables before your tests, add an empty <table name="table_name"/> element to sample-data.xml.

Posted in Java at Dec 13 2004, 10:43:18 AM MST 2 Comments

How do I attach a profiler to Ant?

I'll admit, I have very little experience working with a profiler - but I think I need one. Someone e-mailed me about testing all of AppFuse on a super-beafy box, and he got OOM errors after 17 minutes. For a dual CPU, 2Ghz Opterons, with 2GB RAM running RHEL3 workstation, it only made it to the Spring/AppGen test, which is #8 of 21. On my PowerBook, it makes it to #12, but my Linux box only make it to #8 too. My guess is there's some sort of memory leak in one of the testing tools - Tomcat, Cargo, WebTest or AppFuse itself.

Anyone have experience attaching a profiler to their Ant build or testing process to look for memory leaks?

Posted in Java at Dec 12 2004, 10:55:35 AM MST 10 Comments