JConf Peru 2021 Conference Report

JConf Peru 2021 took place November 27th. This was the third time the event was held and due to the pandemic, the 2021 event was virtual and free. I am very proud to have participated as an invited speaker – the JConf series is an admirable effort by the Spanish speaking Java community to hold world-class events. My friend and Peru JUG leader Jose Diaz and his wife Miryan Ramirez have worked hard to make JConf Peru a reality. Jakarta EE had a strong presence at the event including talks on Quarkus and TomEE. I delivered three talks at the conference focused on Jakarta EE and Azure.

Powering Java on Azure with Open Liberty and OpenShift

Early in the morning I delivered my slide free talk titled “Powering Java on Azure with Open Liberty and OpenShift”. The material covers the key work Microsoft and IBM is doing to enable Jakarta EE, MicroProfile, Open Liberty and OpenShift on Azure. I demo in real time how to stand up an OpenShift cluster on Azure quickly and deploy a realistic Java EE/Jakarta EE/MicroProfile application that integrates with some services on the cloud such as a database. The essential material for the talk is available on the Microsoft documentation site as a how-to guide. A recording of the talk is now available on YouTube.

Effective Kubernetes for Jakarta EE and MicroProfile Developers

Towards mid-day, I delivered another entirely slide-free talk – “Effective Kubernetes for Jakarta EE and MicroProfile Developers”. The talk covers some of the key things Jakarta EE and MicroProfile developers need to know while using Kubernetes. This includes:

  • How Kubernetes primitives (such as deployments, services and ingress controllers) align with application server administration, clustering, auto-scaling, auto-discovery, and load-balancing.
  • How to add self-healing capabilities using Kubernetes probes and monitoring with open source tools like Prometheus/Grafana.
  • How Kubernetes can be extended using Operators to effectively manage application server clusters.
  • How the CI/CD pipeline of your application can be adapted to Kubernetes.

A recording of the talk is now available on YouTube.

All the material for the talk is available in self-paced workshop format on GitHub. The material will take you about a day to complete end-to-end (please reach out if you need any help).

Why Jakarta EE Developers are First-Class Citizens on Azure

I wrapped up the conference by delivering my talk titled “Why Jakarta EE Developers are First-Class Citizens on Azure”. This talk covers all the work Microsoft is doing by partnering with companies like Oracle, IBM and Red Hat to support Jakarta EE developers on Azure. This includes fully enabling runtimes such as WebLogic, WebSphere Traditional, WebSphere Liberty, Open Liberty and JBoss EAP on virtual machines, the Azure Kubernetes Service (AKS) and App Service (the premier PaaS platform for Azure). I also cover important work such as supporting JMS in Azure Service Bus as a well as the Jakarta EE on Azure roadmap.

There is a brief end-to-end demo that is part of the talk. You can run the demo yourself using step-by-step instructions available on GitHub to get a feel for how the Jakarta EE on Azure experience looks like (please reach out if you need help). The slides for the talk are available on Speaker Deck. The video for the talk is now posted on YouTube.

It is worth reminding that myself and my team are always ready to work closely with Java/Jakarta EE developers on Azure migrations – completely for free. To take advantage of this, you simply need to fill this survey out or reach out to me directly.

Beautiful Peru

Peru is a country rich in heritage and natural beauty. It is one of the six cradles of civilization and the center of the mighty Inca entire. I am proud to say I got to see a bit of this amazing country as part of my brief trip for the first JConf Peru. Just check out the album below of photos I took (click this link to view the album if the embedded slideshow is not working)!

All in all, I am happy to have had the opportunity to speak at JConf Peru again. I am very glad the event continued in virtual format despite the pandemic. I hope to speak there again and hopefully visit beautiful Peru again in the future.

DOAG 2021 Conference Report

The DOAG 2021 conference took place November 16-18. This is the long running annual event organized by the German Oracle technology user community – one of the largest in the world. Due to the pandemic, the 2021 event was virtual. There is always some Java related content in the event, including on Jakarta EE, WebLogic, Coherence and Helidon. I delivered two talks on Jakarta EE, WebLogic and Azure.

Running WebLogic on Azure Kubernetes and Virtual Machines

On the second day of the conference, I had the relatively rare opportunity to deliver a talk titled “Running WebLogic on Azure Kubernetes and Virtual Machines”. The material covers the key work Microsoft and Oracle is doing to power WebLogic on Azure. The work includes tools, solutions, guides, samples and scripts to fully enable WebLogic on both Azure Virtual Machines as well as the Azure Kubernetes Service (AKS). The solutions support simple use cases such easily creating a single working WebLogic instance. They also support common use cases such as clustering, load-balancing, failover, disaster recovery, database connectivity, caching via Coherence, consolidated logging via ELK, and Azure Active Directory integration. The introductory session includes demos for VMs and AKS. I also cover the longer-term roadmap for WebLogic on Azure. The slides for the talk are available on SpeakerDeck.

