Matt RaibleMatt Raible is a Java Champion and Developer Advocate at Okta. developer.okta.com

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.

JavaOne 2006 Begins

After 3 hours of sleep, I'm up bright and early - attending the JavaOne Keynote. They're still shuffling people in, and have this awesome reggae-type band jamming. They're really good - I hope they're here later this week. The wireless sucks (as usual), so I'm using bluetooth to connect. Watch this post, I'll update it as the good announcements come.

We're starting off with a 10 minute overview of the Schedule Builder and how to use it. For those sessions that are full, apparently they'll schedule a 2nd showing. Most most sessions, there's already available online in PDF. After the show, most sessions should be available online in video form. Everyone should act like a Brazilian at this conference - meet people you don't know and learn as much as you can.

Jonathan Schwartz is on stage, dressed in a suite, talking about how they're offering a now offering a "Free Kit" on their website. Apparently, you can now get their Niagra servers for free. Sounds wierd, who knows if it's true. This JavaOne is the largest JavaOne ever, as apparent from this exhibition hall. "The Java community has never been more vibrant." The JCP has 1052 members. Of these, Jonathan says there aren't enough individuals on this committee. Everyone should go out and join. The community defines the future of Java.

Now there's a guy from Motorola on stage. He's the guy who originally introduced Java at this conference 11 years ago. The next few years will be just as crazy as the last 10 years for Java - only it will happen on a high-speed mobile network. In the mobile space, their are a lot of proprietary things going on. By encouraging and using Java, applications can be developed and deployed easily across many mobile devices. Motorola is selling 200 million phones this year. They've shipped 90 million in the last 6 months. Java needs to stay unified so write-once, run anywhere works on all devices. Motorola is publishing many open source projects for Java and Linux on http://opensource.motorola.com. To summarize, Motorola alone out-ships the PC industry.

Mark Shuttleworth from Canonical, Inc. is now on stage. Mark is deeply involved in the Ubuntu community. As of today, Java will be directly available to Ubuntu, Gentoo, Debian, etc. Apparently, this is because Sun has made some changes that allow it to be distributed with Linux. They're talking about Linux on Niagara - it sounds like there might be some announcements around this during the week. There's still no announcements about open-sourcing Java or re-licensing.

Mark Fluery has now been invited up on stage. He's got a red beret on. The Red Hat deal closes on May 31st. JBoss is joining the NetBeans community. Mark seems to think the next big thing in Java is Tools. Seems like a publicity stunt since they're talking about Netbeans. It will be interesting to see if JBoss becomes heavily involved in IDE development. Expect more innovation. You should expect more from the future, from the companies that provide Java, and from the community that uses it. Jonathan's first act of congress in his new post was to ask someone to return to Sun. Rich Green is the Executive VP of Software for Sun. He's been back at Sun for a week and a half, and he's been in meetings the entire time.

"Are you going to open source Java?", asks Jonathan.

"It's not a question of whether, it's a question of how." replies Rich.

So there you have it. They're going to open source Java, it's simply a matter of getting through all the politics and compatibility-issues to make it happen. Rich is now on stage by himself, encouraging the audience to get more involved in Java. Java EE 5 was recently approved. Now they've invited the Java EE Expert Group on stage. Everyone has a company sign to show. My name is on the slide, but it doesn't look like individuals were invited. Oh well, it's not like I contributed anything.

Jeff Jackson, Senior VP of Java Enterprise Platforms and Developer Products is now on stage. Java EE 5 is the big thing at the conference this year, and has all the right stuff: Ease of Development, simplified programming model with annotations, EJB 3.0 support for POJOs, new Java Persistence API, Web 2.0 Support, .NET Interoperability, Simplified SOA. NetBeans 5.5 supports Java EE today, so Jeff recommends you download it today.

