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.

Useless Statistic

Speaking of statistics, here's some useless ones:

The first stat is pretty useless, but the 2nd is pretty cool considering there hasn't been a release since December.

Posted in Java at Apr 08 2005, 06:16:19 AM MDT 5 Comments

DU Kicks CC's Ass

Watching the game yesterday was a glorious event. I have a co-worker that's a CC Alumni, so a bunch of fellow DU Alumni (read: fraternity brothers) and I met at the same bar as he (and fellow CC Alumni) and heckled them the whole game. It was definitely a good time.

The bar (Braun's) sucked b/c they wouldn't turn on the sound during lunch (game was at noon), but they turned it on in the 3rd period and gave us drink specials so it wasn't too bad. It was a great day - leaving work at noon and kicking CC's ass! The national title game is tomorrow night - go DU!

It's funny to think that when DU won the title last year, I bought a bus. If they win again this year, that must be a sign to start restoring it! ;-)

Posted in General at Apr 08 2005, 04:38:00 AM MDT 1 Comment

It's time for some productivity

Just last night I was wondering how I was going to finish up AppFuse 1.8 and Spring Live's April update in the next 1 1/2 weeks. This morning, I got up early (5:00 a.m.) to get back to work on Spring Live, and found that Julie was already up. She was fed up with the fact that Jack was coughing up a storm and both kids are still sick. They've been sick off-and-on since January (but mostly on), and she's had enough.

Julie tooks Jack to the doctor a month ago and his recommendation was a warm and humid climate. She asked him, "like Florida?" - to which responded, "Yes! That's a great idea!" Since then, she's bought a humidifier, taken showers with Jack every morning and even hit him with the nebulizer a few times. No dice, he's still coughing and wheezing. At 5:00 a.m. this morning, she was fed up and said "I'm going to Florida." 20 minutes later, she'd bought her tickets and we left for the airport around 6:30.

While I'll certainly miss everyone, it's a golden opportunity for me to work on AppFuse and Spring Live and get caught up this weekend. Of course, I have to work an extra day in the mix to pay for the (spendy) flights, but it's nice being a contractor and having that as an option. Now the problem is I find an empty house often leaves me with little motivation. I tend to enjoy renting movies and going to bed early when the family is gone. Of course, with DU being in the Frozen Four tomorrow (and hopefully Saturday) - there's even more motivation for more fun and less work.

Regardless of the motivation I have to take part in my extra-curricular obligations (AppFuse and Spring Live), it's nice to know I have a great opportunity to work on them this weekend. Staying up late to work on this stuff just isn't any fun.

Posted in General at Apr 06 2005, 04:10:05 PM MDT 7 Comments

Open Source CMS based on AppFuse

If you're looking for AppFuse examples or a Java-based CMS (Content Management System) - you might want to checkout AtLeap.

Blandware AtLeap is a multilingual free Java CMS (Content Management System) with full-text search engine. Blandware AtLeap is a framework which allows you to rapidly start your own Web application.

The screenshot looks pretty cool. According to Andrey Grebnev (the project's owner), this project is based on AppFuse 1.5 with pieces from 1.6.

Posted in Java at Apr 05 2005, 02:54:52 PM MDT 1 Comment

Upgrading to Spring 1.2 RC1 and Hibernate 3.0

I spent an hour or so on Friday upgrading Equinox and AppFuse to use Spring 1.2 RC1 and Hibernate 3.0. The upgrade for AppFuse was relatively painless, but the upgrade for Equinox failed. Equinox uses HSQLDB version 1.7.1. The main reason I use the 1.7.1 version is to avoid the infamous "lock exception" that the new HSQL version throws in standalone mode. With version 1.7.1, it seems you could have more than one connection open to the file-based database w/ no problem. I really like this feature in 1.7.1 b/c it means you can run the app in Tomcat and browse the database at the same time.

So what's the problem? Why can't I just use Hibernate 3.0 with HSQL 1.7.1? The problem is I like using the following setting as part of my "sessionFactory" bean:

<prop key="hibernate.hbm2ddl.auto">update</prop>

This setting will update the schema when you change mapping files, but otherwise leave the data intact. Furthermore, it'll actually create the tables if they don't exist. Not so with Hibernate 3. With Hibernate 3, using "update" doesn't create the tables. Of course, upgrading to a newer version of HSQL fixes the problem, but then I get the lock problem. My eventual solution will probably be to hack Hibernate or HSQL, but for now I just won't upgrade Equinox. Another solution might be to look at some other embedded databases. Of course, I could also require users to install a database to run Equinox - but I like having the "no setup required" feature.

Regardless of the problems I experienced with HSQL and Hibernate 3, upgrading AppFuse was pretty painless. Here's the set of instructions I sent to the mailing list:

  1. Download Hibernate 3.0 and Spring 1.2 RC1.
  2. Create a lib/spring-1.2-rc1 and put the following files in it (NOTE: spring.jar now contains aopalliance.jar):
        acegi-security-0.8.1.jar
        commons-codec.jar
        ehcache-1.1.jar
        license.txt
        spring-mock.jar
        spring.jar
  3. Create a lib/hibernate-3.0 and put the following files in it:
        hibernate3.jar
        lgpl.jar
        lib/antlr-2.7.5H3.jar
            antlr.license.txt
            asm.jar
            c3p0-0.8.5.jar
            c3p0.license.txt
            cglib-2.1.jar
            dom4j-1.5.2.jar
            jta.jar
            jta.licence.txt
            oscache-2.1.jar
            swarmcache-1.0rc2.jar
  4. Change the versions for Hibernate and Spring in lib/lib.properties. Also, change the hibernate.jar property to reference hibernate3.jar instead of hibernate2.jar.
  5. In build.xml, change the "package-web" target to include all the Hibernate JARs instead of just specific ones:
    <lib dir="${hibernate.dir}/lib" includes="*.jar" excludes="jta.jar"/>
  6. Change web/common/taglibs.jsp to use uri="/oscache" for the oscache taglib.
  7. Search for "net.sf.hibernate" and replace it with "org.hibernate".
  8. Search for "orm.hibernate" and replace it with "orm.hibernate3" (for Spring).

The major difference for Hibernate is you no longer need odmg-3.0.jar, but you do need asm.jar and antlr-2.7.5H3.jar. Let me know if you find any issues with these instructions. You could also just download AppFuse from CVS.

NOTE: The CVS version of AppFuse has an XDoclet version that only supports generating Hibernate 2.x mapping files. I believe there is support for Hibernate 3 in XDoclet's CVS - but I haven't had a chance to upgrade yet.

Update: Here's more on the HSQL bug that's not really a bug (according to a comment on the post). Regardless of whether it's a bug or not, it'd be nice to have the 1.7.1 behavior as an option - it's a great feature for get-started-quick apps like Equinox.

Posted in Java at Apr 03 2005, 06:52:52 PM MDT 9 Comments

RE: No More Kids

I'm happy to report the procedure I had done yesterday was quick and relatively painless. I was definitely disappointed to hear from the Doctor that I wouldn't be getting any pain-killers, but I also figured that might be a good thing (maybe I wouldn't need them). The first couple of hours with a frozen bag of veggies wasn't bad. Then I think the combination of a bad cough and no more veggies did me in. I was in some pretty good pain yesterday afternoon, but after getting some frozen peas from the grocery store, I definitely felt better.

This morning I woke up with pain - in an unexpected location. It's on both sides, but along my inner wasteline. I'm guessing this is from all the coughing and is the same pain I would experience if I were lifting over 10 pounds. Oh well, hopefully I'll be pain-free tomorrow.

Posted in General at Apr 02 2005, 05:06:57 PM MST 6 Comments

RE: Going to work for Microsoft

You know you're good when your April Fool's joke gets picked up by a major news site.

With a fair bit of attention being given to using older Web technologies to create new Net applications, Microsoft is apparently looking to make sure it is staying up to date. The company has hired Java specialist Matt Raible to help make sure that Ajax is in Visual Studio's cupboard of tools.

:-)

Posted in Java at Apr 02 2005, 08:47:23 AM MST 8 Comments

Going to work for Microsoft

I received a fair amount of feedback from yesterday's post. A few folks sent e-mails asking me to partner with them to start a company, and a couple of companies called claiming they could set me up with my "dream job". The call I didn't expect was from Ashwin Karuhatty of Microsoft. Ashwin is the Developer Evangelist that invited me to the Developer Summit in Redmond a few weeks ago.

He offered me a position with Microsoft being a Developer/Evangelist working on the Visual Studio Team to integrate Ajax-ish components into .NET. I've been doing a lot with Ajax stuff lately, and really enjoying myself, so I've accepted the position. I just submitted my two-weeks notice to my Project Manager and will become a Microsoftee on April 11. For the first 2 months, they're going to let me work out of my house, with an eventual move to Redmond, WA. I'm pretty excited about the move - both my parents and my sister live w/in 4 hours of Redmond. Sure it rains a lot there, but having family so close should make up for that.

If you have any suggestions for Ajax Components in Visual Studio, let me know!

Posted in Java at Apr 01 2005, 05:56:41 AM MST 35 Comments