It is worth reminding that I and my team are always ready to work closely with Java/Jakarta EE developers on Azure migrations – completely for free. To take advantage of this, you simply need to fill this survey out or reach out to me directly.

Jakarta EE – Present and Future

On the last day of the conference, I delivered my fairly popular talk – “Jakarta EE – Present and Future”. The talk is essentially a state of the union for Jakarta EE. It covers a little bit of history, context, Jakarta EE 8, Jakarta EE 9/9.1 as well as what’s ahead for Jakarta EE 10. One key component of the talk is the importance and ways of direct developer contributions into Jakarta EE, if needed with help from the Jakarta EE Ambassadors. Jakarta EE 10 and the Jakarta Core Profile should bring an important set of changes including to CDI, Jakarta REST, Concurrency, Security, Faces, Batch and Configuration. The slides for the talk are available on SpeakerDeck.

I am very happy to have had the opportunity to speak at the DOAG conference. I hope to participate again in the future.

EclipseCon 2021 Conference Report

EclipseCon 2021 took place October 25-28. EclipseCon has long been a world-class conference for all things Eclipse. With the Java EE transition to the Eclipse Foundation, EclipseCon has become a truly significant event for Jakarta EE and MicroProfile developers. Due to the pandemic, the 2021 event was virtual (and free!). Jakarta EE unsurprisingly had a strong presence at the conference with talks on Jakarta EE 9.x, Jakarta EE 10, MicroProfile 4.x, MicroProfile 5, Jakarta Security, Jakarta Concurrency, Jakarta REST, Jakarta NoSQL and MicroProfile GraphQL from speakers such as Tanja Obradovic, Ivar Grimstad, Josh Juneau, Otavio Santana, Emily Jiang, Steve Millidge, Arjan Tijms, Werner Keil, Ed Burns, Rudy De Busscher and Graham Charters. I delivered two talks and participated in a panel at the conference focused on Java, Jakarta EE and Azure. I also helped organize Community Day along with Werner Keil and Petr Aubrecht.

EclipseCon 2021 - HORIZON CLOUD

Jakarta EE at Community Day

Community Day was held on October 25th – the day before the start of the main conference. Community Day has always been a great event for Eclipse working groups and project teams. It has become a unique space for some very focused, unique, forward-looking content on Jakarta EE and MicroProfile. The sessions are intended not only for learning, but also for the community to actively engage with some key leaders.

This year we had some great sessions on Jakarta EE, MicroProfile, Jakarta Security, Jakarta Concurrency, Jakarta REST and Jakarta NoSQL presented by Tanja Obradovic, Ivar Grimstad, Will Lyons, Emily Jiang, Arjan Tijms, Steve Millidge, Andy McCright and Otavio Santana. You will find session abstracts, speaker profiles and more here.

Powering Java on Azure with Open Liberty and OpenShift

On the first day of the main conference, I and Graham Charters of IBM delivered a mostly slide free talk titled “Powering Java on Azure with Open Liberty and OpenShift”. The material covers the key work Microsoft and IBM is doing to enable Jakarta EE, MicroProfile, Open Liberty and OpenShift on Azure. We demo in real time how to stand up an OpenShift cluster on Azure quickly and deploy a realistic Java EE/Jakarta EE/MicroProfile application that integrates with some services on the cloud such as a database. The essential material for the talk is available on the Microsoft documentation site as a how-to guide. A recording of the talk is now available on YouTube.

It is worth reminding that myself, Ed Burns and our team are always ready to work closely with Java/Jakarta EE developers on Azure migrations – completely for free. To take advantage of this, you simply need to fill this survey out or reach out to me directly.

Earlier the same day I participated in a panel titled “Java is the ideal language for cloud-native applications” alongside YK Chang, Ed Burns, Emily Jiang, Neil Patterson, Vijay Sundaresan, Ivar Grimstad, Arjan Tijms and Alasdair Nottingham.

Effective Kubernetes for Jakarta EE and MicroProfile Developers

On the second day of the main conference, I delivered my entirely slide-free talk – “Effective Kubernetes for Jakarta EE and MicroProfile Developers”. The talk covers some of the key things Jakarta EE and MicroProfile developers need to know while using Kubernetes. This includes:

  • How Kubernetes primitives (such as deployments, services and ingress controllers) align with application server administration, clustering, auto-scaling, auto-discovery, and load-balancing.
  • How to add self-healing capabilities using Kubernetes probes and monitoring with open source tools like Prometheus/Grafana.
  • How Kubernetes can be extended using Operators to effectively manage application server clusters.
  • How the CI/CD pipeline of your application can be adapted to Kubernetes.