Jeet Kaul is now on stage and he's going to do a demo of developing an application with Java EE 5 and NetBeans. He's using a nightly build from May 10th. I'm not sure if it's a nightly build of NetBeans or Glassfish that he's using. The demo he showed is pretty cheesy. He added an "author" column to a table, added a property to an Entity bean and then added an input field to the UI. This was followed with a web services demo and an Ajax demo. The Ajax demo was kinda cool - NetBeans allows you to drag and drop JSF components into a page. It drops in code rather than using a WYSIWYG view. I'm not sure if a WYSIWYG view is an option, as they didn't demo or mention anything.

Today Sun is donating their Java Message System (JMS) and NetBeans Enterprise Pack (UML, collaboration, etc.) to the open source community.

Craig McClanahan is on stage, He's got a slide with Duke holding a beer stein. The beer stein, and the Sierra Nevada that Craig pulled out are to represent the real reason we're here: The Beer. Craig is doing a demo with Java Studio Creator and creating a Pub Locator application that utilizes built-in GoogleMaps components. Craig deployed and showed a demo locating all the pubs near Moscone center. Then he turned "boss mode" on and clicked on a link to the Thirsty Bear. This took him to the new Java Ajax portal at developers.sun.com/ajax. Craig's demo was followed with a demo of the new Pet Store - with Ajax/Dojo enhancements.

Sun will be donating Java Studio Creator to open source (at netbeans.org) in the near future. In case you're not aware, Sun has recently released a number of other products on netbeans.org: NetBeans Profiler, NetBeans Mobility Pack, NetBeans Matisse.

Now there's a guy from Microsoft on stage talking about .NET and Java EE 5 interoperability. There's a "Tango" project that has a runtime that provides the interoperability between platforms. Now they're doing a demo with NetBeans 5.5 and its BPEL engine; all running on Open ESB. They demonstrating using WFC and Vista on the Windows side to connect to a web service on the GlassFish side. The Tango project has been renamed to Web Services Intererability Technology (WSIT) and is available on java.net at http://wsit.dev.java.net.

There's some new guys on stage now and they're talking about "Simplified SOA" with NetBeans Enterprise Pack using BPEL. While the BPEL tools in NetBeans look cool, they're definitely starting to lose the audience; people have started streaming out of the auditorium. More open source contributions: BPEL Engine into Open ESB and Sun Java System Portal Server.

Big Announcement: all of the technologies mentioned today will be under the umbrella of the OpenJava EE project.

Richard Blair (Swing Engineer from Sun) and Romain Guy have come on stage to demonstrate a Java SE Swing Web 2.0 Mashup. The demo uses Mustang and starts with showing a Swing client that connects to Flickr and allows you to browse photos. The slideshow feature is very cool and allows you to do 3d rendering and angling of images. It's one of the slickest-looking desktop apps I've ever seen. After showing the photo feature, they're showing how you can integrate this will a Google Map-looking service to show pictures on a map. All of the components in this demonstration are open source or simply customized Swing components. They ended the demo with showing a preview feature. The preview creates an applet that runs in a web browser (even when you're disconnected) and draws Roman's trip on a map, playing music and fading in pictures as the trip progresses. I was blown away at this point and would love to get my hands on this application. Hopefully it will be made available online, or maybe as a Flash movie?

There you have it folks. Sun is going to open source Java, just like I predicted a couple of weeks ago. It's not a matter of when, it's a matter of how. ;-)

Posted in JavaOne at May 16 2006, 09:40:33 AM MDT 5 Comments

[JavaOne] Web Frameworks and Birthday Celebrations

Yesterday was a fun afternoon. James Goodwill and I sat in the same room for 3 hours and watched 3 different presentations: Tapestry in Action, JSF and Spring and the Web Framework Smackdown. The Web Framework Smackdown was particularly enjoyable. It was great to see all the framework guys "duke it out" and there were plenty below the belt comments. After that, we hit a bunch of the Birthday Celebration festivities, including Free Booze, an Art Auction and Dennis Miller. Unfortunately, we missed Zepperella - an all-female Led Zeppelin cover band.

Following JavaOne festivities, we met up with the Geronimo guys - only to discover they had just passed the TCK for J2EE 1.4. This resulted in many hours of celebrating and good times. As usual, I took plenty of pictures.

