X

Reza Rahman's Blog

Recent Posts

ConFoo 2016 Trip Report

ConFoo 2016 took place 24-26 February in Montreal, Canada. To my knowledge it is the largest developer conference north of the border. The conference has roots in PHP, but has been making an effort to better attract a Java audience hence it was important for me to support the conference. If you are a Canadian Java developer, I would consider adding ConFoo to your radar as a more convenient (and possibly cheaper) event to go to in order to stay up-to-date. Topics covered included PHP, Ruby, Python, methodology, usability, JavaScript/HTML5, mobile, cloud, big data, DevOps, NoSQL, Java and .NET.I started the conference late afternoon the first day with one my most recent talks titled "Down-to-Earth Microservices with Java EE". The talk has two aims. The first is to try to do the right thing in explaining what microservices really are, what practical value they offer for most of us and when you should consider them (or not). The second aim is to demonstrate why Java EE makes perfect natural sense for developing sensible real world microservices, so called "monoliths" and everything in between. I also briefly explore the work that some parts of the Java EE community is doing to support what I lovingly call "microservices Nirvana" (spoiler: I don't think most of us can or need to achieve this Nirvana state). The slide deck for this talk is below (click here if you can't see the embedded slide deck): Down-to-Earth Microservices with Java EE from Reza RahmanDespite being later in the day the talk was very well attended. It is clearly popular, on the mark and well received. There was good Q & A during the talk and some very nice feedback afterwards. I presented this same talk along with Steve Millidge (C2B2, Payara co-founder) at JavaOne. You can view the JavaOne recording of the talk here.The second day in the afternoon I delivered one of my other newer talks titled "Reactive Java EE - Let Me Count the Ways!". It aligns Java with core Reactive Programming principles. Though many people don't realize it, Java EE has long had very good support for asynchronous, event-driven, non-blocking scalable systems. This includes features and APIs like JMS, Message Driven Beans, Asynchronous Session Beans, CDI events/observers, asynchronous Servlets/NIO, server/client side JAX-RS and the Java EE concurrency utilities. These features can be used in a highly Reactive fashion especially in conjunction with Java SE 8 lambdas, streams and CompletableFuture. The slides for the talk are here (click here if you can't see the embedded slides):

ConFoo 2016 took place 24-26 February in Montreal, Canada. To my knowledge it is the largest developer conference north of the border. The conference has roots in PHP, but has been making an effort to...

DevNexus 2016 Trip Report

DevNexus 2016 was held in historic Atlanta on February 15-17. For those of you not familiar with it, DevNexus is the most significant Java centric (but not Java focused) conference in the South Eastern US and now perhaps even at a national level. It was started by JBoss Java Champion Burr Sutter and organized by the Atlanta JUG (currently lead by Vincent Mayers, Gunnar Hillert, Pratik Patel, et al). I guess at this point I am somewhat of a DevNexus veteran myself. As usual DevNexus attracted a bevy of world class speakers including Stuart Marks, Stephen Chin, Heather VanCura, Venkat Subramaniam, Yakov Fain, Burr Sutter, Freddy Guime, Bob Paulin, Jason Porter, Rafael Benevides, Scott Kramer and so on. Topics included Java SE, NoSQL, mobile, cloud, Docker, HTML5/JavaScript and of course Java EE. This was a solid, fully sold out year for DevNexus!I started the conference by running a whole day workshop titled "Have You Seen Java EE Lately?". The talk is principally intended for folks that have not stayed abreast with Java EE, especially past the J2EE era. It is also good for newcomers with little or no exposure to Java EE. This is a talk I had been wanting to do for a while. It is highly appropriate for some venues and gives me an opportunity to share some of the things I have grown to value the most about Java EE over the years. I have done this talk a number of times with various Oracle customers, but this is only the second time I did the talk at a major conference.I start the talk with a historical perspective of how the platform has evolved right up to Java EE 7. I then talk about what Java EE really is today and what it is not. The vast majority of the talk is spent covering major Java EE APIs like JSF, CDI, EJB, JPA and JAX-RS. I explore the APIs and Java EE as a whole heavily utilizing Cargo Tracker as a demo mechanism. For each API I do a high level overview of motivation, features as well as explain what makes them uniquely valuable before diving into a representative demo and code walk-through. I finish the talk by discussing the vibrant Java EE ecosystem as well as discussing Java EE 8. The slides for the talk are below (click here if you can't see the embedded slide deck): Have You Seen Java EE Lately? from Reza Rahman Perhaps I should not be but I am taken by surprise as to what degree some of this is new to attendees. They particularly marvel at the simplicity, productivity, lack of configuration, annotation driven meta-data, lack of complex third-party build dependencies, very lightweight war files and fast deployments that Java EE has offered for many years now.I started the conference late afternoon the next day with one my most recent talks titled "Down-to-Earth Microservices with Java EE". The talk has two aims. The first is to try to do the right thing in explaining what microservices really are, what practical value they offer for most of us and when you should consider them (or not). The second aim is to demonstrate why Java EE makes perfect natural sense for developing sensible real world microservices, so called "monoliths" and everything in between. I also briefly explore the work that some parts of the Java EE community is doing to support what I lovingly call "microservices Nirvana" (spoiler: I don't think most of us can or need to achieve this Nirvana state). The slide deck for this talk is below (click here if you can't see the embedded slide deck): Down-to-Earth Microservices with Java EE from Reza RahmanDespite being later in the day the talk was packed. It is clearly popular, on the mark and well received. There was good Q & A during the talk and some very nice feedback afterwards. I presented this same talk along with Steve Millidge (C2B2, Payara co-founder) at JavaOne. You can view the JavaOne recording of the talk here.Overall this was another great year at DevNexus and I hope to be part of the conference next year.

DevNexus 2016 was held in historic Atlanta on February 15-17. For those of you not familiar with it, DevNexus is the most significant Java centric (but not Java focused) conference in the South...

Oredev Trip Report

Oredev 2015 was held on 3-6 November in Malmo Sweden. This was my third time at the largest IT conference in the Scania region - I had been there first in 2010 as an independent. The conference is rooted in .NET and development process/methodology but has been trying hard to beef up it's Java content. This year it attracted a decent section of the Java crowd including my fellow Oracle colleagues Bruno Borges and Stephen Chin. Topics covered included .NET, Java SE, Java EE, mobile, methodology, agile, HTML5, JavaScript and NoSQL.The third day of the conference I delivered one of my newer talks titled "Reactive Java EE - Let Me Count the Ways!". It aligns Java with core Reactive Programming principles. Though many people don't realize it, Java EE has long had very good support for asynchronous, event-driven, non-blocking scalable systems. This includes features and APIs like JMS, Message Driven Beans, Asynchronous Session Beans, CDI events/observers, asynchronous Servlets/NIO, server/client side JAX-RS and the Java EE concurrency utilities. These features can be used in a highly Reactive fashion especially in conjunction with Java SE 8 lambdas, streams and CompletableFuture. The slides for the talk are here (click here if you can't see the embedded slides):

Oredev 2015 was held on 3-6 November in Malmo Sweden. This was my third time at the largest IT conference in the Scania region - I had been there first in 2010 as an independent. The conference...

Java2Days Trip Report

Java2Days 2015 was held on November 2-4 in Sofia, Bulgaria. It is far and away the largest Java conference in the Balkans region and now perhaps one of the most important conferences in Europe as a whole. Far beyond the modest borders of Bulgaria it seemed to increasingly attract audiences from as far as Serbia, Bosnia/Herzegovina, Romania, Albania and Macedonia. This was another great year for this rapidly growing, vibrant event. It attracted a host of international and local speakers including Patrick Curran, Geertjan Wielenga, Ivan St. Ivanov, Vladimir Pavlov and Andrew Lombardi. Topics included Java SE, Java EE, HTML5/JavaScript, mobile, and the cloud. If the conference is not on your map already, it should be. It is inspiring to see a youthful, energetic Java community rise in this once very tumultuous, repressed part of our world.One of the most unique things about Java2Days that one should appreciate is that it is an event run entirely by women - the capable trio of Yoana Ivanova, Iva Abadjieva and Nadia Kostova. It is the only Java conference that I know of for which this is true. Iva's husband Emo Abadjiev also contributes many hours of hard work into the conference. I am very proud to be able to call all these passionate, down-to-earth, genuinely good people my friends and gracious hosts in Bulgaria. Other than now Java Champion Yara Senger of The Developer Conference (TDC) Brazil, Java2Days was the first international conference to invite me as a speaker while I was still an independent. In fact I feel very honored to say that I was the first and last speaker of the very first Java2Days a few years ago. They have been very kind to invite me back every year since. Though I have not always been able to accept the invitation largely due to personal scheduling reasons, I am very glad I was able to speak at Java2Days one more time this year.My venerable JCP colleague Patrick Curran kicked off the conference with his very important talk titled "The JCP and the future of Java". In the talk he discussed the fundamental importance of standards and the JCP. He also explains how developers should engage with the JCP through programs like Adopt-a-JSR. After Patrick I delivered my new talk titled "Down-to-Earth Microservices with Java EE". The talk has two aims. The first is to try to do the right thing in explaining what microservices really are, what practical value they offer for most of us and when you should consider them (or not). The second aim is to demonstrate why Java EE makes perfect natural sense for developing sensible real world microservices, so called "monoliths" and everything in between. I also briefly explore the work that some parts of the Java EE community is doing to support what I lovingly call "microservices Nirvana" (spoiler: I don't think most of us can or need to achieve this Nirvana state). The slide deck for this talk is below (click here if you can't see the embedded slide deck): Down-to-Earth Microservices with Java EE from Reza RahmanI delivered the same talk at JavaOne and you can watch the video here.Towards early afternoon I ran a hands-on lab on JMS 2 titled "Down-and-Dirty with JMS 2". The lab was packed and went pretty smoothly. The goal of the lab is to give attendees some first-hand experience with the primary changes in JMS 2. In the first hour or so I did a brief presentation overviewing JMS 2 and went over the JMS 2 Javadocs. The rest of the time attendees actually wrote JMS 2 code mostly by themselves. The slides I use are available on SlideShare (click here if you can't see the embedded slide deck). JMS.Next(): JMS 2.0 and Beyond from Reza Rahman The lab materials are hosted on GitHub for anyone to use. The lab uses NetBeans 8, GlassFish 4 and Arquillian. I've deliberately designed the lab materials to be fairly self-guided so you can definitely use the lab materials on your own (or perhaps even run the lab in your own company/JUG) . You are always welcome to reach out to me when needed. In the lab you'll basically be putting in code to finish a set of JUnit tests using JMS 2, starting from incomplete code with comments on what to do (don't worry, a completed solution is also posted :-)). After my lab my friend Ivan led a lab on the upcoming Java EE MVC JSR. The same lab was also run by Ivan at the Bulgaria JUG as part of their Adopt-a-JSR efforts.The second day in the afternoon I delivered one of my newer talks titled "Reactive Java EE - Let Me Count the Ways!". It aligns Java with core Reactive Programming principles. Though many people don't realize it, Java EE has long had very good support for asynchronous, event-driven, non-blocking scalable systems. This includes features and APIs like JMS, Message Driven Beans, Asynchronous Session Beans, CDI events/observers, asynchronous Servlets/NIO, server/client side JAX-RS and the Java EE concurrency utilities. These features can be used in a highly Reactive fashion especially in conjunction with Java SE 8 lambdas, streams and CompletableFuture. The slides for the talk are here (click here if you can't see the embedded slides):

Java2Days 2015 was held on November 2-4 in Sofia, Bulgaria. It is far and away the largest Java conference in the Balkans region and now perhaps one of the most important conferences in Europe as a...

Java Day Mexico Trip Report

Java Day Mexico 2015 was held on August 29 in historic Guadalajara. I was truly honored to be invited to speak here and this is a very fitting first trip report of the year. Java Day Mexico is the largest Java developer conference in Mexico and it is led primarily by Mexican JUGs. This was another highly successful year for the growing conference. Speakers included Venkat Subramaniam, Pratik Patel, Bruno Borges and Heather VanCura. Topics included Java SE, Java EE, HTML5, JavaScript, architecture, JVM languages, mobile and the cloud.I started the conference in the morning with my now somewhat dated Java EE 7 talk titled "JavaEE.Next(): Java EE 7, 8, and Beyond". Because this was my first time at the conference, the timing was right for the talk. The talk was certainly well attended. I covered the changes in JMS 2, the Java API for WebSocket (JSR 356), the Java API for JSON Processing (JSON-P), JAX-RS 2, JPA 2.1, JTA 1.2, JSF 2.2, Java Batch, Bean Validation 1.1, Java EE Concurrency and the rest of the APIs in Java EE 7. I also briefly talked about some of the possibilities for Java EE 8. The slides for the talk are here (click here if you can't see the embedded slide deck): JavaEE.Next(): Java EE 7, 8, and Beyond from Reza Rahman My next talk before lunch was "Why Open Standards and Java/EE Matter". The talk covers a very important topic that I think there's far too little material out there on. It talks about the core value proposition for standards like Java EE in maintaining a healthy competitive marketplace. It differentiates open technical standards from so called "de-facto standards" and explores the relationship between open source and open standards. I also talk about what the community can do to make standards really work. The talk taps into one of my fields of study that I never pursued in my career and few developers really seem to have even a basic grasp of - economic analysis. This is a talk I've been waiting to give for many years and I am glad I am able to start presenting it. To some degree it embodies many of the core motivations that keep me doing what I do to try to help move the Java EE standard forward. The slides for the talk are here (click here if you can't see the embedded slide deck): Why Open Standards and Java/EE Matter (to You) from Reza Rahman After lunch I delivered my very popular talk on aligning Java EE 7 with the HTML 5/JavaScript Rich Client landscape. I use AngularJS for my demo but the concepts can apply to any JavaScript (or even native mobile) front-end using a Java EE 7 back-end. This session was a full house. The slide deck for the talk is posted below (click here if you can't see the embedded slide deck): JavaScript/HTML5 Rich Clients Using Java EE 7 from Reza Rahman One of the goals of this talk is actually to give you the starter code for exploring this sort of architecture. The demo code is posted on GitHub: https://github.com/m-reza-rahman/javaee-javascript. Do give me a shout if you need help getting the demo up and running but it should be very straightforward.Later in the afternoon I delivered my new talk titled "Down-to-Earth Microservices with Java EE". The talk has two aims. The first is to try to do the right thing in explaining what microservices really are, what practical value they offer for most of us and when you should consider them (or not). The second aim is to demonstrate why Java EE makes perfect natural sense for developing sensible real world microservices, so called "monoliths" and everything in between. I also briefly explore the work that some parts of the Java EE community is doing to support what I lovingly call "microservices Nirvana" (spoiler: I don't think most of us can or need to achieve this Nirvana state). The slide deck for this talk is below (click here if you can't see the embedded slide deck): Down-to-Earth Microservices with Java EE from Reza RahmanDespite being later in the day the talk was packed. I finished the conference with "What's Coming in Java EE 8". The talk covers the possibilities for Java EE 8 such as HTTP 2/Servlet 4, a new standard action-oriented web framework, security simplification, even better JSON support, CDI 2, more pruning, JMS.next(), JAX-RS.next() and Java SE 8 alignment. I also cover Adopt-a-JSR. The slides for the talk are here (click here if you can't see the embedded slide deck): What's Coming in Java EE 8 from Reza Rahman The talk was reasonably attended with some good Q & A afterwards. During the closing ceremonies we celebrated the twenty-year anniversary of Java with a pretty cool Mexican Duke shaped cake!Besides the conference, Mexico was truly a pleasure. Central Americans generally and Mexicans specifically are warm, hospitable, gregarious people so this was not at all a surprise. I took some personal time off to do something that has been on my bucket list for a while - visiting the Mesoamerican pyramids in the Yucatan. My colleague Heather and my old Mexican friend Gustavo were very kind to join me. We visited Tulum, Coba, Chichen Itza and Ek'Balam. We also had time to visit a couple of the very cool Cenotes (basically cave lakes) in the area. Particularly special was the experience of climbing some of the pyramids in Coba and Ek'Balam. It is easy to see that the steep stairs were intended to represent an ascent to the heavens (although it was hard not to think about the fact that for many unfortunate souls sacrificed at the crest of these pyramids, the structures embodied a hellish nightmare indeed). The pictures from the trip definitely do not do justice to these magnificent works of art by a mostly tragically lost civilization (click here if you can't see the embedded slideshow). While in Guadalajara I caught a pretty cool classic Heavy Metal cover band playing the hallowed likes of Iron Maiden, Dio, Black Sabbath, and Rainbow. I also got to catch a more traditional Mariachi band. I tried in vain to see Lucha Libre (very colorful, acrobatic Mexican freestyle wrestling) in person. All in all this was a great first Java Day Mexico for me as well as a fun trip to the country.

Java Day Mexico 2015 was held on August 29 in historic Guadalajara. I was truly honored to be invited to speak here and this is a very fitting first trip report of the year. Java Day Mexico is the...

UberConf 2015 Trip Report

UberConf 2015 was held July 21-24 in Denver, Colorado. UberConf has grown to become one of the most significant US developer conferences - one located in close proximity to the otherwise under-served middle America. Consequently it is an important conference for our team to support. Topics covered included Java SE (thanks largely to Venkat Subramaniam), JavaScript, JVM languages, architecture, methodology, mobile, cloud and the like. My former colleague Arun Gupta and I covered Java EE.I started the conference late afternoon Wednesday with a talk titled "Down-to-Earth Microservices with Java EE". This is the first time I presented this talk and this was a good testing ground for it. The talk has two aims. The first is to try to do the right thing in explaining what microservices really are, what practical value they offer for most of us and when you should consider them (or not). The second aim is to demonstrate why Java EE makes perfect natural sense for developing sensible real world microservices, so called "monoliths" and everything in between. I also briefly explore the work that some parts of the Java EE community is doing to support what I lovingly call "microservices Nirvana" (spoiler: I don't think most of us can or need to achieve this Nirvana state). The slide deck for this talk is below (click here if you can't see the embedded slide deck): Down-to-Earth Microservices with Java EE from Reza RahmanDespite being very late in the day the talk was packed. I've since done this talk a few times already. It is clearly popular, on the mark and well received - even with what I have traditionally observed to be a hostile audience at some venues. I presented this same talk along with Steve Millidge (C2B2, Payara co-founder) at JavaOne. You can view the JavaOne recording of the talk here.I started the next day of the conference early in the morning with a three hour workshop titled "Have You Seen Java EE Lately?". The talk is principally intended for folks that have not stayed abreast with Java EE, especially past the J2EE era. It is also good for newcomers with little or no exposure to Java EE. This is a talk I had been wanting to do for a while. It is highly appropriate for some venues and gives me an opportunity to share some of the things I have grown to value the most about Java EE over the years. I have done this talk a number of times with various Oracle customers, but this is the first time I did the talk at a conference. This talk, while in a smaller room, was standing room only.I start the talk with a historical perspective of how the platform has evolved right up to Java EE 7. I then talk about what Java EE really is today and what it is not. The vast majority of the talk is spent covering major Java EE APIs like JSF, CDI, EJB, JPA and JAX-RS. I explore the APIs and Java EE as a whole heavily utilizing Cargo Tracker as a demo mechanism. For each API I do a high level overview of motivation, features as well as explain what makes them uniquely valuable before diving into a representative demo and code walk-through. I finish the talk by discussing the vibrant Java EE ecosystem as well as discussing the Java EE 8 road map. The slides for the talk are below (click here if you can't see the embedded slide deck): Have You Seen Java EE Lately? from Reza Rahman Perhaps I should not be but I was taken by surprise as to what degree some of this is new to attendees. They particularly marveled at the simplicity, productivity, lack of configuration, annotation driven meta-data, lack of complex third-party build dependencies, very lightweight war files and fast deployments that Java EE has offered for many years now. In fact the audience reaction makes it obvious that I should write further about this soon - using some numbers that are bound to be shocking and perhaps unbelievable to some in the community. While these characteristics are already impressive with GlassFish (which is what I used for the demos), they are even better with WebLogic.I finished the conference in the afternoon with another one of my newer talks titled "Reactive Java EE - Let Me Count the Ways!". It aligns Java with core Reactive Programming principles. Though many people don't realize it, Java EE has long had very good support for asynchronous, event-driven, non-blocking scalable systems. This includes features and APIs like JMS, Message Driven Beans, Asynchronous Session Beans, CDI events/observers, asynchronous Servlets/NIO, server/client side JAX-RS and the Java EE concurrency utilities. These features can be used in a highly Reactive fashion especially in conjunction with Java SE 8 lambdas, streams and CompletableFuture. The slides for the talk are here (click here if you can't see the embedded slides):

UberConf 2015 was held July 21-24 in Denver, Colorado. UberConf has grown to become one of the most significant US developer conferences - one located in close proximity to the otherwise under-served...

JavaOne 2015 - Another Year, Another Step Forward

JavaOne 2015 San Francisco was held October 25-29. I am proud to say this is my ninth JavaOne as an attendee, my seventh one as a speaker, my fourth one as an Oracle employee, my third one as a member of the content committee and my second one as a track lead. I think this was another great year for JavaOne and it is a privilege to try to do justice to the crucial role of Java EE track lead. In this hopefully relatively brief post I'll share my thoughts, observations and experiences at JavaOne 2015. I'll also share all the materials that I presented at JavaOne this year towards the end of the post.The astute among you may have noticed that this post is belated. It's a reflection of the fact that's it's been a very hectic few months in terms of US and international conferences and in fact it'll be the very worthy first of a handful of belated trip reports now that the seemingly unofficial Java conference season towards the year's end is over.A Look to the Past, A Look AheadThere is no doubt JavaOne is the largest and most important Java conference in the world. It is critical to continuing to strengthen and grow the Java ecosystem. Having taken part in organizing a few other fairly large conferences and speaking at numerous others, the JavaOne content is definitely of outstanding quality. It's clear the best and the brightest in the Java ecosystem still see participating in JavaOne as a badge of honor. In terms of quantity, JavaOne has the largest concentration of Java content anywhere. As it is said, however, it is far more difficult to stay on top than to get there. Fortunately in the past few years we have been able to maintain an upward trajectory for JavaOne by continually improving whatever we can. To that end we did quite a few things differently last year and this year was no exception.How JavaOne 2015 was DifferentLast year we grew JavaOne attendance numbers at a much more rapid pace than we have in the past few years. This year the challenge was to maintain or improve upon that dramatic growth. We were fortunate that we did indeed see modest growth even this year. This was despite the fact that we did not have any new releases announced of either Java SE or Java EE at JavaOne. On the Java EE front the biggest announcement was full Java EE 7 support in WebLogic (announced here), as well as WebSphere (announced here). Red Hat also announced their work towards making JBoss EAP Java EE 7 certified adding to the existing Java EE 7 community support via WildFly (take a look at the JBoss EAP beta announcement here). It was great to see a number of real world Java EE 7 adoption stories presented including from Rakuten during the JavaOne keynote (more on that below and in future Aquarium entries). We started the CFP process as early as we could, provided as much detail as possible and kept the community in the loop with periodic updates through blogs like the Aquarium. We pre-selected a small number of rock star speakers to bypass the CFP altogether. On the Java EE track we also reached out to a larger group of folks and cordially invited them to join the CFP (you know who you are). In the end we had a large number of high quality CFP submissions. As a result we managed to create a strong content offering. The event was highly professionally run as it always has been in terms of venue, scheduling and organization. We did do a few things differently that hopefully helped in keeping things in the right direction:Collecting good quality and quantity of feedback has long been a challenge at JavaOne, especially with the amount of content we have. We may have arrived at the best solution this year - we introduced voting kiosks right outside each session room. Since this was our first deployment of the machines it did not go entirely smoothly. Some speakers noticed votes disappearing in the online speaker tool. This is now a known issue in the speaker tool and no votes were actually lost (speakers can request all their feedback data specifically if needed). A small handful of sessions indeed did not have data captured due to setup issues. Despite these issues we still got eight times more session feedback votes cast than previous years. This is critical for us to improve content for the conference in the coming years.Some of you probably know Java celebrated it's twenty-year birthday earlier this year. Partly in recognition to this we did the JavaOne community keynote a bit differently this year. Normally this keynote is a place to celebrate innovative work in Java, usually highlighting many Duke's Choice award winners (click here to see this year's winners announced at JavaOne 2015). This year we decided to do something akin to a theatrical production consisting of a time travel journey through the past twenty years of Java with stops along the way to highlight important technology milestones in the platform. The keynote was a success with a large cast of familiar community members including Java Champions, JUG leaders and JCP members. It generated kind words such as "...it was the best community keynote in JavaOne history!" (Frank Greco, NY JUG leader) and "One of the highlights of this year’s JavaOne is the community keynote...what a show it was!" (Baruch Sadogursky, JFrog Evangelist). You can watch the full video of the community keynote here. I am proud to say I took part in the community keynote.A few other new ideas we attempted this year included a youth education program on the Saturday prior to JavaOne similar to the highly successful Devoxx4Kids program as well as live streaming a selected set of sessions to the Java YouTube channel.What we did in the Java EE TrackThere are a few more things we did in the Java EE track specifically:The quality of the program committees is a crucial part of the overall quality of JavaOne. I am very happy to say we had a very active committee this year in the Java EE track. We aimed to minimize the Oracle and vendor footprint in the committee in favor of folks in the community including folks that help put together other successful conferences. I wrote about this year's committee in detail prior to JavaOne. I also interviewed some committee members for the Aquarium. We will try to improve the committee further in subsequent years.Just as we did last year we did our best to trim down speakers and content from Oracle and other vendors in favor of folks from the community. This balance is crucial in keeping JavaOne the conference for the Java community.Just as last year we promoted video interviews with some JavaOne speakers about their sessions via the Aquarium. We tried to do as many interviews as we could right up until the beginning of the conference. The folks we had time to highlight this year: Ivar Grimstad, Bessem Hmidi and Kito Mann. We will try to do more of this in subsequent years.There was some specific content that we wanted to have in the track that we got to various degrees:Java EE 8: One of the unique value propositions for JavaOne is that it is the best place to learn about what is ahead in terms of standard Java technologies right from the source - the spec leads themselves. We were able to put together a number of such sessions.Java EE 8 Work in ProgressServlet 4.0: HTTP/2 and Reactive Programming in Java EE 8Finally, the Java EE Security APICDI 2.0: What’s in the Works?What’s Coming in JMS 2.1Introduction to MVC 1.0What’s Next for JAX-RS 2.1?What’s New in the Java Persistence APIJSF 2.3: Continued Return on Investment with Incremental InnovationWhat’s New in Java API for JSON BindingBest Practices/Design Patterns: Beyond learning Java EE APIs, it is critically important to understand how to effectively apply them in real life applications, which is where best practices and design patterns come in.From Macro to Micro(Services) and Back: Onstage Hacking with Java EE 7Refactor Your Java EE Application with Microservices and ContainersThinking Beyond ORM in JPAJava SE 8 for Java EE DevelopersDocker and Kubernetes Recipes for Java EE DevelopersIntegrating JSF and HTML 5Real World Adoption Stories: As we grow the Java EE community it is more and more important to highlight adoption stories, case studies and migrations from other technologies. Last year was very good in this regard and I am happy to say this year was even better. In fact there were a number of such submissions that we could not accept this year that we hope will be resubmitted in the coming years.Java EE in Practice at Lufthansa Industry SolutionsJava EE 7 and Java SE 8 Adoption at the United NationsPenn State: Java EE 7 in the Very Real World of Higher EducationCashless 3.0: Java EE 7 Proves Effective for Mission-Critical E-Payment SystemsMigrating to TomEE and Java EE from Tomcat: A Success StoryInnovating Democracy with Java EE and Open SourceTales of Migration from Java EE 5 to 7The Java EE Ecosystem: The ecosystem that builds upon Java EE APIs is critically important in keeping the platform strong. This year was far better in this regard than previous years. We always hope to highlight such content and wish there were more submissions along these lines.Apache DeltaSpike, the CDI ToolboxBeing Productive with JPA, Using DeltaSpike Data and QueryDSLJava EE 7 Applications as a Microservice with WildFly SwarmAngularBeans: A Modern Real-Time Java EE/CDI Back End for AngularJSRiding a Camel Through the JEEharaWhat's the Best IDE for Java EE?Meet SnoopEE, a Discovery Service for Java EEFostering Java EE Community SpeakersOne of the key reasons attendees come to JavaOne is to hear from Oracle's Java technologists. Unsurprisingly the most well attended sessions tend to be led by Oracle speakers. This year we had the usual strong showing of Oracle speakers: David Delabassee, Geertjan Wielenga, Bill Shannon, Linda Demichiel, Ed Burns, Manfred Riem, Santiago Pericasgeertsen, Nigel Deakin and Heather Vancura just to mention a few. In order to continue to grow the Java EE community however it is vitally important to foster a greater number of community speakers that advocate Java EE. While this has gotten much better over the years, we need to do more at JavaOne to encourage speakers to take up Java EE as a topic. These are just some of the community speakers that we were very proud to host this year:Adam Bien (JavaOne Rock Star, Java EE author, Java Champion, speaker, consultant)David Blevins (JavaOne Rock Star, Java Champion, Apache TomEE project lead)Arun Gupta (JavaOne Rock Star, Java Champion, Java EE advocate, author, blogger, speaker)Patrycja Wegrzynowicz (CTO, Java EE researcher)Antoine Sabot-Durand (CDI specification lead, Red Hat)Kito Mann (Java EE author, speaker, consultant)Murat Yener (Java EE author, speaker, Java Champion)Peter Pilgrim (Java EE author, Java Champion, speaker, consultant)Steve Millidge (London GlassFish User Group, C2B2 Consulting, Paraya)Ivar Grimstad (Java EE advocate, JCP expert, blogger, open source hacker, consultant)Ryan Cuprak (JavaOne Rock Star, Java EE author, speaker and JUG leader)David Heffelfinger (Java EE advocate, author, blogger, consultant)Aslak Knutsen (Arquillian project lead, Red Hat)Mohamed Taman (Java EE advocate, Java Champion, Duke's Choice Award Winner, JUG leader, consultant)Roberto Cortez (Java EE advocate, JUG leader, blogger, open source hacker)Alex Soto (Java EE advocate, speaker, blogger, open source hacker)Matti Tahvonen (Developer Advocate, Vaadin)We will be highlighting some of these sessions on the Aquarium in the next coming months including videos and slide decks (more on that below).What I did at JavaOneThe last few JavaOnes have been fairly hectic for me and this year was no exception. Indeed this was the most busy JavaOne for me by far. Frankly that's exactly how I prefer it. As a speaker (and a host in this case) I am there to deliver as much as I possibly can for attendees. Here's what kept me busy this year:Sunday: As in previous years I started JavaOne with hosting the Sunday GlassFish community events. This has long been the rallying point for GlassFish fans at JavaOne and this year was no exception. This year we had quite a bit of time allocated to us on Sunday so we decided to do things a bit differently. Instead of focusing just on GlassFish we had four sessions covering both Java EE and GlassFish. The strategy turned out to be a success and we had much higher attendance than previous years. We will try to continue this strategy in the coming years.In the first brief session Mike Lehmann presented the GlassFish/Java EE road map. Mike talked about GlassFish 4.1.1, Java EE 8 and GlassFish 5. The second session was titled "GlassFish Performance Tuning: Tips from the Field" and was presented by Steve Millidge (founder Payara, C2B2 Consulting). The third session slot was for David Blevins as well as Oleg Tsal-Tsalko and was titled "Evolving Java EE". They shared some interesting ideas for evolving Java EE APIs using featured introduced in Java SE 8. Adam Bien presented the last session of the day titled "Building Nanoservices with Java EE and Java 8". All of the sessions, particularly Adam's one, were very well attended. Indeed we had to move the room location twice to the largest space we could find to fit everyone that wanted to come listen to Adam! In the evening we hosted the traditional GlassFish party at the Thirsty Bear. The party was completely packed until the very end as usual.Monday: I kicked off the Java EE track Monday morning with my two-hour workshop titled "Java EE 7 in Action". It was a fully packed house with most folks staying to the very end. The workshop is something I've successfully delivered in the past. It uses Cargo Tracker but focuses on Java EE 7 usage instead of DDD and Java EE generally. I overview Java EE 7 at a high level, go through each API change and demo some selected features using Cargo Tracker. For each demo I explain the use case for the Java EE 7 feature in use and show actual running code. The slide deck is embedded below and the source PPT can be downloaded from here.I have deliberately added detailed speaker notes to the source PPT so you should be able to go through the workshop yourself. You can also view the video recording for the entire workshop here.Later in the afternoon I helped out David Heffelfinger with his popular hands-on lab titled "Java EE 101". The lab is so popular that in fact it is a repeat from last year! In addition it had such high demand that it was scheduled to be run twice this year! Both sessions were completely booked and ran very smoothly. The lab goes through the very basics of Java EE including JSF, CDI, JPA and EJB. I am seriously considering having David repeat the lab again next year. All the lab materials can be downloaded here. You should also check out David's blog entry on the lab here.In the evening I went to the JCP party which is always lively and a great way to catch up with some key folks in the Java community. This year's JCP award winners were announced at the party including some key winners on the Java EE side of things. You can read my write-up on this year's winners here.Tuesday: I started Tuesday out with repeating the Java EE 101 lab again in the morning. Towards noon I ran a hands-on lab on JMS 2 titled "Down-and-Dirty with JMS 2". My Turkish friends Salim Kayabasi and Hasan Keklik did an awesome job helping me prepare the materials and run the lab. The lab was packed and went pretty smoothly. The goal of the lab is to give attendees some first-hand experience with the primary changes in JMS 2. In the first hour or so I did a brief presentation overviewing JMS 2 and went over the JMS 2 Javadocs. The rest of the time attendees actually wrote JMS 2 code mostly by themselves. The slides I use are available on SlideShare (click here if you can't see the embedded slide deck). JMS.Next(): JMS 2.0 and Beyond from Reza Rahman The lab materials are hosted on GitHub for anyone to use. The lab uses NetBeans 8, GlassFish 4 and Arquillian. I've deliberately designed the lab materials to be fairly self-guided so you can definitely use the lab materials on your own (or perhaps even run the lab in your own company/JUG) . You are always welcome to reach out to me when needed. In the lab you'll basically be putting in code to finish a set of JUnit tests using JMS 2, starting from incomplete code with comments on what to do (don't worry, a completed solution is also posted :-)). There were a few good ideas to improve the lab that I hope to incorporate soon.Later in the afternoon I co-presented a very cool session with another good Turkish friend - Murat Yener. The talk is titled "Java EE Revisits GoF Design Patterns" and is based on Murat's excellent book. The talk explores how modern Java EE incorporates many key GoF design patterns such as singleton, factory, session facade, observer and decorator. Java EE also directly or indirectly incorporates other patterns such as MVC, entity, DAO and DTO. I also discussed how DDD patterns fit seamlessly into Java EE (this is the subject of my other design pattern talk - Applied Domain-Driven Design Blue Prints for Java EE). The talk was completely packed with good Q & A throughout the session. The slides for the session are below (click here if you can't see the embedded slide deck). Java EE Revisits GoF Design Patterns from Murat Yener You can watch the video for the session here. I finished the day off with briefly going to the Tomitribe party and chatting with a few old friends.Wednesday: After a hectic few days I was beginning to feel a bit tired and thought I'd rest a bit the morning and catch up with email before my next session. I arrived at JavaOne shortly before lunch and delivered my next talk in the afternoon with Steve Millidge. This is one of my newest talks titled "Down-to-Earth Microservices with Java EE". The talk has two aims. The first is to try to do the right thing in explaining what microservices really are, what practical value they offer for most of us and when you should consider them (or not). The second aim is to demonstrate why Java EE makes perfect natural sense for developing sensible real world microservices, so called "monoliths" and everything in between. I also briefly explore the work that some parts of the Java EE community is doing to support what I lovingly call "microservices Nirvana" (spoiler: I don't think most of us can or need to achieve this Nirvana state). The slide deck for this talk is below (click here if you can't see the embedded slide deck): Down-to-Earth Microservices with Java EE from Reza Rahman I've done this talk a few times already. It is clearly popular, on the mark and well received - even with what I have traditionally observed to be a hostile audience. Unsurprisingly the talk was a full house and went well at JavaOne as well.You can view the video of the talk here.Thursday: Thursday was the last day of JavaOne 2015. In the morning I delivered one of my newer talks titled "Reactive Java EE - Let Me Count the Ways!". It aligns Java with core Reactive Programming principles. Though many people don't realize it, Java EE has long had very good support for asynchronous, event-driven, non-blocking scalable systems. This includes features and APIs like JMS, Message Driven Beans, Asynchronous Session Beans, CDI events/observers, asynchronous Servlets/NIO, server/client side JAX-RS and the Java EE concurrency utilities. These features can be used in a highly Reactive fashion especially in conjunction with Java SE 8 lambdas, streams and CompletableFuture. The slides for the talk are here (click here if you can't see the embedded slides):

JavaOne 2015 San Francisco was held October 25-29. I am proud to say this is my ninth JavaOne as an attendee, my seventh one as a speaker, my fourth one as an Oracle employee, my third one as a member...

Devoxx Poland 2015 Trip Report

Devoxx Poland was held on June 22-25 in historic Krakow. This was strictly technically speaking the first ever Devoxx Poland but in reality it is simply a re-branding of the highly successful 33rd Degree conference that I have spoken at in the past. I was truly honored to be invited to speak here - this is one of the largest and most prestigious Polish developer conferences. The conference was completely sold out and chock full of world class speakers/content. Speakers included Adam Bien, Venkat Subramaniam, Ted Neward and Pratik Patel. Topics included Java SE, Java EE, HTML5, JavaScript, DevOps, architecture, methodology, NoSQL and cloud.I started the conference with our flagship talk for this year titled "What's Coming in Java EE 8". The talk covers the possibilities for Java EE 8 such as HTTP 2/Servlet 4, Server-Sent Events (SSE), a new standard action-oriented web framework, security simplification, even better JSON support, CDI 2, platform-wide CDI alignment, more pruning, JCache, JMS.next() and Java SE 8 alignment. I also cover Adopt-a-JSR. The slides for the talk are here (click here if you can't see the embedded slide deck): What's Coming in Java EE 8 from Reza Rahman Do note that I've added detailed speaker notes available to you in the downloadable PowerPoint deck. This means that you could deliver the talk yourself if you were so inclined :-). This talk was well attended with some excellent Q & A afterwards. I connected with a potential contributor to the Java EE 8 security specification after the talk.In the afternoon I delivered my very popular talk on aligning Java EE 7 with the HTML 5/JavaScript Rich Client landscape. I use AngularJS for my demo but the concepts can apply to any JavaScript (or even native mobile) front-end using a Java EE 7 back-end. This session was a full house with very good feedback afterwards. The slide deck for the talk is posted below (click here if you can't see the embedded slide deck): JavaScript/HTML5 Rich Clients Using Java EE 7 from Reza Rahman One of the goals of this talk is actually to give you the starter code for exploring this sort of architecture. The demo code is posted on GitHub: https://github.com/m-reza-rahman/javaee-javascript. Do give me a shout if you need help getting the demo up and running but it should be very straightforward. Later in the afternoon there were interesting talks on JCache as well as WildFly 9.The second day was pretty light for me with just a fifteen-minute lightning talk and an after-hours Birds-of-a-Feather session. Both were on the same seldom covered but very critical topic - the JCP and Adopt-a-JSR. This is essentially an updated version of a talk I'd developed years past. The talk covers the basics of what the JCP is, how it works and how ordinary developers can participate especially in Java EE 8 JSRs via Adopt-a-JSR. Both the lighting talk and the BoF were reasonably attended and I got some excellent follow-up afterwards including potential new participants in the JCP and Adopt-a-JSR. The slide deck is below, I used the same deck for both the lighting talk and BoF (please click here if you can't see the embedded slide deck): JCP, Adopt-a-JSR and You from Reza Rahman Please don't hesitate to reach out if you have any questions at all on this vital topic. Like all my talks the slide deck source is posted publicly for you to use.I did not speak on the last day of the main conference but attended a vital talk on microservices and Java EE by Adam Bien. Unsurprisingly Adam's session was packed, well-received and generated great discussion afterwards.The part that really took me by surprise was how much Adam and my views coincide with regards to microservices and Java EE. Although we've never discussed the topic, have very different presentation styles and focus, both of our talks on microservices and Java EE deliver essentially the same core message. I delivered my talk on the topic shortly after Devoxx Poland at UberConf (trip report coming soon). My slide deck is posted below for you to take a look at (click here if you are having trouble viewing the embedded slide deck). Down-to-Earth Microservices with Java EE from Reza Rahman After the end of the main conference I ran two separate hands-on workshops on Thursday. In the morning I ran the official Java EE 7 Hands-on-Lab. The lab was a complete full house with great comments afterwards. It has been my goal to make the lab as much of a smooth experience as possible. I must say I think I have polished the lab enough to accomplish this goal. My next challenge is to either run the lab remotely or help someone else run it entirely on their own. If you are interested in exploring either of this, I will be delighted if you reach out :-).The openly available hands-on lab is actually a very good resource for getting your hands dirty with Java EE 7. The entire lab is neatly scripted into step-by-step instructions and seeded with some starter code as to be largely self-directed and self-paced. The idea is that anyone should be able to complete the lab by themselves or even lead the lab in their own organizations. I've included a starter guide of sorts for anyone wanting to run the lab themselves. As time permits my next step is to create a starter video.In the afternoon I ran a hands-on workshop on JMS 2 titled "Down-and-Dirty with JMS 2". This session was packed as well with folks staying over from the Java EE 7 workshop. This was the first time I attempted the JMS 2 workshop and it went surprisingly smoothly (in fact it did not result in a single change to the lab). This is very good news as I am planning to deliver the same workshop at JavaOne. The goal of the workshop is to give attendees some first-hand experience with the primary changes in JMS 2. In the first hour or so I do a brief presentation overviewing JMS 2 and go over the JMS 2 Javadocs. The rest of the time attendees actually write JMS 2 code mostly by themselves. There was some pretty good interaction and Q&A throughout the workshop. The slides I use are available on SlideShare (click here if you can't see the embedded slide deck). JMS.Next(): JMS 2.0 and Beyond from Reza Rahman The lab materials are hosted on GitHub for anyone to use. The lab uses NetBeans 8, GlassFish 4 and Arquillian. I've deliberately designed the lab materials to be fairly self-guided so you can definitely use the lab materials on your own (or perhaps even run the lab in your own company/JUG) . You are always welcome to reach out to me when needed. In the lab you'll basically be putting in code to finish a set of JUnit tests using JMS 2, starting from incomplete code with comments on what to do (don't worry, a completed solution is also posted :-)).Fortunately the trip to Poland wasn't all work and no fun. I had an opportunity to quickly visit a few of the notable sights in historic Krakow including the main square, Wawel castle and the Wieliczka salt mine. The salt mine was particularly striking. I took both the highly sanitized museum-like tour as well as a far less popular rugged, properly-geared guided tour much closer to the experience of visiting a realistic 19th century mine. It'll be easy to spot the difference in the pictures below (click here if you can't see the embedded slideshow). All in all this was a great first Devoxx Poland and another productive as well as fun trip to the country.

Devoxx Poland was held on June 22-25 in historic Krakow. This was strictly technically speaking the first ever Devoxx Poland but in reality it is simply a re-branding of the highly successful...

Chicago Coder Conference 2015 Trip Report

The Chicago Coder Conference 2015 was held on May 14-15. The conference is locally organized by the community including the Chicago JUG, which is why it was important for us to support the event. If you are a Chicago based developer, you should definitely consider the event. The event is somewhat Java leaning but also has great presence from the web, .NET, database, etc communities.I started the conference with a talk on JMS 2. Besides covering JMS 2, I've also started to roll in some of the possibilities for JMS 2.1. The slides for the talk are posted below (click here if you can't see the embedded slide deck): What’s New in Java Message Service 2 from Reza Rahman The talk was well attended and I got some very good questions afterwards. My second talk was my very popular talk on aligning Java EE 7 with the HTML 5/JavaScript Rich Client landscape. I use AngularJS for my demo but the concepts can apply to any JavaScript (or even native mobile) front-end using a Java EE 7 back-end. This session was a full house with very good feedback afterwards. The slide deck for the talk is posted below (click here if you can't see the embedded slide deck): JavaScript/HTML5 Rich Clients Using Java EE 7 from Reza Rahman One of the goals of this talk is actually to give you the starter code for exploring this sort of architecture. The demo code is posted on GitHub: https://github.com/m-reza-rahman/javaee-javascript. Do give me a shout if you need help getting the demo up and running but it should be very straightforward.I am very grateful to have some excellent support from Chicago based Java EE advocate Josh Juneau at the conference. He presented a very good talk covering what's coming in Java EE 8. Normally this is a talk that our team winds up presenting at conferences but it is always far better if the community can help us get the word out just as Josh did at the Chicago Coder Conference. If you wanted to do the same, for example at your JUG, I will be happy to get you any support that you need. That is the reason we have the source PPT with detailed speaker notes posted on SlideShare.Josh's slide deck is posted below (click here if you can't see the embedded slide deck). As you can see Josh made the content his own, as I would expect most folks in the community to do. Java EE 8: On the Horizon from Josh Juneau Josh's talk was well attended and he had good feedback on his talk. I thanked him for doing the talk on behalf of the Java EE community and certainly our team.Overall this was very good for still a fledgling conference. I would urge you to include it in your radar as a speaker or attendee.