A recording of the talk is now available on YouTube.

All the material for the talk is available in self-paced workshop format on GitHub. The material will take you about a day to complete end-to-end (please reach out if you need any help).

I am very happy to have had the opportunity to contribute to EclipseCon, especially Community Day. I hope to participate again in the future.

JCON 2021 Conference Report

JCON 2021 took place October 5-8. This is a world-class conference run by the German JAVAPRO magazine. Due to the pandemic, the 2021 event was virtual. Jakarta EE had a strong presence at the conference with talks on the Jakarta EE Core Profile, Jakarta EE Security, Jakarta NoSQL, MicroProfile 4, Quarkus, Helidon and Open Liberty from speakers such as Ivar Grimstad, Adam Bien, Otavio Santana, Emily Jiang, Werner Keil, Ed Burns, Grace Jansen, Rudy De Busscher and Graham Charters. I delivered three talks and a workshop at the conference focused on Java, Jakarta EE and Azure.

JCON Online 2021 im Echtzeit-Stream

A Freakonomic Take on Open Standards and Jakarta EE

On the first day of the conference I delivered one of my most favorite talks – “A Freakonomic Take on Open Standards and Jakarta EE”. I am very grateful JCON decided to accept this talk. This isn’t a talk about APIs or features but rather some of the much more foundational reasons I have chosen to contribute to the Jakarta EE technology set for such a long time. It speaks to the importance of open standards like Jakarta EE in maintaining the long-term competitive health of an ecosystem. The talk looks at this topic through the lens of well-established economic theories on competition, monopoly power, the network effect, innovation, open source and open standards.

The slides for the talk are available on Speaker Deck. The video for the talk is now posted on YouTube.

How Microsoft Learned to Love Java

On the second day of the conference I delivered my Java on Azure focused talk “How Microsoft Learned to Love Java”. The talk is essentially a tour of the broad range of services, tools and APIs Microsoft provides around Azure to better serve Java developers. I also briefly discuss the Java on Azure roadmap at a high level. The slides for the talk are available on Speaker Deck. There is a brief end-to-end demo that is part of the talk. You can run the demo yourself using step-by-step instructions available on GitHub to get a feel for how the Java on Azure experience looks like (please reach out if you need help). The video for the talk is now posted on YouTube.

Effective Kubernetes for Jakarta EE and MicroProfile Developers

I finished the conference by delivering my entirely slide-free workshop – “Effective Kubernetes for Jakarta EE and MicroProfile Developers”. The workshop covers some of the key things Jakarta EE and MicroProfile developers need to know while using Kubernetes. This includes:

  • How Kubernetes primitives (such as deployments, services and ingress controllers) align with application server administration, clustering, auto-scaling, auto-discovery, and load-balancing.
  • How to add self-healing capabilities using Kubernetes probes and monitoring with open source tools like Prometheus/Grafana.
  • How Kubernetes can be extended using Operators to effectively manage application server clusters.
  • How the CI/CD pipeline of your application can be adapted to Kubernetes.

All the material for the talk is available in self-paced workshop format on GitHub. The workshop will take you about a day to complete end-to-end (please reach out if you need any help).

On the same day, my Microsoft colleague Ed Burns and Graham Charters of IBM delivered the workshop titled “Running Your Enterprise Java with Open Liberty on Azure Red Hat OpenShift”. The material covers the key work Microsoft and IBM is doing to enable Jakarta EE, MicroProfile, Open Liberty and OpenShift on Azure. The essential material for the workshop is available on the Microsoft documentation site as a how-to guide.

It is worth reminding that myself, Ed Burns and our team are always ready to work closely with Java/Jakarta EE developers on Azure migrations – completely for free. To take advantage of this, you simply need to fill this survey out or reach out to me directly.

All in all, I am happy to have had the opportunity to speak at JCON. I hope to speak there again in the future.

Why You Should Join EclipseCon 2021 Community Day

EclipseCon 2021 Community Day is on Monday, October 25 15:00 to 21:00 CET (the day before the start of the main EclipseCon conference). Community Day at EclipseCon has always been a great event for Eclipse working groups and project teams. This year both EclipseCon and Community Day is virtual and free. Space for Community Day is limited, so please register and save your spot soon.

We have a packed agenda centered on the Jakarta EE, MicroProfile and Cloud Native Java communities. If there is a set of very focused sessions you should attend on these topics, the agenda offers the one place this year to do so. The sessions are intended not only for learning, but also for the community to actively engage with some key leaders.