James and Floyd

Today I slept in because I know I won't get any sleep when I get home (parents with small children hardly ever get to sleep much). I attended the Web Tier Expert Group meeting this afternoon, which was really great. We had folks from JSF, JSP and the Servlet teams, all trying to figure out what's next and what we need to do to make web development in Java easier. There were a lot of great ideas, and the next versions of all 3 specs should really improve things.

Posted in JavaOne at Jun 30 2005, 07:44:37 PM MDT Add a Comment

[JavaOne] Tapestry in Action

Last night was much milder than the previous night, and I actually feel pretty good today. I'm sitting in Howard's Tapestry in Action session, having just missed the session on Shale. This is a introduction to Tapestry, but it seemed like the most interesting session for this time slot.

Yesterday was a long day, mainly because of the Bomb Squad festivities from Monday. I did a book signing and actually managed to sign a few books. Spring Live is now #11 on the best sellers list at JavaOne.

Last night was a good time. We hit the Mergere party and learned a bit about Maven 2. It was cool to learn that Ant 1.7 is going to include Maven 2's dependency resolution. From there, we tried to go to a session on APT, but the room was packed and lacked A/C, so we bailed. From there, a whole slew of us (from Virtuas) went to a Southeast Asian restaurant that served excellent food, family-style, for hours on end. We hit the Tangosol+Solarmetric party after that and closed down the place. Click on the image below to see a bunch of pictures from the event.

JavaOne 2005 - Tuesday

Tonight, there's a big party at Moscone - complete with comedian Dennis Miller.

Posted in JavaOne at Jun 29 2005, 02:30:58 PM MDT 2 Comments

[JavaOne] Pictures from Monday

Click on the image below to see a bunch of pictures from the first day at JavaOne.

Posted in JavaOne at Jun 28 2005, 07:32:16 PM MDT 5 Comments

[JavaOne] Experiences with the 1.5 Language Features

This is the last session I plan on attending today, and it's titled "Experiences with the 1.5 Language Features: Tips and Techniques" by Tim Hanson and Jess Garms of BEA. Tonight looks to be a good time with the JBoss Party, Java Blogger Meetup (@ Thirsty Bear), the Pavilion Party. Times for the events are 5-9, 6-8 and 6:30-8. This conference is definitely packed, and I expect the parties to be the same. In other words, the best part of this shindig is yet to begin. ;-)

This talk is about how to make effective use of the new 1.5 Language Features in your applications.

For Each Loop: Initialization expression is evaluated once (unlike former). Major limitation of using the new for each loop is you don't have access to the index or the iterator.

Annotations: Built-in annotations - i.e. @SuppressWarnings("deprecation"). Possible values: all, deprecation, unchecked, fallthrough, path, serial, finally. This annotation is not supported in the latest version of Java 5, it is supported in Mustang and Eclipse 3.1. @Deprecated is another built-in annotations. If you use this tag, you should use the @deprecated javadoc tag as well. Last one is @Override, which is used to indicate that a method declaration is intended to override a method declaration in a superclass. If the superclass signature changes, this annotation will make sure you change it in child classes.

Annotations are especially useful for frameworks (i.e. EJBs, Web Services, etc.). Not a preprocessor, not a silver bullet.

Enums: Better than static final int. Type-safe. Utility classes: java.util.EnumMap and EnumSet. Public static final int-like behavior: Comparable, statically importable (even as an inner class).

Varargs: Special syntax for cleaning up code. Allows you to use "String... args" instead of a whole slew of methods that take multiple arguments. Use them sparingly - avoid code that casts.

Covariant Returns: Replaces three anti-patterns.

Using Generics: Example from Collections - static List Collections.singletonList(T o). There is a two-pass inferencing process to determine what T is. Other Generified classes: Class (public T newInstance()), Comparable (public int compareTo(T o)), Enum> (public Class getDeclaringClass()). You can also use wildcards with generics, which has a syntax of List instead of List. This allows you to specify subtypes, and not be tied to a strictly typed solution. Wildcards are great to use in APIs and to hide implementations from users.