The Chicago Coder Conference 2015 was held on May 14-15. The conference is locally organized by the community including the Chicago JUG, which is why it was important for us to support the event. If...

JavaOne 2015 Java EE Track Content Finalized (A Detailed Preview)

I am very pleased to share with you that the JavaOne 2015 content is now fully finalized and published. In this brief but detail-rich blog entry I want to tell you a little bit about the Java EE content. As a reminder, JavaOne 2015 is going to be held on October 25–29 in San Francisco and you can register here.Thank You, Regrets and Being PersistentFirst and foremost I want to thank everyone that took the time to submit carefully crafted proposals to the Java EE track. Your passion and dedication has helped us construct a very strong offering for the community at large. It was a privilege to review all your sessions. JavaOne is a key part of the global Java community far beyond the walls of Oracle and all of you are a large part of keeping it successful. This year we are proud to say we have been able to minimize Oracle speakers again in favor of folks from the community as well as real world stories from your fellow Java EE users.I want to especially thank the folks that did not get sessions accepted, I ask that you don't get discouraged and I hope that you still consider coming to JavaOne. Not getting a session accepted doesn't mean your proposal wasn't great - it simply means the track was fortunate enough to have submissions this year that perhaps were a better fit in one way or the another. It is all the more reason to further sharpen your proposal and try again next year.Some Key ContentFollowing are some of the key Java EE sessions that got accepted, broken down by some useful but arbitrary categories. The full content catalog is available here. You should take a look at the catalog and perhaps book your sessions before they fill up.Java EE 8: One of the unique value propositions for JavaOne is that it is the best place to learn about what is ahead in terms of standard Java technologies right from the source - the spec leads themselves. We were able to put together a number of such sessions. You should take advantage of these sessions not just to stay informed but to engage.Java EE 8 Work in ProgressServlet 4.0: HTTP/2 and Reactive Programming in Java EE 8Finally, the Java EE Security APICDI 2.0: What’s in the Works?What’s Coming in JMS 2.1Introduction to MVC 1.0What’s Next for JAX-RS 2.1?What’s New in the Java API for JSON Processing?What’s New in the Java Persistence APIJSF 2.3: Continued Return on Investment with Incremental InnovationWhat’s New in Java API for JSON BindingNew Java EE Management APIJCache 2.0: Where Do We Go from Here?Best Practices/Design Patterns: Beyond learning Java EE APIs, it is critically important to understand how to effectively apply them in real life applications, which is where best practices and design patterns come in.Down-to-Earth Microservices with Java EEFrom Macro to Micro(Services) and Back: Onstage Hacking with Java EE 7Refactor Your Java EE Application with Microservices and ContainersThinking Beyond ORM in JPAJava SE 8 for Java EE DevelopersHigh-Performance Java EE with JCache and CDIDocker and Kubernetes Recipes for Java EE DevelopersReactive Java EE: Let Me Count the Ways!Java EE Revisits GoF Design PatternsIntegrating JSF and HTML 5Real World Adoption Stories: As we grow the Java EE community it is more and more important to highlight adoption stories, case studies and migrations from other technologies. Last year was very good in this regard and I am happy to say this year is even better. In fact there were a number of such submissions that we could not accept this year that we hope will be resubmitted in the coming years.Java EE in Practice at Lufthansa Industry SolutionsJava EE 7 and Java SE 8 Adoption at the United NationsPenn State: Java EE 7 in the Very Real World of Higher EducationCashless 3.0: Java EE 7 Proves Effective for Mission-Critical E-Payment SystemsMigrating to TomEE and Java EE from Tomcat: A Success StoryInnovating Democracy with Java EE and Open SourceTales of Migration from Java EE 5 to 7The Java EE Ecosystem: The ecosystem that builds upon Java EE APIs is critically important in keeping the platform strong. This year was far better in this regard than previous years. We always hope to highlight such content and wish there were more submissions along these lines.Apache DeltaSpike, the CDI ToolboxBeing Productive with JPA, Using DeltaSpike Data and QueryDSLJava EE 7 Applications as a Microservice with WildFly SwarmAngularBeans: A Modern Real-Time Java EE/CDI Back End for AngularJSRiding a Camel Through the JEEharaWhat's the Best IDE for Java EE?Fostering Java EE Community SpeakersOne of the key reasons attendees come to JavaOne is to hear from Oracle's Java technologists. Unsurprisingly the most well attended sessions tend to be led by Oracle speakers. This year we have the usual strong showing of Oracle speakers: David Delabassee, Geertjan Wielenga, Bill Shannon, Linda Demichiel, Ed Burns, Manfred Riem, Santiago Pericasgeertsen, Nigel Deakin, Heather Vancura and Mark Heckler just to mention a few. In order to continue to grow the Java EE community however it is vitally important to foster a greater number of community speakers that advocate Java EE. While this has gotten much better over the years, we need to do more at JavaOne to encourage speakers to take up Java EE as a topic. These are just some of the community speakers that we are very proud to host this year:Adam Bien (JavaOne Rock Star, Java EE author, Java Champion, speaker, consultant)David Blevins (JavaOne Rock Star, Java Champion, Apache TomEE project lead)Arun Gupta (JavaOne Rock Star, Java Champion, Java EE advocate, author, blogger, speaker, Director of Developer Advocacy, Red Hat)Patrycja Wegrzynowicz (CTO, Java EE researcher)Antoine Sabot-Durand (CDI specification lead, Red Hat)Kito Mann (Java EE author, speaker, consultant)Murat Yener (Java EE author, speaker, Java Champion)Peter Pilgrim (Java EE author, Java Champion, speaker, consultant)Steve Millidge (London GlassFish User Group, C2B2 Consulting, Paraya)Ivar Grimstad (Java EE advocate, JCP expert, blogger, open source hacker, consultant)Ryan Cuprak (JavaOne Rock Star, Java EE author, speaker and JUG leader)David Heffelfinger (Java EE advocate, author, blogger, consultant)Aslak Knutsen (Arquillian project lead, Red Hat)Mohamed Taman (Java EE advocate, Java Champion, Duke's Choice Award Winner, JUG leader, consultant)Roberto Cortez (Java EE advocate, JUG leader, blogger, open source hacker)Alex Soto (Java EE advocate, speaker, blogger, open source hacker)Matti Tahvonen (Developer Advocate, Vaadin)I hope to see you all at JavaOne. In the next coming weeks and months we will be sharing more details on the Java EE track, content and speakers at JavaOne. Lastly having been on the other side of the fence I know as much as you might come to JavaOne, it might not be a practical reality for you for a variety of good reasons. I want to remind you that we make a point to make JavaOne content openly available to all. That being said I want to tell you that you should make the pilgrimage to JavaOne at least once as a Java developer. I have attended it a total of eight times, most often paying out of my own pocket as a self-employed consultant.

I am very pleased to share with you that the JavaOne 2015 content is now fully finalized and published. In this brief but detail-rich blog entry I want to tell you a little bit about the Java...

Voxxed Days Istanbul 2015 Trip Report