Myself, Werner Keil and Petr Aubrecht are organizing on behalf of the community. We are grateful to have a very strong line-up both in terms of speakers and content. Below is a very good snapshot. Please note that all times are Central European Time (CET).

SessionTimeSpeakers
Jakarta EE Community State of the Union10/25/2020
15:00 – 15:50
Tanja Obradovic and Ivar Grimstad
MicroProfile Current and Future10/25/2020
16:00 – 16:50
Emily Jiang
What’s Coming to Jakarta Security10/25/2020
17:00 – 17:50
Arjan Tijms
Jakarta Concurrency Futures10/25/2020
18:00 – 18:50
Steve Millidge
Jakarta REST: Looking Ahead 10/25/2020
19:00 – 19:50
Andy McCright
Jakarta NoSQL and the Future of Polyglot Persistence in Java 10/25/2020
20:00 – 20:50
Otavio Santana

Tanja Obradovic and Ivar Grimstad from the Eclipse Foundation will be providing a good overview of the current status of Jakarta EE in Jakarta EE Community State of the Union. This will include Jakarta EE 9, Jakarta EE 9.1 as well as Jakarta EE 10. If there is one session to learn about Jakarta EE status, get involved and ask questions, this session is it.

IBM’s Emily Jiang will be doing the same thing for MicroProfile in MicroProfile Current and Future. So if you want to know about MicroProfile, this is the session you should make a point to attend. Emily will cover MicroProfile 4.0, MicroProfile 4.1 and MicroProfile 5.0.

The Security API is likely be to a key component of Jakarta EE 10. In What’s Coming to Jakarta Security, Arjan Tijms will be covering the likely changes as well as how you can contribute.

Steve Millidge will do the same thing for the Concurrency API in Jakarta Concurrency Futures. Similar to the Security API, the Concurrency API will play an important role in Jakarta EE 10.

REST continues to be one of the more active and popular technologies in the Jakarta EE family. In Jakarta REST – Looking Ahead, IBM’s Andy McCright will cover some of the important changes you can expect in the REST API for Jakarta EE 10.

Last but certainly not least, Otavio Santana will provide an overview of the new NOSQL API in Jakarta NoSQL and the Future of Polyglot Persistence in Java. He will overview the API, discuss what is available right now, what is coming and how you can contribute.

For further details, please look here. You will find session abstracts, speaker profiles and more. We have worked hard to organize a strong agenda on your behalf and we hope you will join us.

Please note these views are my own and do not reflect the views of Microsoft as a company.

Jakarta EE/MicroProfile Alignment Survey Results!

As you are likely aware, Java EE has transitioned to Open Source governance in the Eclipse Foundation as Jakarta EE. MicroProfile has been moving forward as an independent initiative to optimize enterprise Java for microservices architectures. The Cloud Native for Java (CN4J) Alliance has recently been formed to promote better alignment between Jakarta EE and MicroProfile.

One of the key issues to sort out is how Jakarta EE can consume MicroProfile specifications (such as MicroProfile Configuration). There are several alternatives as to how this could be done. These alternatives were put into a survey for the community to weigh in. In addition to choosing the option respondents believe to be best, they were able to provide comments justifying their preferred alternative. The results of the survey are summarized here. The results have been shared with the CN4J community and key decision makers.

Survey Results

More than 200 people filled out the survey. Even more remarkably, there were more than 50 comments representing the voice of the community. A fairly strong majority (57.73%) of developers want some MicroProfile specifications to move to Jakarta EE including the namespace.

Jakarta EE/MicroProfile survey results

The results are similar to what earlier surveys have indicated and congruent with the official Jakarta EE Ambassadors joint position. It is remarkable how consistent the community view has been, even over a period of time.

The Voice of the Community

It is impossible to do justice to all the people that provided comments. Each one of the comments is invaluable. The following is a decent sampling representing the majority opinion.

“MicroProfile should evolve APIs that eventually get absorbed by Jakarta EE. MicroProfile applications should eventually be able to run with pure Jakarta EE APIs.”

“Moving MicroProfile specs into Jakarta EE including namespace will make clear where the longer term specs are maintained. Also, for MicroProfile users it’s a very easy migration path.”

“I think no matter which of these options is chosen there is going to be an effect on either end users, or developers. Therefore, I would rather make the large upfront breaking changes all at once and merge the two into the same namespace. Then, have consistency going forward.”

“I would see the movement from org.eclipse.microprofile to the jakarta namespace as a sign of maturity (and success) for MicroProfile.”

“Option A2 has fewer cons and is more end user friendly.”

