My ramblings on Java EE, Java SE and the crazy World of technology in general.
Oracle, GlassFish and the Nature of Open Source
One of the not so small things I've come to appreciate about Oracle as an employee is it's stability. Unlike many other companies I've seen in my fairly non-trivial career, pretty much no one is worried about their next paycheck. This is no accident. It is a direct result of Oracle leadership's focus on maintaining a strong, profitable, resilient business. This fact is probably the clearest in the minds of my colleagues that lived through the mess that was Sun.
While a large part of the reason I joined Oracle was GlassFish (and Java EE), I realize GlassFish is subject to that same focus that helps pay my bills and put food on the table. Open Source or not, GlassFish commercial was discontinued in favor of WebLogic for good, sound reasons by rational, informed people. Get over it (and maybe your self-entitled self).
It's also been made amply clear GlassFish open source is still critical to Oracle also for good, sound reasons. Open Source is the best way of producing a high quality reference implementation that makes Java EE real for most developers as quickly as possible. Open Source is also the best way to encourage rapid innovation through community contribution and collaboration - some of which is hopefully good enough to make it into the standard and WebLogic. I also know that I personally would have been less than enthused as an independent to spend my own time writing or talking about something that is directly tied to the commercial success of any company. I would feel much more comfortable with a vendor agnostic standard and a piece of software who's primary goal is to teach and advance such a standard.
To those that don't care about any of the above - here's what's in it for you: you now have the opportunity to prove Oracle wrong if you really think you have what it takes. Nothing is stopping you from building a business around the GlassFish open source code base - you can even take advantage of the work Oracle employees are still going to put into it. That's what open source today is really about, not charity.
No one at Oracle prompted me to write this and it's written on my own personal time. I am writing it because I believe it needed to be written and I see it as the truth.
All views voiced are my own, not necessarily Oracle's.
JBoss AS Now WildFly
Since it first started as a small grassroots open source project in the late nineties, JBoss AS has come a long way. It is now one of the foremost open source Java EE application servers, if not one of the leading application servers outright. JBoss AS has always been vital to fulfilling the Java EE promise of choice, vendor neutrality and portability alongside the likes of Java steward Oracle's own GlassFish and WebLogic. Throughout the years, the JBoss community has had strong contributions to Java EE itself, including to the EJB 3, JPA, CDI, Bean Validation, JAX-RS and JSF specifications.
Now JBoss AS is being renamed to WildFly. The renaming is essentially an effort to distinguish the open source, community version of JBoss AS from JBoss EAP (JBoss Enterprise Application Platform/JBoss Enterprise Middleware), the commercial offering from Red Hat.
The renamed application server already has its' own launch page
. The project retains the JBoss AS focus on Java EE (WildFly 8 is aimed at Java EE 7), lightweight development, innovation and community. We can all wish WildFly all the best and hope it continues to be a driving force behind the Java EE community.
All views voiced are my own, not necessarily Oracle's.
Reflections on the Boston Bombings
I feel profoundly sad for the victims of the Boston bombings. As always, I really wonder what people like the bombers had hoped to accomplish. If there was indeed a legitimate cause that motivated them, they have simply managed to undermine it by tarnishing it with the blood of the innocent - perhaps forever.
On their path of senseless destruction they also deeply embarrass and endanger billions of people that have nothing to do with this if it was done in the name of Islam - perhaps even someone like me who is a Secular Humanist with an Islamic heritage...
I urge everyone that I can not to revert to their baser instincts and return hate with hate. The difficult road to lasting peace starts with the sublime human capacity to empathize and to see the world through eyes not necessarily your own. I also urge anyone with an Islamic heritage to speak up against this horror, whatever your religious stripes. It is our obligation as a civilized people to try to make right what has gone terribly wrong, whatever our grievances.
JavaOne 2012/Joining Oracle
I had two sessions at JavaOne this year. One was a solo talk on the CDI ecosystem. It was well-attended and I got excellent feedback on it. The other was a joint talk with my fellow co-author Ryan Cuprak on Java EE tooling support. The talk went very well as well considering we had stiff competition from other very good Java EE talks.
JavaOne this year was different for me in a very significant way -- I did not present as an indepenent this year but as an Oracle employee! In fact, the first day of JavaOne was my first day as an Oracle employee. I was invited to join Oracle as Java EE/GlassFish evangelist alongside the likes of Arun Gupta (Arun introduced me to the community at the Sunday GlassFish community event).
The decision to join was by no means an easy one as I've always seen myself as an engineer and a consultant. And the truth is that some of the connotations of the evangelist title has always made me cringe a little even with shining examples like Apple's Steve Jobs/Guy Kawasaki, Googles' Vint Cerf and Microsoft's Vinod Kumar who bear little resemblance to either religious zealots or mercenary salesmen. I also cannot honestly say I have no reservations about Oracle as a company.
I took on the opportunity because I believe I can really make a difference for the community in this role and help advance Java as an insider in the truest sense. As Oracle seems to understand, as the new stewards of Java, Oracle needs more people from the community like me working inside their walls. As a very nice side effect, this also helps me reclaim some of my personal time by essentially turning what I had been doing for some years on my own time into my actual job...
In the spirit of merging ones hobby/adopted cause/personal time with one's profession, I likely won't be maintaining this blog going forward much. Instead, I'll be reaching out to the community via my official Oracle blog here as well as the the Aquarium blog.
All views voiced are my own, not necessarily Oracle's.
Arquillian Talk at the Atlanta JUG
On August 19th I spoke at the Atlanta JUG -- one of the biggest JUGs in the east coast and the sponsors of the popular DevNexus conference. I gave my Arquillian/Java EE 6 testing talk. The attendance was great as was the participation. I am hoping I'll get to come back to Altanta again for DevNexus. I've been to Atlanta before, but it always amazes me what a sprawling metropolis Atlanta is!
Arquillian Talk at Twin Cities JUG
I did a talk on Arquillian/Java EE 6 testing at the Twin Cities JUG on May 14th. The attendance was moderate but I had some pretty good discussions afterwards. This was my first JUG talk in the mid-West so it was interesting. While I was there, I got to check out the iconic Mall of America.
JCP Talk at Marylad JUG
On January 18th, I went back to speak at the Maryland JUG once again -- this time talking about the JCP. Even despite the fact that this wasn't a technical talk per se, the atttenance was great as was the participation. I really enjoy speaking at this JUG and the JUG leaders are doing a great job growing this JUG.
CDI Talk at Dallas JUG
On January 11, I spoke at the Dallas JUG -- I gave my CDI demo/tour. This was my first talk so far down South so it was exciting. The talk went great and the crowd was fantastic.
I got a chance to look around Dallas a bit. I never realized exactly how metropolitan this part of Texas has become! I look forward to speaking at the JUG again some time...
Seam 3 Talk at Maryland JUG
I did my CDI/Seam 3 talk at the Maryland JUG on 17th August, 2011. The JUG was great and it had excellent active participation. I hope to speak there again soon.
JavaOne 2011 Round-Up
JavaOne 2011 was very busy this year for me but also very fruitful. Although this year I did not get a chance to attend a single session other than my own (I spoke seven times in four days so it was very hard), I think the conference overall went well. It is still unfortunate that Oracle continues to ignore the obvious fact that JavaOne needs a much bigger venue and it needs to take place on a time separate from OracleWorld...
On Monday, I started with the panel on the JCP titled "JCP and the Developer Community". Considering that this was pretty much a non-technical topic, it was good to see that the attendance/participation was decent, although I had expected the discussion to be a bit more lively. Regardless, it seems that Oracle is taking JCP reforms very seriously and giving real funds to the JCP organization (which Sun did not or could not). In the afternoon, I attended the technical session that Marina Vatkina of Oracle was giving on the progress of EJB 3.2. Not surprisingly, it looked to be a very short talk because of the worrisome lack of progress in the EJB 3.2 EG. Somewhat disappointingly, the audience participation was not that good -- it seemed most of the attendees either did not have an opinion or did not voice them. I and JMS 2 spec lead Nigel Deakin of Oracle tried to liven things up a little but trying to directly engage the audience, with some success. That evening, we repeated some of the same discussions in the BOF titled "Meet the Experts: EJB 3.2 Expert Group". Given the lackluster technical talk, it was not entirely surprising that the BOF attendance was sparse. After the BOF I had a long conversation with David Blevins of Apache and Andrew Rubinger of JBoss/Red Hat about my concerns around EJB 3.2.
Tuesday morning I and Ryan worked together to put the finishing touches/rehearse our CDI talk. The speaker resources were paltry so we wound up going to the lounge of a nearby hotel to work. In the afternoon, Nigel, I and Clebert did the JMS 2 BOF titled "JSR 343: What's Coming in Java Message Service 2.0". Although this was technically a BOF, it was really more like a full conference session and we actually had a slide deck. They gave us a very big room and it was almost a full house. We didn't have much time left for Q & A, but we had a number of interesting follow-up discussions with attendees in the hallway after the talk. Tuesday evening I went to the JBoss party to talk about CDI 1.1, EJB 3.2 and Java EE 7 with Pete Muir, Dan Allen, Andrew Rubinger, et al. The discussion went well and it seems we are all on the same page.
Wednesday morning Nigel, Pete and I brainstormed about the dependency injection based changes in JMS 2. I did not expect to have all the outstanding issues resolved but I think we made good progress. At noon, I did the panel on Java EE 7 titled "The Road to Java EE 7: Is It All About the Cloud?". The panel was very well attended and the discussion was very good. I briefly chatted with Linda DeMicheal and Mike Keith of Oracle about Java EE 7 afterwards. In the afternoon, Ryan and I did the CDI talk titled "Patterns and Best Practices for CDI". Considering the fact that Ryan and I have never co-presented together before, the talk went very well. We had a full house and had a very good Q & A session. In the evening, Rohit Kelapure of IBM and I worked on our Spring/Java EE comparison talk. Since this talk was so last minute, we had to scramble to get the slide deck ready and wound up pulling an all-nighter. Rohit and I briefly showed up at the JCP hosted party (always rightfully rumored to be the "most lavish party at JavaOne").
On Thursday noon, I barely made it to the CDI panel titled "CDI Today and Tomorrow". The panel was very well attended and the discussion was very good. In the afternoon, Rohit and I had our talk titled "Java EE and Spring/MVC Shoot-out" (it was the last session of the conference). Despite the ordeal, doing the talk wound up being well worth it. It was an enthusiastic, overflow crowd. JMS 2 spec lead Ed Burns showed up as an attendee. The Q & A was great and a lot of people seemed to really appreciate the talk. It felt like one of the best talks I've done at JavaOne to date and a solid finish to an eventful week at JavaOne 2011.
A number of folks asked for the slides for the two tech talks, so the materials for the talks is posted here
Speaking at JavaOne 2011!
It's always exciting to get JavaOne notifications - after all it is still the premier global Java conference! I have five talks this year.
One is a technical session titled "Patterns and Best Practices for CDI" that I'm co-presenting with Ryan Cuprak. It's a brand new talk so I am very excited that it got accepted. Another is a panel I co-submitted with Arun Gupta titled "CDI Today and Tomorrow". Arun will be moderating the panel. I, Pete Muir, David Blevins and Sivakumar Thyagarajan will be panelists. I'll be doing a JMS 2 BOF with spec lead Nigel Deakin and fellow EG member Clebert Suconic. I am a panelist on a talk on the JCP titled "JCP and the Developer Community". The other folks on the panel are Martijn Verburg from the London Java Community and Heather VanCura from the JCP program. I'll also be part of a larger panel titled "Java EE 7 - is it all about the cloud?". My CDI landscape talk from TSSJS 2011 was accepted as an alternative :-(. I also might be part the EJB 3.2 and Java EE 7 BOFs.
I can't but feel a little bummed that my other "uber cool" talks like the Domain Driven Design with Java EE 6 (brand new), Java EE 6 Portability (brand new), Java EE 6 caching across enterprise application tiers (TSSJS 2011) talks did not get accepted. I was also keeping my fingers crossed hoping that my CanDI talk would be accepted (I did have a Resin 4 talk last year though). All in all, I guess I have little to complain about. I could always do those at another conference or good JUG...
If you are attending JavaOne 2011, please do consider attending one of my sessions. I would love to chat with you in person!
CDI Talks at Research Triangle Park and DC/Nova Java User Groups
On June 27th I came back from a trip to the Raleigh, NC area to record a JavaLobby Tech Chat on Resin 4. The Tech Chat went great. Mitch Pronschinske, the Editor-in-Chief of JavaLobby/DZone drove the Chat. We talked about Resin 4, the Java EE 6 Web Profile, the Caucho team, the CDISource Spring/CDI bridge
, Java EE 7/Java EE 8
, WebSocket, cloud computing and the like. The Tech Chat should be out there on JavaLobby soon.
I chose to drive to NC to avoid the hassle of flying and because NC is quite drivable from my home office in Philly. On the way back, I did CDI demos at both the Research Triangle JUG
and the NoVA/Washington, D.C. JUG
. Both talks were very well attended. The interest/participation levels were fantastic. The DZone folks gave me a few nice printed copies of the CDI RefCard
. Every single copy was taken and people were asking for more! They also asked me for the slide deck and code examples. I’ll send them to the JUG leads to post on the JUG websites. You can also take a look at the slide deck
and code examples
if you want and send me any follow-up questions. I also wanted to talk at the Maryland and Richmond JUGs but things didn’t quite work out schedule-wise this time around. Both JUGs are working on scheduling me to speak in the Fall instead.
TSSJS 2011 Round-Up
I spoke at TSSJS 2011 March 16-18 in Vegas. TSSJS 2011 went extremely well and so did my talks. I think the TSSJS 2011 agenda, quality of content/speakers and buzz was the best in years. The new TSS editor Cameron McKenzie did an admirable job at putting everything together. Some of the notable speakers included James Gosling, Steve Harris (SVP Oracle), Adam Messinger (VP Oracle), Patrick Curran (JCP chair), Rod Johnson, Bill Burke, Adam Bien and Kirk Pepperdine.
I started the conference with a 5-minute lightning round presentation on Resin 4, the Java EE 6 Web Profile, Caucho vision, history, thought leadership, values, global footprint and growing customer base. The presentation seemed to go over well with a number of existing customers and developers reaching out to us afterwards. The first session on the first day of the conference I did was my enterprise caching talk titled “Effective Caching Across Enterprise Application Tiers”. The talk covers the different flavors of caching in the web (HTTP), presentation, application, domain, infrastructure (persistence) and resource (database) tiers using mechanisms like proxy caching (especially as supported by Resin), JSF/CDI @ApplicationScoped, @SessionScoped, @ConversationScoped, @ViewScoped, @RequestScoped scopes, passivation, EJB pooling, EJB thread-safe singletons, extended persistence contexts, JPA first (transactional) and second (shared) level caching, database connection pools, prepared statement caching, JCache as well as distributed caching APIs like Coherence, Terracotta, GigaSpaces, Infinispan, EHCache, JCS, SwarmCache and OSCache. The talk was very well attended, the Q&A was good and I got great feedback afterwards. In the evening, I participated in the “Meet the Authors” event. TSSJS gave away two copies of EJB 3 in Action (I am currently working on the second edition) and I signed both copies for the winners. I had a few engaging conversations on topics like EJB/Spring, authoring and the JCP during the course of the evening.
I started the second and busiest day of the conference with a panel titled “The Java Community Process: What’s Broken and How to Fix It”. This was a panel with Patrick Curran, James Gosling and me, moderated by Cameron McKenzie. We discussed the need for reforming the JCP, greater transparency, the Apache Harmony licensing issues, more non-Oracle spec leadership and more participation from non-vendor affiliated independents. We all agreed that many ills in the JCP can be cured through greater interest and participation from the developer community. The panel generated a great deal of interest, attendance, participation and feedback. After lunch, I gave my “A Quick Tour of the CDI Landscape” talk. The talk is a broad overview of the vibrant CDI landscape composed of implementations, supported runtimes, portable extensions and tools. I discussed Weld, CanDI, OpenWebBeans, GlassFish, JBoss AS, Resin, Geronimo, WebLogic, WebSphere, Tomcat, OpenEJB, TomEE, JOnAS, Seam 3, Apache MyFaces CODI, the ZK Framework, Arquillian, Forge, JBoss Tools, Eclipse, NetBeans and IntelliJ. The audience was great and I had some lively discussions afterwards. Later in the afternoon, I did my Java EE testing talk titled “Testing Java EE 6 Applications: Tools and Techniques”. The talk covers end-to-end testing along the entire Java EE stack including Servlet 3, JSF 2, EJB 3.1, JPA 2, JAX-WS and JAX-RS using existing and emerging tools like JUnit, HttpUnit, HtmlUnit, Cactus, Selenium, JSFUnit, embedded containers, embedded databases, Arquillian/ShrinkWrap, Resin JUnit integration support and soapUI. The talk was well attended and I got excellent feedback for the talk. It was only somewhat surprising that folks don’t realize how robust Java EE testing is with the latest release and tools like Arquillian. In the evening, I participated in the “Ask the Experts” session which also went very well.
A number of folks asked for the slides and demo code, so the materials for the talks is posted here
Speaking at DevIgnition 2010
On December 3rd, I spoke at DevIgnition 2010
in Washington, DC. This is basically a brand new local conference organized by Gray Herter of the DC/Nova JUG
. Since I've spoken at the DC/Nova JUG quite a few times now, Gray invited me to come speak at the conference. I gave a talk on Spring 3/Java EE 6 integration titled "Java EE 6 Support in Spring 3". I talked about the support for Java EE 6 APIs like EJB 3.1, JSF 2, JPA 2, JAX-RS, JAX-WS and bean validation built into Spring 3. The talk went very well and the crowd was very enthusiastic. Fellow speakers Arun Gupta and Ryan Cuprak spoke at the conference as well.
I certainly look forward to speaking at DevIgnition next year.
Speaking at Oredev 2010
On November 8-12, I spoke at Oredev 2010
. Oredev is a Scandinavian regional technology conference especially focusing on the Malmo, Sweden and Copenhagen, Denmark metropolitan areas. Aiming to be the "best developer conference on the planet" Oredev 2010 had an intriguing mix of Java, .NET, agile, dynamic languages, mobile and even a non-technical track covering an eclectic set of topics ranging from music, photography, sports/fitness as well as culinary arts.
I spoke on Java EE 6 as well as CDI/Weld/Seam 3. Both of my talks had decent attendance with good follow-up Q & A. There were other recognizable folks from the Java community speaking at Oredev as well including Arun Gupta, Ted Neward and Neal Ford. Overall, speaking at Oredev was a pleasant experience.
Speaking at Java2days 2010
I spoke at Java2Days 2010
on October 8-9. The conference was hosted again in Sofia, Bulgaria and targeted the greater Balkan region. This year’s conference went very well as it drew a larger and more enthusiastic crowd than in the previous year. The exuberant crowd was in stark contrast to the comparatively lackluster Java conferences in the United States and Western Europe.
All three of my sessions were well attended with excellent feedback from each of them. The session on CanDI titled “A Quick Tour of Contexts and Dependency Injection for Java EE” was especially well received with a full house and lively Q & A along with requests for the CanDI demo code. The audience for the Java EE 6 testing talk titled “Testing Java EE 6 Applications: Tools and Techniques” was also very good. People were extremely surprised to see how easy and powerful testing has become with Java EE 6. The closing session for the conference was my talk on the JCP titled “A Look Inside the Java Community Process”. Towards the end of this session, Werner Keil from the JCP Executive Committee, joined in to present an update on Java SE 7 and 8. To conclude, all the JCP members present at the conference came on stage for the Q & A. The audience really enjoyed the JCP session and I received a lot of positive feedback on it.
I hope and look forward to presenting at the Java2Days conference again next year in beautiful, spirited, youthful Sofia, Bulgaria. It was also great to see my friends and fellow speakers Eugene Ciurana, John Willis, Arun Gupta, Vladimir Pavlov, Talip Ozturk, Andrew Lombardi, Alexis Moussine-Pouchkine, Werner Keil, Sasa Slavnic and many others.
JavaOne 2010 Round-Up
Overall, JavaOne 2010 was great personally.
The first session I did was the Resin 4 Java EE 6 Web Profile talk titled “Resin: A Light-footed Java EE 6 Web Profile Platform”. This was the first time Emil and I co-presented and I thought it went very well. The attendance was moderate but we had a number of good questions and a handful of folks asked for the slides/demo code afterwards. That same evening I did a CDI BOF with Dan Allen of Red Hat/JBoss and David Blevins of Apache OpenWebBeans/OpenEJB. The BOF was titled “Implementing CDI: Goals, Milestones, and Perspectives” and was well-attended. We had lively discussion around the current state of implementations, the CDI ecosystem as well as the future of CDI/Java EE.
My first talk for the second day of the conference was the Java EE testing talk with Debu titled “Testing Java EE 6 Applications: Tools and Techniques”. It was a full house and the talk went very well although we ran out of time and could not demo JAX-WS/JAX-RS testing. The talk covered end-to-end testing along the entire Java EE stack including Servlet 3, JSF 2, EJB 3.1, JPA 2, JAX-WS and JAX-RS using existing and emerging tools like JUnit, HttpUnit, HtmlUnit, Cactus, Selenium, JSFUnit, embedded containers, embedded databases, Arquillian/ShrinkWrap, Resin JUnit integration support and soapUI. We got excellent feedback for the talk. It was only somewhat surprising that folks don’t realize how robust Java EE testing is with the latest release and tools like Arquillian. In the evening I did an EJB 3.1 BOF with Linda Demichael of Sun/Oracle, Mike Keith of Sun/Oracle, David Blevins of Apache OpenWebBeans/OpenEJB as well as Andy Rubinger of JBoss/Red Hat titled “Enterprise JavaBean (EJB) Community Discussion”. The attendance was moderate but the discussion was very lively.
The last session I did for the conference was on Wednesday. It was a panel with Adam Bien, Emmanuel Bernard of JBoss/Red Hat, Krasimir Semerdzhiev of SAP, Roberto Chinnici of Sun/Oracle, David Blevins of OpenWebBeans/OpenEJB and Jim Knutson of IBM titled “
Java EE 6 Panel: What Do We Do Now?
”. The panel was moderated by Alexis Moussine-Pouchkine of Sun/Oracle. He blogged about the panel here
. It was a full-house and we had very lively discussion.
I of course met up with the usual suspects from JBoss, SpringSource, Apache, Sun/Oracle, etc throughout the conference. I have some serious mixed feelings about the conference itself. The programming and organization was great but I could not help but feel that JavaOne was demoted. I think a lot of developers have this same sentiment and I hope Sun/Oracle will do better next time.
I got a chance to go out to a climbing gym with my friends in the Resin team. It was pretty cool considering I haven't done any serious rock climbing for a good few years although Nicole and I did go up Mount Saint Helen's the year before the last. I also went out to a folk rock gig one night with my friends from the Resin team - it wasn't too bad at all. I did get a chance to catch a couple of metal gigs at Slim's and Kimo's the other evenings. The gig at Slim's was particularly cool with relatively young guys in their twenties doing their own rendition of Metallica, Megadeth, Slayer, Iron Maiden and AC/DC. They did a great job and it was great to see "classic" metal alive and well, even if it is in the bubble that San Francisco can be.
Java EE 6 Testing Talk at Harrisburg JUG
On September 16th, I did the Java EE 6 end-to-end testing talk at the Harrisburg JUG
. The talk covered doing testing across the Java EE 6 API tiers using Unit, HttpUnit, HtmlUnit, Cactus, Selenium, JSFUnit, Arquillian/ShrinkWrap, Resin, soapUI, etc. It is the same talk I am doing at JavaOne 2010 so it is great preparation!
It was great to be back to the JUG again and seeing some familiar friendly faces (and some new ones) despite rotten weather on the day.
CDI Talk at San Diego and Silicon Valley Java User Groups
En-route to the Resin marketing/engineering meetings in San Diego/San Francisco, I did my CDI quick tour talk at the San Diego JUG
on July 20th and Silicon Valley JUG
on July 21st (the same talk I did for TSSJS 2010).
Both talks went very well. The San Diego JUG was relatively small but very lively. I got great feedback on the talk afterwards. The Silicon Valley JUG hosted at Google was larger but understandably a bit more sedate. I did get some very good questions though and some great feedback.
I look forward to speaking at both JUGs in the near future again.