Voxxed Days Istanbul 2015 was held on May 9th. It might seem surprising but this was the first large scale independent Java focused conference ever to be held in Turkey. It was a deliberately modest but solid first step with gradual future growth in mind. Though the event was modest in scope it was certainly not in terms of spirit and enthusiasm. It attracted some of the best and brightest in the Java ecosystem including Gavin King and Arun Gupta not to mention local Java luminaries like Cagatay Civici (PrimeFaces lead) and Murat Yener (Java Champion). In fact I am proud to say Cagatay and Murat have been good personal friends. Topics included Java SE, mobile, NoSQL, methodology and of course Java EE. Indeed Java EE had a fairly strong presence at the event. I feel very privileged to be invited to this inaugural event. While in Turkey I am very happy to say I also spoke at two of the largest Java user groups in Turkey - the Ankara JUG as well as the Istanbul JUG. It was very gracious of the Voxxed Days Istanbul organizers to help facilitate meetings with both JUGs.I started my Turkey tour in the political capital of Ankara. True to legendary Turkish hospitality my friend Cagatay picked me up promptly at the airport and never left me alone in Ankara until it was time to head to Istanbul. I spoke at the Ankara JUG on the 5th, delivering a two hour workshop titled "Java EE 7 in Action" that ran more towards three hours. It was a fully packed house with many kindly staying to the very end. For those unaware the Ankara JUG is the most active in Turkey thanks to the likes of Cagatay and Java Champion Mert Caliskan. The workshop is something I've successfully delivered in the past. It uses Cargo Tracker but focuses on Java EE 7 usage instead of DDD and Java EE generally. I overview Java EE 7 at a high level, go through each API change and demo some selected features using Cargo Tracker. For each demo I explain the use case for the Java EE 7 feature in use and show actual running code. Instead of taking yet another dreary flight I took a very comfortable bus ride from Ankara to Istanbul. I could have also opted for high speed rail but the bus offers a more relaxed experience, picturesque views of the mountainous Anatolian county side and a cool rural meal stop. Just as Cagatay was my kind host in Ankara, Murat Yener, his wife Nilay Yener, Salim Kayabasi and Hasan Keklik were my gracious hosts in Istanbul. On the 7th I delivered the "Java EE 7 in Action" workshop again at the Istanbul JUG to a full house at an excellent ultra-modern venue (thanks Istanbul JUG and Voxxed Days Istanbul lead organizer Rahman Usta for the well-taken pictures).Voxxed Days Istanbul itself started with a bang celebrating the twenty year anniversary of Java. This was my first of multiple such celebrations. I was honored to be invited onstage to cut the cake featuring Duke alongside my former colleague Arun Gupta, Voxxed Days organizers, Stephan Janssen, Murat and many others. After the keynote and Java birthday celebrations I delivered a very important short talk titled "What's New in WebLogic 12.1.3 and Beyond". The talk essentially covers the very important hard work that we have already done in WebLogic 12.1.3 including supporting some of the most critical Java EE 7 APIs as well as the fundamental changes coming soon in WebLogic 12.2.1 including full Java EE 7 platform support. Below is the slide deck for the talk (click here if you can't see the embedded slide deck.): What's New in WebLogic 12.1.3 and Beyond from Oracle I am very glad the Voxxed Days Istanbul organizers were enlightened enough to allow this talk. I wish more events would recognizer the distinction between selling and informing current/prospective users about important technological changes that they can use. As a result, it leaves the industry at large dangerously ignorant of what is really going on with key bits of mission critical industry infrastructure be it WebLogic, WebSphere or JBoss EAP. Likely largely because of these dynamics the session was relatively sparse and that is very unfortunate indeed. Concurrent to my talk Arun Gupta delivered a very cool session on refactoring existing Java EE applications into Microservices using Docker. After my time slot Cagatay delivered a talk on JSF and PrimeFaces.After lunch I delivered our main driving talk for this year titled "What's Coming in Java EE 8" in the main keynote hall. The talk covers the possibilities for Java EE 8 such as HTTP 2/Servlet 4, Server-Sent Events (SSE), a new standard action-oriented web framework, security simplification, REST management/monitoring, even better JSON support, CDI 2, platform-wide CDI alignment, more pruning, JCache, JMS.next() and Java SE 8 alignment. I also cover Adopt-a-JSR. The slides for the talk are here (click here if you can't see the embedded slide deck): What's Coming in Java EE 8 from Reza Rahman Do note that I've added detailed speaker notes available to you in the downloadable PowerPoint deck. This means that you could deliver the talk yourself if you were so inclined. The talk was well attended and I got some good feedback afterwards. The Istanbul JUG is an active Java EE 8 adopter via Adopt-a-JSR. After my talk there was a good talk on the latest changes in WildFly.My last talk for the event was my very popular talk on Cargo Tracker/Java EE + DDD. This talk basically overviews DDD and describes how DDD maps to Java EE using code examples/demos from the Cargo Tracker Java EE Blue Prints project. Below is the slide deck for the talk (click here if you can't see the embedded slides): Applied Domain-Driven Design Blue Prints for Java EE from Reza RahmanThe talk went well and was a full house in a smaller breakout room. I got some excellent questions throughout the session as well as afterwards. Arun Gupta used the last session slot to deliver another talk on Java EE, Docker and Kubernetes.As tough as a longer multi-destination trip like this can be, one upside is the fact that one can use their personal time to explore one's destination. Thanks to Cagatay, Murat, Nilay, Salim and Hasan I was able to do just that in both Ankara and Istanbul. As unbelievable as this may sound I think I was able to cover the vast majority of the sights in both cites in the short down time that I had including the Kemal Ataturk memorial, Kocatepe mosque, Ankara castle, the blue mosque, Hagia Sophia, Topkapi palace, Basilica Cistern, Suleymaniye mosque, the spice bazaar and the grand bazaar. It's not difficult to see the elegant layers of history in the cradle of so many of the world's major civilizations (that's the Hittite, Byzantine and Ottoman empires for the historically illiterate among you). Just take a look at the pictures below (click here if you can't see the embedded slideshow):While in Istanbul I was also able to check out underground Turkish heavy metal in the social hub of the city. Cagatay, Murat, Nilay and others from the event came with me so I wasn't on my own for a change (Cagatay and Murat are both metalheads like me). You should do the same if you get a chance to really get a glimpse of the Janus-like heart of Istanbul - with one facet steeped in history and tradition while the other enthusiastically embracing modernity at the same time...All in all my trip to Turkey was a thorough pleasure and I look forward to going back again soon enough.

Voxxed Days Istanbul 2015 was held on May 9th. It might seem surprising but this was the first large scale independent Java focused conference ever to be held in Turkey. It was a deliberately modest...

Great Indian Developer Summit (GIDS) 2015 Trip Report

The Great Indian Developer Summit (GIDS) 2015 was held on April 21-24 in Bangalore, with a follow-on GIDS.Mini held on April 25 in Hyderabad. GIDS is very easily the largest and most significant developer event in South Asia. Perhaps reflecting global demographic shifts in software development, GIDS may also now have become one of the largest developer conferences in the world. This was yet another highly successful year for the event. As usual it drew some of the best and brightest minds in Java and beyond. It was truly a privilege to be able to speak at the event and I was even more fortunate to have had a number of Java EE sessions there. While in India I am very happy to say I also spoke at a couple of entirely community driven JUG events at the Madras JUG (Chennai) and the Hyderabad JUG before and after GIDS. It was very gracious of GIDS to fully support my engagement with both JUGs.I started my India tour in Chennai with the Madras JUG on April 21st. They were very kind to warmly invite me and organize a day-long event. It was a very brave, passionate effort for the newly minted JUG with key JUG members speaking. You can take a look at the full agenda here.I started off the day with my talk titled "Why Open Standards and Java/EE Matter". Designed to be a keynote, the talk covers a very important topic that I think there's far too little material out there on. It talks about the core value proposition for standards like Java EE in maintaining a healthy competitive marketplace. It differentiates open technical standards from so called "de-facto standards" and explores the relationship between open source and open standards. I also talk about what the community can do to make standards really work. The talk taps into one of my fields of study that I never pursued in my career and few developers really seem to have even a basic grasp of - economic analysis. This is a talk I've been waiting to give for many years and I am glad I was finally able to start presenting it. To some degree it embodies many of the core motivations that keep me doing what I do to try to help move the Java EE standard forward. The slides for the talk are here (click here if you can't see the embedded slide deck): Why Open Standards and Java/EE Matter (to You) from Reza Rahman After lunch I delivered our main driving talk for this year titled "What's Coming in Java EE 8". The talk covers the possibilities for Java EE 8 such as HTTP 2/Servlet 4, Server-Sent Events (SSE), a new standard action-oriented web framework, security simplification, REST management/monitoring, even better JSON support, CDI 2, platform-wide CDI alignment, more pruning, JCache, JMS.next() and Java SE 8 alignment. I also cover Adopt-a-JSR. The slides for the talk are here (click here if you can't see the embedded slide deck): What's Coming in Java EE 8 from Reza Rahman Do note that I've added detailed speaker notes available to you in the downloadable PowerPoint deck. This means that you could deliver the talk yourself if you were so inclined.I finished the day giving a very preliminary, impromptu slide-only version of one of my newest talks titled "Down-to-Earth Microservices with Java EE". The talk has two aims. The first is to try to do the right thing in explaining what microservices really are and when you should consider them (or not). The second aim is to demonstrate why Java EE makes perfect natural sense for developing sensible microservices, so called "monoliths" and everything in between. I also briefly explore the work that some parts of the Java EE community is doing to support what I'll lovingly call "microservices Nirvana" (spoiler: I don't think most of us can or need to achieve this Nirvana state). The slide deck for this talk is below (click here if you can't see the embedded slide deck): Down-to-Earth Microservices with Java EE from Reza Rahman I really enjoyed meeting all the good folks at the Madras JUG and hope to speak there again as soon as opportunity permits.My next stop on the India trip was to Bangalore for GIDS.Java on April 23rd. I chose to take a bus ride from Chennai to Bangalore instead of yet another dreary flight. I definitely recommend it as a way to get a glimpse of the real Indian countryside though one should expect this to be a rugged, down-to-earth experience not comparable to a flight that would be out of the budget of most of the Indian populous. I started GIDS in the morning with my very popular talk on Cargo Tracker/Java EE + DDD. This talk basically overviews DDD and describes how DDD maps to Java EE using code examples/demos from the Cargo Tracker Java EE Blue Prints project. Below is the slide deck for the talk (click here if you can't see the embedded slides): Applied Domain-Driven Design Blue Prints for Java EE from Reza RahmanThe talk went well and was a complete full house. I got some excellent questions throughout the session as well as afterwards. In the afternoon I delivered one of my latest talks titled "Reactive Java EE - Let Me Count the Ways!". It aligns Java EE with core Reactive Programming principles. Though many people don't realize it, Java EE has long had very good support for asynchronous, event-driven, non-blocking scalable systems. This includes features and APIs like JMS, Message Driven Beans, asynchronous Session Beans, CDI events/observers, asynchronous Servlets/NIO, server/client side JAX-RS, WebSocket asynchronous support and the Java EE concurrency utilities. These features can be used in a highly Reactive fashion especially in conjunction with Java SE 8 lambdas, streams and CompletableFuture. The slides for the talk are here (click here if you can't see the embedded slides): Reactive Java EE - Let Me Count the Ways! from Reza RahmanThis talk was also packed and very well received - this has been true basically every time I have presented it so far. I finished off GIDS.Java with another one of my very popular (but older) talks on aligning Java EE 7 with the HTML 5/JavaScript Rich Client landscape. I use AngularJS for my demo but the concepts can apply to any JavaScript (or even native mobile) front-end using a Java EE 7 back-end. This session was also a full house with very good feedback afterwards. The slide deck for the talk is posted below (click here if you can't see the embedded slide deck): JavaScript/HTML5 Rich Clients Using Java EE 7 from Reza Rahman One of the goals of this talk is actually to give you the starter code for exploring this sort of architecture. The demo code is posted on GitHub: https://github.com/m-reza-rahman/javaee-javascript. Do give me a shout if you need help getting the demo up and running but it should be very straightforward.My next stop was Hyderabad for GIDS.Mini and Hyderabad JUG. I took another cool bus ride from Bangalore to Hyderabad. GIDS.Mini is essentially a compacted version of the four-day event in Bangalore. I repeated the JavaScript/HTML 5 + Java EE talk for GIDS.Mini. Given the more compact form factor, a smaller crowd and the less Java centric audience the attendance was moderate as compared with Bangalore.The day after GIDS.Mini the Hyderabad JUG hosted the official Java EE 7 Hands-on-Lab as a full day workshop. Under the very capable leadership of Rajmahendra the JUG is the most mature and most active in India. The event was hosted in the Oracle Hyderabad offices. The workshop was a full house with excellent feedback throughout and afterwards (just check out the very kind comments on the event page). It has been my goal to make the lab as much of a smooth experience as possible. I must say I think I have finally polished the lab enough to accomplish this goal. My next challenge is to either run the lab remotely or help someone else run it entirely on their own. If you are interested in exploring either of this, I will be delighted if you reach out :-).The openly available hands-on lab is actually a very good resource for getting your hands dirty with Java EE 7. The entire lab is neatly scripted into step-by-step instructions and seeded with some starter code as to be largely self-directed and self-paced. The idea is that anyone should be able to complete the lab by themselves or even lead the lab in their own organizations. I've now even added a starter guide of sorts for anyone wanting to run the lab themselves. As time permits my next step is to create a starter video (a great suggestion by Rajmahendra!).I am especially grateful to Lars (featured on the top-left photo) and Rajmahendra (featured on the bottom-left photo) for helping run the lab all day! This was perhaps the largest and most successful execution of the lab that I have seen so far and I look forward to returning to the JUG again as soon as opportunity permits.As tough as a longer multi-destination trip like this can be, one upside is the fact that one can use their personal time to explore your destination. I fully utilized my downtime between Chennai, Bangalore and Hyderabad to explore sights like the ancient UNESCO World Heritage stone temples at Mahabalipuram, Valluvar Kottam in Chennai, Tipu Sultan's palace in Bangalore as well as Golkonda Fort, Charminar and Qutab Shahi tombs in Hyderabad. This was my second time to Bangalore and Chennai but for me India will seemingly always remain the land of many wonders. To see what I mean, just check out the album below (click here if you can't see the embedded slideshow):I must also say from the moment my plane landed to the moment it took off, India proved the land of warmhearted, kind, hospitable people. I don't mean just the good folks in the Java community but literally every one of the many people I encountered in India. Indians may still have many things that they must do without but Indians are not short of pride, hope, civility and hospitality. All in all my trip to India was a thorough pleasure and I look forward to going back again soon.

The Great Indian Developer Summit (GIDS) 2015 was held on April 21-24 in Bangalore, with a follow-on GIDS.Mini held on April 25 in Hyderabad. GIDS is very easily the largest and most...

Java Day Tokyo 2015 Trip Report

Java Day Tokyo 2015 was held on April 8th. Organized by Oracle Japan, it is the largest Java developer event in the country. Indeed it is really a replacement to JavaOne Japan. This was another highly successful year for the event with a fully sold out venue packed with youthful, energetic developers. Speakers included Steve Chin, Simon Ritter, Cameron Purdy and Linda DeMichiel. Topics included Java SE, Java EE, IoT and cloud. Java EE always has a strong showing at the event and this year was no exception.Cameron Purdy, Vice President of Development at Oracle responsible for Java EE and WebLogic, spoke in the keynote and provided a state of the union for Java EE 7 and Java EE 8. After the keynote Java EE specification lead Linda DeMichiel delivered a detailed status update on Java EE 8. Concurrent to technical sessions the Japanese Java EE team ran the official Java EE 7 hands-on-lab as a half-day workshop. After Linda's talk Japanese Java EE evangelist Yoshio Terada did a "Java EE 7 Recipes" talk. It is very similar to the popular talk by US based Java EE advocate Josh Juneau (the linked video is from his well received talk at JavaOne 2014). Concurrent to this talk Oracle University Japan ran a very basic tutorial session on JSF 2.In the next session slot I delivered my very popular talk on Cargo Tracker/Java EE + DDD. This talk basically overviews DDD and describes how DDD maps to Java EE using code examples/demos from the Cargo Tracker Java EE Blue Prints project. Below is the slide deck for the talk (click here if you can't see the embedded slides): Applied Domain-Driven Design Blue Prints for Java EE from Reza RahmanThe talk was packed and I got some excellent feedback from a few folks afterwards. Concurrent to my talk there were other Java EE, JSF talks delivered by Japanese speakers including a very basic JPA 2 tutorial by Oracle University Japan. Following my talk Linda offered her views for the way forward in terms of continued alignment of the CDI and EJB programming models.I finished off the conference with one of my latest talks titled "Reactive Java EE - Let Me Count the Ways!". It aligns Java EE with core Reactive Programming principles. Though many people don't realize it, Java EE has long had very good support for asynchronous, event-driven, non-blocking scalable systems. This includes features and APIs like JMS, Message Driven Beans, Asynchronous Session Beans, CDI events/observers, asynchronous Servlets/NIO, server/client side JAX-RS, WebSocket asynchronous support and the Java EE concurrency utilities. These features can be used in a highly Reactive fashion especially in conjunction with Java SE 8 lambdas, streams and CompletableFuture. The slides for the talk are here (click here if you can't see the embedded slides):

Java Day Tokyo 2015 was held on April 8th. Organized by Oracle Japan, it is the largest Java developer event in the country. Indeed it is really a replacement to JavaOne Japan. This was another highly...

DevNexus 2015 Trip Report

DevNexus 2015 was held in historic Atlanta on March 10-12. For those of you not familiar with it, DevNexus is the most significant Java centric (but not Java focused) conference in the South Eastern US and now perhaps even at a national level. It was started by JBoss Java Champion Burr Sutter and organized by the Atlanta JUG (currently lead by Vincent Mayers, Gunnar Hillert, Pratik Patel, et al). I guess at this point I am somewhat of a DevNexus veteran myself :-). As usual DevNexus attracted a bevy of world class speakers including Stephen Chin, Jim Weaver, Ed Burns, Venkat Subramaniam, Yakov Fain, Kito Mann, Markus Eisele, Raju Gandhi, Freddy Guime, Max Katz, Jason Porter and so on. Topics included Java SE, NoSQL, mobile, cloud, Docker, HTML5/JavaScript and of course Java EE. Indeed I think this year Java EE made a very strong showing at DevNexus.I started the conference by running the Java EE 7 Hands-on Lab as a whole day workshop. The workshop was a full house with excellent feedback throughout and afterwards. It has been my goal to make the lab as much of a smooth experience as possible. I must say I think I have finally polished the lab enough to accomplish this goal. In fact I confirmed this again at the Hyderabad JUG (trip report coming soon). My next challenge is to either run the lab remotely or help someone else run it entirely on their own. If you are interested in exploring either of this, I will be delighted if you reach out :-). I am very grateful to my Oracle colleagues Vijay Nair and Ed Burns for helping run the lab the whole day!The openly available hands-on lab is actually a very good resource for getting your hands dirty with Java EE 7. The entire lab is neatly scripted into step-by-step instructions and seeded with some starter code as to be largely self-directed and self-paced. The idea is that anyone should be able to complete the lab by themselves or even lead the lab in their own organizations. I've now even added a starter guide of sorts for anyone wanting to run the lab themselves. As time permits my next step is to create a starter video (a great suggestion by Hyderabad JUG leader Rajmahendra!).I started the next morning with our flagship talk for this year titled "What's Coming in Java EE 8". The talk covers the possibilities for Java EE 8 such as HTTP 2/Servlet 4, Server-Sent Events (SSE), a new standard action-oriented web framework, security simplification, REST management/monitoring, even better JSON support, CDI 2, platform-wide CDI alignment, more pruning, JCache, JMS.next() and Java SE 8 alignment. I also cover Adopt-a-JSR. The slides for the talk are here: What's Coming in Java EE 8 from Reza Rahman Do note that I've now added detailed speaker notes available to you in the downloadable PowerPoint deck. This means that you could deliver the talk yourself if you were so inclined :-). This talk is usually packed but this time the attendance was relatively light (it was scheduled in a smaller room so that might have had something to do with it). I did have some interesting discussions with attendees including a very solid Java EE adopter from AutoTrader. He was particularly interested in JSF so I pointed him to Ed and Kito as well as encouraging him to participate in the JSF community.In the afternoon Ed had his HTTP 2/Servlet 4 talk in the same smaller room. I attended the session and it was packed this time. Ed is an excellent speaker and the talk went unsurprisingly very well. HTTP 2 and Servlet 4 is easily the most important part of Java EE 8. In this talk Ed covers the basics of HTTP 2 and how it may surface in Servlet 4 as well as the Java EE ecosystem generally. The slides for the talk are here: HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015 from Edward Burns I am considering adopting the talk as groundwork for getting the word out on HTTP 2, Servlet 4 and Java EE 8 generally.I finished the day with a talk on JMS 2. Besides covering JMS 2, I've also started to roll in some of the possibilities for JMS 2.1. The slides for the talk are posted below: What’s New in Java Message Service 2 from Reza Rahman I finished off the conference with one of my latest talks titled "Reactive Java EE - Let Me Count the Ways!". It aligns Java EE with core Reactive Programming principles. Though many people don't realize it, Java EE has long had very good support for asynchronous, event-driven, non-blocking scalable systems. This includes features and APIs like JMS, Message Driven Beans, Asynchronous Session Beans, CDI events/observers, asynchronous Servlets/NIO, server/client side JAX-RS, WebSocket asynchronous support and the Java EE concurrency utilities. These features can be used in a highly Reactive fashion especially in conjunction with Java SE 8 lambdas, streams and CompletableFuture. The slides for the talk are here:

DevNexus 2015 was held in historic Atlanta on March 10-12. For those of you not familiar with it, DevNexus is the most significant Java centric (but not Java focused) conference in the South...

The Ghosts of Java EE 7 in Production: Past, Present and Future

                            "First they ignore you, then they laugh at you, then they fight you, then you win."                                                                                                                  – Mahatma GandhiFor those unfamiliar the three ghosts analogy comes from the Charles Dickens' classic A Christmas Carol. I hope the real message of the analogy is an entertaining but insightful literary puzzle for you to figure out, not to mention the far less imaginative opening quote largely along the same lines :-).In the past few days I've seen a certain predictable group of folks on the Interwebs feigning concerns over the viability of using Java EE 7 in production. I have to be honest in that I think it is fairly obvious these concerns are more -ahem- opportunistic than sincere or well-intentioned. Nevertheless I think this is a great trigger to discuss something valuable to the Java EE community anyway - Java EE 7 production adoption in the near past, present and near future. In fact to be perfectly honest we have been deliberately covering these themes all along in various ways and foresee a useful purpose in revisiting them frequently going forward far beyond this one blog entry. Being responsible sentinels for the Java EE community has never demanded anything less.The Prelude - Java EE 6 vs Java EE 7Most folks out there seem to hold the Java EE 6 release in high regard. I definitely agree the release was an important turning point for Java EE. While Java EE 7 is not a profound architectural paradigm shift in the way Java EE 5 and Java EE 6 was, it's significance is in the sheer amount of changes it contains. Java EE 7 is very easily the largest set of changes the platform has ever experienced. To boot we try to never make frivolous changes to the platform so each of these changes are all rather important to their respective users. To understand the scale and significance of these changes, you need not look much farther than my Java EE 7 slide deck. It is a very high level talk that I still struggle to fully deliver in 50-60 minutes after delivering it many times.Let that last statement sink in for a moment. How many times have you been to a talk where a very experienced speaker struggles to cover even at a very high level the changes in a single update of any technology? I think that has not been true for a while by a large margin for any technology that tries to position itself as an alternative to Java EE - even if you take into account the total amount of changes in their albeit more frequent releases during an equivalent time period...This has two important ramifications that's pretty much true of any significant open standard. For people that are paying any attention Java EE 7 is a very important update to adopt. If you apply a reasonably objective eye, it's clear many indeed are paying attention, already eagerly adopting Java EE 7 and will continue to do so in the near future. The flip side is that neither producing the standard nor a compatible implementation is a frivolous undertaking. Nonetheless if you apply a reasonably objective eye, it's clear all major implementors are in fact doing their part and will continue to do so in the near future.The Ghost of Java EE 7 in Production PastOne of the most obvious tasks we have at this stage of the life of Java EE is to highlight successful adoption stories prominently and frequently (and yes, that means real world applications deployed to production). We have been doing just that for a long time now through the GlassFish stories blog, The Aquarium and JavaOne. We now have a helping hand in that very important task from none other than key Java EE advocate Adam Bien through his extremely popular blog. A central part of this task is you - Java EE adopters out there in the real world. And you have already stepped up beautifully. JavaOne 2014 was particularly fruitful in this regard enabling us to select a nice set of very well-attended real world Java EE 7 adoption stories.Let that sink in for a second. These were people starting to use Java EE 7 in the real world within a year after it was released as a standard. You can as well and I'll discuss exactly how in a moment. If you want to take a closer look at these folks a great place to start is my former colleague Arun Gupta's very ironically on-point session titled Lessons Learned from Real-World Deployments of Java EE 7, which covers several adoption stories in a single session (click this link if you are having trouble seeing the embedded video):Prolific Java EE blogger Abhishek Gupta did a very nice job summarizing all of the publicly shared Java EE 7 in production stories we have already, including those from Adam's blog. From my vantage point, I know this is merely the tip of the iceberg...The Ghost of Java EE 7 in Production PresentIf the Java EE 7 adoption stories that were submitted during JavaOne 2014 were good, the ones we are reviewing right now for JavaOne 2015 are great. Indeed the difficult choice this years is choosing which adoption stories to turn back - including ones from well-recognized national and global brands! You'll know in a few weeks who we picked if you stay tuned to this blog, the Aquarium or the JavaOne content catalog. For the ones we have to turn back, we will try and find a way to get their stories out to the community. The same applies to you as well. Hopefully this blog entry helps you understand why sharing your story has always been important for all server-side Java developers. Indeed I would encourage you to share your story even if you are using Java EE 6 today and not yet Java EE 7. Just drop me a note - I am not particularly hard to reach :-).This now brings us to the question of what Java EE 7 implementations you have available to you now and in the very near future.Your Platform ChoicesAt the end of the day Java EE is about allowing you to choose between compatible implementations and there are a lot to choose from. A quick look at the official Java EE compatibility page should make it amply clear to an objective eye that Java EE is unique in the degree of implementation choice and vendor-neutrality it allows.For the purposes of brevity let's focus on what I'll very arbitrarily call the "big four" with regards to adopting Java EE 7 in production. I want to be very clear however that this distinction of "big x" is completely meaningless from the perspective of an open standard like Java EE that focuses on choice and the inherent fluid realities in our industry where anyone is a prince today and a pauper tomorrow. That being said I think these "big four" are sufficient for the purposes of this blog entry:GlassFish: GlassFish is the reference implementation for Java EE 7. Consequently is it by definition the first to implement any Java EE version, just as GlassFish 4 was the first to implement Java EE 7. It used to be the case that Sun and Oracle also shipped GlassFish as a commercial product, including support. It is true that we no longer do that. However this does not mean that GlassFish is suddenly merely a toy. We've made it amply clear repeatedly that concerns like usability and security remain important. In fact that was the unequivocal message from our executive panel at JavaOne 2014. That was the whole point of the effort we put behind the GlassFish 4.1 release - after the announcement of the end of the commercial product line. Folks outside Oracle continue to contribute to the GlassFish code base - most notably the excellent Payara team that has long provided third party support for GlassFish. As a matter of irony, most GlassFish users have never paid for the commercial support from Oracle that is now apparently in vogue for some - I guess that is an story for another day...WebLogic: One of the most astute questions posed to the GlassFish event executive panel at JavaOne 2014 was on plans for supporting Java EE 7 in WebLogic. Our executives provided a shockingly candid answer to this question. Oracle's clear goal has been to minimize the time lag between a Java EE release and a fully supported WebLogic release to around half a year, including for Java EE 7 - not to mention Java EE 8.Let that sink in for a second. That means implementing something as sizable as Java EE 7 not once, but twice, virtually concurrently. Only a company like Oracle would have the deep engineering resources to even consider such a goal. Clearly that was not a goal we have met this time, for sound technical and business reasons including the fact that WebLogic has always been far more than just Java EE. Indeed WebLogic is the engine behind Oracle's formidable cloud offering being built out even as we speak, not to mention the basic need of robustly enabling Java EE in the Oracle cloud. I can attest first hand that our engineers do whatever they can every day to meet all these important often competing goals expected of WebLogic including getting Java EE 7 in the hands of WebLogic developers.Thanks to this hard work, WebLogic 12.2.1 with full support for Java EE 7 is slated to be released in just months (the officially sanctioned timeline states calendar year 2015 which means the end of this year at the very latest). To put this in context, this is comparable to the time it required WebLogic to get certified against the much smaller Java EE 6 release!In the meanwhile what we have done is release WebLogic 12.1.3 around JavaOne 2014 which supports some of the most significant Java EE 7 APIs developers ask for. The hard work to do this is not an academic exercise. The clear goal of this work is to allow developers to adopt Java EE 7 APIs as quickly as possible as we continue working hard towards WebLogic 12.2.1. Yet another legitimate pathway WebLogic customers have used successfully is to deploy their Java EE applications to GlassFish 4.x in the interim and then migrate to WebLogic at a later point.WebSphere Liberty Profile: The Liberty Profile is an admirable and very courageous technical feat. It is essentially a modular Java EE application server written from scratch in the past few years. The Liberty team has long been releasing public monthly betas as well as incrementally supporting Java EE 7 APIs through their stable release supported in production. This means that you could start to use Java EE 7 APIs in production using Liberty 8.5.5 just as you can with WebLogic 12.1.3 in addition to starting to use Java EE 7 APIs in development using Liberty betas. Again these efforts are not merely academic - they are intended to get Java EE 7 in the hands of developers are quickly as possible. The Liberty team has now announced that they will release a fully supported completely Java EE 7 compatible version of Liberty on June 26. Just as is the case with WebLogic, the Liberty Java EE 7 release timeline will be comparable to what it was for Java EE 6 even accounting for having to do more work building out on a brand new runtime code base!WildFly/JBoss EAP: WildFly 8 has been fully Java EE 7 certified for more than a year now. In fact similar to GlassFish 4.1, WildFly 8.2 was an interim platform release and the WildFly team is now working on WildFly 9. Similar to the scenario with GlassFish and WebLogic, WildFly is not commercially supported by Red Hat but JBoss EAP is. Our usual suspect Java EE naysayers allude that this must mean WildFly is unfit for using Java EE 7 in production. This ignores two key factors. The first is that it is amply clear the WildFly team is highly responsive to the community, including fixing bugs in a timely fashion. The more important factor is historical context - WildFly is just a renaming of JBoss AS. It is no great secret that there has always been a sizable percentage of JBoss AS users that never paid for JBoss EAP for their production applications. There is little reason to believe that simply a renaming (and that is exactly what WildFly has been thus far) will change that dynamic significantly any time soon. Instead it's more likely a sizable amount of WildFly customers will use it for Java EE 7 applications in production just as they clearly do today. For those that insist on Red Hat commercial support via JBoss EAP, it too is likely only months away. In fact, if EAP is released even within this year (and there is little reason to believe it won't be), the JBoss EAP team would likely beat their timeline for supporting Java EE 6! Lastly, also similar to GlassFish and WebLogic, it has been a common strategy for Red Hat customers to start with JBoss AS (today's WildFly) and then move to a corresponding JBoss EAP version.The Ghost of Java EE 7 in Production FutureI hope you've made it successfully through the sections above to finish our Java EE 7 in production journey through time. If you haven't, this is the section you want to pay the most attention to as it is here that we can take stock of what lies in the future.If you are a reasonably optimistic individual that sees the glass as half-full, it should be clear that you already have quite a few options in terms of using Java EE 7 in production already including but certainly not limited to GlassFish and WildFly as well as WebSphere Liberty in just a few weeks. But let's assume you are a little less of an optimist but not quite a complete pessimist that sees the glass as half empty. You too have several choices in beginning to use Java EE 7 in production - using GlassFish 4.x then switching to WebLogic 12.1.2, using WebLogic 12.1.3 and then switching to WebLogic 12.2.1 or using WildFly and then switching to JBoss EAP. I think that's quite a few ways as long as you have a little bit of will to back it up. Finally, let's assume you are a complete pessimist as our Java EE 7 naysayers seem to insist you should be. For you the future is this: in a few months more and by the end of this year at the very latest you will have no less than half a dozen implementation choices to deploy your Java EE 7 applications to, most from some of the largest technology companies in the world. I hope the pessimist in you can see the fundamental value in that as opposed to being hostage to a single non-standard implementation with one commercial vendor.Putting all of this in slightly broader context, the production use timeline for Java EE 7 is essentially equivalent to that of Java EE 6 for most users - with far more to offer and with the momentum of Java EE 6 behind us and with a clear, transparent long term road map for Java EE 8 ahead of us. As averse as I always am to predicting the future, I feel pretty comfortable to say we are yet to see many, many more folks putting Java EE 7 in production in the near future if the past and present is any indication.As to the perennial naysayers of Java EE, we've already proven them wrong once with Java EE 6. I have no doubt whatsoever we will prove them wrong again with Java EE 7. I am also equally certain they will declare us doomed once again when it comes time for the community to use Java EE 8 for their real world applications and many times on the way there. Where would be the sport of it all if they didn't :-)? JavaOne 2011: Migrating Spring Applications to Java EE 6 from Bert Ertman Please note that any views expressed here are my own only and certainly does not reflect the position of Oracle as a company

                            "First they ignore you, then they laugh at you, then they fight you, then you win."                                                                                         ...

Voxxed Days Algiers 2015 Trip Report