“Using a different namespace makes it clear what version and expectations (e.g. backward compatibility) the user is making. Moving without a namespace is confusing.”

“The aim of a specification should always be to make something as simple and clear as possible. The entry barriers and opportunities for error for new and inexperienced developers must be as low as possible. An inconsistent namespace or even the possibility of circular dependencies make the use simply too complicated and difficult. At the end of the day, it’s all about the economic and productive development of applications.”

“Move some MicroProfile specifications (e.g. MP Config when its stable) to Jakarta EE including the namespace.”

Source Data

I really hope the results help pave the way for sensible decisions on Jakarta EE and MicroProfile alignment. For me, gathering input and listening to people that are not necessarily involved in the lower level details of specification development is extremely important.

The Eclipse Foundation very graciously ran the survey and shared the source data publicly. Reading all the comments in full is especially insightful.

Your Input Needed to Determine Path for Jakarta EE/MicroProfile Alignment

As you are likely aware, Java EE has transitioned to Open Source governance in the Eclipse Foundation as Jakarta EE. MicroProfile has been moving forward as an independent initiative to optimize enterprise Java for microservices architectures. The Cloud Native for Java (CN4J) Alliance has recently been formed to promote better alignment between Jakarta EE and MicroProfile.

One of the key issues to sort out is how Jakarta EE can consume MicroProfile specifications (such as MicroProfile Configuration). There are several alternatives as to how this could be done. The following is a brief analysis of the advantages and disadvantages of each approach, as discussed in the CN4J community thus far. At the end of the analysis, there is a survey you should weigh in on. In addition to choosing the option you believe to be best, it is very valuable to provide comments justifying your preferred alternative. The results of the survey will be shared with the CN4J community and key decision makers.

Jakarta EE and MicroProfile Context

Both Jakarta EE and MicroProfile produce specifications that are intended for and used in cloud native and microservices use cases. In particular, MicroProfile has a specific focus on meeting the needs of cloud native and microservices use cases. MicroProfile also produces comparatively faster platform releases (roughly once a quarter) while the Jakarta EE release cadence is slower (the likely long term target being approximately once a year).

Jakarta EE currently provides relatively strong guarantees for backward compatibility for all specifications. MicroProfile does not currently guarantee backwards compatibility for all specifications, but does produce production-ready specifications that have demonstrated real world adoption. This characteristic enables MicroProfile to focus on innovation in emerging areas while Jakarta EE focuses on more conservative use-cases and stability best suited to the largest enterprises. While MicroProfile specifications have on occasion needed to break backwards compatibility, this decision is made with due care for end users.

MicroProfile specifications depend on one or more Jakarta EE specifications while Jakarta EE does not currently have any dependencies on MicroProfile.

Option A1: Move MicroProfile specifications to Jakarta EE without changing namespaces (so no need to change namespace from org.eclipse.microprofile.* to jakarta.*). Nonetheless, the Maven coordinates for MicroProfile specifications will move to Jakarta. Further evolution will take place under the Jakarta EE working group.

Pro:

  • There is no need for existing MicroProfile users to switch namespaces.
  • This gives MicroProfile due credit going forward for bringing a specification into Jakarta EE.
  • No API duplication between MicroProfile and Jakarta EE.
  • There is only the existing one-way dependency between MicroProfile and Jakarta EE.
  • Some users may wish for greater convergence of MicroProfile into Jakarta EE. This option satisfies this desire to some extent.

Con: 

  • Lack of namespace consistency for Jakarta EE users otherwise not using MicroProfile.
  • Some users may perceive this to mean only Jakarta EE is where production ready specifications are available.
  • It is not immediately obvious to a casual user using both Jakarta EE and MicroProfile in the same application which MicroProfile APIs belong to the MicroProfile working group and which MicroProfile specification belongs to the Jakarta EE working group. This may lead to brand confusion for some users as well as mismatched expectations with regards to characteristics such as backwards compatibility and release cadence.

Option A2: Move MicroProfile specifications to Jakarta EE including the namespace. In this case, the namespaces will be changed from org.eclipse.microprofile.* to jakarta.*. Further evolution will take place under the Jakarta EE working group. No more work will be done in the MicroProfile working group to further evolve a specification once it is moved.

Pro: 

  • Namespace consistency for Jakarta EE users otherwise not using MicroProfile.
  • No API duplication between MicroProfile and Jakarta EE.
  • There is only the existing one-way dependency between MicroProfile and Jakarta EE.
  • It is immediately obvious to a user using both Jakarta EE and MicroProfile in the same application which specifications belong to the MicroProfile working group and which specifications belong to the Jakarta EE working group. This includes expectations of characteristics such as backwards compatibility and release cadence.
  • Some users may wish for greater convergence of MicroProfile into Jakarta EE. This option satisfies this desire to some extent. This may include a possible preference for the jakarta.* namespace, which is more generic – as opposed to the org.eclipse.microprofile namespace, which may imply a focus on microservices.

