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.
You searched this site for "maven". 270 entries found.

You can also try this same search on Google.

AppFuse 2.0 Status

Better than Tots We're working hard on AppFuse 2.0. The good news is things are coming along really nicely. There's quite a few developers working on the project now and they've been a tremendous help. If I knew the move to Maven 2 would've inspired so much help, I would've done it a long time ago! We've got most of the archetypes created and we just need to work on documentation for the 2.0 release M1 release. As far as the roadmap is concerned, we've finished most of the code for an M2 release, but we still need to do documentation. I'm hoping to release 2.0 M1 on Thursday of next week.

If you want to try it, you can checkout the Hello World with AppFuse 2.0 video. After that, feel free to take it for a test drive using the QuickStart Guide.

New features in AppFuse 2.0:

  • Maven 2 Integration
  • Upgraded WebWork to Struts 2
  • JDK 5, Annotations, JSP 2.0, Servlet 2.4
  • JPA Support
  • Generic CRUD backend
  • Full Eclipse, IDEA and NetBeans support
  • Fast startup and no deploy with Maven Jetty Plugin
  • Testable on multiple appservers with Cargo and profiles

Speaking of goodies, I uploaded a bunch of AppFuse desktop backgrounds to Flickr. Thanks to Max Hays of Timberline Group for creating these.

Only 26 days left until the AppFuse 2.0 Release Party! Location TBD. :-D

Posted in Java at Jan 06 2007, 01:18:38 AM MST 3 Comments

2006 - A Year in Review

Looking back at 2006, it's amazing to see everything that happened. One of the main reasons I started this blog was to provide a history of my life. Now it's time to cash in on that cool feature and look back at the last 12 months.

Beach by Villas Nizuc In early January, I finished working on the Vongo project. I eventually had to shut off comments for my post on Vongo because there were so many complaints. The good news is I didn't work on the UI or service part of it, just the Spring/Hibernate/XFire backend. A week later, Apple announced the MacBook Pro and I purchased one immediately. I still have the same machine and couldn't be happier. A week after that, I quietly released AppFuse 1.9, went to the Broncos vs. Patriots game, then left the next morning for Cancun to celebrate my dad's 60th. I got to watch the Broncos season end after returning from Cancun. January 2006 is one for the books - I scored good tickets to two playoff games and spent a week in Cancun! I'd relive that month without hesitation.

The Ride to Work In February, I began playing with Maven 2 , figured out how to use Tiles with WebWork and did a fundraiser for the CSS Framework design contest. I even posted some pictures of my ride to work. Prior to freezing my ass off, Jack had a rough week with Rotavirus and ended up in the Emergency Room.

At the end of February, I received my MacBook Pro and fell in love with everything but the wireless. My posts on the MacBook Pro and wireless issues still get comments weekly from other folks having similar problems.

On February 22nd, Daniel Steinberg's daughter Elena died of bacterial meningitis. Julie made me stop reading Daniel's Dear Elena blog because I was such an emotional wreck. I saw Daniel at a couple of conferences this year, but didn't talk to him until The Spring Experience in December. I didn't know what to say to him. He erased all my apprehensions with a simple "Thanks", a smile and a handshake. It's good to see you're still writing about Elena Daniel. I still have a hard time reading your posts.

February ended with a beautiful 72°F day.

In March, I started the CSS Framework design contest, rode to work in the rain and flew to Boston and Vegas. Memories of St. Patrick's Day in Boston with friends still brings a smile to my face. TheServerSide show in Vegas was a lot of fun and it was the first BOF I hosted with free beer. I later got to meet Mike Stenhouse (the inventor of The CSS Framework) in December and hosted two more "BOFs with Beer" at the Colorado Software Summit and The Spring Experience. Cost difference? Vegas: $800, Keystone: $350, Hollywood, FL: $220.

At the end of March, I came down with a nasty case of Carpal Tunnel. After seeing a specialist that massaged the hell out of my arm, everything was back to normal. I haven't had any issues since - but I also haven't had many multiple-no-sleep-night coding sprints in a while either.

Off to The Shop In April, I quit working on AppFuse and moved to Rails. I posted my Tips for Productivity and Happiness at Work (my most popular blog entry of all time), shipped my bus off to the shop and celebrated Julie and I's 6th anniversary. Then I rebooted this site and lived it up in New York City.

May brought CSS Design Contest winners and a 2-week trip to San Francisco for The Ajax Experience and JavaOne. The highlight of that trip was the weekend I spent in Wine Country.

Hans Fahden