This is the first in a series of long overdue trip reports now that the unofficial global pre-Summer-vacation conference season is finally winding down after a few hectic months. In terms of both chronology and geography I should start with DevNexus 2015, but I am making a deliberate choice to start with Voxxed Days Algiers instead. It's not often I get to feel I was given an opportunity to make a small difference for folks that deserve much better - Voxxed Days Algiers for me was a genuine honor and privilege affording just such a rare sentiment.Voxxed Days Algiers was held on May 23 in Algiers, Algeria. This was the inaugural version of this event - indeed it was the first event of it's kind in Algeria, Java centric or otherwise. This is despite the very sizable number of developers of Algerian origin, domestically and worldwide. Besides the Devoxx and Voxxed brand, the event can be credited by and large to the grassroots efforts of the Algeria JUG as well as the neighboring Morocco JUG. Some of the good folks involved include Badr El Houari (Morocco JUG leader), Abderrazak Bouadma (Algeria JUG leader), Meziane Djaout, Yasmine Nasri (Algeria JUG), Yazid Cherif (Algeria JUG), Bessem Hmidi (ESPRIT JUG Tunisia leader) and Mohamed Taman (Egypt JUG leader). Personally I have to especially thank Badr for cordially inviting me to the event and Abderrazak for making the trip a unique unforgettable experience. The event was a humble but profound first step in the right direction for Algerian developers. The event definitely had a strong Java and Java EE showing.I started the day taking part in the opening keynote featuring the Voxxed Days Algiers team. I aimed to reinforce the significance of the event as well as our team's recognition of it and welcomed attendees to the global Java/EE community. After the keynote I remained in the hall to deliver our current flagship Java EE 8 road map talk.The talk covers the possibilities for Java EE 8 such as HTTP 2/Servlet 4, Server-Sent Events (SSE), a new standard action-oriented web framework, security simplification, REST management/monitoring, even better JSON support, CDI 2, platform-wide CDI alignment, more pruning, JCache, JMS.next() and Java SE 8 alignment. I also cover Adopt-a-JSR. The slides for the talk are here: What's Coming in Java EE 8 from Reza Rahman I noted that the detailed speaker notes are available to anyone in the downloadable PowerPoint deck. This means that anyone could deliver the talk if they were so inclined. Concurrent to my talk local Algerian speaker Bilal Khiat delivered a talk covering the Java EE concurrency utilities. Bilal is a Java EE advocate and WebLogic + Oracle Middleware expert.After lunch I delivered my second talk titled "Using NoSQL with ~JPA, EclipseLink and Java EE". The talk covers an interesting gap that there is surprisingly little material on out there. The talk has three parts -- a birds-eye view of the NoSQL landscape, how to use NoSQL via a JPA centric facade using EclipseLink NoSQL, Hibernate OGM, DataNucleus, Kundera, Easy-Cassandra, etc and how to use NoSQL native APIs in Java EE via CDI. The slides for the talk are here: Using NoSQL with ~JPA, EclipseLink and Java EE from Reza Rahman The JPA based demo is available here, while the CDI based demo is available here. Both demos use MongoDB as the data store. Do let me know if you need help getting the demos up and running. Concurrent to my talk Bilal delivered a talk on building event-driven enterprise applications using JMS and WebSocket.I finished the conference with my talk on effectively testing Java EE applications using Arquillian. The talk basically goes through each major Java EE API and demonstrates through code how the API could be tested using Arquillian. The slides for the talk is posted below: Testing Java EE Applications Using Arquillian from Reza Rahman The code for the talk is available on GitHub. If you are looking into testing Java EE applications using Arquillian, the code should be very helpful to you. Feel free to give me a holler if you need any help. Concurrent to my talk my good friend Bessem Hmidi talked about his very cool project AngularBeans. AngularBeans is a very useful marriage of AngularJS, CDI and Java EE. In case this intrigues you (and it should) I have a brief recent write-up for the project on The Aquarium. The conference ended on a great note celebrating the 20th anniversary of Java - my second such in-person celebration after Voxxed Days Istanbul (trip report coming soon).Sadly Algeria remains one of the last great frontiers of global tourism. The country offers food, culture, legendary North African hospitality, a history well soaked with ebbs and flows of tragedy and triumph, not to mention stunning natural beauty. While in Algeria I did not miss the opportunity to take a few days off to explore as much as I could. Thanks to some very kind help from Abderrazak's brother Abdenour I saw pretty much all of Algiers save for the UNESCO World Heritage site Casbah (currently a giant renovation project) as well as the Tipaza Roman ruins (yet another one of Algeria's numerous UNESCO World Heritage sites). I do have pictures to show from my great experience in Algeria (click here if you are having trouble seeing the embedded album):The generous, unconditional amount of time that Abdenour and Abderrazak spent with me after the conference would frankly put many in my own family to utter shame. If North Africans are the kings of hospitality, Abdenour and Abderrazak are undoubtedly the emperors :-). Thanks to Abdenour there was actually someone around to take a thoughtful picture of me at Tipaza (the steps are from an ancient Roman amphitheater):Next time I have an opportunity to go to Algeria, I plan to make the trip to see one of the most breathtaking views on planet Earth - Sunrise over the Hoggar mountain chain in the heart of the Algerian Sahara (the Tuareg tribes that make this place their home quite understandably call it "the end of the world"):All in all, this was one of the most fulfilling trips I've taken in a while, both professionally and personally. I sincerely wish all the best for Voxxed Days Algiers. I hope to see the event grow in the coming years and become a first class destination for the best and the brightest in the Java world...

This is the first in a series of long overdue trip reports now that the unofficial global pre-Summer-vacation conference season is finally winding down after a few hectic months. In terms of...

JavaOne Java EE Track: Saying Thanks and a Look at the Real Decision Makers

As some of you know the JavaOne 2015 CFP is now closed. I want to take this opportunity to thank all of those that submitted their thoughtful topics and all those who considered submitting. The outstanding quality of submissions is a testament to your passion for the Java community and it is a great start on the road to keeping JavaOne a true success. In terms of the Java EE track we now have all the raw material we need to construct a strong selection. In the next few weeks we will be working hard with the review committee to carefully sort through all the submissions we have at hand.I want to remind you now not to be discouraged if you don't get the response you are hoping for. You should remember that you are competing against some of the best and brightest of Java at a global scale - especially so in the Java EE track. As much as we would like for things to be perfect in the end all of this is also based on all too fallible human judgement applied through a fairly intricate process designed with checks, balances and fairness in mind. If your session does not get accepted this year, you should definitely consider honing your submissions and trying again next year. If you are indeed selected I hope you see it as the testament to your abilities and good fortune it truly is. Either way, I hope you will consider coming to JavaOne to experience the incredible talent, energy and intellect in the air. The Java EE Track Content CommitteeI also want to take this opportunity to introduce you to the real decision makers in the track - the content selection committee members. Although I and my co-track lead Lance Andersen clearly do make decisions, I like to think of ourselves as mere coordinators of a very strongly democratic open collaborative team. The folks in the committee by far play the most important role in help shaping the track. They really deserve to be commended as most of them are community folks that contribute many hours of their time to help advance JavaOne. Below are the profiles of these good folks. If you have any questions on your submissions you should feel free to reach out to any one of them or us. In the next few weeks, I plan to publish interviews with some of these folks through the Aquarium blog. David Blevins needs little introduction. He is an excellent speaker, a long-time JCP expert, Java EE advocate and powerhouse developer behind the highly innovative Apache OpenEJB and TomEE projects. David more recently founded Tomitribe, a company offering commercial support for TomEE. His Twitter handle is @dblevins.Cay Horstmann is a Java Champion, author, blogger, Java EE advocate and Computer Science professor at San Jose State University. He has been part of the content committee for many years. His Twitter handle is @cayhorstmann.Johan Vos is a Java Champion, author, speaker, blogger, member of the BeJUG steering group, member of the Devoxx steering group and a JCP member. He is a fan of Java EE, GlassFish and JavaFX. He founded LodgON, a company offering Java based solutions for social networking software. His Twitter handle is @johanvos.David Heffelfinger is an independent consultant in the Washington DC metropolitan area, author, blogger and speaker. He is a long time advocate of Java EE and GlassFish. He is a brand new and great addition to the committee. His Twitter handle is @ensode.Ryan Cuprak is the founder of the Connecticut JUG, author, blogger, speaker, JavaOne Rock Star and Java EE advocate. He is a senior manager at Dassault Systemes. Like David, Ryan is a brand new and welcome addition to the committee. His Twitter handle is @rcuprak.Scott Sosna is a veteran Java developer now working at Dell. He helps with JavaOne on his own time and has been a very strong contributor in the committee for many years. His interests include API design, integration, messaging, REST, SOAP, performance and operations.Markus Eisele is a Developer Advocate at Red Hat and focuses on JBoss Middleware. He is a long time Java EE advocate, blogger, author, speaker, JCP expert, Java Champion and former Oracle ACE Director. His Twitter handle is @myfear.Kevin Sutter is the lead architect for the Java EE and JPA solutions for the WebSphere Application Server and the WebSphere Liberty Profile. Kevin is very active with the Java and open-source strategies as they relate to IBM's Middleware. His Twitter handle is @kwsutter.Linda DeMichiel is the specification lead for Java EE. She is a long-standing member of the Java EE architecture team, initially at Sun, and now at Oracle. Linda has been a specification lead for the EJB and JPA specifications. Linda has been on the committee for a number of years.David Delabassee is my teammate in the Java EE evangelism team. He is a veteran of Sun and now Oracle that's been involved in JavaOne for many years. In his many roles he has been a product manager, sales consultant and Java Ambassador. His Twitter handle is @delabassee.Bruno Borges is a product manager for WebLogic, Fusion Middleware, Java and Cloud services. He also actively evangelizes topics from Java Embedded to Java SE and JavaFX to Java EE. His Twitter handle is @brunoborges.Harold Carr is a veteran of Sun and now Oracle. He is the architect of InfiniBand usage in WebLogic. Throughout his long and illustrious career at Sun/Oracle he has had key roles in the SOAP/JAX-WS/Metro stack, GlassFish, Grizzly, RMI-IIOP/CORBA ORB and load-balancing/fail-over. He has been part of the committee for many years. His Twitter handle is @haroldcarr.Keep in mind that JavaOne is now already open for registration. I hope to see you all at JavaOne. In the meanwhile as always if you have any questions never hesitate to reach out.

As some of you know the JavaOne 2015 CFP is now closed. I want to take this opportunity to thank all of those that submitted their thoughtful topics and all those who considered submitting....

ConFoo 2015 Trip Report

ConFoo 2015 took place 16-20 February in Montreal, Canada. To my knowledge it is the largest developer conference north of the border. The conference has roots in PHP, but has been making an effort to better attract a Java audience hence it was important for me to support the conference. If you are a Canadian Java developer, I would consider adding ConFoo to your radar as a more convenient (and possibly cheaper) event to go to in order to stay up-to-date. Topics covered included PHP, Ruby, methodology, JavaScript/HTML, Java and .NET. Thanks to a number of community speakers, the Java EE presence was very strong this year.I started the first day of the conference with my talk on JMS 2. Besides covering JMS 2, I've also started to roll in some of the possibilities for JMS 2.1. Given the dynamics of the conference the crowd was modest but not bad. The slides for the talk are posted below: What’s New in Java Message Service 2 from Reza Rahman After lunch I did my talk on effectively testing Java EE applications using Arquillian. The talk basically goes through each major Java EE API and demonstrates through code how the API could be tested using Arquillian. The slides for the talk are posted below: Testing Java EE Applications Using Arquillian from Reza Rahman The code for the talk is available on GitHub. If you are looking into testing Java EE applications using Arquillian, the code should be very helpful to you. Feel free to give me a holler if you need any help. This session too had decent attendance and I chatted with a few folks offline after the talk.I finished the first day of the conference with a five minute lighting talk on Java EE 8 and Adopt-a-JSR in the main keynote hall. During the talk I referred to the Java EE 8 talk delivered by Brazil Java community member Hanneli Tavante (details below).The next day of the conference my friend Ryan Cuprak delivered his excellent talk on mobile development and Java EE 7 titled Hybrid Mobile Development with Apache Cordova and Java EE 7. Ryan is my fellow co-author for EJB 3 in Action, the JUG leader for the Connecticut JUG as well as a fellow JavaOne Rock Star Speaker. The talk has some excellent material and it is basically the same talk that Ryan delivered at JavaOne 2014 as a two-hour tutorial. The video for that talk is embedded below (it is linked here if you are having trouble seeing the embedded video):Not at all surprisingly, Ryan received excellent feedback on his talk. In the afternoon Florianopolis, Brazil JUG leader Rodrigo Candido da Silva gave a very good talk on securing JAX-RS services with OAuth.The last day of the conference Rodrigo did another very interesting talk on various strategies for handling multitenacy in Java EE applications. After lunch, I was very happy to attend Hanneli Tavante's talk on Java EE 8. Usually someone from our team does this talk at conferences so it is very encouraging to see folks in the community picking up the topic. Like Rodrigo, Hanneli is also an active part of the Brazilian Java community, but from Sao Paulo. In the coming months, key North American Java EE advocate Josh Juneau will also be covering Java EE 8 at the Chicago Coder Conference (I will be speaking at the conference as well). To make it easier for the community to pick up the material, I have now included speaker notes to my public deck - you can download it's source in PowerPoint (now, I realize talks are highly personal and I don't expect anyone to deliver my talk verbatim - neither Hanneli nor Josh are doing that). I will make a point to keep both the deck and the speaker notes reasonably up-to-date as Java EE 8 progresses: What's Coming in Java EE 8 from Reza Rahman Please do feel encouraged to pick up this talk yourself. If needed please reach out to me and I will be happy to help you prepare.I finished the conference with yet another five minute lighting talk in the main keynote hall - this time on Domain-Driven Design (DDD). Because the talk was supposed to be technology agnostic, I mentioned Cargo Tracker only briefly as a resource to look at on how to implement DDD with Java EE.All in all, this was a trip worth doing again. If you are a Java centric speaker, do consider ConFoo as a future destination.

ConFoo 2015 took place 16-20 February in Montreal, Canada. To my knowledge it is the largest developer conference north of the border. The conference has roots in PHP, but has been making an effort to...

CodeMash 2015 Trip Report

CodeMash 2015 took place 6-9 January in Sandusky, Ohio at the exotic Kalahari Waterpark Resort. With another sold-out year, CodeMash is quickly becoming one of the largest developer conferences state-side. It has it's roots in .NET, but is making a concerted effort to better attract a Java audience hence it was important for me to support that effort. This is especially so with Columbus JUG leader Chris Judd leading the Java track and Cleveland JUG leader Scott Seighman speaking. This year it attracted a decent section of the Java crowd. I would say it was better than last year but still has room for much improvement, especially with regards to submissions from Java centric speakers. Topics covered included .NET, methodology, JavaScript/HTML, mobile, cloud, DevOps, Hadoop, NoSQL, Docker, Java SE and Java EE.I started the first day of the conference with one of my brand new talks this year titled "Reactive Java EE - Let Me Count the Ways!". It aligns Java EE with core Reactive Programming principles. Though many people don't realize it, Java EE has long had very good support for asynchronous, event-driven, non-blocking scalable systems. This includes features and APIs like JMS, Message Driven Beans, Asynchronous Session Beans, CDI events/observers, asynchronous Servlets/NIO, server/client side JAX-RS, WebSocket asynchronous support and the Java EE concurrency utilities. These features can be used in a highly Reactive fashion especially in conjunction with Java SE 8 lambdas, streams and CompletableFuture. The slides for the talk are here: Reactive Java EE - Let Me Count the Ways! from Reza Rahman Thus far this new talk seems to be quite popular and well received. I am sure to present the talk again soon.In the afternoon I delivered another one of my very popular talks on aligning Java EE 7 with the HTML 5/JavaScript Rich Client landscape. I use AngularJS for my demo but the concepts can apply to any JavaScript (or even native mobile) front-end using a Java EE 7 back-end. This session was a full house with very good feedback afterwards. The slide deck for the talk is posted below: JavaScript/HTML5 Rich Clients Using Java EE 7 from Reza Rahman One of the goals of this talk is actually to give you the starter code for exploring this sort of architecture. The demo code is posted on GitHub: https://github.com/m-reza-rahman/javaee-javascript. Do give me a shout if you need help getting the demo up and running but it should be very straightforward.The second and last day of the conference in the afternoon I delivered our likely new flagship talk for this year titled "What's Coming in Java EE 8". The talk covers the possibilities for Java EE 8 such as HTTP 2/Servlet 4, Server-Sent Events (SSE), a new standard action-oriented web framework, security simplification, REST management/monitoring, even better JSON support, CDI 2, platform-wide CDI alignment, more pruning, JCache, JMS.next() and Java SE 8 alignment. I also cover Adopt-a-JSR. The slides for the talk are here: What's Coming in Java EE 8 from Reza Rahman Do note that I've now added detailed speaker notes available to you in the downloadable PowerPoint deck. This means that you could deliver the talk yourself if you were so inclined. Since it was towards the end of the conference attendance was sparser but still satisfactory.All in all, this was a good trip worth doing again. If you are a Java centric speaker, do consider CodeMash as a future destination.

CodeMash 2015 took place 6-9 January in Sandusky, Ohio at the exotic Kalahari Waterpark Resort. With another sold-out year, CodeMash is quickly becoming one of the largest developer conferences...

Java2Days 2014 Trip Report

Java2Days 2014 was held on November 17-19 in Sofia, Bulgaria. It is far and away the largest Java conference in the Balkans region and now perhaps one of the most important conferences in Europe as a whole. Far beyond the modest borders of Bulgaria it seemed to increasingly attract audiences from as far as Serbia, Bosnia/Herzegovina, Albania and Macedonia. This was another great year for this rapidly growing, vibrant event. It attracted a host of international and local speakers including Arun Gupta, Geertjan Wielenga, Roberto Cortez, Ivan St. Ivanov, Andy Gumbrecht and Andrew Lombardi. Topics included Java SE, Java EE, HTML5/JavaScript, mobile, OSGi, IoT and the cloud. If the conference is not on your map already, it should be. It is simply inspiring to see a youthful, energetic Java community rise in this once very tumultuous, repressed part of our world.One of the most unique things about Java2Days that one should appreciate is that it is an event run entirely by women - the incredibly capable trio of Yoana Ivanova, Iva Abadjieva and Nadia Kostova (left to right in the image below). It is the only Java conference that I know of for which this is true. Iva's husband Emo Abadjiev (inset, bottom) and Bulgaria JUG leader, Forge commiter Ivan St. Ivanov (inset top) also contribute many hours of hard work into the conference. I am very proud to be able to call all these passionate, down-to-earth, genuinely good people my friends and gracious hosts in Bulgaria. Other than now Java Champion Yara Senger of The Developer Conference (TDC) Brazil, Java2Days was the first international conference to invite me as a speaker while I was still an independent. In fact I feel very honored to say that I was the first and last speaker of the very first Java2Days a few years ago. They have been very kind to invite me back every year since. Though I have not always been able to accept the invitation largely due to personal scheduling reasons, I am very glad I was able to speak at Java2Days one more time this year.My first talk of the conference, right after the opening keynote was our likely new flagship talk for this year titled "What's Coming in Java EE 8". The talk covers the possibilities for Java EE 8 such as HTTP 2/Servlet 4, Server-Sent Events (SSE), a new standard action-oriented web framework, security simplification, REST management/monitoring, even better JSON support, CDI 2, platform-wide CDI alignment, more pruning, JCache, JMS.next() and Java SE 8 alignment. I also cover Adopt-a-JSR. The slides for the talk are here: What's Coming in Java EE 8 from Reza Rahman The talk was packed and was very well-received. My hope is that we will see greater participation in the Java EE 8 JSRs from the Balkans. The Bulgaria JUG is already active in OpenJDK thanks to Ivan. After me Arun delivered a very popular talk of his titled "Nuts and Bolts of WebSocket".After that talk Arun, I and Ivan ran the Java EE 7 hands-on lab. This is basically the same lab that Arun developed while still at Oracle. Arun has since evolved the lab to run on both WildFly and GlassFish. The materials for Arun's lab is available on GitHub. You should feel free to check it out - the lab is intended to be entirely self-directed. The lab really went very well. The attendees provided excellent feedback and the lab was packed even given a fairly sizable space. Towards the end of the day Andy Gumbrecht had a very cool presentation on moving from Tomcat to the Java EE platform very easily using TomEE titled "Apache Tomcat to Apache TomEE in 1-n Steps".On the second day of the conference around lunch time Roberto and Ivan presented a talk on JBatch titled "Java EE 7 Batch Processing in the Real World". This is the same talk that they presented at JavaOne 2014 embedded below:After Roberto and Ivan's talk Geertjan presented a very cool talk on developing either desktop/web or mobile HTML 5 applications using Java EE 7 as a back-end. At the same time I delivered my thus far very popular talk on aligning Java EE 7 with the HTML 5/JavaScript Rich Client landscape as a workshop (I did the same thing at JavaOne 2014). I use AngularJS for my demo but the concepts can apply to any JavaScript (or even native mobile) front-end using a Java EE 7 back-end. This session was a full house and was very well-received. The slide deck for the talk is posted below: JavaScript/HTML5 Rich Clients Using Java EE 7 from Reza Rahman The demo code is posted on GitHub: https://github.com/m-reza-rahman/javaee-javascript. Do give me a shout if you need help getting the demo up and running but it should be very straightforward.After the workshop I helped Ivan run a hands-on lab on Forge and Arquillian. The Forge part of the lab is available for all and can be done entirely on your own. Antonio Goncalves has a pretty nice blog entry on running the lab.I closed the conference with a bang back in the main hall with my talk titled "Why Open Standards and Java/EE Matter (to You)". The talk is designed to be a keynote and covers a very important topic that I think there's far too little material out there on. It talks about the core value proposition for standards like Java EE in maintaining a healthy competitive marketplace. It differentiates open technical standards from so called "de-facto standards" and explores the relationship between open source and open standards. I also talk about what the community can do to make standards really work. The talk taps into one of my fields of study that I never pursued in my career and few developers really seem to have even a basic grasp of - economic analysis. This is a talk I've been waiting to give for many years and I am glad I was finally able to start presenting it. To some degree it embodies many of the core motivations that keep me doing what I do to try to help move the Java EE standard forward. The slides for the talk are here: Why Open Standards and Java/EE Matter (to You) from Reza Rahman Besides a very lavish speaker dinner (the most lavish I have ever experienced at a conference), one of the very cool things our extremely gracious Bulgarian hosts do is take interested speakers outside the capital city of Sofia to the picturesque country side. On my request, this year we went to the Devil's Throat cavern. The tour this time was unfortunately pretty sparse with just me, Iva, Yoana and Nadia. Although modest by comparison of the likes of the Mammoth cave of Kentucky or the Ape cave lava tubes of Mount Saint Helen's, Devil's Throat is the second largest cave in mountainous Bulgaria and contains the tallest underground waterfall in the Balkans. Besides it's geology Devil's Throat is actually unique because of it's very special place in world history and literature. It is said to be the inspiration for the ancient Greek underworld and it's overlord, the feared god Hades (the cave is very close to the modern day Greek border). It's main space is assumed to be the real world origin of the mythical main hall of Hades. It is easy to see why if you think about how the cave may have felt like without the modern amenities of concrete/metal ladders/steps and electricity, with the thundering sound of a deep underground waterfall in the background. Below are some pictures I took of the cave and it's immediate surroundings:All in all it was great to be back in Bulgaria/Java2Days. I hope to return soon and see all of my kind Bulgarian friends once again.

Java2Days 2014 was held on November 17-19 in Sofia, Bulgaria. It is far and away the largest Java conference in the Balkans region and now perhaps one of the most important conferences in Europe as a...

JMaghreb 2014 Trip Report

