1 of 23

Benefits Creating a Narrative

1

  • Sets High Level Priorities
  • Provides Early Release Positioning and Messaging
  • Sets “weak” Direction to Projects
  • Guides Platform Project Specific Goals

Copyright (c) 2021, Eclipse Foundation, Inc. | Made available under the Eclipse Public License 2.0 (EPL-2.0)

2 of 23

2

Jakarta EE 11 (10.x) - Narrative

COPYRIGHT (C) 2021, ECLIPSE FOUNDATION, INC. | THIS WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)

Copyright (c) 2021, Eclipse Foundation, Inc. | Made available under the Eclipse Public License 2.0 (EPL-2.0)

3 of 23

Target Release Date and Java Version

3

Use this slide to collect suggested release dates.

Please comment on a date as a mechanism for gathering feedback.

Release Train (Target Date)

Q1 2024 LTS + 6 months (then a 2 year cadence) - Java 21

Copyright (c) 2021, Eclipse Foundation, Inc. | Made available under the Eclipse Public License 2.0 (EPL-2.0)

4 of 23

Unified APIs improving Developer Experience

4

Objectives (What?)

Describe some top level objectives

  1. Unify specifications on CDI as a unified bean model
  2. Increase API Cohesion
  3. “Higher” specifications build on “lower” level specifications to deliver cross-cutting concerns. For example Jakarta Authentication, Jakarta Authorisation, Jakarta Concurrency.

Rationale (Why?)

Describe why you think this is a priority - what problem does this solve for our api consumers or runtime creators

  • Decreases the learning curve for developers using Jakarta EE by only having a single bean model to understand.
  • Removes edge conditions where some specifications do not work as expected with other specifications.
  • Decreases number of “duplicated” annotations
  • Simplifies implementation for runtime creators

Copyright (c) 2021, Eclipse Foundation, Inc. | Made available under the Eclipse Public License 2.0 (EPL-2.0)

5 of 23

New Specifications

5

Objectives (What?)�

  1. Bring new specifications into the platform e.g. Jakarta Config, Jakarta RPC, Jakarta Data, Jakarta MVC
  2. Incorporate capabilities of new specifications into existing specifications where appropriate
  3. Deliver new functionality in existing specifications
  4. Encourage Individual Specifications to release early

Rationale (Why?)

Describe why you think this is a priority - what problem does this solve for our api consumers or runtime creators

  • New specifications are under development and should be encouraged to hit the release train
  • Demonstrates to the market that Jakarta EE platform is delivering new capabilities and therefore is relevant for future development

Copyright (c) 2021, Eclipse Foundation, Inc. | Made available under the Eclipse Public License 2.0 (EPL-2.0)

6 of 23

Built on the Latest Java

6

Objectives (What?)�

  1. Use capabilities provided by update in baseline Java in all specifications
  2. Revise specifications to ensure they are compliant and support latest Java baseline.
  3. Updated for Records, Virtual Threads (JDK 19+) and other new Java features
  4. Clarify and expand support, in Jakarta EE APIs, of technologies like JLink images and GraalVM Native Image

Rationale (Why?)

Describe why you think this is a priority - what problem does this solve for our api consumers or runtime creators

  • Developers want to use latest Java capabilities in new applications and expect to see them in Jakarta EE
  • Messages to the market that Jakarta EE is tracking and leveraging latest Java into the Enterprise
  • Not always clear where Native compilation is supported, and absence of TCK support

Copyright (c) 2021, Eclipse Foundation, Inc. | Made available under the Eclipse Public License 2.0 (EPL-2.0)

7 of 23

Enable Community Contribution�(non-marketing)

7

Objectives (What?)

  1. Grow number of committers and contributors
  2. Simplify the process of creating specifications, TCKs, compatible implementations
  3. Simplify the maintenance and enhancement and use of specifications, TCKs, compatible implementations
  4. Enable Continuous Integration of TCK for rapid feedback
  5. Refactor the TCKs to be with the specs and make them easier to run
  6. Build developer on-ramps (tutorials, starters, documentation)

(This may be somewhat independent of “EE 11” but needs to pervade our planning)

Rationale (Why?)

  • We have more ideas about features and technical directions than capacity to deliver
  • The hard learning curve prevents the wider community to participate and effectively contribute
  • Releases take to much time because of non-automated feedback loops, technical and organisational complexity, inconsistency etc.

Copyright (c) 2021, Eclipse Foundation, Inc. | Made available under the Eclipse Public License 2.0 (EPL-2.0)

8 of 23

Jakarta EE 11 - coming ???? delivers …

8

Unified APIs to improve developer experience

New Specifications …..

All built on the latest Java.

Copyright (c) 2021, Eclipse Foundation, Inc. | Made available under the Eclipse Public License 2.0 (EPL-2.0)

9 of 23

Baseline Java Platform

9

Use this slide to collect feedback on target JDK version for apis for the next release.

This is NOT a limitation for runtimes or developers using Jakarta EE but sets the underlying JDK features that the public APIs projects can use.

Please comment on a date as a mechanism for gathering feedback.

JDK 11