Con: 

  • Existing MicroProfile users will need to switch namespaces in order to take advantage of newer versions of moved specifications. Similarly, implementers will need to put effort towards migration, including potentially maintaining two separate work streams at least in the short term.
  • Some users may perceive this to mean only Jakarta EE is where production ready specifications are available.

Option B: Reference MicroProfile specifications in Jakarta EE and not move MicroProfile specifications. Jakarta EE will not duplicate any referenced specifications and MicroProfile specifications will only be evolved under the MicroProfile working group.

Pro:

  • No API duplication between MicroProfile and Jakarta EE.
  • No migration effort is needed for any users or implementors, while Jakarta EE can still use the specification.
  • Some users may wish for MicroProfile and Jakarta EE to remain as separate as possible. This option satisfies this desire to some extent.

Con:

  • Lack of namespace consistency for Jakarta EE users otherwise not using MicroProfile.
  • It is not immediately obvious to a user using both Jakarta EE and MicroProfile in the same application which MicroProfile specifications are referenced by Jakarta EE and which are not (and as a result have different expectations with regards to characteristics such as backwards compatibility).
  • The referenced MicroProfile specification may wish to break backwards compatibility at some point in its evolution while Jakarta EE does not. Additional efforts will need to be made to address such mismatches.
  • This introduces a circular dependency between Jakarta EE and MicroProfile. This can make matching release cadences, dependencies, features and collaboration more difficult, including potentially unexpected challenges for end users. The following is one possible example illustrating version dependency mismatches: MicroProfile m2 aligns with Jakarta EE j1, while Jakarta EE j1 aligns with MicroProfile m1. MicroProfile Configuration c2 is included in MicroProfile m2. Jakarta Persistence p1 relies on MicroProfile Configuration c1 in MicroProfile m1 because Jakarta EE j1 was released before MicroProfile m2. An application wants to use both Jakarta EE j1 and MicroProfile m2 together. Which MicroProfile Configuration version will the application end up with? If MicroProfile Configuration c2 in MicroProfile m2 was loaded, Jakarta Persistence p1 may not work with MicroProfile m2 as expected when tested and released via the Jakarta EE j1 compatibility test kit/TCK).
  • If Jakarta EE integration specific changes are required in MicroProfile specifications, it will require coordination across working groups in a timely fashion with regards to dependencies, release cadence and features.

Option C: Create Jakarta EE versions of MicroProfile specifications. In this case, Jakarta EE and MicroProfile will develop similar features in parallel.

Pro:

  • MicroProfile and Jakarta EE can independently evolve features as they best see fit.
  • End users can mix and match MicroProfile and Jakarta EE as they best see fit. Implementations may do the same.

Con: 

  • Duplication of effort and resources across Jakarta EE and MicroProfile. The duplication of effort will likely also extend to implementations.
  • End users will need to choose between equivalent features in Jakarta EE and MicroProfile.
  • MicroProfile and Jakarta EE will very likely be seen as directly competing efforts, leading to further confusion.

Voice Your Opinion!

Each of the alignment approaches have advantages and disadvantages. While decision makers might guess what the right tradeoffs for end users and the ecosystem are, you have a role in providing feedback on what works best for you. Please take a moment to fill out this short survey and provide your feedback now. The results of the survey will be shared with decision makers. You should also continue to stay engaged by subscribing to the CN4J Alliance mailing list.

JConf Peru 2020 Conference Report

JConf Peru 2020 took place October 23-24. This was the second time the event was held and due to the pandemic, the 2020 event was virtual and free. I am very proud to have participated as an invited speaker – the JConf series is an admirable effort by the Spanish speaking Java community to hold world-class events. My friend and Peru JUG leader Jose Diaz and his wife Miryan Ramirez have worked hard to make JConf Peru a reality. I delivered three talks at the conference focused on Java, Jakarta EE and Azure.

How Microsoft Learned to Love Java

On the first day of the conference I delivered my Java on Azure focused talk “How Microsoft Learned to Love Java”. The talk is essentially a tour of the broad range of services, tools and APIs Microsoft provides around Azure to better serve Java developers. I also briefly discuss the Java on Azure roadmap at a high level. The slides for the talk are available on Speaker Deck. There is a brief end-to-end demo that is part of the talk. You can run the demo yourself using step-by-step instructions available on GitHub to get a feel for how the Java on Azure experience looks like (please reach out if you need help). The video for the talk is now posted on YouTube.

