This is the first JavaOne since Oracle bought Sun. It was moved from June to September to coincide with Oracle's existing OpenWorld and Oracle Develop conferences, but managed to keep its identity by being held at a separate venue. It was clear that the conference organizers tried very hard to please us, and I think they did an excellent job. The conference hotels were all together on a block, upscale, clean, and were well run. It was a bit disorienting at first but I eventually figured it out.
New to JavaOne was the Oracle Customer Appreciation Event on Treasure Island. It's hard to find words to describe it other than WOW. They bused tens of thousands of people from their hotels, over the Bay Bridge, onto Treasure Island, and then back again. Police had to control traffic the whole way. The event was a carnival with rides and two simultaneous concerts. Unlimited free food, beer, wine, soda/pop, water, etc. On stage #1 (outdoors) there was Berlin, The Black Eyed Peas, and the Steve Miller Band. On stage #2 (indoors) there was The English Beat, Don Henley, and Montgomery Gentry.
While I was waiting in line at the Hilton to catch the bus to the event I made friends with the guys in front of me. AJ and Levon are from a new startup called postup.com. Many years ago, the founder of the company (someone else) invented a technique for online advertising which he sold to another company, who sold it to Yahoo, then was "blatantly copied" by Google (Ad Words). AJ and Levon have previously worked at Yahoo, and AJ worked at Microsoft too. We hung out for the whole night since we didn't really know anyone else. At one point I saw someone I met on Sunday night, and he seemed to be alone. It was Jaroslav Tulach, the original creator of the NetBeans IDE and author of Practical API Design. He was happy to see a familiar face and joined us for the rest of the night. We had some really geeky conversations about modularity and the JDK while The Steve Miller Band was setting up stage. It was really fun being able to meet any random person and start talking about programming; even at a Black Eyed Peas concert.
Speaking of free beer, this year I made a point of finding the conference parties and attending them. The first one was the GlassFish Party at The Thirsty Bear. It seemed like hundreds of people filled two floors, and the beer was free. There was a real who's who of the Java and GlassFish communities at this party. People such as Eduardo Pelegri-Llopart, Alexis Moussine-Pouchkine, John Clingon, Arun Gupta, Roberto Chinnici, Anil Gaur, etc. I finally met fellow members of the NetBeans Dream Team such as Geertjan Wielenga, Adam Bien, Sven Reimers, Tonni Epple, etc. as well as some superstars such as James Gosling (father of Java) and Jaroslav Tulach (original creator of NetBeans IDE.)
Surprisingly it was us NetBeans guys who left the bar last. We ended up at a small bar up the street. What do geeks do in a bar? Whip out laptops and show cool demos of NetBeans, of course.
Hours before the GlassFish party there was a 2.5 hour GlassFish Community Event. To my surprise, my name was listed on one of the Power Point slides as an important member of the community, and the speaker (Alexis) recognized me in the audience and pointed me out. After the talk I met many people on the GlassFish team. They all knew who I am and were happy to finally meet me. They say I ask a lot of good questions on the forums and create good bug reports. I also wrote the tool everyone uses to set up a Windows service for GlassFish V2, and several tutorials related to web services that still generate most of the traffic to my blog. I think we were one of the very first paying customers of GlassFish V2 in September 2007. Eduardo thanked me for my contributions and gave me one of ten printed 5th anniversary posters that has the usernames of all bug reporters in the issue tracker.
I attended the JSF 2.0 Community Discussion led by Ed Burns who is the JSF 2.0 specification lead. It was one of the last sessions of the night so there weren't a lot of people attending, but I would guess around 20. I was surprised to find that I was the only person who had things to discuss other than Kito Mann (jsfcentral.com, book author). The speaker had us write discussion points on large sheets of paper on the wall. Things I remember writing down were:
- branded screens/skinning in a multi-tenant environment
- having to write my own radio button component because the built-in one renders them in a table
- sandboxing the EL context of templates for including user submitted templates in screens and emails
- multi field validation
I have come up with solutions to all of these problems because I needed to solve them in my projects at work. The speaker asked me to come up to the microphone to discuss some of my bullet points. We mainly discussed multi component validation, but he also mentioned that the sandboxed EL context is a really good idea. Earlier I discussed some of these ideas with him in emails, and he said that he really liked my solution for sandboxing the EL context of templates. After the session I sat down with him for fifteen minutes to chat about the other items in more detail. When I told him my name he recognized it right away and was happy to finally meet me. We discussed the challenges I have with JSF's radio button component and why I think it is important to fix it in the spec. He seemed genuinely interested in my issue and apologized that my 2008 ticket had not been addressed yet. I showed him how IceFaces built a solution that fits in nicely with the existing component and suggested that he standardize that. He said if I can help by implementing it myself in the Mojarra reference implementation, then he can help with the spec documentation and we can get it into JSF 2.2 (because JSF 2.1 is now feature complete.) I don't need to implement the change for JSPs, but would. I think I will do this work and am excited about contributing to the spec. I have a number of other small spec changes that I think would make a big improvement for developers.
Ed encouraged me to come to his session on composite components, so I updated my agenda and attended. He is a very good speaker and gave exactly the kind of technical session that I expect at JavaOne. His presentation was in the code editor, not Power Point. After the session I asked him to sign a couple of his books that I own. His publisher was there and took some pictures us:
Another really good session was Reza Rahman and Debu Panda's presentation on Java Enterprise Edition 6 Testing. I know Reza from online so it was great getting to meet him in person and attending one of his presentations. He is an excellent speaker. He invited me to the Caucho Resin party at a restaurant later that night, so I came. There was a good size crowd of people, mostly ones who visited the Caucho booth in the exhibitors hall. I met many people from Caucho and they were all very friendly. There was free beer and food (lots of food), so thank you! Reza had to leave early because he had another presentation, and I left shortly after to attend sessions as well. What I find particularly interesting about Caucho is that their embedded container can be used for automated testing and it run instantly, whereas the GlassFish embedded container seemed slow (10 - 20 seconds to run a Hello World test.) From speaking with Reza, I also know that they have some great ideas on how to further improve EJB 3.1 and CDI in Java EE 7, and have implemented these changes in Resin so you can try them today. For example, you should be able to add security or transactions to a CDI managed bean without having to turn it into an full EJB. In Resin, some or all of the EJB annotations can be used on CDI managed beans. Unfortunately I didn't get a picture with Reza.