JDK 17 (3) - with TCK running on 21

JDK 21 (3) - little more unequivocal - September 23 target release date

Other versions?

JDK 18+ (temporary in a Milestone)

Copyright (c) 2021, Eclipse Foundation, Inc. | Made available under the Eclipse Public License 2.0 (EPL-2.0)

10 of 23

Task

“Steve Millidge volunteered to initiate creation of a strawman “narrative for future direction” - will have a direction for this activity by end of June (will check end of June)”

10

Copyright (c) 2021, Eclipse Foundation, Inc. | Made available under the Eclipse Public License 2.0 (EPL-2.0)

11 of 23

Approach

11

  1. Working Group Survey for key Priorities for Jakarta EE 11 – Working Group Members Only
  2. Platform Team Product Overall Platform Priorities – Top 5 goals for the Platform
  3. Marketing Committee – Key Messaging and Positioning Challenges (Inputs: Developer Survey, Competitors, Analysts, Market)
  4. Steering Committee (or subset) – Draft Narrative
  5. Steering Committee Approve Overall Narrative Direction 1.0
  6. Socialise Through Platform Project and Individual Projects
  7. Platform Projects sets technical guidance to projects on requirements of being part of the Jakarta EE 11 platform
  8. Projects Create Release Plans
  9. Steering Committee Review and Release Narrative 1.x (Ongoing)

Reviewing numbers every week to review.

Copyright (c) 2021, Eclipse Foundation, Inc. | Made available under the Eclipse Public License 2.0 (EPL-2.0)

12 of 23

How to use the Slides After to collect Priorities

12

  1. Review priorities already added after this side and feel free to comment on any priority
  2. Feel free to add a Priority slide into the slide deck as a way of capturing your priority if you feel it is not covered already or has a different approach
  3. Priority needs a short title (don’t worry about using marketing words)
  4. Add some high level objectives - what the priority should try to achieve
  5. Add a Rationale - why you think this is a priority.

Actions you need to do

Objective

  1. Collect Jakarta EE 11 top priorities
  2. Review at the Steering Committee
  3. Narrow down priorities to 2 - 4 top level priorities for Jakarta EE 11
  4. Approve at the Steering Committee
  5. Use to message to the market and high level steer for project teams.

Copyright (c) 2021, Eclipse Foundation, Inc. | Made available under the Eclipse Public License 2.0 (EPL-2.0)

13 of 23

Priority - Unified Platform

13

Objectives (What?)

Describe some top level objectives

  1. Unify specifications on CDI as a unified bean model
  2. Increase API Cohesion
  3. “Higher” specifications build on “lower” level specifications to deliver cross-cutting concerns. For example Jakarta Authentication, Jakarta Authorisation, Jakarta Concurrency.

Rationale (Why?)

Describe why you think this is a priority - what problem does this solve for our api consumers or runtime creators

  • Decreases the learning curve for developers using Jakarta EE by only having a single bean model to understand.
  • Removes edge conditions where some specifications do not work as expected with other specifications.
  • Simplifies implementation for runtime creators

Copyright (c) 2021, Eclipse Foundation, Inc. | Made available under the Eclipse Public License 2.0 (EPL-2.0)

14 of 23

Priority - Add New Specifications

14

Objectives (What?)�

  1. Bring new specifications into the platform e.g. Jakarta Config, Jakarta RPC, Jakarta Data
  2. Incorporate capabilities of new specifications into existing specifications where appropriate

Rationale (Why?)

Describe why you think this is a priority - what problem does this solve for our api consumers or runtime creators

  • New specifications are under development and should be encouraged to hit the release train
  • Demonstrates to the market that Jakarta EE platform is delivering new capabilities and therefore is relevant for future development

Copyright (c) 2021, Eclipse Foundation, Inc. | Made available under the Eclipse Public License 2.0 (EPL-2.0)

15 of 23

Priority - Leverage Latest Java

15

Objectives (What?)�

  1. Use capabilities provided by update in baseline Java in all specifications
  2. Revise specifications to ensure they are compliant and support latest Java baseline.
  3. Updated for Records, Virtual Threads (JDK 19+)
  4. Clarify and expand support, in Jakarta EE APIs, of technologies like JLink images and GraalVM Native Image

Rationale (Why?)

Describe why you think this is a priority - what problem does this solve for our api consumers or runtime creators

  • Developers want to use latest Java capabilities in new applications and expect to see them in Jakarta EE
  • Messages to the market that Jakarta EE is tracking and leveraging latest Java into the Enterprise
  • Not always clear where Native compilation is supported, and absence of TCK support

Copyright (c) 2021, Eclipse Foundation, Inc. | Made available under the Eclipse Public License 2.0 (EPL-2.0)

16 of 23

Priority - Enable Community Innovation

16

Objectives (What?)

  1. Grow number of committers and contributors
  2. Simplify the process of creating specifications, TCKs, compatible implementations
  3. Simplify the maintenance and enhancement and use of specifications, TCKs, compatible implementations

(This may be somewhat independent of “EE 11” but needs to pervade our planning)