JMaghreb 2014 was held on November 4-6. Organized by the Morocco JUG, JMaghreb is one of the largest Java developer conferences in North Africa. Although centered around the Maghreb region (that's Morocco, Algeria, Tunisia, Libya and Mauritania) the conference is on the radar for folks around the broader Middle East, Africa and Southern Europe. This was yet another brilliant year for the conference. Speakers included Patrick Curran, Werner Keil, Johan Vos, Mohamed Taman, Hazem Saleh, Paul Bakker, Romain Manni-Bucau, Abdelmonaim Remani, Simon Ritter, Angela Caicedo and Mike Milinkovich. Topics included Java SE, Java EE, JavaFX, HTML5/JavaScript, mobile, NoSQL, OSGi, Big Data and the cloud. The passion that organizers including Badr El Houari, Faissal Butaounte, Youssef Misdaq, Mohammed Aboullaite, Abdelmonaim Remani and Mohamed Taman put into JMaghreb speaks for itself. I am extremely grateful that the organizers invited me and very glad that I was able to accept. One of the most remarkable things about JMaghreb that I was astounded to notice was the very large number of female attendees - far more than any conference I have ever gone to. In the words of organizer Faissal Butaounte, "they are sending a clear message - they are passionate about technology".I started the conference on the first day with my thus far very popular talk on aligning Java EE 7 with the HTML 5/JavaScript Rich Client landscape. I use AngularJS for my demo but the concepts can apply to any JavaScript (or even native mobile) front-end using a Java EE 7 back-end. This session was a full house in the main hall. The slide deck for the talk is posted below: JavaScript/HTML5 Rich Clients Using Java EE 7 from Reza Rahman The demo code is posted on GitHub: https://github.com/m-reza-rahman/javaee-javascript. Do give me a shout if you need help getting the demo up and running but it should be very straightforward.I didn't have a talk scheduled the second day so was able to focus on honing my three brand new talks the next day. Romain had a pretty cool talk the second day on TomEE.I started the last day of the conference with a bang back in the main hall with my talk titled "Why Open Standards and Java/EE Matter (to You)". The talk is actually designed to be a keynote and covers a very important topic that I think there's far too little material out there on. It talks about the core value proposition for standards like Java EE in maintaining a healthy competitive marketplace. It differentiates open technical standards from so called "de-facto standards" and explores the relationship between open source and open standards. I also talk about what the community can do to make standards really work. The talk taps into one of my fields of study that I never pursued in my career and few developers really seem to have even a basic grasp of - economic analysis. This is a talk I've been waiting to give for many years and I am glad I was finally able to start presenting it. To some degree it embodies many of the core motivations that keep me doing what I do to try to help move the Java EE standard forward. The slides for the talk are here: Why Open Standards and Java/EE Matter (to You) from Reza Rahman The talk was very well attended and well received. I was glad to be able to invite Patrick and Mohamed Taman on stage for the talk. I hope to get an opportunity to do this talk again soon (I did the same talk for the closing keynote of Java2Days 2014).My second talk of the day was our likely new flagship talk for this year titled "What's Coming in Java EE 8". The talk covers the possibilities for Java EE 8 such as HTTP 2/Servlet 4, Server-Sent Events (SSE), a new standard action-oriented web framework, security simplification, REST management/monitoring, even better JSON support, CDI 2, platform-wide CDI alignment, more pruning, JCache, JMS.next() and Java SE 8 alignment. I also cover Adopt-a-JSR. The slides for the talk are here: What's Coming in Java EE 8 from Reza Rahman The talk had good attendance and I had some excellent conversations afterwards. The Morocco JUG as well as the Egypt JUG are among the early adopters of Java EE 8 JSRs, quite possibly along with the Tunisian JUG community. After lunch Patrick had a session on the JCP which also had very good attendance.I had the last session slot for the conference and my last talk was very packed. The title of this new talk is "Reactive Java EE - Let Me Count the Ways!". It aligns Java EE with core Reactive Programming principles. Though many people don't realize it, Java EE has long had very good support for asynchronous, event-driven, non-blocking scalable systems. This includes features and APIs like JMS, Message Driven Beans, Asynchronous Session Beans, CDI events/observers, asynchronous Servlets/NIO, server/client side JAX-RS, WebSocket asynchronous support and the Java EE concurrency utilities. These features can be used in a highly Reactive fashion especially in conjunction with Java SE 8 lambdas, streams and CompletableFuture. The slides for the talk are here: Reactive Java EE - Let Me Count the Ways! from Reza Rahman Thus far this new talk seems to be quite popular and well received. I am sure to present the talk again soon.Besides the conference Morocco was truly a pleasure. It is really a shame more Americans don't make Morocco their preferred travel destination. Morocco features rich history, culture, architecture, food and nature. It is by far one of the most thoroughly friendly countries that I have ever been to with a deep tradition of warm hospitality - and this is despite the obvious signs of poverty and misery. During the conference I was able to explore a little bit of legendary Casablanca, particularly in the evening hours. Thanks to Badr and the JMaghreb organizers I was also able to see a bit of Morocco outside the very urban Casablanca. Our very gracious hosts took some of the speakers including myself for a brief visit to the beautiful desert city of Marrakesh. Though Marrakesh is definitely worth seeing, I found myself truly captivated by the Moroccan country side. To explore it a bit more intimately I excused myself from my hosts and decided to spend some time trekking in the reasonably nearby but far more rugged Agafay desert (popularly known as the "Marrakesh desert"). Agafay is actually at the very base of the Atlas mountain chain and is a very picturesque mix of rocky desert, mountains and classical sand dunes. If you check out the pictures below it's very easy to see why Morocco is one of Hollywood's most favored destinations for science fiction movies. At times, it was easy to imagine that I've magically gone through a dimensional portal into another planet altogether. Only the presence of my local Berber tribesman guide Ali was indication that I was still on planet Earth. Maybe next time I'll skip the companionship just to complete the illusion.The most awe inspiring experiences that drove home the true hospitality of the Moroccan/Berber people occurred during the hike through a remote mountain village. Since it was lunchtime, Ali and I were actually invited to share a meal with a very friendly rural family! And these were people that barely had the benefit of electricity, running water or mass communication! As time was of essence I and Ali politely declined the once-in-a-lifetime invitation...The Atlas mountains are very unique on their own right and Agafay barely scratches the surface. The peak of the Atlas Mountains is the second highest in Africa behind mount Kilimanjaro. An overnight strenuous technical climb, it offers some of the most unique terrain in the world and definitely worth attempting if opportunity permits.All in all I thoroughly enjoyed JMaghreb and Morocco. I hope to return soon and see all the folks I met there again!

JMaghreb 2014 was held on November 4-6. Organized by the Morocco JUG, JMaghreb is one of the largest Java developer conferences in North Africa. Although centered around the Maghreb region...

JavaOne 2014: A Small Step in the Right Direction?

JavaOne 2014 San Francisco was held September 28 – October 2. I am proud to say this is my eight JavaOne as an attendee, my sixth one as a speaker, my third one as an Oracle employee, my second one as a member of the content committee and my first one as a track lead. I think this was a particularly good year for JavaOne in many ways and it's certainly been a privilege to try to do justice to the crucial role of Java EE track lead. In this hopefully relatively brief post I'll share my thoughts, observations and experiences at JavaOne 2014. The astute among you may have noticed that this post is belated. It's a reflection of the fact that's it's been a very hectic few months in terms of US and International conferences and in fact it'll be the very worthy first of a handful of belated trip reports now that the seemingly unofficial Java conference season towards the year's end is over.A Look to the Past, A Look AheadThere's very little doubt JavaOne is the largest and most important Java conference in the world. In fact it is critical to continuing to strengthen and growing the Java ecosystem itself. Having taken part in organizing a few other fairly large conferences and attending/speaking at numerous others, the JavaOne content is definitely of outstanding quality even as compared with many other conferences of similar magnitude. It's clear the best and the brightest in the Java ecosystem still see participating in JavaOne as a badge of honor. In terms of quantity, JavaOne beyond any doubt has the largest concentration of Java content anywhere. That all being said there's no denying the fact that JavaOne today is a relative shadow of what it used to be in the early days of Java. Perhaps to some degree that's alright. After all Java is not a spring chicken debutante any more and Java is probably the most widely covered topic at events worldwide today. Nonetheless JavaOne is the single most prestigious gathering of the minds with a sole focus on all things Java. Keeping that fact in mind we must do everything that we reasonably can to keep it the magnate event for Java developers everywhere. As they say, it is far more difficult to stay on top than to get there. To that end we did a few things differently this year that seems to have paid off.How JavaOne 2014 was DifferentThere were a number of important encouraging signs from the very beginning for JavaOne 2014. We had the highest number of JavaOne CFP submissions in the recent few years. In fact the CFP process was so effective that unlike many previous years there wasn't a need to extend the CFP deadline. As a net result we at least maintained or improved upon both the quality and quantity of content. The event was highly professionally run as it always has been in terms of venue, scheduling and organization. Most encouragingly we grew the attendance numbers at a more rapid pace than we have in the past few years while still growing or maintaining a community feel. These are trajectories we should try and maintain in the coming years to keep JavaOne what it should really be.There can be many reasons why we saw what we saw - economic cycles, pent up demand for developer training, a desire to learn more about the Java SE 8 and Java EE 7 releases, a desire to preview the newly minted Java EE 8 or Java SE 9 effort and so on. We would like to hope the small handful of things we did differently at least helped in getting things in the right direction:We started the CFP process earlier, provided as much details as possible and kept the community in the loop with periodic updates. For the Java EE track, we did this via the Aquarium blog as well as the official JavaOne blog.JavaOne like many larger conferences has traditionally taken a very egalitarian (perhaps too egalitarian) approach to speakers. The reality as we all know though is that not all speakers are created equal. There are some speakers out there that deserve recognition by way of an individual invitation to speak at the conference on a topic of their choice. For the Java EE track we had a small number of these well-deserved speakers that bypassed the official CFP process altogether: Adam Bien, David Blevins, Patrycja Wegrzynowicz, Arun Gupta and Anatole Tresch. Besides these Java EE rock stars we also reached out to a much larger group of people and cordially invited them to join the CFP (you know who you are). We announced these rock stars and their talks as soon as we could.We required a video of either the submitted session or a brief overview of the session as part of the talk proposal. The goal of this was in fact to level the playing field for new or inexperienced speakers.What we did in the Java EE TrackThere are a few more things we did differently in the Java EE track specifically in addition to the general changes to JavaOne:The quality of the program committees is a crucial part of the overall quality of JavaOne that needs to improve far more. Ideally we should be aiming to minimize folks from vendors (Oracle included specially) and folks that are more "honorary" than "participatory" in favor of folks genuinely passionate about actively contributing to the Java EE track in the community - including folks that help put together other successful conferences. We made some gradual efforts towards this goal this year.In the same vein we did our best to trim down speakers and content from Oracle and other vendors in favor of folks from the community. This balance is crucial in keeping JavaOne the conference for the Java community and not a vendor sales conference.As soon as we could we recorded and promoted video interviews with key JavaOne speakers about their sessions via The Aquarium and the JavaOne blog. We tried to do as many interviews as we could right up until the beginning of the conference. The folks we had time to highlight this year: Arun Gupta, Adam Bien, David Blevins, Ed Burns, Antoine Sabot-Durand, Kito Mann and Greg Wilkins.There were some specific goals that we wanted to accomplish in the track that we reached to various degrees:Upcoming JSRs: One of the unique value propositions for JavaOne is that it is the best place to learn about what is ahead in terms of standard Java technologies right from the source - the spec leads themselves. This was particularly true this year with Java EE 8 JSRs submitted right before JavaOne or shortly thereafter. Luckily, we were able to put together a number of such sessions:Java EE 8Java EE 8 PanelMeet the Java EE Specification LeadsAdopt-a-JSR for Java EE 7 and Java EE 8HTTP 2 Comes to Java: What Servlet 4 Means to YouJava API for JSON Binding: Introduction and UpdateJSON Pointer and JSON Patch: Updates to the Java API for JSON ProcessingLet's Talk JAX-RS.next!The Path to CDI 2Model-View-Controller in Java EE 8What Do We Want in JMS 2.1?

JavaOne 2014 San Francisco was held September 28 – October 2. I am proud to say this is my eight JavaOne as an attendee, my sixth one as a speaker, my third one as an Oracle employee, my second one as...

NFJS Pacific Northwest Software Symposium Seattle Trip Report

The NFJS Pacific Northwest Software Symposium was held October 17 - 19 in Seattle, Washington. I had five talks total over two days, more or less back-to-back. The first one was my JavaScript + Java EE 7 talk titled "Using JavaScript/HTML5 Rich Clients with Java EE 7". This talk is basically about aligning EE 7 with the emerging JavaScript ecosystem (specifically AngularJS). The slide deck for the talk is here: JavaScript/HTML5 Rich Clients Using Java EE 7 from Reza Rahman The demo application code is posted on GitHub. The code should be a helpful resource if this development model is something that interests you. Do let me know if you need help with it but the instructions should be fairly self-explanatory.My second talk was titled "Using NoSQL with ~JPA, EclipseLink and Java EE". The talk covers an interesting gap that there is surprisingly little material on out there. The talk has three parts -- a birds-eye view of the NoSQL landscape, how to use NoSQL via a JPA centric facade using EclipseLink NoSQL, Hibernate OGM, DataNucleus, Kundera, Easy-Cassandra, etc and how to use NoSQL native APIs in Java EE via CDI. The slides for the talk are here: Using NoSQL with ~JPA, EclipseLink and Java EE from Reza Rahman The JPA based demo is available here, while the CDI based demo is available here. Both demos use MongoDB as the data store. Do let me know if you need help getting the demos up and running.I finished the day with a talk titled Building Java HTML5/WebSocket Applications with JSR 356. The talk introduces HTML 5 WebSocket, overviews JSR 356, tours the API and ends with a small WebSocket demo on GlassFish 4. The slide deck for the talk is posted below. Building Java HTML5/WebSocket Applications with JSR 356 from Reza Rahman The demo code is posted on GitHub: https://github.com/m-reza-rahman/hello-websocket.On the second day I started with our flagship Java EE 7/8 talk. Currently the talk is basically about Java EE 7 but I'm slowly evolving the talk to transform it into a Java EE 8 talk as we move forward. The following is the slide deck for the talk: JavaEE.Next(): Java EE 7, 8, and Beyond from Reza Rahman The last talk I delivered was my Cargo Tracker/Java EE + DDD talk. This talk basically overviews DDD and describes how DDD maps to Java EE using code examples/demos from the Cargo Tracker Java EE Blue Prints project. Applied Domain-Driven Design Blue Prints for Java EE from Reza Rahman My next NFJS show is the Great Lakes Software Symposium in Chicago on November 14 - 16. Here's my tour schedule so far, I'll keep you up-to-date as the tour goes forward (I'll be updating my content on the tour for the next season):November 14 - 16, Chicago.November 21 - 23, Denver.I hope you'll take this opportunity to get some updates on Java EE as well as the other useful content on the tour?

The NFJS Pacific Northwest Software Symposium was held October 17 - 19 in Seattle, Washington. I had five talks total over two days, more or less back-to-back. The first one was my JavaScript + Java...

NFJS New England Software Symposium Boston Trip Report

The NFJS New England Software Symposium was held September 19 - 21 in Boston. This is one of the larger NFJS shows and attendance at the show and my sessions was pretty good. It is always encouraging to see the same folks attend more than one talk. On my way to the show I also stopped by at the Connecticut Java User Group (more on that below).I had five talks total over two days, more or less back-to-back. The first one was our flagship Java EE 7/8 talk. Currently the talk is basically about Java EE 7 but I'm slowly evolving the talk to transform it into a Java EE 8 talk as we move forward. The following is the slide deck for the talk: JavaEE.Next(): Java EE 7, 8, and Beyond from Reza Rahman The second talk I delivered was my Cargo Tracker/Java EE + DDD talk. This talk basically overviews DDD and describes how DDD maps to Java EE using code examples/demos from the Cargo Tracker Java EE Blue Prints project. Applied Domain-Driven Design Blue Prints for Java EE from Reza Rahman I finished off the day with my JavaScript + Java EE 7 talk titled "Using JavaScript/HTML5 Rich Clients with Java EE 7". This talk is basically about aligning EE 7 with the emerging JavaScript ecosystem (specifically AngularJS). The slide deck for the talk is here: JavaScript/HTML5 Rich Clients Using Java EE 7 from Reza Rahman The demo application code is posted on GitHub. The code should be a helpful resource if this development model is something that interests you. Do let me know if you need help with it but the instructions should be fairly self-explanatory.The first talk on the next day was my session titled "Using NoSQL with ~JPA, EclipseLink and Java EE". The talk covers an interesting gap that there is surprisingly little material on out there. The talk has three parts -- a birds-eye view of the NoSQL landscape, how to use NoSQL via a JPA centric facade using EclipseLink NoSQL, Hibernate OGM, DataNucleus, Kundera, Easy-Cassandra, etc and how to use NoSQL native APIs in Java EE via CDI. The slides for the talk are here: Using NoSQL with ~JPA, EclipseLink and Java EE from Reza Rahman The JPA based demo is available here, while the CDI based demo is available here. Both demos use MongoDB as the data store. Do let me know if you need help getting the demos up and running.My last one for the show was the talk on JMS 2. Besides covering JMS 2, I've also started to roll in some of the possibilities for JMS 2.1. The slides for the talk are posted below: What’s New in Java Message Service 2 from Reza Rahman Since Boston is such a short drive, I decided to skip the tedious flight for this show. One very nice thing this did was enable me to stop by and speak at the Connecticut Java User Group on the way there. The JUG is led by my friend and co-author for EJB 3 in Action Ryan Cuprak. I've spoken at the JUG a number of times over the years and it was good to be back. I did my JavaScript + Java EE talk there. The attendance was great and I got some great feedback. I hope to speak at the JUG again in the near future as time allows.My next NFJS show is the Great Lakes Software Symposium in Chicago on November 14 - 16. Here's my tour schedule so far, I'll keep you up-to-date as the tour goes forward:November 14 - 16, Chicago.November 21 - 23, Denver.I hope you'll take this opportunity to get some updates on Java EE as well as the other useful content on the tour?

The NFJS New England Software Symposium was held September 19 - 21 in Boston. This is one of the larger NFJS shows and attendance at the show and my sessions was pretty good. It is always encouraging...

NFJS Greater Atlanta Software Symposium Trip Report

The NFJS Greater Atlanta Software Symposium was held September 12 - 14. I had four talks total over two days, more or less back-to-back. The first one was our flagship Java EE 7/8 talk. Currently the talk is basically about Java EE 7 but I'm slowly evolving the talk to transform it into a Java EE 8 talk as we move forward. The following is the slide deck for the talk: JavaEE.Next(): Java EE 7, 8, and Beyond from Reza Rahman The second talk I delivered was my Cargo Tracker/Java EE + DDD talk. This talk basically overviews DDD and describes how DDD maps to Java EE using code examples/demos from the Cargo Tracker Java EE Blue Prints project. Applied Domain-Driven Design Blue Prints for Java EE from Reza Rahman On the second day I started with my JavaScript + Java EE 7 talk titled "Using JavaScript/HTML5 Rich Clients with Java EE 7". This talk is basically about aligning EE 7 with the emerging JavaScript ecosystem (specifically AngularJS). The slide deck for the talk is here: JavaScript/HTML5 Rich Clients Using Java EE 7 from Reza Rahman The demo application code is posted on GitHub. The code should be a helpful resource if this development model is something that interests you. Do let me know if you need help with it but the instructions should be fairly self-explanatory.I finished off the event with a talk titled Building Java HTML5/WebSocket Applications with JSR 356. The talk introduces HTML 5 WebSocket, overviews JSR 356, tours the API and ends with a small WebSocket demo on GlassFish 4. The slide deck for the talk is posted below. Building Java HTML5/WebSocket Applications with JSR 356 from Reza Rahman The demo code is posted on GitHub: https://github.com/m-reza-rahman/hello-websocket.My next NFJS show is the Great Lakes Software Symposium in Chicago on November 14 - 16. Here's my tour schedule so far, I'll keep you up-to-date as the tour goes forward:November 14 - 16, Chicago.November 21 - 23, Denver.I hope you'll take this opportunity to get some updates on Java EE as well as the other useful content on the tour?

The NFJS Greater Atlanta Software Symposium was held September 12 - 14. I had four talks total over two days, more or less back-to-back. The first one was our flagship Java EE 7/8 talk. Currently the...

NFJS Central Iowa Software Symposium Des Moines Trip Report

As some of you may be aware, I recently joined the well-respected US based No Fluff Just Stuff (NFJS) Tour. If you work in the US and still don't know what the No Fluff Just Stuff (NFJS) Tour is, you are doing yourself a very serious disfavor. NFJS is by far the cheapest and most effective way to stay up to date through some world class speakers and talks. Following the US cultural tradition of old-fashioned roadshows, NFJS is basically a set program of speakers and topics offered at major US cities year round.The NFJS Central Iowa Software Symposium was held August 8 - 10 in Des Moines. The attendance at the event and my sessions was moderate by comparison to some of the other shows. It is one of the few events of it's kind that take place this part the country so it is extremely important. I had five talks total over two days, more or less back-to-back. The first one was my JavaScript + Java EE 7 talk titled "Using JavaScript/HTML5 Rich Clients with Java EE 7". This talk is basically about aligning EE 7 with the emerging JavaScript ecosystem (specifically AngularJS). The slide deck for the talk is here: JavaScript/HTML5 Rich Clients Using Java EE 7 from Reza Rahman The demo application code is posted on GitHub. The code should be a helpful resource if this development model is something that interests you. Do let me know if you need help with it but the instructions should be fairly self-explanatory. I am delivering this material at JavaOne 2014 as a two-hour tutorial. This should give me a little more bandwidth to dig a little deeper, especially on the JavaScript end.The second talk (on the second day) was our flagship Java EE 7/8 talk. Currently the talk is basically about Java EE 7 but I'm slowly evolving the talk to transform it into a Java EE 8 talk as we move forward. The following is the slide deck for the talk: JavaEE.Next(): Java EE 7, 8, and Beyond from Reza Rahman The next talk I delivered was my Cargo Tracker/Java EE + DDD talk. This talk basically overviews DDD and describes how DDD maps to Java EE using code examples/demos from the Cargo Tracker Java EE Blue Prints project. Applied Domain-Driven Design Blue Prints for Java EE from Reza Rahman The third was my talk titled "Using NoSQL with ~JPA, EclipseLink and Java EE". The talk covers an interesting gap that there is surprisingly little material on out there. The talk has three parts -- a birds-eye view of the NoSQL landscape, how to use NoSQL via a JPA centric facade using EclipseLink NoSQL, Hibernate OGM, DataNucleus, Kundera, Easy-Cassandra, etc and how to use NoSQL native APIs in Java EE via CDI. The slides for the talk are here: Using NoSQL with ~JPA, EclipseLink and Java EE from Reza Rahman The JPA based demo is available here, while the CDI based demo is available here. Both demos use MongoDB as the data store. Do let me know if you need help getting the demos up and running.I finishd off the event with a talk titled Building Java HTML5/WebSocket Applications with JSR 356. The talk introduces HTML 5 WebSocket, overviews JSR 356, tours the API and ends with a small WebSocket demo on GlassFish 4. The slide deck for the talk is posted below. Building Java HTML5/WebSocket Applications with JSR 356 from Reza Rahman The demo code is posted on GitHub: https://github.com/m-reza-rahman/hello-websocket.My next NFJS show is the Greater Atlanta Software Symposium on September 12 - 14. Here's my tour schedule so far, I'll keep you up-to-date as the tour goes forward:September 12 - 14, Atlanta.September 19 - 21, Boston.October 17 - 19, Seattle.I hope you'll take this opportunity to get some updates on Java EE as well as the other useful content on the tour?

As some of you may be aware, I recently joined the well-respected US based No Fluff Just Stuff (NFJS) Tour. If you work in the US and still don't know what the No Fluff Just Stuff (NFJS) Tour is, you...

JavaDay Taipei 2014 Trip Report

JavaDay Taipei 2014 was held at the Taipei International Convention Center on August 1st. Organized by Oracle University, it is one of the largest Java developer events in Taiwan. This was another successful year for JavaDay Taipei with a fully sold out venue packed with youthful, energetic developers (this was my second time at the event and I have already been invited to speak again next year!). In addition to Oracle speakers like me, Steve Chin and Naveen Asrani, the event also featured a bevy of local speakers including Taipei Java community leaders. Topics included Java SE, Java EE, JavaFX, cloud and Big Data.It was my pleasure and privilege to present one of the opening keynotes for the event. I presented my session on Java EE titled "JavaEE.Next(): Java EE 7, 8, and Beyond". I covered the changes in Java EE 7 as well as what's coming in Java EE 8. I demoed the Cargo Tracker Java EE BluePrints. I also briefly talked about Adopt-a-JSR for Java EE 8. The slides for the keynote are below (click here to download and view the actual PDF): It appears your Web browser is not configured to display PDF files. No worries, just click here to download the PDF file. In the afternoon I did my JavaScript + Java EE 7 talk titled "Using JavaScript/HTML5 Rich Clients with Java EE 7". This talk is basically about aligning EE 7 with the emerging JavaScript ecosystem (specifically AngularJS). The talk was completely packed. The slide deck for the talk is here: JavaScript/HTML5 Rich Clients Using Java EE 7 from Reza Rahman The demo application code is posted on GitHub. The code should be a helpful resource if this development model is something that interests you. Do let me know if you need help with it but the instructions should be fairly self-explanatory. I am delivering this material at JavaOne 2014 as a two-hour tutorial. This should give me a little more bandwidth to dig a little deeper, especially on the JavaScript end.I finished off Java Day Taipei with my talk titled "Using NoSQL with ~JPA, EclipseLink and Java EE" (this was the last session of the conference). The talk covers an interesting gap that there is surprisingly little material on out there. The talk has three parts -- a birds-eye view of the NoSQL landscape, how to use NoSQL via a JPA centric facade using EclipseLink NoSQL, Hibernate OGM, DataNucleus, Kundera, Easy-Cassandra, etc and how to use NoSQL native APIs in Java EE via CDI. The slides for the talk are here: Using NoSQL with ~JPA, EclipseLink and Java EE from Reza Rahman The JPA based demo is available here, while the CDI based demo is available here. Both demos use MongoDB as the data store. Do let me know if you need help getting the demos up and running.After the event the Oracle University folks hosted a reception in the evening which was very well attended by organizers, speakers and local Java community leaders.I am extremely saddened by the fact that this otherwise excellent trip was scarred by terrible tragedy.After the conference I joined a few folks for a hike on the Maokong Mountain on Saturday. The group included friends in the Taiwanese Java community including Ian and Robbie Cheng. Without warning, fatal tragedy struck on a remote part of the trail. Despite best efforts by us, the excellent Taiwanese Emergency Rescue Team and World class Taiwanese physicians we were unable to save our friend Robbie Cheng's life. Robbie was just thirty-four years old and is survived by his younger brother, mother and father. Being the father of a young child myself, I can only imagine the deep sorrow that this senseless loss unleashes. Robbie was a key member of the Taiwanese Java community and a Java Evangelist at Sun at one point.Ironically the only picture I was able to take of the trail was mere moments before tragedy. I thought I should place him in that picture in profoundly respectful memoriam:Perhaps there is some solace in the fact that there is something inherently honorable in living a bright life, dying young and meeting one's end on a beautiful remote mountain trail few venture to behold let alone attempt to ascend in a long and tired lifetime. Perhaps I'd even say it's a fate I would not entirely regret facing if it were my own. With that thought in mind it seems appropriate to me to quote some lyrics from the song "Runes to My Memory" by legendary Swedish heavy metal band Amon Amarth idealizing a fallen Viking warrior cut down in his prime:"Here I lie on wet sandI will not make it homeI clench my sword in my handSay farewell to those I loveWhen I am deadLay me in a moundPlace my weapons by my sideFor the journey to Hall up highWhen I am deadLay me in a moundRaise a stone for all to seeRunes carved to my memory"I submit my deepest condolences to Robbie's family and hope my next trip to Taiwan ends in a less somber note.

JavaDay Taipei 2014 was held at the Taipei International Convention Center on August 1st. Organized by Oracle University, it is one of the largest Java developer events in Taiwan. This was another...

NFJS Lone Star Software Symposium Austin Trip Report

As some of you may be aware, I recently joined the well-respected US based No Fluff Just Stuff (NFJS) Tour. If you work in the US and still don't know what the No Fluff Just Stuff (NFJS) Tour is, you are doing yourself a very serious disfavor. NFJS is by far the cheapest and most effective way to stay up to date through some world class speakers and talks. Following the US cultural tradition of old-fashioned roadshows, NFJS is basically a set program of speakers and topics offered at major US cities year round.The NFJS Lone Star Software Symposium was held July 18 - 20 in Austin, Texas. The Austin show is one of the smaller ones but still was good overall. It is one of the few events of it's kind that take place this part the country so it is extremely important. I had three talks total over two days, more or less back-to-back. I had decent attendance for all my sessions and had many of the same folks staying for multiple sessions which is always a very good sign. The close knit nature of NFJS also allows for excellent networking opportunities with users. My first talk was our flagship Java EE 7/8 talk. Currently the talk is basically about Java EE 7 but I'm slowly evolving the talk to transform it into a Java EE 8 talk as we move forward. The following is the slide deck for the talk: JavaEE.Next(): Java EE 7, 8, and Beyond from Reza Rahman The next talk I delivered was my Cargo Tracker/Java EE + DDD talk. This talk basically overviews DDD and describes how DDD maps to Java EE using code examples/demos from the Cargo Tracker Java EE Blue Prints project. Applied Domain-Driven Design Blue Prints for Java EE from Reza Rahman My third and last one for the show was the talk on JMS 2. Besides covering JMS 2, I've also started to roll in some of the possibilities for JMS 2.1. The slides for the talk are posted below: What’s New in Java Message Service 2 from Reza Rahman My next NFJS show is the Central Iowa Software Symposium in Des Moines on August 8 - 10. Here's my tour schedule so far, I'll keep you up-to-date as the tour goes forward:August 8 - 10, Des Moines Iowa.September 12 - 14, Atlanta.September 19 - 21, Boston.October 17 - 19, Seattle.I hope you'll take this opportunity to get some updates on Java EE as well as the other awesome content on the tour?

As some of you may be aware, I recently joined the well-respected US based No Fluff Just Stuff (NFJS) Tour. If you work in the US and still don't know what the No Fluff Just Stuff (NFJS) Tour is, you...

NFJS UberConf Trip Report

UberConf was held June 24 - June 27 in Denver, Colorado. For those unaware, this is essentially the largest single annual event under the NFJS umbrella and to a certain extent the culminating point of the US based tour. Unlike the usual NFJS events that are squarely locally focused, it's intent is to be a national/international conference. Consequently it has a larger set of attendees, speakers, tracks and sessions. This year's event was very vibrant and clearly a success by all measures.Personally I was already impressed by the more local events on the tour such as the event in Columbus, Ohio and UberConf certainly did not disappoint. I had a larger number of talks and larger rooms yet still excellent attendance in my talks. As with the other shows I had many folks staying for multiple talks which is always a very good sign. I also got to do a little bit of networking with some Java EE and GlassFish users that I happen to come across. I am hoping I can get some of these folks to jump through the corporate hoops and share their adoption stories at some point.My first talk for the conference was our flagship Java EE 7/8 talk. Currently the talk is basically about Java EE 7 but I'm slowly evolving the talk to transform it into a Java EE 8 talk as we move forward. The following is the slide deck for the talk: JavaEE.Next(): Java EE 7, 8, and Beyond from Reza Rahman Next I delivered my talk on JMS 2. Besides covering JMS 2, I've also started to roll in some of the possibilities for JMS 2.1 (as you may be aware the JMS 2.1 specification is beginning to spin up right now). The slides for the talk are posted below: What’s New in Java Message Service 2 from Reza Rahman I started day two delivering my Cargo Tracker/Java EE + DDD material as a three-hour workshop. The workshop overviews DDD and describes how DDD maps to Java EE using code examples/demos from the Cargo Tracker Java EE Blue Prints project. Given the depth of the topic and the current size of the application the three hour slot was actually very effective. My goal was to foster discussion and I thought folks did speak up in the workshop, certainly far more in comparison to the typical session. This bodes very well for my session at JavaOne 2014 covering the material. I and my fellow Cargo Tracker co-committer Vijay Nair will be delivering the tutorial at JavaOne. Below is the slide deck for your review: Applied Domain-Driven Design Blue Prints for Java EE from Reza Rahman Following my workshop, I helped out Arun Gupta with his three hour hands-on-lab on Java EE 7. This is basically the same lab that Arun developed while still at Oracle. It appears the lab has now been evolved to run on both WildFly and GlassFish. The materials for Arun's lab is available on GitHub. The lab really went very well. The attendees provided excellent feedback and the lab was standing room only even given a fairly sizable space.Following the Java EE 7 lab I delivered my JAX-RS 2 talk. Besides JAX-RS 2, I also talked about the possibilities for JAX-RS 2.1. The slides for the talk are posted below: JAX-RS.Next(): JAX-RS 2 and Beyond from Reza Rahman My first talk for the final day of the show was my JavaScript+Java EE 7 talk. This talk is basically about aligning EE 7 with the emerging JavaScript ecosystem (specifically AngularJS). The slide deck for the talk is here: JavaScript/HTML5 Rich Clients Using Java EE 7 from Reza Rahman The demo application code is posted on GitHub. The code should be a helpful resource if this development model is something that interests you. Do let me know if you need help with it but the instructions should be fairly self-explanatory. I am delivering this material at JavaOne 2014 as a two-hour tutorial. This should give me a little more bandwidth to dig a little deeper, especially on the JavaScript end.I finished off UberConf with my talk titled "Using NoSQL with ~JPA, EclipseLink and Java EE". The talk covers an interesting gap that there is surprisingly little material on out there. The talk has three parts -- a birds-eye view of the NoSQL landscape, how to use NoSQL via a JPA centric facade using EclipseLink NoSQL, Hibernate OGM, DataNucleus, Kundera, Easy-Cassandra, etc and how to use NoSQL native APIs in Java EE via CDI. The slides for the talk are here: Using NoSQL with ~JPA, EclipseLink and Java EE from Reza Rahman The JPA based demo is available here, while the CDI based demo is available here. Both demos use MongoDB as the data store. Do let me know if you need help getting the demos up and running.I did get a chance to have some fun while at UberConf. Pretty close to the conference location was the FlatIrons at Chautauqua Park. A local icon of the Boulder and Denver areas, the FlatIrons offer a very scenic hike with some of the best views of the Rocky Mountains. The hike is not supposed to be particularly strenuous, but it can be for folks like myself not acclimated to the already higher altitudes in the Denver area. Denver is at approximately 5,000 feet above sea level and rightly nicknamed the mile high city. Be very cautious while drinking or undertaking any serious physical strain while in Denver just for a few days - don't underestimate the effects of the thinner air especially if you are not in good health. Patrick Dodson, a long time GlassFish adopter accompanied me for the hike up the FlatIrons and it was definitely worth it. Check out the photos I took below:My next NFJS show is the NFJS Lone Star Software Symposium in Austin on July 18-20. Here's my tour schedule so far, I'll keep you up-to-date as the tour goes forward:July 18 - 20, Austin Texas.August 8 - 10, Des Moines Iowa.September 12 - 14, Atlanta.September 19 - 21, Boston.I hope you'll take this opportunity to get some updates on Java EE as well as the other awesome content on the tour?

UberConf was held June 24 - June 27 in Denver, Colorado. For those unaware, this is essentially the largest single annual event under the NFJS umbrella and to a certain extent the culminating point of...

NFJS Central Ohio Software Symposium Trip Report

As some of you may be aware, I recently joined the well-respected US based No Fluff Just Stuff (NFJS) Tour. If you work in the US and still don't know what the No Fluff Just Stuff (NFJS) Tour is, you are doing yourself a very serious disfavor. NFJS is by far the cheapest and most effective way to stay up to date through some world class speakers and talks. Following the US cultural tradition of old-fashioned roadshows, NFJS is basically a set program of speakers and topics offered at major US cities year round. Via NFJS you get to have amazing training without paying for an expensive venue, lodging or travel. The events are usually on the weekends so you don't need to even skip work if you want.My first engagement with NFJS was the New York Software Symposium on April 4-5. The show went relatively well and I have the trip report here. My second engagement was extremely encouraging - the Central Ohio Software Symposium in Columbus, Ohio on June 6-8. Unlike New York, the Columbus show was fully sold out and very vibrant. I had five talks total over two days, essentially back-to-back. I had a full house for all my sessions and had many of the same folks staying for multiple sessions which is always a very good sign. The close knit nature of NFJS also allows for excellent networking opportunities with Java EE users and occasional Oracle customers. My first talk was our flagship Java EE 7/8 talk. Currently the talk is basically about Java EE 7 but I'm slowly evolving the talk to transform it into a Java EE 8 talk as we move forward. The following is the slide deck for the talk: JavaEE.Next(): Java EE 7, 8, and Beyond from Reza Rahman The next talk I delivered was my Cargo Tracker/Java EE + DDD talk. This talk basically overviews DDD and describes how DDD maps to Java EE using code examples/demos from the Cargo Tracker Java EE Blue Prints project. Applied Domain-Driven Design Blue Prints for Java EE from Reza Rahman My third and last one for the first day was the talk on JMS 2. Besides covering JMS 2, I've also started to roll in some of the possibilities for JMS 2.1. The slides for the talk are posted below: What’s New in Java Message Service 2 from Reza Rahman My first talk for day two of the show was my JavaScript+Java EE 7 talk. This talk is basically about aligning EE 7 with the emerging JavaScript ecosystem (specifically AngularJS). The slide deck for the talk is here: JavaScript/HTML5 Rich Clients Using Java EE 7 from Reza Rahman The demo application code is posted on GitHub. The code should be a helpful resource if this development model is something that interests you. Do let me know if you need help with it but the instructions should be fairly self-explanatory.I finished off the show with a talk on JAX-RS 2. Besides JAX-RS 2, I also talked about the possibilities for JAX-RS 2.1. The slides for the talk are posted below: JAX-RS.Next(): JAX-RS 2 and Beyond from Reza Rahman After the Columbus show I also spoke at UberConf, the largest yearly "destination" event under the NFJS umbrella held in Denver, Colorado on June 24 - 27. That show went even better than Columbus and I'll write a separate trip report on that soon.My next NFJS show is the NFJS Lone Star Software Symposium in Austin on July 18-20. Here's my tour schedule so far, I'll keep you up-to-date as the tour goes forward:July 18 - 20, Austin Texas.August 8 - 10, Des Moines Iowa.September 12 - 14, Atlanta.September 19 - 21, Boston.I hope you'll take this opportunity to get some updates on Java EE as well as the other awesome content on the tour?

As some of you may be aware, I recently joined the well-respected US based No Fluff Just Stuff (NFJS) Tour. If you work in the US and still don't know what the No Fluff Just Stuff (NFJS) Tour is, you...

Java Day Tokyo Trip Report

Java Day Tokyo 2014 was held on May 22nd. Organized by Oracle Japan, it is the largest Java developer event in the country. Indeed it is really a replacement to JavaOne Japan. This was another highly successful year for the event with a fully sold out venue packed with youthful, energetic developers. Speakers included Steve Chin, Stuart Marks, Simon Ritter, Nandini Ramani, Cameron Purdy and Yoshio Terada. Topics included Java SE, Java EE and JavaFX.Cameron Purdy, Vice President of Development at Oracle responsible for Java EE, shared the Java EE 8 road-map during the opening keynote. You can download video of the keynote here.Following the keynote, I reviewed Java EE 7 and went into more details on Java EE 8 possibilities during my session titled "JavaEE.Next(): Java EE 7, 8, and Beyond". The sizable room was completely packed for the session. At the beginning of the session, I asked the audience whether they wanted to hear more about Java EE 7 or more about Java EE 8. To my pleasant surprise, the audience indicated that they knew about Java EE 7 and wanted to know more about Java EE 8. I talked about possibilities such as HTTP 2/Servlet 4, Server-Sent Events (SSE), a new standard action-oriented web framework, security simplification, multitenancy, REST management/monitoring, CDI 2, platform-wide CDI alignment, more pruning, JCache, configuration, JMS.next() and Java SE 8 alignment. The slides for the talk are here: JavaEE.Next(): Java EE 7, 8, and Beyond from Reza Rahman I also presented my talk aligning Java EE 7 with the HTML 5/JavaScript Rich Client landscape. I use AngularJS for my demo but the concepts can apply to any JavaScript (or even native mobile) front-end. This session was a full house with standing room only. The slide deck for the talk is posted below: JavaScript/HTML5 Rich Clients Using Java EE 7 from Reza Rahman The demo code is posted on GitHub: https://github.com/m-reza-rahman/javaee-javascript. Do give me a shout if you need help getting the demo up and running but it should be very straightforward.Besides my sessions, there were a good number of other Java EE related sessions including from Japanese Java EE evangelist Yoshio Terada (naturally he delivered his talks in Japanese). One of the most interesting of these was a talk titled "Move from J2EE to Java EE" by Hirofumi Iwasaki of Rakuten. For those who don't know what Rakuten is, it is one of the largest e-commerce platforms in the world (by volume) based in Japan. Hirofumi-san made the case for transitioning to Java EE from J2EE and avoiding non-standard frameworks. He blogged about his talk here. His slide deck is embedded below: Move from J2EE to Java EE from Hirofumi Iwasaki He is doing a similar talk at JavaOne 2014 titled "Java EE 6 Adoption in One of the World’s Largest Online Financial Systems".At the end of the day, we had an "Ask the Experts" panel. I was on the panel along with Steve, Stuart, Simon and David. There was some lively discussion around Java EE, GlassFish and WebLogic that the audience seemed to really appreciate. I too enjoyed the panel.Fortunately, the trip to Japan wasn't all work and no fun. I was largely expecting to just check out the vibrant Tokyo nightlife, but it turned out I had more free time than I was expecting. As a result, I got to do a whirlwind tour of sights like the Imperial Palace, Senso-ji/Asakusa, Meiji Shrine, Tokyo Skytree, Kabuki-za (I got to check out Kabuki - the legendary Japanese traditional opera), Shinjuku, the insane Tokyo Metro, the dazzling Shibuya Crossing, Tokyo Central Railway Station and a few others. Perhaps next time I'll aim for more of the nightlife such as the Robot Restaurant, Sumo wresting and Japanese heavy metal (yes, there is such a thing). All in all, Japan was a mystifying mix of centuries old traditions and ultramodern fixtures. Just check out the pictures I took below, you'll see what I mean:I also got to do something I was really looking forward to - check out the Mount Fuji area (some of those pictures are in the album too). Unfortunately, the official climbing season is July though August, denying me the opportunity to ascend one of the most iconic mountains on the planet. Technically I could have attempted it renting the proper gear but it would have probably been a little foolhardy considering I would have been alone and I am not in the kind of shape I once used to be in. Oh well - I guess it's good to have some things to do later in life, perhaps with my wife Nicole once we are at a stage where we can seriously think about doing this sort of thing again (and hopefully can still afford it :-)).I definitely enjoyed Java Day Tokyo and hope to be part of the event next year again!

Java Day Tokyo 2014 was held on May 22nd. Organized by Oracle Japan, it is the largest Java developer event in the country. Indeed it is really a replacement to JavaOne Japan. This was another highly...

JavaOne Java EE Track Content Finalized (A Detailed Preview)

I am very pleased to share with you that the JavaOne Java EE track content is now finalized. In this brief but detail-rich blog entry I want to tell you a little bit about the track, key content and star speakers this year. As a reminder, JavaOne 2014 is going to be held on September 28 – October 2 in San Francisco and you can register here.Thank You, Regrets and Being PersistentFirst and foremost I want to personally thank everyone that took the time to submit carefully crafted submissions to the track. Your passion and dedication has helped us construct a very strong offering for the community at large. It was a privilege to review all your sessions. JavaOne is a key part of the global Java community far beyond the walls of Oracle and all of you are a large part of keeping it successful. Indeed this year we are proud to say we have been able to minimize Oracle speakers in favor of folks from the community as well as real world stories from your fellow Java EE users. For the folks that got sessions accepted, I look forward to your excellent delivery at JavaOne. I want to especially thank the folks that did not get sessions accepted, I ask that you don't get discouraged and I hope that you still consider coming to JavaOne. Not getting a session accepted doesn't mean your proposal wasn't great - it simply might mean the track was fortunate enough to have submissions this year that perhaps were a better fit in one way or the another. It is all the more reason to further sharpen your proposal and try again next year. In the meanwhile if you have questions never hesitate to reach out - helping you helps JavaOne in the long run.Some Key ContentA following are some of the key sessions that we accepted into the track, broken down by some useful but arbitrary categories. The full content catalog should be available to you soon so you can take a look at it and perhaps book your sessions:New and Upcoming Java EE JSRsJava EE 8Java EE 8 Community Update and Panel (major vendors and community)HTTP 2 Comes to Java: What Servlet 4 Means to YouUsing the New JCacheJava API for JSON Binding: Introduction and UpdateLet's Talk JAX-RS.next!The Path to CDI 2Going Farther with CDI 1.2A First Draft of Java EE ConfigurationWhat Do We Want in JMS 2.1? (Birds-of-a-Feather)What's Next for JSF? (Birds-of-a-Feather)What's Next for the WebSocket API?JSON Pointer and JSON Patch: Updates to the Java API for JSON ProcessingJSR 347 Reboot: An Update on a Standard Data Grid API for Java (Birds-of-a-Feather)Meet the Java EE Specification Leads (Birds-of-a-Feather)Real World Case StudiesJava EE 6 Adoption in One of the World's Largest Online Financial Systems (Rakuten)eBay, Connecting Buyers and Sellers Globally via JavaServer FacesBean Validation: Practical Examples from a Real-World Java EE 7 Application (Harvard University)Migrating a JSF-Based Web Application from Spring 3 to Java EE 7 and CDIJPA Gotchas and Best Practices: Lessons from Overstock.comLessons Learned from Real-World Deployments of Java EE 7 (WildFly/JBoss/Red Hat)Java EE 7 Batch Processing in the Real WorldBest Practices and Design PatternsJava EE Game ChangersJava EE 7 Recipes50 JMS 2 Best Practices in 50 MinutesLazy Versus Eager Loading Strategies for JPA 2.150 EJB 3 Best Practices in 50 MinutesJavaServer Faces Antipatterns and Best PracticesApplied Domain-Driven Design Blueprints for Java EEJava SE 8 Features for Java EE 7 DevelopersJava EE 7 and Spring 4: A ShootoutCommunityAdopt-a-JSR for Java EE 7 and Java EE 8GlassFish Community BOFCalling All GlassFish Users and User Groups: Please Contribute to GlassFishPrimeTime JSF with PrimeFaces 5Apache TomEE, Java EE Web Profile, and More on TomcatLabs and TutorialsJava EE 101 (Hands-on-Lab)JSR107: Come, Code, Cache, Compute! (Tutorial)JavaScript/HTML5 Rich Clients Using Java EE 7 (Tutorial)Hybrid Mobile Development with Apache Cordova and Java EE 7 (Tutorial)Building Secure Applications with Java EE (Tutorial)JSF 2.2 Deep Dive (Tutorial)Some Key Oracle SpeakersDavid Delabassee (Java EE evangelist)Geertjan Wielenga (NetBeans evangelist)Bruno Borges (Java EE evangelist)Yoshio Terada (Japanese Java EE evangelist)Bill Shannon (Java EE specification lead)Linda Demichiel (Java EE specification lead)Edward Burns (JSF, Servlet specification lead, author, speaker)Santiago Pericasgeertsen (JAX-RS specification lead)Marek Potociar (JAX-RS specification lead)Nigel Deakin (JMS specification lead)Heather Vancura (JCP)Some Key Community SpeakersAdam Bien (JavaOne Rock Star, Java EE author, speaker, consultant)David Blevins (JavaOne Rock Star, Apache TomEE project lead)Arun Gupta (JavaOne Rock Star, director of developer advocacy, Red Hat)Emmanuel Bernard (Bean Validation, Hibernate OGM lead, Red Hat)Antoine Sabot-Durand (CDI specification lead, Red Hat)Pete Muir (CDI specification lead, Red Hat)Greg Luck (JCache, Ehcache lead, Hazlecast)Cagatay Civici (PrimeFaces lead)Kito Mann (Java EE author, speaker, consultant)Anatole Tresch (Java EE configuration specification lead, Credit Suisse)Patrycja WegrzynowiczPeter Pilgrim (Java EE author, speaker, consultant)Steve Millidge (London GlassFish User Group, C2B2 Consulting)Ryan Cuprak (JavaOne Rock Star, Java EE author, speaker and JUG leader)David Heffelfinger (Java EE author, consultant)Josh Juneau (Java EE author)Cloud and Other TracksBesides the Java EE track, there is also our sister cloud track as well as of course all of the other great tracks at JavaOne. The cloud track has some excellent content this year such as SaaS, PaaS, IaaS, multitenancy, virtualization, OpenStack, NoSQL, MongoDB, Neo4j, Big Data/Hadoop, DevOps, jclouds and modularity/OSGi delivered by great speakers like Alexis Moussine-Pouchkine (Google Developer Advocacy, former Java EE evangelist) and Mark Little (JBoss CTO, Red Hat Vice President). Across the other tracks we have many other world class speakers and unique content relevant to Java developers such as Java SE 8, NetBeans, agile and JavaFX.I hope to see you all at JavaOne. In the next coming weeks and months we will be sharing more details on the Java EE track, content and speakers at JavaOne. Lastly having been on the other side of the fence I know as much as you might come to JavaOne, it might not be a practical reality for you for a variety of good reasons. I want to remind you that we make a point to make JavaOne content openly available to all. That being said I want to tell you that you should make the pilgrimage to JavaOne at least once as a Java developer. I have attended it a total of seven times, most often paying out of my own pocket as a self-employed consultant.

I am very pleased to share with you that the JavaOne Java EE track content is now finalized. In this brief but detail-rich blog entry I want to tell you a little bit about the track, key content...

Java EE @ No Fluff Just Stuff Tour

If you work in the US and still don't know what the No Fluff Just Stuff (NFJS) Tour is, you are doing yourself a very serious disfavor. NFJS is by far the cheapest and most effective way to stay up to date through some world class speakers and talks. This is most certainly true for US enterprise Java developers in particular. Following the US cultural tradition of old-fashioned roadshows, NFJS is basically a set program of speakers and topics offered at major US cities year round. Many now famous world class technology speakers can trace their humble roots to NFJS. Via NFJS you basically get to have amazing training without paying for an expensive venue, lodging or travel. The events are usually on the weekends so you don't need to even skip work if you want (a great feature for consultants on tight budgets and deadlines).I am proud to share with you that I recently joined the NFJS troupe. My hope is that this will help solve the lingering problem of effectively spreading the Java EE message here in the US. For NFJS I hope my joining will help beef up perhaps much desired Java content. In any case, simply being accepted into this legendary program is an honor I could have perhaps only dreamed of a few years ago. I am very grateful to Jay Zimmerman for seeing the value in me and the Java EE content. The current speaker line-up consists of the likes of Neal Ford, Venkat Subramaniam, Nathaniel Schutta, Tim Berglund and many other great speakers.I actually had my tour debut on April 4-5 with the NFJS New York Software Symposium - basically a short train commute away from my home office. The show is traditionally one of the smaller ones and it was not that bad for a start. I look forward to doing a few more in the coming months (more on that a bit later). I had four talks back to back (really my most favorite four at the moment). The first one was a talk on JMS 2 - some of you might already know JMS is one of my most favored Java EE APIs. The slides for the talk are posted below: What’s New in Java Message Service 2 from Reza Rahman The next talk I delivered was my Cargo Tracker/Java EE + DDD talk. This talk basically overviews DDD and describes how DDD maps to Java EE using code examples/demos from the Cargo Tracker Java EE Blue Prints project. Applied Domain-Driven Design Blue Prints for Java EE from Reza Rahman The third talk I delivered was our flagship Java EE 7/8 talk. As you may know, currently the talk is basically about Java EE 7. I'll probably slowly evolve this talk to gradually transform it into a Java EE 8 talk as we move forward (I'll blog about that separately shortly). The following is the slide deck for the talk: JavaEE.Next(): Java EE 7, 8, and Beyond from Reza Rahman My last talk for the show was my JavaScript+Java EE 7 talk. This talk is basically about aligning EE 7 with the emerging JavaScript ecosystem (specifically AngularJS). The slide deck for the talk is here: JavaScript/HTML5 Rich Clients Using Java EE 7 from Reza Rahman Unsurprisingly this talk was well-attended. The demo application code is posted on GitHub. The code should be a helpful resource if this development model is something that interests you. Do let me know if you need help with it but the instructions should be fairly self-explanatory.My next NFJS show is the Central Ohio Software Symposium in Columbus on June 6-8 (sorry for the late notice - it's been a really crazy few weeks). Here's my tour schedule so far, I'll keep you up-to-date as the tour goes forward:June 6 - 8, Columbus Ohio.June 24 - 27, Denver Colorado (UberConf) - my most extensive agenda on the tour so far.July 18 - 20, Austin Texas.I hope you'll take this opportunity to get some updates on Java EE as well as the other awesome content on the tour?

If you work in the US and still don't know what the No Fluff Just Stuff (NFJS) Tour is, you are doing yourself a very serious disfavor. NFJS is by far the cheapest and most effective way to stay up to...

Code PaLOUsa 2014 Trip Report

Code PaLOUsa 2014 took place 24-26 February in Louisville, Kentucky. Code PaLOUsa is a fairly unassuming conference with great quality farther away from the beaten paths. The conference is principally rooted in .NET but is trying hard to beef up Java content, so it was important to have a presence from our team. My fellow Oracle colleague Scott Seighman (Cleveland JUG leader) also supported local Java developers by delivering a Java SE 8 talk. Topics covered included Java, .NET, JavaScript, mobile, methodology and Big Data/NoSQL.I was very fortunate in that on my way to Kentucky, I was able to stop by at the Montgomery County (Maryland) JUG for a Java EE 7 session. The JUG was very kind in agreeing to schedule an off-cadence meeting to accommodate my trip. I have been to the JUG several times over the years and it is always a good experience with solid attendance - this time was no exception. Whenever I can I'll try to schedule another talk with the JUG. I essentially presented the same Java EE 7 deck we have been using for a while as our main talk (embedded below) - just taking time to do a bit more of a deep dive (the session lasted two and a half hours with almost everyone staying until the very end!). JavaEE.Next(): Java EE 7, 8, and Beyond from Reza Rahman Since the JUG meeting lasted much longer than I expected, I didn't arrive at Louisville until late the next day (yes, I drove :-)). With just a few hours to spare, I did my first talk at Code PaLOUsa titled "Using NoSQL with ~JPA, EclipseLink and Java EE". The talk covers an interesting gap that there is surprisingly little material on out there. The talk has three parts -- a birds-eye view of the NoSQL landscape, how to use NoSQL via a JPA centric facade using EclipseLink NoSQL, Hibernate OGM, DataNucleus, Kundera, Easy-Cassandra, etc and how to use NoSQL native APIs in Java EE via CDI. The slides for the talk are here: Using NoSQL with ~JPA, EclipseLink and Java EE from Reza Rahman The next day I presented one of my most favorite talks titled "Applied Domain-Driven Design Blue Prints for Java EE". The talk is essentially about the Cargo Tracker Java EE Blue Print project. The project is an attempt at reviving and modernizing the much needed Java EE Blue Prints effort to demonstrate some architectural best practices for Java EE. The talk has three parts -- a brief overview of DDD theory, mapping DDD to Java EE and actual running Cargo Tracker DDD code with Java EE/GlassFish. The talk was well attended and I got excellent feedback on the talk later. InfoQ recorded the session so hopefully it will be available to a broader audience soon. The slides for the talk are here: Applied Domain-Driven Design Blue Prints for Java EE from Reza Rahman After the conference I took some time out to enjoy one of the most unique experiences in the World - the Louisville Mega Cavern. To my knowledge, it is one of the largest man-made Caverns open to the general public anywhere. A truly massive former limestone mine, during the early days of the Cold War it was used as a fallout shelter. If that isn't fascinating enough, it might be the only place in the world you can zip line through a primitive limestone mine!While the zip line was a truly awesome experience (there's five of them total across various parts of the mine), I wouldn't advise it for the uninitiated. With pitch dark corners, jagged rocks, mud/dirty pools of water, sudden sheer drops, simple rope bridges and fast/long inclines I imagine it could be a very scary experience for folks that have never been inside a primitive cave or cavern (natural or man made) - check out the pictures below. You have been duly warned :-). However if you feel you can make it, it is definitely worth doing if you are in the area.All in all Code PaLOUsa, the Maryland JUG and Kentucky were worth the while. To boot, I didn't have to take a dull long flight :-).