I give up - this guy has been going on about Generics for far too long. Time to go hunt down some parties.

Posted in JavaOne at Jun 27 2005, 06:20:51 PM MDT 1 Comment

[JavaOne] Programming Puzzlers with the Google Guys

I'm sitting in a session titled "Yet More Programming Puzzlers" by Joshua Block and Neal Gafter. The other two sessions I chose for this time slot were Groovy and EJB 3. The main reason I chose this session is I've seen these guys in action before and they're excellent speakers. As part of this conference, I'd like to learn a bit about technology - but I'm more interested in becoming a better speaker. This is only my second of the day, with the first being the general session this morning. The afternoon has been spent networking, doing some Virtuas booth time, and presentation a short talk on AppFuse on the java.net booth.

In other news, it's pretty cool to see that BEA is going to start supporting Spring and Struts in its tools and servers.

The BEA WebLogic Workshop and other tools will be designed to allow applications to be built or blended from leading open source frameworks, including Apache Beehive, the Spring Framework and Apache Struts, and can then be deployed on BEA WebLogic Server. BEA will also certify the BEA WebLogic Workshop tools for Apache Geronimo and Apache Tomcat.

The Google Guys session? Entertaining and packed. All chairs were filled and many people were standing in the back and on the sides.

Posted in JavaOne at Jun 27 2005, 04:19:38 PM MDT 1 Comment

Made it to JavaOne

I arrived in San Francisco at 8:30 this morning, and headed downtown to the Moscone center. I've been sitting in the "General Session" room for the last couple of hours, and there's been some interesting announcements. You can get a Sun Ultra 20 Workstation for $30/month and it comes with a 90-day money-back guarantee. The guy on stage made it sound like a screaming machine, but it was also a Sun sales pitch.

Another announcement is they're dropping the "2" from J2EE and J2SE. Now we're not supposed to say the "J", but rather "Java". Now it's called "Java EE". I think the 2 needed to be dropped, but I think it'll take a while before Java EE has the same ring as J2EE. I can already see folks calling it "Java, eh".

Posted in JavaOne at Jun 27 2005, 12:02:17 PM MDT 4 Comments

Pictures from the debauchery at JavaOne

Java, Booze and Porn - what more can you ask for? I met a whole lotta folks this week - and had an awesome time. I highly recommend the networking track at JavaOne.

[Monday · Tuesday · Wednesday]
JavaOne 2004

Posted in JavaOne at Jul 01 2004, 04:39:12 PM MDT 1 Comment

Escaping from the Chozgobbling Asshats

Bruce and I managed to ditch all the "chozgobbling asshats" in downtown San Fran at about 3:30 this morning. We packed and caught the hotel's limo to SFO - then proceeded to act drunk and stupid. So stupid in fact that we had to go through security twice. We arrived here at 4:15 and I finally got to my gate at 5:20. Too bad my flight doesn't leave until 8.

To all the asshats: are you man enough to do it again at OSCON?

It was a fun week gents - thanks for all the pics. ;-)

Posted in JavaOne at Jul 01 2004, 06:20:51 AM MDT 1 Comment

[JavaOne] Developing Eclipse Plugins

I briefly broke my mantra this afternoon and went to a session on Java Studio Creator. I lasted just past the agenda before I walked out. It looked to be a justification talk - telling us that Creator was made for corporate dummies that don't write code for a living. I skipped across the hall to a session on developing plugins for Eclipse. It was quite interesting and really made it look easy to develop plugins. I almost fell asleep quite a few times, but that's probably from the booze still peculating in my veins.

The best thing I got from the talk was tips and tricks for developing with Eclipse. I watched Eric Gamma do a lot of shortcuts to and quick fixes that I didn't know about. I probably won't remember them past today, but they were cool nevertheless. Now I'm off to the hotel to charge my camera and get ready to pull an all-nighter before our early-morning departure.

Posted in JavaOne at Jun 30 2004, 06:17:01 PM MDT Add a Comment