In June, AppFuse 1.9.2 and Seam 1.0 were unleashed. Tim O'Brien had an interesting post titled What Web Application framework should you use?. I responded and Struts became a more focused project. Shale moved to a TLP shortly after. We started planning Raible Road Trip #10 and I began traveling to Washington, DC for a project. Going for beers at Brickskeller was the highlight of our trip that week.

July introduced me to cancelled flights and redeyes and Jason Carreira started JSR 303. AppFuse 1.9.3 was released and Julie sold her house to the first people that looked at it. At the end of the month, Jim Goodwill and I drove to OSCON in Portland. Having beers with Bryan and Scott at The Kennedy School was a highlight of that trip. Following OSCON, the family and I headed to Montana for a week.

The Cabin August was great, probably because I'd just hit 7 states in 7 days. I published an article on IBM developerWorks and had a device-free weekend (which I definitely need to do more often). I began working on AppFuse 2.0, a new sushi restaurant moved into our neighborhood and I got a new EVDO card (which I later lost in November). Jack turned 2 on August 28th.

In September, we got a new puppy. I traveled to the drunkest city in America, Las Vegas and New England. Julie met me in Boston and we had a blast at our good friends' (Chris and Julie's) wedding.

Abbie and Jack October brought the release of Spring 2.0 and a 2-week project for me at OpenLogic. Abbie and Jack got their pictures taken at school and I spent at week in Keystone at The Colorado Software Summit.

In November, my sister Kalin brought some hard cider to Abbie's 4th birthday. I attended Denver's NoFluff and hugged my kids. Jack and I had a boys weekend and we headed to The Cabin on Raible Road Trip #11.

Helmets on and ready to go To end the year, I did a bit more travel - first to Boise then to Florida for The Spring Experience. After a week of vacation in Florida, we returned to Denver for The Blizzard of 2006. Finally, we drove up to Steamboat for Christmas and took the kids skiing.

All in all, it's been a fabulous year. Watching the kids grow up, start to play together and even have conversations with each other has been very cool. I traveled more than I wanted to, but I also got to visit a lot of cities that I'd never been to. My goals for the year? To be happy, ski more and enjoy a few car bombs with family and friends. ;-)

Posted in Roller at Dec 31 2006, 03:05:56 PM MST 1 Comment

Bamboo

After reading Tim's post about Bamboo yesterday, I downloaded and tried it out. I'm very impressed, as I usually am with Atlassian products. As a first impression, I think it's better than all the open source products, but not quite as good as Pulse. Bamboo has a nice UI, but Pulse has a lot more Ajax goodies that make it more usable (IMHO of course).

P.S. I think it's ironic that both Pulse and Bamboo build AppFuse 2.0 (Maven 2-based) just fine, but Continuum hasn't had a successful build yet.

Posted in Java at Dec 19 2006, 05:45:24 PM MST 4 Comments

SiteMesh 2.3?

Did you know the SiteMesh folks released version 2.3 back in October? Here's proof. Unfortunately, there's no release notes and the release hasn't been uploaded to Maven's repository. There are release notes in JIRA, but not all of them seemed to be fixed. What's up with that? Did you guys forget how to manage a project? ;-)

Posted in Java at Dec 18 2006, 11:53:32 AM MST 7 Comments

[TSE] Hop into Real Object Oriented (ROO) with Ben Alex

This session's goals are to:

  • To detail the "ROO" DDD architecture
  • To show you how productive ROO can be
  • To profile an Australian project using ROO

ROO is more of an implementation than an architecture. So what is ROO? It's not an Australian marsupial or an Australian airline. It's a Domain-Driven Design (DDD) implementation.

Real Object Oriented (ROO) is both an architectural approach and a framework with code generation.[Read More]

Posted in Java at Dec 10 2006, 10:32:04 AM MST 19 Comments

[TSE] Spring-OSGI with Adrian Colyer

One of the first questions people ask about OSGi is "what the heck is it?"

Most people don't even know what it is. OSGi stands for Open Services Gateway initiative. From the very beginning, it was designed to be lightweight and dynamic. This is the major difference between it and other containers. It's always been designed to have things added and removed. Now it's tagline is: "The Dynamic Module System for Java".

It's designed to allow you to partition a system into a number of modules (a.k.a. bundles). There's strict visibility rules (similar to protected and private). There's a resolution process (dependencies are satisfied) and it understands versioning.

It's dynamic! Modules can be installed, started, stopped, uninstalled and updated - all at runtime.[Read More]

Posted in Java at Dec 09 2006, 02:29:58 PM MST 6 Comments

Selenium Plugin for Maven

On the Maven users mailing list, Mick Knutson recently posted a question asking if there's a Maven 2 plugin for Selenium. Since we're hoping to move from Canoo WebTest to Selenium for AppFuse, this piqued my interest. It looks like the Geronimo guys have created a plugin and they run their Selenium tests from TestNG. While another user agrees, Wendy Smoak recommends following what Shale does.