Code PaLOUsa 2014 took place 24-26 February in Louisville, Kentucky. Code PaLOUsa is a fairly unassuming conference with great quality farther away from the beaten paths. The conference is principally...

Jfokus 2014 Trip Report

Jfokus 2014 took place 3-5 February in Stockholm, Sweden at the Waterfront Congress Centre. This was my first time at the conference. Jfokus slates itself as the largest developer conference in Sweden and it certainly is quite significant in terms of both content quality and attendance. Key organizer Mattias Karlsson deserves a well earned pat on the back for accomplishing such a feat in just a few years. Although the conference is most certainly not limited to Java, luckily for Java developers it does have a slight Java bend. The event attracted a bevy of World class speakers including quite a few of my fellow Oracle colleagues - Mark Reinhold, Georges Saab, Stephen Chin, Simon Ritter, Mark Heckler, Angela Caicedo, Geertjan Wielenga (NetBeans), Heather VanCura (JCP), Cecilia Borg (OpenJDK), Joel Borggrén-Franck (JDK) and Marcus Hirt (JDK). Notable other folks speaking included Venkat Subramaniam, David Blevins, Pratik Patel, Trisha Gee, Martijn Verburg and Anton Arhipov. Topics covered included Java SE, Java EE (of course :-), embedded Java, JavaScript, cloud, mobile, DevOps, agile and Big Data/NoSQL.The conference started for me on Monday afternoon with a half-day university session titled "Down and Dirty with Java EE 7". This was really a demo-driven introduction to Java EE 7 using Cargo Tracker. Although the real point of Cargo Tracker is demonstrating some sound architectural practices for Java EE as a whole, we have actually wound up organically incorporating quite a bit of Java EE 7. As a result, I was able to use the project to provide an extended session with a mix of lecture and demos covering Java EE 7 at a fairly high level. The rather lengthy session was a full house and seemed to be fairly well received. The slides for the session are here (requires Silverlight - can download the slides even if not available). Ed Burns essentially did the same thing at DevNexus more recently (also using Cargo Tracker).Tuesday is when the regular sessions started. It was sort of a lighthearted day for me since all I had was a dinner-time shootout between dynamic and static languages hosted by Stephen Chin. I showed up all pumped up with my arguments/counter-arguments ready to launch in favor of Java and static languages (big surprise I was chosen for the static team, right :-)?). As it turned out it was not a serious technical affair at all but just some game show style good matured antics. I had fun on stage and it was all cool. Later that evening I participated in a BoF on the JCP, OpenJDK, Adopt-a-JSR and Java EE 8 with Cecilia Borg, Heather VanCura and Martijn Verburg. I talked about some of the things we are considering on the Java EE 8 survey. The discussion was great and I got some good feedback to return back to the team. I finished off the conference on Wednesday with my brand new talk titled "HTML5/Rich Clients Using Java EE 7" in the keynote hall. I am very glad Jfokus was keen on this talk since I have been waiting to deliver it for a while now (since then a bunch of other folks have also expressed interest in the talk already). The talk is about the excellent alignment Java EE has with the emerging world of HTML5/JavaScript frameworks like AngularJS, Backbone, Knockout and Ember. Java EE is really quite well positioned to adapt to richer browser clients with APIs like JAX-RS, WebSocket, JSON-P, CDI, EJB3, JPA and Bean Validation. I also briefly talked about Oracle's project Avatar. The talk was a full house and was very well received.The slides for the talk are below, the demo code is on GitHub. The project should be very easy to setup, but do give me a shout if you need help. My intent is to give you the very basics of what you need to get started exploring this type of architecture. JavaScript/HTML5 Rich Clients Using Java EE 7 from Reza Rahman It was good to catch up with a bunch of folks all at this one event. Check out the pictures below with me, David, Amelia, Tori, Steve, Thomas, Mark and Simon hanging out in the hotel lounge after the conference!While in Stockholm, a few of us had occasion to check out a few cool spots like old town, the Royal Palace, the Vasa Museum and Skansen (thanks in large part to the pre-conference speakers-only tour organized by Mattias).The Vasa Museum and Skansen I thought were particularity cool. The Vasa was a massive wooden warship launched in 1628. Legend has it the pride of the Swedish King tragicomicaly sank within minutes of being launched condemning most of the crew to a frigid death due to a number of critical design flaws that rooted back to the King's overgrown ego. The ship was dredged up from the icy waters in the twentieth century, restored and placed into one of Sweden's most visited museums. Skansen has a decidedly less dubious past - reportedly one of the oldest open air museums in the world, it is intended to be a miniature model of Sweden itself in the pre-Industrial era. With aging but well-kept structures moved piece-by-piece from various parts of Sweden and reconstructed in Skansen as well as reenactors in period costume Skansen really feels like going back in a time machine. In US terms, it felt sort of like a very serious and realistic Renaissance Fair (check out the photo album below).All in all, this was a very good trip. I look forward to going back to Stockholm and Jfokus another year...

Jfokus 2014 took place 3-5 February in Stockholm, Sweden at the Waterfront Congress Centre. This was my first time at the conference. Jfokus slates itself as the largest developer conference in Sweden...

CodeMash 2014 Trip Report

CodeMash 2014 took place 7-10 January in Sandusky, Ohio at the exotic Kalahari Waterpark Resort. This was my first time at the conference. With another sold-out year, CodeMash is quickly becoming one of the largest developer conferences state-side. It has it's roots in .NET, but is making a concerted effort to better attract a Java audience hence it was important for us to support that effort. This year it attracted a decent section of the Java crowd including my fellow Oracle colleagues Jim Weaver (JavaFX) and Scott Seighman (Scott is the leader of the Cleveland JUG and spoke on Java SE 8) as well as Chris Judd (leader of the fairly active Columbus JUG). Topics covered included .NET, Rails, methodology, JavaScript/HTML 5, mobile, cloud, DevOps, Hadoop, NoSQL, Java SE, JavaFX and Java EE (of course :-)).On my way back, I stopped by at the nascent Happy Valley JUG in State College, PA - kicking off a highly successful and well-attended first meetup!My session on Java EE at CodeMash titled "JavaEE.Next(): Java EE 7, 8, and Beyond" was very well attended. I covered the changes in JMS 2, the Java API for WebSocket (JSR 356), the Java API for JSON Processing (JSON-P), JAX-RS 2, JPA 2.1, JTA 1.2, JSF 2.2, Java Batch, Bean Validation 1.1, Java EE Concurrency and the rest of the APIs in Java EE 7. I also briefly talked about some of the possibilities for Java EE 8. The slides for the talk are here: JavaEE.Next(): Java EE 7, 8, and Beyond from Reza Rahman To my delight, the CodeMash was interested in my NoSQL+Java EE talk (titled "Using NoSQL with ~JPA, EclipseLink and Java EE"). The talk covers an interesting gap that there is surprisingly little material on out there. The talk has three parts -- a birds-eye view of the NoSQL landscape, how to use NoSQL via a JPA centric facade using EclipseLink NoSQL, Hibernate OGM, DataNucleus, Kundera, Easy-Cassandra, etc and how to use NoSQL native APIs in Java EE via CDI. This talk was also pretty well attended and the Q & A was excellent. The slides for the talk are here: Using NoSQL with ~JPA, EclipseLink and Java EE from Reza Rahman The visit to the Happy Valley JUG was really great. Although it's geared towards the general State College area, the JUG is a bit Penn State University centric at the moment since both key JUG organizers Shawn Smith and Steve Moyer work for Penn State and the meetings are held on campus (incidentally, both Shawn and Steve are Java EE fans :-)). It was really a great privilege to lead the very first meeting of the JUG. I ran the Java EE 7 Hands-on Lab as a whole day workshop. I think this might be the first JUG in the world who's inaugural meeting was so well attended with everyone doing head's down hacking the whole day (just check out the awesome picture below - go Nittany Lions :-)).

CodeMash 2014 took place 7-10 January in Sandusky, Ohio at the exotic Kalahari Waterpark Resort. This was my first time at the conference. With another sold-out year, CodeMash is quickly becoming one...

Oredev 2013 Trip Report

Oredev 2013 was held on 4-8 November in Malmo Sweden. This was my second time at the largest IT conference in the Scania region - I had been there in 2010 as an independent. The conference is rooted in .NET and development process/methodology but has been trying hard to beef up it's Java content. This year it attracted a decent section of the Java crowd including my fellow Oracle colleagues Brian Goetz (Java SE), Geertjan Wielenga (NetBeans), Attila Szegedi (Nashorn), Aleksey Shipilev (Java SE), Cecilia Borg (OpenJDK), Marcus Hirt (Java SE) and Tomas Nilsson (Java SE) as well as my long-time friend Adam Bien. Topics covered included Java EE (of course :-)), mobile, DDD, agile, HTML5, cloud, Java SE, OpenJDK, JavaScript and NoSQL.I ran the Java EE 7 Hands-on Lab as a whole day workshop. A decent number of people showed up for the workshop and it ran very smoothly (many folks had kind words to share afterwards). Last time I had tried to run this lab at OSCON, it did not go so smoothly due to various GlassFish and NetBeans issues that now seem to have been fixed. There were also issues with the lab itself that have since been addressed. There are still a few remaining rough spots in the lab I will get ironed out as soon as possible.The openly available hands-on lab is actually a very good resource for getting your hands dirty with Java EE 7. The entire lab is neatly scripted into step-by-step instructions and seeded with some starter code as to be largely self-directed and self-paced. The idea is that anyone should be able to complete the lab by themselves or even lead the lab in their own organizations. I am finding that the length of the lab actually makes it more suitable as a one-day workshop - perhaps calling it something like "Hands-on Java EE 7", "Down and Dirty with Java EE 7", "A Self-Guided Tour of Java EE 7", etc. I am actually running such a workshop again at Penn State University/the Happy Valley JUG on my way back from CodeMash in Sandusky, Ohio in January.I also had a regular conference session on JAX-RS 2. Titled "JAX-RS 2: New and Noteworthy in the RESTful Web Services API" this was basically the same talk given by the specification leads Santiago Pericas-Geertsen and Marek Potociar at JavaOne San Francisco. I talked about the JAX-RS 2 client API, asyncronous processing, filters/interceptors, hypermedia support, server-side content negotiation and the like. It's somewhat unusual for conferences to accept this talk which is strange given the popularity of JAX-RS and the importance of REST in both mobile and HTML5 applications. The talk was well attended, went very well and the Q & A was great. The slides for the talk are here (including the abstract and source PPT): JAX-RS 2: New and Noteworthy in the RESTful Web Services API from Reza Rahman On the Friday night after the conference, I got to catch a Queensryche performance at Kulturbolaget (besides Debaser the most significant music venue in Malmo; also known simply as "KB"). I had seen another act from the US-based progressive metal legends in my hometown of Philadelphia at the legendary Trocadero Theatre a few years ago. Queensryche seems to always deliver a technically polished if albeit somewhat tame performance. Besides the good ol' US of A, Sweden is one of the few countries in the World that you can probably find a metal gig in most major cities year-round...All in all, I enjoyed Oredev/Malmo and look forward to going back some time again soon (I'll be back in Sweden for Jfokus in February).