On the same day there were talks on Jakarta EE, MicroProfile and Quarkus delivered by folks like Jonathan Vila, Alex Soto, Daniel Dias, Fabio Turizo, Jorge Cajas and Victor Orozco.

Jakarta EE on Azure Magic Mystery Show

On the second day I delivered my demo-driven, entirely slide-less talk “Jakarta EE on Azure Magic Mystery Show”. The talk covers the many ways Java EE/Jakarta EE developers can migrate their applications to Azure including virtual machines, Docker, Kubernetes and PaaS. All the material for the talk is available in self-paced workshop format on GitHub. The workshop will take you about a day to complete end-to-end (please reach out if you need any help). The video for the talk is now posted on YouTube.

It is worth reminding that myself and my team are always ready to work closely with Java EE/Jakarta EE developers on Azure migrations – completely for free. To take advantage of this, you simply need to fill this survey out or reach out to me directly.

Jakarta NoSQL Powered by Cosmos DB on the Cloud

Later in the afternoon I delivered one of my newer talks “Jakarta NoSQL Powered by Cosmos DB on the Cloud”. This talk covers using the new Jakarta NoSQL specification with Azure Cosmos DB. Cosmos DB is a multi-mode NoSQL database service on Azure that is compatible with MongoDB, Cassandra and Gremlin. The slides for the talk are available on Speaker Deck. Most of the talk is actually a demo. You can run the demo yourself using step-by-step instructions available on GitHub (please reach out if you need help). The demo currently covers MongoDB, I would love PRs covering Cassandra and Gremlin. The video for the talk is now posted on YouTube.

On the second day there were more talks on Jakarta EE and MicroProfile delivered by folks like Otavio Santana, Geovanny Mendoza, Aristides Villareal, Isaac Ruiz Guerra, Alex Soto and Fabio Turizo.

Beautiful Peru

Peru is a country rich in heritage and natural beauty. It is one of the six cradles of civilization and the center of the mighty Inca entire. I am proud to say I got to see a bit of this amazing country as part of my brief trip for the first JConf Peru. Just check out the album below of photos I took (click this link to view the album if the embedded slideshow is not working)!

All in all, I am happy to have had the opportunity to speak at JConf Peru again. I am very glad the event continued in virtual format despite the pandemic. I hope to speak there again and hopefully visit beautiful Peru again in the future.

Why You Should Join EclipseCon Community Day

EclipseCon Community Day is on Monday, October 19 14:00 to 18:00 CET (the day before the start of the main EclipseCon conference). Community Day at EclipseCon has always been a great event for Eclipse working groups and project teams. This year both EclipseCon and Community Day is virtual and free. Space for Community Day is limited, so please register and save your spot soon.

We have a packed agenda centered on the Jakarta EE, MicroProfile and Cloud Native Java communities. If there is a set of very focused sessions you should attend on these topics, the agenda offers the one place this year to do so. The sessions are intended not only for learning, but also for the community to actively engage with some key leaders. Note, after you register for EclipseCon, you will need to reserve your spot for Community Day through the Swapcard platform (let me know if you run into any issues).

Myself, Werner Keil and Thodoris Bais are organizing on behalf of the community. We are grateful to have a very strong line-up both in terms of speakers and content. Below is a very good snapshot. Please note that all times are Central European Time (CET).

SessionTimeSpeakers
Jakarta EE Community State of the Union10/19/2020
14:30 – 15:15
Steve Millidge
MicroProfile Community Current and Future10/19/2020
15:15 – 16:00
Emily Jiang
Jakarta EE/MicroProfile – Key Features Demo10/19/2020
16:30 – 17:15
Josh Juneau, Edwin Derks
Jakarta EE 10 Round Table10/19/2020
17:15 – 18:00
Otavio Santana (Moderator)
Steve Millidge (Payara), Kevin Sutter (IBM),
Dmitry Kornilov (Oracle), David Blevins (Tomitribe),
Werner Keil, Ryan Cuprak

Steve Millidge will be providing a good overview of the current status of Jakarta EE in Jakarta EE Community State of the Union. This will include Jakarta EE 8, Jakarta EE 9 as well as Jakarta EE 10. If there is one session to learn about Jakarta EE status, get involved and ask questions, this session is it.

Emily Jiang will be doing the same thing for MicroProfile in MicroProfile Community Current and Future. So if you want to know about MicroProfile, this is the session you should make a point to attend. Emily will cover both MicroProfile 3.3 and MicroProfile 4.0.

If you have not seen Jakarta EE and MicroProfile in action, Jakarta EE/MicroProfile – Key Features Demo is for you. Josh Juneau and Edwin Derks will be joining forces in this very code/demo heavy session to show you the key features of this technology stack, where to use it in the real world and how.