Rationale (Why?)

  • We have more ideas about features and technical directions than capacity to deliver
  • The hard learning curve prevents the wider community to participate and effectively contribute
  • Releases take to much time because of non-automated feedback loops, technical and organisational complexity, inconsistency etc.

Copyright (c) 2021, Eclipse Foundation, Inc. | Made available under the Eclipse Public License 2.0 (EPL-2.0)

17 of 23

Priority - Clarify Compile Time Support

17

Objectives (What?)

  1. Clarify and expand support, in Jakarta EE APIs, of technologies like JLink images and GraalVM Native Image

Rationale (Why?)

  • Strong interest
  • Only possible with some components and only with Core Profile
  • Not always clear where supported, and absence of TCK support
  • Saves runtime resources

Copyright (c) 2021, Eclipse Foundation, Inc. | Made available under the Eclipse Public License 2.0 (EPL-2.0)

18 of 23

Priority - Continuous Integration

18

Objectives (What?)

  1. Automate TCK test runs on Compatible Implementation(s) to use it not for product qualification only, instead use it for fast feedback on any changes too
  2. Simplify executing test runs
  3. Speed up executing test runs
  4. Prevent releasing (final) artefacts with issues

Rationale (Why?)

  • Provide fast feedback for changes
  • Increases quality and release cycle while lowers required (and limited) resources
  • Encourage running TCKs early and often during release process
  • Providing automated feedback to the release management (i.e. detailed test results, KPIs etc.)
  • Could make vendors (or implementation projects in general) engagement in providing a Compatible Implementation transparent

Copyright (c) 2021, Eclipse Foundation, Inc. | Made available under the Eclipse Public License 2.0 (EPL-2.0)

19 of 23

Priority

19

Title: Input from JakartaOne Livestream Japan 2022

Objectives (What?)

JakartaPersistence is difficult to use, please redesign it.

I want more commonality so that there are fewer differences between application servers.

Introduce annotation composition (@AliasFor)

It would be good if parts that are not covered well by Jakarta EE, such as Spring Security, could be made available.

Will the record class, module, etc. be usable in Jakarta EE?

Re-standardization of the Logging framework that has gone to Log4J2, abolition of Session Bean and unification to CDI, simplification and speed-up of the JPA specification, standardization of stream APIs such as Kaflka, standardization of KVS access APIs.

I would be happy to have hands-on or tutorials.

Web applications are usually developed by separating the front end and back end, but if there are any best practices for developing applications that authenticate APIs on the back end using Jakarta EE or MicroProfile, I would like a tutorial.

I had a hard time adopting JavaEE, which only had JSF, as opposed to SpringFramework, where action-based MVC is the standard, but now that Jakarta MVC is known, it may be a good opportunity to switch back to JakartaEE from SpringFramework in the future.

I would be glad to have the easy tutorials as a way to broaden the base!

I am wondering what you are trying to do as JakarataEE regarding the view. (Thymeleaf is the de facto standard even in the Spring community...). I want backward compatibility as much as possible. (This idea may be nonsense, but I think it's because the core systems are not willing to spend money on maintenance.)

Integration with microprofile.io, lightweighting of web pofile (reduction of on-boarding functions)

I hope you keep backward compatibility as much as possible.

I expect regular releases in the future.

Rationale (Why?)

Describe why you think this is a priority - what problem does this solve for our api consumers or runtime creators

Copyright (c) 2021, Eclipse Foundation, Inc. | Made available under the Eclipse Public License 2.0 (EPL-2.0)

20 of 23

Priority

20

Title: Continue refactoring platform TCKs

Objectives (What?)

Describe some top level objectives

Move the specification TCKs to the corresponding specifications in order to be easily maintained and scalable. The refactored TCKs should be easily executable by Jakarta EE runtimes.

Rationale (Why?)

Describe why you think this is a priority - what problem does this solve for our api consumers or runtime creators

It took a long time to configure and execute Platform TCK.

Copyright (c) 2021, Eclipse Foundation, Inc. | Made available under the Eclipse Public License 2.0 (EPL-2.0)

21 of 23

Priority

21

Title: CDI Centric

Objectives (What?)

Describe some top level objectives

Encourage Jakarta EE specifications to integrate with CDI further to utilise its rich framework by providing interceptors, beans to consumers

Rationale (Why?)

Describe why you think this is a priority - what problem does this solve for our api consumers or runtime creators

This will create a single injection and extension framework for the whole Jakarta EE platform and provide a smooth learning curve to end users. See more conversation here.

Copyright (c) 2021, Eclipse Foundation, Inc. | Made available under the Eclipse Public License 2.0 (EPL-2.0)

22 of 23

Priority

22

Title:

Objectives (What?)

Describe some top level objectives

Rationale (Why?)

Describe why you think this is a priority - what problem does this solve for our api consumers or runtime creators

Copyright (c) 2021, Eclipse Foundation, Inc. | Made available under the Eclipse Public License 2.0 (EPL-2.0)

23 of 23

THANK YOU!

23

Copyright (c) 2021, Eclipse Foundation, Inc. | Made available under the Eclipse Public License 2.0 (EPL-2.0)