Oredev 2013 was held on 4-8 November in Malmo Sweden. This was my second time at the largest IT conference in the Scania region - I had been there in 2010 as an independent. The conference is rooted...

Java Developer Days India Trip Report

You are probably aware of Oracle's decision to discontinue the relatively resource intensive regional JavaOnes in favor of more Java Developer Days, virtual events and deeper involvement with independent conferences. In comparison to the regional JavaOnes, Java Developer Days are smaller, shorter (typically one full day), more focused (mostly Oracle speakers/topics) and more local (targeting cities). For those who have been around the Java ecosystem for a few years, they are basically the current incarnation of the highly popular and developer centric Sun Tech Days. October 21st through October 25th I spoke at Java Developer Days India. This was basically three separate but identical events in the cities of Pune (October 21st), Chennai (October 24th) and Bangalore (October 25th). For those with some familiarity with India, other than Hyderabad these cities are India's IT powerhouses.The events were basically focused on Java EE. I delivered five of the sessions (yes, you read that right), while my friend NetBeans Group Product Manager Ashwin Rao delivered three talks. Jagadish Ramu from the GlassFish team India helped me out in Bangalore by delivering two sessions. It was also a pleasure to introduce my co-contributor to the Cargo Tracker Java EE Blue Prints project Vijay Nair at Bangalore during the opening talk. I thought it was a great dynamic between Ashwin and I flipping between talking about the new features and demoing live code in NetBeans. The following were my sessions (source PDF and abstracts posted as usual on my SlideShare account):JavaEE.Next(): Java EE 7, 8, and BeyondBuilding Java HTML5/WebSocket Applications with JSR 356What’s New in Java Message Service 2JAX-RS 2: New and Noteworthy in the RESTful Web Services APIUsing NoSQL with JPA, EclipseLink and Java EEThe event went well and was packed in all three cities. The Q&A was great and Indian developers were particularly generous with kind words :-). It seemed the event and our presence was appreciated in the truest sense which I must say is a rarity. The events were exhausting but very rewarding at the same time.As hectic as the three city trip was I tried to see at least some of the major sights (mostly at night) since this was my very first time to India. I think the slideshow below is a good representation of the riddle wrapped up in an enigma that is India (and the rest of the Indian sub-continent for that matter):Ironically enough what struck me the most during this trip is the woman pictured below - Shushma. My chauffeur, tour guide and friend for a day, she fluidly navigated the madness that is Mumbai traffic with skills that would make Evel Knievel blush while simultaneously pointing out sights and prompting me to take pictures (Mumbai was my stopover and gateway to/from India). In some ways she is probably the most potent symbol of the new India. I also had occasion to take a pretty cool local bus ride from Chennai to Bangalore instead of yet another boring flight.All in all I really enjoyed the trip to India and hope to return again soon. Jai Hind :-)!

You are probably aware of Oracle's decision to discontinue the relatively resource intensive regional JavaOnes in favor of more Java Developer Days, virtual events and deeper involvement...

How You Helped Shape Java EE 7...

I have been working with the JCP in various roles since EJB 3/Java EE 5 (much of it on my own time), eventually culminating in my decision to accept my current role at Oracle (despite it's inevitable set of unique challenges, a role I find by and large positive and fulfilling). During these years, it has always been clear to me that pretty much everyone in the JCP genuinely cares about openness, feedback and developer participation. Perhaps the most visible sign to date of this high regard for grassroots level input is a survey on Java EE 7 gathered a few months ago. The survey was designed to get open feedback on a number of critical issues central to the Java EE 7 umbrella specification including what APIs to include in the standard. When we started the survey, I don't think anyone was certain what the level of participation from developers would really be. I also think everyone was pleasantly surprised that a large number of developers (around 1100) took the time out to vote on these very important issues that could impact their own professional life. And it wasn't just a matter of the quantity of responses. I was particularly impressed with the quality of the comments made through the survey (some of which I'll try to do justice to below).With Java EE 7 under our belt and the horizons for Java EE 8 emerging, this is a good time to thank everyone that took the survey once again for their thoughts and let you know what the impact of your voice actually was. As an aside, you may be happy to know that we are working hard behind the scenes to try to put together a similar survey to help kick off the agenda for Java EE 8 (although this is by no means certain). I'll break things down by the questions asked in the survey, the responses and the resulting change in the specification.APIs to Add to Java EE 7 Full/Web ProfileThe first question in the survey asked which of four new candidate APIs (WebSocket, JSON-P, JBatch and JCache) should be added to the Java EE 7 Full and Web profile respectively.Developers by and large wanted all the new APIs added to the full platform. The comments expressed particularly strong support for WebSocket and JCache. Others expressed dissatisfaction over the lack of a JSON binding (as opposed to JSON processing) API.WebSocket, JSON-P and JBatch are now part of Java EE 7. In addition, the long-awaited Java EE Concurrency Utilities API was also included in the Full Profile. Unfortunately, JCache was not finalized in time for Java EE 7 and the decision was made not to hold up the Java EE release any longer. JCache continues to move forward strongly and will very likely be included in Java EE 8 (it will be available much sooner than Java EE 8 to boot). An emergent standard for JSON-B is also a strong possibility for Java EE 8.When it came to the Web Profile, developers were supportive of adding WebSocket and JSON-P, but not JBatch and JCache. Both WebSocket and JSON-P are now part of the Web Profile, now also including the already popular JAX-RS API.Enabling CDI by DefaultThe second question asked whether CDI should be enabled in Java EE by default.The overwhelming majority of developers supported the default enablement of CDI. In addition, developers expressed a desire for better CDI/Java EE alignment (with regards to EJB and JSF in particular). Some developers expressed legitimate concerns over the performance implications of enabling CDI globally as well as the potential conflict with other JSR 330 implementations like Spring and Guice.CDI is enabled by default in Java EE 7. Respecting the legitimate concerns, CDI 1.1 was very careful to add additional controls around component scanning. While a lot of work was done in Java EE 6 and Java EE 7 around CDI alignment, further alignment is under serious consideration for Java EE 8.Consistent Usage of @InjectThe third question was around using CDI/JSR 330 @Inject consistently vs. allowing JSRs to create their own injection annotations (e.g. @BatchContext).A majority of developers wanted consistent usage of @Inject. The comments again reflected a strong desire for CDI/Java EE alignment.A lot of emphasis in Java EE 7 was put into using @Inject consistently. For example, the JBatch specification is focused on using @Inject wherever possible. JAX-RS remains an exception with it's existing custom injection annotations. However, the JAX-RS specification leads understand the importance of eventual convergence, hopefully in Java EE 8.Expanding the Use of @StereotypeThe fourth question was about expanding CDI @Stereotype to cover annotations across Java EE beyond just CDI.A solid majority of developers supported the idea of making @Stereotype more universal in Java EE. The comments maintained the general theme of strong support for CDI/Java EE alignmentUnfortunately, there was not enough time and resources in Java EE 7 to implement this fairly pervasive feature. However, it remains a serious consideration for Java EE 8.Expanding Interceptor UseThe final set of questions was about expanding interceptors further across Java EE.Developers strongly supported the concept. Along with injection, interceptors are now supported across all Java EE 7 components including Servlets, Filters, Listeners, JAX-WS endpoints, JAX-RS resources, WebSocket endpoints and so on.I hope you are encouraged by how your input to the survey helped shape Java EE 7 and continues to shape Java EE 8. Participating in these sorts of surveys is of course just one way of contributing to Java EE. Another great way to stay involved is the Adopt-A-JSR Program. A large number of developers are already participating through their local JUGs. You could of course become a Java EE JSR expert group member or observer. You should stay tuned to The Aquarium for the progress of Java EE 8 JSRs if that's something you want to look into...

I have been working with the JCP in various roles since EJB 3/Java EE 5 (much of it on my own time), eventually culminating in my decision to accept my current role at Oracle (despite it's inevitable...

JavaOne 2013 Trip Report

JavaOne 2013 San Francisco was held September 22-26. I am proud to say this is my seventh JavaOne as an attendee, my fifth one as a speaker, my second one as an Oracle employee and my first one as a member of the content committee. This was a particularly important year from a Java EE standpoint with the release of EE 7 and GlassFish 4 - the content reflected this fact.I'll admit JavaOne has a special place in my heart - I still remember how awe inspiring my first JavaOne was. It seemed almost surreal, as if the air itself was electrifying. For almost a full week, I felt proud and humbled to be part of an incredible global phenomenon taking place under the roof of Moscone Center in beautiful San Francisco. It made me want to be a more significant part of the Java community. While JavaOne 2013 can certainly be considered a success by most measures, I think most folks would say the atmosphere for JavaOne 2013 unfortunately would not resemble the description of my first JavaOne. Whatever the underlying factors, that's a real shame since there can be little question that JavaOne remains the most important Java conference in the world. Having taken part in organizing a few other fairly large conferences and attending/speaking at numerous others, the content was definitely of outstanding quality even as compared with many other conferences of similar magnitude. It's clear the best and the brightest in the Java ecosystem still see participating in JavaOne as a badge of honor and a privilege. Perhaps a wise retrospective to be had is that we at Oracle need to do more to keep the conference a uniquely valuable experience and try to reach out to a newer generation of developers that would continue to find JavaOne inspiring. On the other hand, hopefully it's just that I'm a bit more jaded and less naive than I once used to be :-).At any rate, JavaOne 2013 was definitely both hectic and rewarding personally. Besides booth duty at the GlassFish 4/Java EE 7 kiosk, I had one user group event, a couple of BOFs and a technical session. The conference really started for me on Saturday evening with making sure the GlassFish 4/Java EE 7 kiosk is up and running. I am proud to say Cargo Tracker was demoed at the booth along with the Java EE 7 Hands-on-Lab. Part of the Java EE Blue Prints project, Cargo Tracker is a sub-project I initiated that is aimed at demonstrating architectural best practices such as Domain-Driven Design (DDD) using Java EE 7. It's essentially the well known Java DDD sample application originally written in Spring, Hibernate and Jetty modernized, expanded and ported over to Java EE 7/GlassFish 4. If you weren't aware of the project, it is somewhat deliberate. We are still working out some details before we do our first alpha release and reach out to the community. Consider this a sneak peek :-). You are of course welcome to contribute to the open source project any time.It was my pleasure and privilege to lead the GlassFish Community Event on Sunday. It's long been a rallying point for the GlassFish and Java EE communities at JavaOne and a great way to kick off the conference. Despite the early morning timing and somewhat unfortunate but unavoidable conflict with the NetBeans Sunday User Group event, the two hour session was fairly well attended as usual. John did an excellent job presenting the road map as usual (slide deck embedded below), the GlassFish/Oracle executive panel was very good and we had four great Java EE/GlassFish stories this year. The entire session was video recorded and all the slide decks are posted on SlideShare. We still need to figure out how we can best get all the great content to the broader community, but I hope we can publish most of it on the GlassFish.org page for the event. The stories will be posted on the usual blog that hosts all Java EE/GlassFish stories. GlassFish Roadmap from glassfish The now iconic GlassFish party was held at the Thirsty Bear in the evening. The party was a full house with a ton of pictures that we will publish soon as well.On Monday and Tuesday afternoon, I had booth duty. The booth traffic was decent and there were a number of pretty good conversations. On Monday afternoon I had my first BOF titled "What’s New with Bean Validation and Expression Language in Java EE 7". I generally enjoy BOFs as they give me an opportunity to talk about a given topic at a slightly deeper level in a slightly less impersonal setting. The goal was to have a fairly informal/open-ended discussion around the changes in Bean Validation 1.1 as well as EL 3 and the impact of these changes in terms of the Java EE 7 platform as well as the broader ecosystem. Somewhat to my surprise, the BOF was packed and I got excellent feedback afterwards. I decided to break up the BOF deck into two separate lightning talk oriented decks (posted below). As always, I've posted the source PPT so you are welcome to use the material yourself as you see fit. What’s New with Bean Validation in Java EE 7 from Reza Rahman What’s New with Expression Language in Java EE 7 from Reza RahmanOn Tuesday evening I led the GlassFish BOF. Tuesday late evening is always a tough time slot since many of the parties are scheduled at the time. Nonetheless, we had pretty good attendance and some excellent conversations. We covered Java EE 7, the features in GlassFish 4 beyond Java EE, the GlassFish/Java EE ecosystem, the GlassFish.org face lift, project Avatar and the road ahead. The slide deck is posted below. GlassFish BOF from glassfish On Thursday mid-day I had my technical session titled "Android and iOS Development with Java EE 7". I co-presented the talk with Ryan Cuprak and Bala Muthuvarathan. Ryan is the leader of the Connecticut JUG, a close friend and my co-author on the upcoming second edition of EJB 3 in Action (covering EJB 3.1, CDI 1.1, JPA 2.1, etc). Bala is a friend and former colleague from CapTech Consulting. They are both incredibly capable people that it is an honor to work with. The goal of the talk was to demonstrate how Java EE 7 can be used as an effective back-end for native mobile development with Android and iOS. The server-side consists of a chat WebSocket API and a to do list REST API implemented using the Java API for WebSocket, JSON-P, JAX-RS 2, CDI, Bean Validation, EJB 3 and JPA. While I focused on the server-side code, Ryan wrote the iOS portion while Bala wrote the Android portion. The demo code is available on GitHub and the slide deck is posted below. The idea is to give you the seed code you need to get started with Java EE 7 based mobile development. The plan is for me, Ryan and Bala to co-author an article series on the material very soon.The talk went extremely well and was a full house. A couple of folks went so far as to tell us that it was "one of the best talks of the conference" and "the only talk worth attending all week". As an offshoot to the talk, I entered a couple of feature requests against Tyrus and Jersey. Feel free to vote on the issues and contribute to the project on GitHub. Also, do drop me a note if you need help getting things up and running.The Saturday after the conference my wife Nicole and I took my daughter Zehra to see the Kings Canyon and Sequoia National Parks. Home to giant sequoias like General Sherman, the parks offer some of the most spectacular landscapes that still represents the uniqueness, magnificence and great potential of this country. At 275 feet tall and approximately 2500 years old, General Sherman is the largest known living single stem tree on Earth. If the presence of the giant sequoias doesn't inspire you to try to live a meaningful life beyond yourself that makes a positive difference for as many people as you can in your fleeting and insignificant lifetime, nothing probably ever will...All in all, this JavaOne trip was good overall and I hope to be a part of JavaOne again next year.

JavaOne 2013 San Francisco was held September 22-26. I am proud to say this is my seventh JavaOne as an attendee, my fifth one as a speaker, my second one as an Oracle employee and my first one as...

Java EE@Pittsburgh, Columbus, Cleveland JUGs

With the numerous larger conferences worldwide that we cover in the Java EE/GlassFish team, it is often difficult to make time to visit JUGs. This leaves a gap as many folks often don't make it to regional/international conferences. It's also a shame since I used to visit quite a few JUGs back in my independent consultant days. With the Java EE 7 release I'm trying to reach out to at least my local JUGs in the greater North East/Mid Atlantic area. In this vein, I made a smallish JUG tour covering the Pittsburgh, Columbus and Cleveland JUGs. Cleveland JUG leader Scott Seighman helped arrange the tour. Scott is one of the surprisingly few Oracle employees involved with their local JUGs. Scott's efforts are indeed admirable and encouraging.I did my Java EE 7 talk (our flagship talk this year) in all three JUGs (Pittsburgh on August 13th, Columbus on August 14th and Cleveland on August 15th) - slides posted below. JavaEE.Next(): Java EE 7, 8, and Beyond from reza_rahman All three talks went very well and I had some excellent interactions afterwards. This is despite the fact that JUGs during Summer are not usually very active. I gave away a few books, GlassFish T-shirts, laptop stickers and other goodies. Overall it was a great experience and definitely worth doing. Hopefully I'll have time to cover a few more JUGs this year and next year.

With the numerous larger conferences worldwide that we cover in the Java EE/GlassFish team, it is often difficult to make time to visit JUGs. This leaves a gap as many folks often don't make it...

JavaDay Taipei Trip Report

JavaDay Taipei 2013 was held at the Taipei International Convention Center on August 2nd. Organized by Oracle University, it is one of the largest Java developer events in Taiwan. This was another successful year for JavaDay Taipei with a fully sold out venue packed with youthful, energetic developers. In addition to Oracle speakers like me, Steve Chin and Naveen Asrani, the event also featured a bevy of local speakers including Taipei Java community leaders. Topics included Java SE, Java EE, JavaFX and mobile.It was my pleasure and privilege to present one of the opening keynotes for the event. I presented my session on Java EE titled "JavaEE.Next(): Java EE 7, 8, and Beyond". The talk is primarily along the same lines as Arun Gupta's JavaOne 2012 technical keynote. I covered the changes in JMS 2, the Java API for WebSocket (JSR 356), the Java API for JSON Processing (JSON-P), JAX-RS 2, JPA 2.1, JTA 1.2, JSF 2.2, Java Batch, Bean Validation 1.1, Java EE Concurrency and the rest of the APIs in Java EE 7. I also briefly talked about some of the possibilities for Java EE 8. The talk was well received and it was a full house session which is always encouraging. The slides for the talk are here: JavaEE.Next(): Java EE 7, 8, and Beyond from reza_rahman I also presented one of the closing sessions of the event with my WebSocket talk titled "Building Java HTML5/WebSocket Applications with JSR 356". This session was also a full house with decent Q & A afterwards. The talk introduces HTML 5 WebSocket, overviews JSR 356, tours the API and ends with a small WebSocket demo on GlassFish 4. The slide deck for the talk is posted below. Building Java HTML5/WebSocket Applications with JSR 356 from Reza Rahman The demo code is posted on GitHub: https://github.com/m-reza-rahman/hello-websocket. Do give me a shout if you need help getting the demo up and running.The Oracle University folks hosted a reception in the evening which was very well attended by organizers, speakers and local Java community leaders (some of whom joined me for a cool hike the next morning). The picture below shows me, Steve Chin, Naveen Asrani, key event organizer Serene Lee as well as local JUG leaders/speakers Ian, Koji and Gary at the restaurant.Since this was my first time in Taipei, I took some time out to check out notable attractions like Taipei 101 (very close to the convention center), Long Shan Temple and the Shilin night market. I have to say Taipei is truly remarkable in that the Taiwanese people would strike anyone as both very hardworking, meticulous and innovative but at the same time incredibly friendly, open and honest. I think that explains why such a relatively small island is a household name worldwide.The Saturday morning after the conference, Ian, Koji, Gary and I decided to climb Seven Star (Qixing) Mountain. Seven Star Mountain is the highest peak in Yangmingshan National Park close to Taipei at 3,675 feet above sea level. It is also the highest dormant volcano in Taiwan. The hike is strenuous but offers spectacular views of the park, mountain range and Taipei, especially after you climb above the tree line. This was the first time in a long time that I explored a lush sub-tropical mountain terrain as opposed to the temperate terrain typical of most of North America and Europe. Just check out the pictures I took below (the opening picture is courtesy of Serene - it is a picture of the Seven Star Mountain chain from Oracle's high rise offices in Taipei).I definitely enjoyed JavaDays Taipei and hope to be part of the event next year again!

JavaDay Taipei 2013 was held at the Taipei International Convention Center on August 2nd. Organized by Oracle University, it is one of the largest Java developer events in Taiwan. This was another...

OSCON Trip Report