Finally, we will be bringing to together some key leaders in the community to talk about the future of Jakarta EE in Jakarta EE 10 Round Table. You should show up not just to hear what this panel of experts thinks is most important for the success of the technology, but also to ask them questions. Anyone can pose their questions to the panel by just adding them here.

For further details, please look here. You will find session abstracts, speaker profiles and more. We have worked hard to organize a strong agenda on your behalf and we hope you will join us.

Please note these views are my own and do not reflect the views of Microsoft as a company.

A Tribute to Bill Shannon – A Giant of the Java Ecosystem

Know you not that a good man does nothing for appearance sake, but for the sake of having done right?

Epictetus

Bill Shannon passed away a few days ago after a long, valiant battle with cancer. The reality is Bill had a very long standing, selfless and profound impact on the entire Java ecosystem if not IT at large. It is also reality that far too few people understand this truth. In this blog post, I am going to attempt to do my part in closing this gap and honor a very good man that will be missed greatly.

Bill started his storied career with DEC and UNIX. He was the 11th employee of Sun Microsystems, alongside luminaries like Bill Joy. When J2EE was being formed, Bill was recruited to help lead the effort and remained in that role through the technology’s transition to Java EE and now Jakarta EE under the Eclipse Foundation. Bill is listed as lead or co-lead on all of Java EE platform releases. He played an instrumental role in the historic transfer of the technology from the JCP to the Eclipse Foundation. Bill was also the principal developer for Java Mail, now Jakarta Mail.

The following excerpt from his farewell note to his colleagues represents his accomplishments well:

I started at Sun (as employee #11) by bringing SunOS to life. Just as wild success was within reach, we stretched a little too far and signed a deal with AT&T. That set us back almost 5 years, but at least I have the “black edition” of Solaris signed by Eric Schmidt – “I’m Sorry”. Next it was time to move on to learn about window systems, desktop applications, and industry consortiums in the form of CDE. CDE was moving much too slowly and in 1996 a new opportunity presented itself – Java. We tried a Java machine, a JavaOS, and a Java desktop environment – Hotjava Views. None of that really panned out until Java found its home as an application server environment, first named J2EE and then named Java EE. I was recruited as leader of this new effort, which has subsequently been given a new name and new leadership – Jakarta EE at the Eclipse Foundation.

His contributions to Java, Java EE and Jakarta EE truly cannot be overstated. He left his mark on the technology set in a way few other people have. His interactions with me, while anecdotal, perhaps is a good reflection of who he really was, what he did and why he will be missed.

I first encountered Bill when I began contributing to Java EE 5 as an independent consultant, on my own time. Bill made sure I felt welcome, behind the scenes gave me background technical information that I needed and encouraged me to be outspoken. He valued my contributions and understood they came at the cost of significant personal sacrifices. I believe he also implicitly understood the challenges of being an immigrant, a person of color, someone with obvious Islamic heritage, at heart a non-conformist and a non-vendor in a forum and industry that lacked diversity and still does. Without that early support from Bill, I am not sure I would have continued on with Java EE. I still vividly remember what he once told me:

Don’t underestimate your impact. I appreciate your passion. You can make a difference in a way I don’t think you understand. There will be resistance, but don’t give up.

Bill was equally welcoming and supportive when I joined Oracle as Java EE evangelist. He made sure my ideas were voiced, heard and considered, even if we did not always agree. He was happy to empower me to fulfill my community facing role even at JavaOne while shunning the limelight himself. I now also know how many good fights he tirelessly fought behind the scenes so that the effort we both cared about kept moving forward.

Beyond Oracle, Bill was always quietly supportive of community efforts like the Java EE Guardians and the Jakarta EE Ambassadors after it. He remained supportive until the end of his days – taking the time to help draft the Guide to Helping Deliver Jakarta EE 9.

Bill is included in the Usenix association 25th anniversary of Unix, card deck (1994)

Bill passed at home with his family and close friends. He is succeeded by his wife and two daughters. Rest in peace Bill. Bill and his family were private people. With the blessings of his family, I hope to hold a virtual tribute event to honor Bill together publicly as a community. If this materializes, I will keep folks posted.

Bill Shannon with Anil Gaur (then Oracle Group VP responsible for Java EE), celebrating Java’s 20th anniversary

I believe the best way to truly honor Bill is to carry forward his life’s work embodied in Jakarta EE. I hope you will take a moment to consider the long service of this good man on all our behalf and also consider being a part of the Jakarta EE journey.

Please note these views are my own and do not reflect the views of Microsoft as a company.