While these solutions sound doable, David Santiago Turiño seems to suggest the best solution: Mavenium. The main limitation of Mavenium seems to be it only supports HTML-based tests. Since I expect most AppFuse users to generate their tests using the Selenium IDE, I doubt this will be an issue.

Is anyone using this plugin? If so, do you think it's the best way to integrate Selenium into AppFuse? We'd like to implement the most popular and easiest to use mechanism.

Posted in Java at Dec 08 2006, 05:04:55 PM MST 6 Comments

[TSE] Rapid Web Application Development with Rob Harrop

There's a couple of other sessions I should probably go to, namely Juergen's talk on Transactions and Mark Fisher's Message Driven POJOs Rock! However, transactions is generally a pretty boring topic and I don't see myself developing any MDPs in the next two weeks. If you don't use your knowledge in two weeks, you generally lose it, so I'll wait to learn more about MDPs until someone pays me to. I know a fair bit already, so I don't know that there's a whole lot more to learn.

I'm attending Rob Harrop's Rapid Web Application Development Essentials talk. With any luck, I'll learn some new tips that we can use in AppFuse.[Read More]

Posted in Java at Dec 08 2006, 11:42:37 AM MST 7 Comments

How can Nabble be improved?

I recently received the following e-mail from the founders of Nabble:

You are the first person (literally) to recognize the value of Nabble. So far, Nabble has been well received. But it needs more users. There are a lot of open source projects archived on Nabble, but how do we go about letting people know about us? We would like project owners to link to us and skin us like you did with appfuse, but I am not sure how to do it. You know many people in the open source world, so we would really like to hear your thoughts and advice.

For example, should I go and announce Nabble on a project list? If so, should I do it on the dev list or user list? Is this considered OK or spam? Or should I contact the mailing list owner by private email? What nabble feature do you consider most useful to the project owners?

My response to the first paragraph:

I would suggest e-mailing project owners and pointing out projects like AppFuse and Maven that've taken the time to "skin" their forums. I'm guessing you could get some real good traction at Apache because they like to keep everything on mailing lists. People like your forums because they can post (and subscribe to) a single message. AFAIK, you can't do this with any other mailing list archive. Maybe you could write an article for TSS or InfoQ that tells all the features and highlights projects that are using it.

As far as announcing Nabble on a project list, I said:

I would do it on the dev list, but sending private e-mail is probably OK as well. I don't think it will be perceived as spam. Sending it to the dev list might skip a step for the project founder. You could also offer to "skin" forums for folks - so it looks like their project sites. I think the most useful feature for end-users is search and easy browsing. It's *much* better than the archiving/browsing tool that Apache uses.

One thing that might attract for folks is vanity URLs. I don't know if it's possible, but something as simple as appfuse.nabble.com might be attractive to some people, or having some sort of path-based URL, for example archive.nabble.com/java/java.net/appfuse. That way it'd be easier for folks to "guess" the URLs of mailing list archives.

What's your advice? What should Nabble do to get more users? Maybe if folks new about Nabble's RSS feeds, they'd use it more. I'm currently subscribed to Maven, Wicket, Shale and Stripes, just to name a few.

Posted in Java at Nov 18 2006, 12:10:52 AM MST 11 Comments

Learn about Geronimo tonight and AppFuse on Thursday

If you happen to be in downtown Denver tonight, and you're interested in Geronimo, you may want to stop by the Rock Bottom Brewery for the Geronimo Special Interest Group. IBM is sponsoring the food and beverages and Bill Dudney will be providing the conversation. I highly recommend attending if you can as there will be a plethora of good beverages for all. I won't be missing it.

Also, for those interested in learning more about AppFuse, I'll be speaking at the Denver JBoss User Group on Thursday night. There's a lot of cool stuff happening in AppFuse's SVN right now. This is, in large part, caused by a number of new committers: Mike Horwitz, Bryan Noll and David Whitehurst.

Mike has done a lot of work to allow Maven to recognize a WAR's dependencies. Furthermore, he's in the process of trying to get this functionality added to the maven-war-plugin. Bryan Noll (a.k.a. "Country Bri") has recently converted the data module to have a Generics-based generic DAO implementation for Hibernate and iBATIS. Bryan has recently become an OpenJPA committer as well - so feel free to start harassing him about doing the JPA implementation for AppFuse. Finally, David has been working feverishly on the AppFuse Maven Plugin that replaces AppGen. Welcome aboard gents and thanks for all your contributions so far!

Posted in Java at Nov 14 2006, 02:43:08 PM MST 2 Comments