OSCON 2013 was held from July 22 to July 26 in Portland, Oregon. I presented the Java EE 7 hands-on lab there as well as a session on WebSocket/JSR 356. This was my first time to the revered conference.My impression of OSCON had always been that it is a conference for everything open source mostly sans Java and very much sans anything JCP. As a Java and standards/JCP guy, it's the reason I had always focused on more Java heavy events like JavaOne and TheServerSide Symposium in my former life as an independent. This seemed to be despite the fact that Java remains the most popular language certainly by jobs and most programming language indexes, Java is the most active open source platform in the world and O'Reilly itself tends to make the most money out of Java books.I was really hoping to say I was wrong all these years, but with the greatest regret I have to say I'm still not sure I was (though I think things are looking up). By my count there were about a dozen Java related sessions among about 450+ (that's about 2-3%). I didn't count Andriod since it's still up in the air whether Andriod is Java or not. I didn't count other JVM languages since their obvious point is that they are not Java. Since open standards and open source should be philosophical brothers-in-arms, this can't be a good thing. Open source is a key component in the Java EE ecosystem today, Java EE APIs like CDI and Bean Validation are led by companies that base themselves entirely on open source and even "evil corporations" (well, at least in some people's minds) like Oracle have technologies like JSF/Mojorra, JPA/EclipseLink, JAX-RS/Jersey, WebSocket/Tyrus, not to mention GlassFish and NetBeans that are deeply rooted in both open standards as well as open source.In all fairness, things are not that simple - OSCON/O'Reilly is not historically rooted in Java, there are plenty of Java conferences in comparison to the small handful of conferences devoted to open source, OSCON may have a chicken/egg problem as to attracting Java speakers/content/attendees and a lot of Java speakers (especially from Oracle) may be tied down with JavaOne Shanghai that happens to conflict OSCON this years and so on. In the end though I'm reminded of a parable from my own cultural heritage about the man who spit to the sky to curse the almighty for his misfortunes. All he really accomplished is a somewhat unpleasant experiment proving gravity still works :-). The moral of the story of course is that the almighty (if such a being indeed exists) only helps those who help themselves and we are all largely responsible for making the best of the disadvantages that come our way. As the ultimate sentinels of the Java ecosystem, it's up to folks like me at Oracle to make sure any fences that need to be mended at significant venues like OSCON are mended as much as possible.At any rate, the Java EE 7 hands-on lab on the first day of the conference went relatively well considering it was a BYOL (Bring Your Own Laptop) effort. The openly available hands-on lab is actually a very good resource for getting your hands dirty with Java EE 7 (Arun put in the hard work to develop most of the material). The entire lab is neatly scripted into step-by-step instructions and seeded with some starter code as to be largely self-directed and self-paced. The idea is that anyone should be able to complete the lab by themselves or even lead the lab in their own organizations (a couple of folks at OSCON actually expressed interest in doing exactly this). I am considering running the lab at some friendly local JUGs as an extended meeting/workshop (perhaps calling it something like "Hands-on Java EE 7", "Down and Dirty with Java EE 7", "A Self-Guided Tour of Java EE 7", etc).The lab being run solo by me as a BYOL was invaluable in exposing some potential weak points in the lab, GlassFish 4 and NetBeans that otherwise perhaps would have remained latent. A number of folks ran into this apparent NetBeans bug that I filed. I am having trouble reproducing the bug myself, so if anyone has an idea on how to investigate it, please do help. I also uncovered this GlassFish admin console bug trying to help a couple of folks diligently working through the lab after the workshop time slot (which is perfectly normal - it's a pretty long lab). There were a few other bugs related to JMS resource creation and Derby/schema generation that I saw but can't recreate (on Mac and Linux it seems). Hopefully the folks running into them will file bugs as I requested they do. I also noticed a few relatively minor things on the lab that I'll work with Arun to iron out, especially for folks that are beginners or are trying to run the lab on their own. If you try out the lab yourself and run into any issues, please help us by reaching out to me or filing bugs (even if they are just suspected bugs :-)).On Thursday after lunch I had the WebSocket/JSR 356 talk. It went well with a small room packed with about 40 people (this was the room that all the Java talks were held at and it was consistently packed). I had a few good conversations afterwards and a few requests for the slide deck (posted below). Building Java HTML5/WebSocket Applications with JSR 356 from Reza Rahman The demo code is posted on GitHub: https://github.com/m-reza-rahman/hello-websocket. Do drop me a note if you need help with it.Since this was my first time in Portland, I took some time to explore the city. With the proud slogan "keep Portland weird", the city does indeed have it's unique quirky charm between the ubiquitous food carts, parks, gardens, open markets, one-of-a-kind stores, coffee shops, live music and events. What might be truly unique to Portland though is it's remarkable proximity to pristine natural environments. To see why, one only has to take a short train ride to nearby Washington Park and Forest Park. Being careful to navigate away from the touristy crowds onto one of the well placed trail heads, you won't have to hike too far to see sights that make it easy to imagine how things might have looked like when the Lewis and Clark Expedition first set foot in this part of the world:All in all, OSCON (and Portland) was a unique and valuable experience. I would definitely look forward to doing it again some time.

OSCON 2013 was held from July 22 to July 26 in Portland, Oregon. I presented the Java EE 7 hands-on lab there as well as a session on WebSocket/JSR 356. This was my first time to the...

JUDCon 2013 Trip Report

JUDCon (JBoss Users and Developers Conference) 2013 was held in historic Boston on June 9-11 at the Hynes Convention Center. JUDCon is the largest get together for the JBoss community, has gone global in recent years but has it's roots in Boston. The JBoss folks graciously accepted a Java EE 7 talk from me and actually referenced my talk in their own sessions. I am proud to say this is my third time speaking at JUDCon/the Red Hat Summit over the years (this was the first time on behalf of Oracle). I had great company with many of the rock stars of the JBoss ecosystem speaking such as Lincoln Baxter, Jay Balunas, Gavin King, Mark Proctor, Andrew Lee Rubinger, Emmanuel Bernard and Pete Muir. Notably missing from JUDCon were Bill Burke, Burr Sutter, Aslak Knutsen and Dan Allen. Topics included Java EE, Forge, Arquillian, AeroGear, OpenShift, WildFly, Errai/GWT, NoSQL, Drools, jBPM, OpenJDK, Apache Camel and JBoss Tools/Eclipse.My session titled "JavaEE.Next(): Java EE 7, 8, and Beyond" went very well and it was a full house. This is our main talk covering the changes in JMS 2, the Java API for WebSocket (JSR 356), the Java API for JSON Processing (JSON-P), JAX-RS 2, JPA 2.1, JTA 1.2, JSF 2.2, Java Batch, Bean Validation 1.1, Java EE Concurrency and the rest of the APIs in Java EE 7. I also briefly talked about the possibilities for Java EE 8. The slides for the talk are here: JavaEE.Next(): Java EE 7, 8, and Beyond from reza_rahman Besides presenting my talk, it was great to catch up with the JBoss gang and attend a few interesting sessions. On Sunday night I went to one of my favorite hangouts in Boston - the exalted Middle East Club as Rolling Stone refers to it (another cool spot in an otherwise pretty boring town is "the Church"). As contradictory as it might sound to the uninitiated, the Middle East Club is possibly the best place in Boston to simultaneously get great Middle Eastern (primarily Lebanese) food and great underground metal. For folks with a bit more exposure, this is probably not contradictory at all given bands like Acrassicauda and documentaries like Heavy Metal in Baghdad.Luckily for me they were featuring a few local Thrash metal bands from the greater Boston area. It wasn't too bad considering it was primarily amateur twenty-something guys (although I'm not sure I'm a qualified critic any more since I all but stopped playing about at that age). It's great Boston has the Middle East as an incubator to keep the rock, metal, folk, jazz, blues and indie scene alive.I definitely enjoyed JUDCon/Boston and hope to be part of the conference next year again.

JUDCon (JBoss Users and Developers Conference) 2013 was held in historic Boston on June 9-11 at the Hynes Convention Center. JUDCon is the largest get together for the JBoss community, has gone global...

JeeConf 2013 Trip Report

JeeConf 2013 was held in historic Kiev on May 24-25. For those of you not familiar with it, JeeConf is the most significant Java conference in the Ukraine. This was a very successful year for this nascent conference with four tracks and capacity attendance. The conference attracted a bevy of local and international speakers including Venkat Subramaniam, Yakov Fain, Talip Ozturk, Jacek Laskowski, Mohamed Taman and Sander Mak. Topics included Java SE, NoSQL, cloud, HTML5/JavaScript, Arquillian and of course Java EE :-).It was my pleasure and privilege to give the opening talk of the conference. I presented my session on Java EE titled "JavaEE.Next(): Java EE 7, 8, and Beyond". The talk is primarily along the same lines as Arun Gupta's JavaOne 2012 technical keynote. I covered the changes in JMS 2, the Java API for WebSocket (JSR 356), the Java API for JSON Processing (JSON-P), JAX-RS 2, JPA 2.1, JTA 1.2, JSF 2.2, Java Batch, Bean Validation 1.1, Java EE Concurrency and the rest of the APIs in Java EE 7. I also briefly talked about the possible contents of Java EE 8. The talk was received well and I had some pretty good discussions afterwards. It was a full house session which is always encouraging. The slides for the talk are here: JavaEE.Next(): Java EE 7, 8, and Beyond from reza_rahman To my delight, the JeeConf folks were very interested in my NoSQL/Java EE talk (titled "Using NoSQL with JPA, EclipseLink and Java EE"). The talk covers an interesting gap that there is surpringly little material on out there. The talk has three parts -- a birds-eye view of the NoSQL landscape, how to use NoSQL via a JPA centric facade using EclipseLink NoSQL, Hibernate OGM, DataNucleus, Kundera, Easy-Cassandra, etc and how to use NoSQL native APIs in Java EE via CDI. This talk was also very well attended and the Q & A was excellent. The slides for the talk are here: Using NoSQL with JPA, EclipseLink and Java EE from Reza Rahman The first demo used MongoDB, EclipseLink NoSQL and JUnit. The code for it is available on this GitHub repository: https://github.com/m-reza-rahman/jpa-nosql-demo. The second demo used MongoDB, CDI, Arquillian and JUnit. The code for it is available on this GitHub repository: https://github.com/m-reza-rahman/cdi-nosql-demo. Give me a shout if you need help getting the demos up and running. I plan to write a two-part blog using the contents of this talk, so stay tuned.Besides presenting my talks, it was great to catch up with the likes of Venkat, Yakov, Talip, Jacek, Mohamed and Sander. In fact, I spent a few hours playing whirlwind tour guide to Talip whizzing past the usual tourist spots in Kiev including Lavra, St. Michael's Cathedral, Saint Sophia Cathedral, St. Andrew's Church, the House with Chimeras, Andriyivski Uzviz and the Golden Gate. I also got a chance to unwind and rock out with Kievites celebrating City Day to a pretty cool Russian AC/DC cover band named Easy Dizzy at the ever popular Docker's pub. It was an almost surreal experience that probably would have been unimaginable just a few decades ago in the dull age of the Iron Curtain (check out the pictures I took below). It's a great indication of how much Ukraine is changing and has changed already. I also got to experience a more traditional part of Ukrainians as a people with a cold, reserved façade that are in reality kind-hearted, generous hosts who think nothing of deciding to warmly befriend a lone (and probably a bit strange) foreigner for the evening.I definitely enjoyed JeeConf/Kiev and hope to be part of the conference next year again!

JeeConf 2013 was held in historic Kiev on May 24-25. For those of you not familiar with it, JeeConf is the most significant Java conference in the Ukraine. This was a very successful year for...

JavaOne Russia 2013 Trip Report

JavaOne Russia 2013 was held at the Crocus Expo Center in Moscow on April 23-24. The conference was a resounding success with a great vibe, excellent technical content and numerous world class speakers. Some notable speakers included Werner Keil, Joonas Lehtinen, Heather VanCura, Paul Bakker, Bert Ertman, Talip Ozturk, Anil Gaur, Geertjan Wielenga, Arun Gupta, Jim Weaver, Stephen Chin and David Delabassee. Topics covered included the JCP/JUGs, Java SE 8, Java EE 7, HTML 5/WebSocket, JSF, JMS 2, JAX-RS 2, Java EE Concurrency, JBatch, JSON-P, NetBeans, MySQL, Vaadin, the Oracle Java Cloud, OpenShift, OSGi, JavaFX and Coherence.It was my great pleasure and privilege to deliver the Java EE technical keynote on Tuesday alongside the likes of Anil Gaur, Nandini Ramani, Stephen Chin and Jim Weaver. I thought the keynote went very well with a completely packed room. The technical keynote wasn't just slideware. I demoed a simple HTML 5/WebSocket application running on a GlassFish 4 promoted build. The slides for the technical keynote are here:The demo code is available here. The demo application is an interactive whiteboard with a JavaScript/HTML 5 front end and WebSocket powered backend. Give me a holler if you need help getting it up and running.Later in the afternoon I gave my JMS 2 talk titled "What’s New in Java Message Service 2" back in the keynote hall. This was essentially the same talk given by JMS 2 specification lead Nigel Deakin at JavaOne San Francisco. I talked about the JMS 2 simplified API, JMSContext injection, delivery delays, asynchronous send, JMS resource definition in Java EE 7, standardized configuration for JMS MDBs in EJB 3.2 and the like. The session went very well, there was great Q & A and I received positive feedback after the session. The slides for the talk are here: What’s New in Java Message Service 2 from Reza Rahman I finished my day with a JAX-RS 2 talk. Titled "JAX-RS 2: New and Noteworthy in the RESTful Web Services API" this was basically the same talk given by the specification leads Santiago Pericas-Geertsen and Marek Potociar at JavaOne San Francisco. I talked about the JAX-RS 2 client API, asyncronous processing, filters/interceptors, hypermedia support, server-side content negotiation and the like. The talk went very well and the Q & A was great. The slides for the talk are here: JAX-RS 2: New and Noteworthy in the RESTful Web Services API from Reza RahmanI started Wednesday off with a couple of lighting talks. The first was on Java EE Concurrency and the other one was on JBatch. These were essentially brand new decks that I created. These were my first lighting talks in a while but I enjoyed them and had great audience engagement. The slides for both talks are below: Java EE Concurrency Utilities from Reza Rahman Java Batch from Reza Rahman Later in the afternoon Arun Gupta and I ran a hands-on-lab on Java EE 7. The lab covers a whole bunch of the new APIs. We had an overflow crowd for the lab and the lab went very well. You can get the contents of the lab here. Later in the afternoon David, Arun and I also had a lab on the Java Cloud Service.I finished off the day with a lighting talk on JSON-P. It's an abbreviated and updated version of JSON-P spec lead Jitu Kotamraju's JavaOne San Francisco talk. This was one of the last talks of the conference and it went extremely well. The slide deck for the talk is here: JSON-P from Reza Rahman David and I manned the GlassFish booth at the Java Pavilion on Tuesday and Wednesday whenever we could. The booth traffic was great and we had a number of great conversations.While in Moscow I took the opportunity to skim over the usual tourist hotspots like the Red Square, the Kremlin and Saint Basil's Cathedral. What resonated with me most though was old Arbat. From it's humble beginnings as a trading route for Caravans from the Far East in the 15th century, old Arbat has long been the true intellectual and creative nerve center for the Russian behemoth. Although today it's filled with overpriced cafes with poor service and tatty souvenir shops, it's not too hard to dig a little deeper than the surface to reveal the true Bohemian soul of old Arbat as a continued haven for starving artists, struggling writers, humble craft vendors, free thinkers and underground youth movements.Looking carefully around you'll find gems hidden in plain sight like the Museum of Oriental art, the Gogol House, House of Friendship with Peoples of Foreign Countries, the Tochka-G Museum, the Museum of Corporal Punishment and the Pushkin House Museum. I also found an amazing small store with vintage Soviet Military memorabilia. I picked up a Red Army three star general's Winter great coat circa 1943 for not too hefty a price that I am told somehow seems to suit me well.Overall I enjoyed the conference/Moscow and look forward to going to Russia again next year.

JavaOne Russia 2013 was held at the Crocus Expo Center in Moscow on April 23-24. The conference was a resounding success with a great vibe, excellent technical content and numerous world...

33rd Degree 2013 Trip Report

33rd Degree 2013 was held in historic Warsaw, Poland on March 13-15. For those of you not familiar with it, dubbed "the Conference for Java Masters" this is the premier Java conference for Poland. It attempts to bring together elite speakers in the Java community across the globe. This was my first time at the conference and I most certainly thought the conference lived up to its promise. Just some notable speakers included Tim Berglund, Adam Bien, Ted Neward, Dan North, Simon Ritter, Venkat Subramaniam, Geertjan Wielenga and Kai Wahner.I delivered three full-house talks, all on the second day of the conference. The first was my talk on Java EE 7 and 8 titled "JavaEE.Next(): Java EE 7, 8, and Beyond". The talk was primarily along the same lines as Arun Gupta's JavaOne 2012 technical keynote. I covered the changes in JMS 2, the Java API for WebSocket (JSR 356), the Java API for JSON Processing (JSON-P), JAX-RS 2, JPA 2.1, JTA 1.2, JSF 2.2, Java Batch, Bean Validation 1.1, Java EE Concurrency and the rest of the APIs in Java EE 7. I also briefly talked about the possible contents of Java EE 8. The talk had standing room only with 400+ attendees. The slides for the talk are here: JavaEE.Next(): Java EE 7, 8, and Beyond from reza_rahman My second talk was on the Java API for WebSocket/JSR 356 titled "Building HTML5/WebSocket Applications with JSR 356 and GlassFish". The talk is based on Danny Coward's JavaOne 2012 talk. The talk covers the basic of WebSocket, the JSR 356 API and a simple demo using Tyrus/GlassFish. The talk went very well and there were some very good questions. This was a full session as well with 150+ attendees. The slides for the talk are here: Building HTML5/WebSocket Applications with GlassFish and JSR 356 from Reza Rahman The code samples are available here: //cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f4a5b21d-66fa-4885-92bf-c4e81c06d916/File/b003cbabe839fd5a061ec8d232cb5fbf/totd183_hellowebsocket.zip. Give me a shout if you need help getting it up and running.To my delight, the 33rd Degree folks were very interested in my domain-driven design/Java EE talk (titled "Applied Domain-Driven Design BluePrints for Java EE"). The talk has three parts -- a brief overview of DDD theory, mapping DDD to Java EE and actual running DDD code in Java EE/GlassFish. I converted the well-known DDD sample application (http://dddsample.sourceforge.net/) written mostly in Spring 2 and Hibernate 2 to Java EE 7. My eventual plan is to make the code available via a top level java.net project. Even despite the broad topic and time constraints, the talk went very well. The room was fully packed with 400+ people and I got excellent feedback on the talk later. The slides for the talk are here: Applied Domain-Driven Design BluePrints for Java EE from Reza Rahman The code examples are available here: //cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f4a5b21d-66fa-4885-92bf-c4e81c06d916/File/e352ae0f11d7ebf0e354d1401fa556c1/cargo_tracker.zip for now, as a simple zip file. Give me a shout if you would like to get it up and running.Besides presenting my talks, I got to attend some great sessions on Java SE, JavaScript/HTML5, NoSQL and mobile. It was also good to catch up personally with Adam, Kai, Simon and Geertjan.On a more personal note, I was very curious to explore the heavy metal scene in Poland because I know there have been many brilliant but seriously underrated Polish metal bands like Vader and Behemoth. Luckily for me, bitter cold Winter Friday nights are metal nights in Warsaw. I got to check out some of the city's best young metal bands at the storied Metal Cave.I definitely enjoyed 33rd Degree 2013 and hope to be part of the conference again next year.

33rd Degree 2013 was held in historic Warsaw, Poland on March 13-15. For those of you not familiar with it, dubbed "the Conference for Java Masters" this is the premier Java conference for Poland. It...

Scandinavian Developer Conference 2013 Trip Report

The Scandinavian Developer Conference (aka ScanDev, aka SDC) 2013 was held in Gothenburg, Sweden on March 4-6. The conference was held at the conference center for Gothia Towers, the largest hotel in Sweden. For those of you not familiar with it, ScanDev is the premier IT conference in the Gothenburg region. It has tracks for product/team management, architecture, UI/UX, testing, data, C/C++, .NET, Java, mobile, JavaScript and PHP. The Java EE presence was particularly strong at the conference. Besides me, Aslak Knutsen and Dan Allen had a talk about Arquillian, David Blevins spoke on TomEE and Kai Wahner had his excellent Java integration frameworks talk. I attended all three talks. I also attended a few talks on Java SE, REST/hypermedia, NoSQL, HTML 5/JavaScript and mobile. It was great to catch up personally with Dan, Aslak and David.On the first day of the conference, I presented my session on Java EE titled "JavaEE.Next(): Java EE 7, 8, and Beyond". The talk is primarily along the same lines as Arun Gupta's JavaOne 2012 technical keynote. I covered the changes in JMS 2, the Java API for WebSocket (JSR 356), the Java API for JSON Processing (JSON-P), JAX-RS 2, JPA 2.1, JTA 1.2, JSF 2.2, Java Batch, Bean Validation 1.1, Java EE Concurrency and the rest of the APIs in Java EE 7. I also briefly talked about the possible contents of Java EE 8. The talk was well attended. The slides for the talk are here: JavaEE.Next(): Java EE 7, 8, and Beyond from reza_rahman On a cool, crisp Saturday morning, I decided to go island hopping across the Southern Gothenburg Archipelago. In the old Norse sagas, these islands were called Elfarsker (the river islets) and today they are a car free paradise (you read that right - there are no cars allowed on the islands). I visited Branno, Styrso and Donso. With picturesque trails and shorelines reminiscence of some of the more desolate parts of the rocky Maine coast, this is a true gem for any outdoors/nature enthusiast. On my 8+ hour hike, I came across perhaps 4-5 people including folks on the ferry to/from the city of Gothenburg proper. Just take a look at some the pictures I took below:I liked the conference as well as the city of Gothenburg and look forward to going there again.

The Scandinavian Developer Conference (aka ScanDev, aka SDC) 2013 was held in Gothenburg, Sweden on March 4-6. The conference was held at the conference center for Gothia Towers, the largest hotel in...

DevNexus 2013 Trip Report

DevNexus 2013 was held in historic Atlanta on February 18-19. For those of you not familiar with it, DevNexus is the most significant Java conference in the South Eastern US. It was started by JBoss Java Champion Burr Sutter and organized by the Atlanta JUG (currently lead by Vincent Mayers, Gunnar Hillert, et al). As usual DevNexus attracted a bevy of world class speakers including Ben Evans, Neal Ford, David Geary and Venkat Subramaniam. Topics included Java SE, NoSQL, mobile, cloud, HTML5/JavaScript and of course Java EE :-).On the first day of the conference, I presented my session on Java EE titled "JavaEE.Next(): Java EE 7, 8, and Beyond". The talk is primarily along the same lines as Arun Gupta's JavaOne 2012 technical keynote. I covered the changes in JMS 2, the Java API for WebSocket (JSR 356), the Java API for JSON Processing (JSON-P), JAX-RS 2, JPA 2.1, JTA 1.2, JSF 2.2, Java Batch, Bean Validation 1.1, Java EE Concurrency and the rest of the APIs in Java EE 7. I also briefly talked about the possible contents of Java EE 8. The talk was received well and I had some pretty good discussions during Q & A. It was a completely full house session with standing room only! The slides for the talk are here: JavaEE.Next(): Java EE 7, 8, and Beyond from reza_rahman To my delight, the DevNexus folks were very interested in my NoSQL/Java EE talk (titled "Using NoSQL with JPA, EclipseLink and Java EE"). The talk covers an interesting gap that there is surpringly little material on out there. The talk has four parts -- a brief overview of JPA 2.1, a birds-eye view of the NoSQL landscape, how to use NoSQL via a JPA facade using EclipseLink NoSQL, Hibernate OGM, DataNucleus, Kundera, Easy-Cassandra, etc and how to use NoSQL native APIs in Java EE via CDI. This talk was also a full house, the Q & A was excellent and I got great feedback afterwards. The slides for the talk are here: Using NoSQL with JPA, EclipseLink and Java EE from Reza Rahman The first demo used MongoDB, JPA, EclipseLink NoSQL and JUnit. The code for it is available on this GitHub repository: https://github.com/m-reza-rahman/jpa-nosql-demo. The second demo used MongoDB, CDI, Arquillian and JUnit. The code for it is available on this GitHub repository: https://github.com/m-reza-rahman/cdi-nosql-demo. Give me a shout if you need help getting the demos up and running. I plan to write a two-part blog using the contents of this talk, so stay tuned.Besides giving my talks, I attended a few talks on Java SE, HTML 5/JavaScript and mobile. I definitely enjoyed DevNexus and hope to be part of the conference next year.

DevNexus 2013 was held in historic Atlanta on February 18-19. For those of you not familiar with it, DevNexus is the most significant Java conference in the South Eastern US. It was started by JBoss...

Java EE 7 Survey Results!

On November 8th, the Java EE EG posted a survey to gather broad community feedback on a number of critical open issues. For reference, you can find the original survey here. We kept the survey open for about three weeks until November 30th. To our delight, over 1100 developers took time out of their busy lives to let their voices be heard!The results of the survey were sent to the EG on December 12th. The subsequent EG discussion is available here. The exact summary sent to the EG is available here.We would like to take this opportunity to thank each and every one the individuals who took the survey. It is very appreciated, encouraging and worth it's weight in gold. In particular, I tried to capture just some of the high-quality, intelligent, thoughtful and professional comments in the summary to the EG. I highly encourage you to continue to stay involved, perhaps through the Adopt-a-JSR program. We would also like to sincerely thank java.net, JavaLobby, TSS and InfoQ for helping spread the word about the survey.Below is a brief summary of the results...APIs to Add to Java EE 7 Full/Web ProfileThe first question asked which of the four new candidate APIs (WebSocket, JSON-P, JBatch and JCache) should be added to the Java EE 7 Full and Web profile respectively.As the following graph shows, there was significant support for adding all the new APIs to the full profile:Support is relatively the weakest for Batch 1.0, but still good. A lot of folks saw WebSocket 1.0 as a critical technology with comments such as this one:"A modern web application needs Web Sockets as first class citizens"While it is clearly seen as being important, a number of commenters expressed dissatisfaction with the lack of a higher-level JSON data binding API as illustrated by this comment:"How come we don't have a Data Binding API for JSON"JCache was also seen as being very important as expressed with comments like:"JCache should really be that foundational technology on which other specs have no fear to depend on"The results for the Web Profile is not surprising. While there is strong support for adding WebSocket 1.0 and JSON-P 1.0 to the Web Profile, support for adding JCache 1.0 and Batch 1.0 is relatively weak.There was actually significant opposition to adding Batch 1. 0 (with 51.8% casting a 'No' vote).Enabling CDI by DefaultThe second question asked was whether CDI should be enabled in Java EE environments by default.A significant majority of 73.3% developers supported enabling CDI, only 13.8% opposed. Comments such as these two reflect a strong general support for CDI as well as a desire for better Java EE alignment with CDI:"CDI makes Java EE quite valuable!""Would prefer to unify EJB, CDI and JSF lifecycles"There is, however, a palpable concern around the performance impact of enabling CDI by default as exemplified by this comment:"Java EE projects in most cases use CDI, hence it is sensible to enable CDI by default when creating a Java EE application. However, there are several issues if CDI is enabled by default: scanning can be slow - not all libs use CDI (hence, scanning is not needed)"Another significant concern appears to be around backwards compatibility and conflict with other JSR 330 implementations like Spring:"I am leaning towards yes, however can easily imagine situations where errors would be caused by automatically activating CDI, especially in cases of backward compatibility where another DI engine (such as Spring and the like) happens to use the same mechanics to inject dependencies and in that case there would be an overlap in injections and probably an uncertain outcome"Some commenters such as this one attempt to suggest solutions to these potential issues:"If you have Spring in use and use javax.inject.Inject then you might get some unexpected behavior that could be equally confusing. I guess there will be a way to switch CDI off. I'm tempted to say yes but am cautious for this reason"Consistent Usage of @InjectThe third question was around using CDI/JSR 330 @Inject consistently vs. allowing JSRs to create their own injection annotations.A slight majority of 53.3% developers supported using @Inject consistently across JSRs. 28.8% said using custom injection annotations is OK, while 18.0% were not sure. The vast majority of commenters were strongly supportive of CDI and general Java EE alignment with CDI as illistrated by these comments:"Dependency Injection should be standard from now on in EE. It should use CDI as that is the DI mechanism in EE and is quite powerful. Having a new JSR specific DI mechanism to deal with just means more reflection, more proxies. JSRs should also be constructed to allow some of their objects Injectable. @Inject @TransactionalCache or @Inject @JMXBean etc...they should define the annotations and stereotypes to make their code less procedural. Dog food it. If there is a shortcoming in CDI for a JSR fix it and we will all be grateful""We're trying to make this a comprehensive platform, right? Injection should be a fundamental part of the platform; everything else should build on the same common infrastructure. Each-having-their-own is just a recipe for chaos and having to learn the same thing 10 different ways"Expanding the Use of @StereotypeThe fourth question was about expanding CDI @Stereotype to cover annotations across Java EE beyond just CDI.A significant majority of 62.3% developers supported expanding the use of @Stereotype, only 13.3% opposed. A majority of commenters supported the idea as well as the theme of general CDI/Java EE alignment as expressed in these examples:"Just like defining new types for (compositions of) existing classes, stereotypes can help make software development easier""This is especially important if many EJB services are decoupled from the EJB component model and can be applied via individual annotations to Java EE components. @Stateless is a nicely compact annotation. Code will not improve if that will have to be applied in the future as @Transactional, @Pooled, @Secured, @Singlethreaded, @...."Some, however, expressed concerns around increased complexity such as this commenter:"Could be very convenient, but I'm afraid if it wouldn't make some important class annotations less visible"Expanding Interceptor UseThe final set of questions was about expanding interceptors further across Java EE...A very solid 96.3% of developers wanted to expand interceptor use to all Java EE components. 35.7% even wanted to expand interceptors to other Java EE managed classes. Most developers (54.9%) were not sure if there is any place that injection is supported that should not support interceptors. 32.8% thought any place that supports injection should also support interceptors. Only 12.2% were certain that there are places where injection should be supported but not interceptors.The comments reflected the diversity of opinions, generally supportive of interceptors:"I think interceptors are as fundamental as injection and should be available anywhere in the platform""The whole usage of interceptors still needs to take hold in Java programming, but it is a powerful technology that needs some time in the Sun. Basically it should become part of Java SE, maybe the next step after lambas?"A distinct chain of thought separated interceptors from filters and listeners:"I think that the Servlet API already provides a rich set of possibilities to hook yourself into different Servlet container events. I don't find a need to 'pollute' the Servlet model with the Interceptors API"

On November 8th, the Java EE EG posted a survey to gather broad community feedback on a number of critical open issues. For reference, you can find the original survey here. We kept the survey open...

JavaOne Latin America 2012 Trip Report

JavaOne Latin America 2012 was held at the Transamerica Expo Center in Sao Paulo, Brazil on December 4-6. The conference was a resounding success with a great vibe, excellent technical content and numerous world class speakers. Some notable local and international speakers included Bruno Souza, Yara Senger, Mattias Karlsson, Vinicius Senger, Heather Vancura, Tori Wieldt, Arun Gupta, Jim Weaver, Stephen Chin, Simon Ritter and Henrik Stahl. Topics covered included the JCP/JUGs, Java SE 7, HTML 5/WebSocket, CDI, Java EE 6, Java EE 7, JSF 2.2, JMS 2, JAX-RS 2, Arquillian and JavaFX.Bruno Borges and I manned the GlassFish booth at the Java Pavilion on Tuesday and Webnesday. The booth traffic was decent and not too hectic. We met a number of GlassFish adopters including perhaps one of the largest GlassFish deployments in Brazil as well as some folks migrating to Java EE from Spring. We invited them to share their stories with us. We also talked with some key members of the local Java community.Tuesday evening we had the GlassFish party at the Tribeca Pub. The party was definitely a hit and we could have used a larger venue (this was the first time we had the GlassFish party in Brazil). Along with GlassFish enthusiasts, a number of Java community leaders were there. We met some of the same folks again at the JUG leader's party on Wednesday evening.On Thursday Arun Gupta, Bruno Borges and I ran a hands-on-lab on JAX-RS, WebSocket and Server-Sent Events (SSE) titled "Developing JAX-RS Web Applications Utilizing Server-Sent Events and WebSocket". This is the same Java EE 7 lab run at JavaOne San Francisco. The lab provides developers a first hand glipse of how an HTML 5 powered Java EE application might look like. We had an overflow crowd for the lab (at one point we had about twenty people standing) and the lab went very well. The slides for the lab are here:The actual contents for the lab is available here. Give me a shout if you need help getting it up and running.I gave two solo talks following the lab. The first was on JMS 2 titled "What’s New in Java Message Service 2". This was essentially the same talk given by JMS 2 specification lead Nigel Deakin at JavaOne San Francisco. I talked about the JMS 2 simplified API, JMSContext injection, delivery delays, asynchronous send, JMS resource definition in Java EE 7, standardized configuration for JMS MDBs in EJB 3.2, mandatory JCA pluggability and the like. The session went very well, there was good Q & A and someone even told me this was the best session of the conference! The slides for the talk are here: What’s New in Java Message Service 2 from Reza Rahman My last talk for the conference was on JAX-RS 2 in the keynote hall. Titled "JAX-RS 2: New and Noteworthy in the RESTful Web Services API" this was basically the same talk given by the specification leads Santiago Pericas-Geertsen and Marek Potociar at JavaOne San Francisco. I talked about the JAX-RS 2 client API, asyncronous processing, filters/interceptors, hypermedia support, server-side content negotiation and the like. The talk went very well and I got a few very kind complements afterwards. The slides for the talk are here: JAX-RS 2: New and Noteworthy in the RESTful Web Services API from Reza Rahman On a more personal note, Sao Paulo has always had a special place in my heart as the incubating city for Sepultura and Soulfy -- two of my most favorite heavy metal musical groups of all time! Consequently, the city has a perpertually alive and kicking metal scene pretty much any given day of the week.This time I got to check out a solid performance by local metal gig Republica at the legendary Manifesto Bar. I also wanted to see a Dio Tribute at the Blackmore but ran out of time and energy...Overall I enjoyed the conference/Sao Paulo and look forward to going to Brazil again next year!

JavaOne Latin America 2012 was held at the Transamerica Expo Center in Sao Paulo, Brazil on December 4-6. The conference was a resounding success with a great vibe, excellent technical content and...

Java2Days 2012 Trip Report

Java2Days 2012 was held in beautiful Sofia, Bulgaria on October 25-26. For those of you not familiar with it, this is the third installment of the premier Java conference for the Balkan region. It is an excellent effort by admirable husband and wife team Emo Abadjiev and Iva Abadjieva as well as the rest of the Java2Days team including Yoana Ivanova and Nadia Kostova. Thanks to their hard work, the conference continues to grow vigorously with almost a thousand enthusiastic, bright young people attending this year and no less than three tracks on Java, the Cloud and Mobile. The conference is a true gem in this region of the world and I am very proud to have been a part of it again, along with the other world class speakers the event rightfully attracts.It was my honor to present the first talk of the conference. It was a full-house session on Java EE 7 and 8 titled "JavaEE.Next(): Java EE 7, 8, and Beyond". The talk was primarily along the same lines as Arun Gupta's JavaOne 2012 technical keynote. I covered the changes in JMS 2, the Java API for WebSocket (JSR 356), the Java API for JSON Processing (JSON-P), JAX-RS 2, JCache, JPA 2.1, JTA 1.2, JSF 2.2, Java Batch, Bean Validation 1.1 and the rest of the APIs in Java EE 7. I also briefly talked about the possible contents of Java EE 8. My stretch goal was to gather some feedback on some open issues in the Java EE EG (more on that soon) but I ran out of time in the short format forty-five minute session. The talk was received well and I had some pretty good discussions afterwards. The slides for the talk are here: JavaEE.Next(): Java EE 7, 8, and Beyond from reza_rahman To my delight, the Java2Days folks were very interested in my domain-driven design/Java EE 6 talk (titled "Domain Driven Design with Java EE 6"). I've had this talk in my inventory for a long time now but it always gets overridden by less theoretical talks on APIs, tools, etc. The talk has three parts -- a brief overview of DDD theory, mapping DDD to Java EE and actual running DDD code in Java EE 6/GlassFish. For the demo, I converted the well-known DDD sample application (http://dddsample.sourceforge.net/) written mostly in Spring 2 and Hibernate 2 to Java EE 6. My eventual plan is to make the code available via a top level java.net project. Even despite the broad topic and time constraints, the talk went very well. It was a full house, the Q & A was excellent and one of the other speakers even told me they thought this was the best talk of the conference! The slides for the talk are here: Domain Driven Design with Java EE 6 from Reza Rahman The code examples are available here: //cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f4a5b21d-66fa-4885-92bf-c4e81c06d916/File/92241711de4a32f21c467b89a3f9d929/dddsample.zip for now, as a simple zip file. Give me a shout if you would like to get it up and running.It was also a great honor to present the last session of the conference. It was a talk on the Java API for WebSocket/JSR 356 titled "Building HTML5/WebSocket Applications with JSR 356 and GlassFish". The talk is based on Danny Coward's JavaOne 2012 talk. The talk covers the basic of WebSocket, the JSR 356 API and a simple demo using Tyrus/GlassFish. The talk went very well and there were some very good questions afterwards. The slides for the talk are here: Building HTML5/WebSocket Applications with GlassFish and JSR 356 from Reza Rahman The code samples are available here: //cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/f4a5b21d-66fa-4885-92bf-c4e81c06d916/File/b003cbabe839fd5a061ec8d232cb5fbf/totd183_hellowebsocket.zip. You'll need the latest promoted GlassFish 4 build to run the code. Give me a shout if you need help.Besides presenting my talks, I got to attend some great sessions on OSGi, HTML5, cloud, agile and Java 8. I got an invite to speak at the Macedonia JUG when possible. Victor Grazi of InfoQ wrote about my sessions and Java2Days here: http://www.infoq.com/news/2012/11/Java2DaysConference. Stoyan Rachev was very kind to blog about my sessions here: http://www.stoyanr.com/2012/11/java2days-2012-java-ee.html.I definitely enjoyed Java2Days 2012 and hope to be part of the conference next year!

Java2Days 2012 was held in beautiful Sofia, Bulgaria on October 25-26. For those of you not familiar with it, this is the third installment of the premier Java conference for the Balkan region. It is...