Skip to content

First draft of 26.0.0.4-beta blog#4772

Merged
navaneethsnair1 merged 3 commits intostagingfrom
26.0.0.4-beta-post
Apr 7, 2026
Merged

First draft of 26.0.0.4-beta blog#4772
navaneethsnair1 merged 3 commits intostagingfrom
26.0.0.4-beta-post

Conversation

@navaneethsnair1
Copy link
Copy Markdown
Contributor

Copy link
Copy Markdown
Member

@tbitonti tbitonti left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewing only the Jandex BLOG section.
The text "read-only" should not be hyphenated. Maybe a comma is needed here? Or the order should be "only read"? The meaning is that a read of the index is performed only if jandex use is enabled. Otherwise, the text looks good.

Maybe: Would a different order to the BLOG entries be better? At the very least, the EE11 post should be first and the jandex post should be at the end. The jandex post is much smaller and less splashy than the other posts.

@arkarkala
Copy link
Copy Markdown
Member

For https://blogs-draft-openlibertyio.mqj6zf7jocq.us-south.codeengine.appdomain.cloud/blog/2026/04/07/26.0.0.4-beta.html#jakarta_security (Jakarta 4.0 section)

  1. Should there be a links for examples? "Application with three HAMs" for example should take one to a later section in the blog under the multiple hams section. Also applies for "Application with single authentication mechanism and three identity stores" - but I could not find the example that shows this though.
  2. A developer can provide a custom implementation of the HttpAuthenticationMechanismHandler interface (a "custom HAM handler") if the internal HAM handler does not meet their requirements.
    to
    A developer must provide a custom implementation of the HttpAuthenticationMechanismHandler interface (a "custom HAM handler") if the internal HAM handler does not meet their requirements.
  3. Capitalize section titles.
    in-memory identity store to In-Memory Identity Store
    multiple hams to Multiple HAMs
    application specification to Application Specification

Comment thread posts/2026-04-07-26.0.0.4-beta.adoc Outdated
Comment on lines +28 to +33
* <<jakarta_auth, Jakarta Authentication 3.1>>
* <<jakarta_authz, Jakarta Authorization 3.0>>
* <<java_26, Beta support for Java 26>>
* <<mcp, Updates to `mcpServer-1.0`>>
* <<jakarta_data, Preview of some Jakarta Data 1.1 M2 capability>>
* <<jakarta_security, Jakarta Security 4.0>>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* <<jakarta_auth, Jakarta Authentication 3.1>>
* <<jakarta_authz, Jakarta Authorization 3.0>>
* <<java_26, Beta support for Java 26>>
* <<mcp, Updates to `mcpServer-1.0`>>
* <<jakarta_data, Preview of some Jakarta Data 1.1 M2 capability>>
* <<jakarta_security, Jakarta Security 4.0>>
** <<jakarta_auth, Application Authentication 3.1 (Jakarta Authentication 3.1)>>
** <<jakarta_authz, Application Authorization 3.0 (Jakarta Authorization 3.0)>>
** <<jakarta_security, Application Security 6.0 (Jakarta Security 4.0)>>
* <<java_26, Beta support for Java 26>>
* <<mcp, Updates to `mcpServer-1.0`>>
* <<jakarta_data, Preview of some Jakarta Data 1.1 M2 capability>>

I am basing these changes to align with how this was done in the past for the 22.0.0.13-beta blog post.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also the order should be updated below to have all of the EE 11 security features together instead of having the security one off by itself.

Comment thread posts/2026-04-07-26.0.0.4-beta.adoc Outdated
// Contact/Reviewer: jhanders34
// // // // // // // //
[#jakarta_auth]
== Jakarta Authentication 3.1
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
== Jakarta Authentication 3.1
== Application Authentication 3.1 (Jakarta Authentication 3.1)

Comment thread posts/2026-04-07-26.0.0.4-beta.adoc Outdated
// Contact/Reviewer: jhanders34
// // // // // // // //
[#jakarta_authz]
== Jakarta Authorization 3.0
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
== Jakarta Authorization 3.0
== Application Authorization 3.0 (Jakarta Authorization 3.0)

Comment thread posts/2026-04-07-26.0.0.4-beta.adoc Outdated
// Contact/Reviewer: daveywebster
// // // // // // // //
[#jakarta_security]
== Jakarta Security 4.0
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
== Jakarta Security 4.0
== Application Security 6.0 (Jakarta Security 4.0)

Comment thread posts/2026-04-07-26.0.0.4-beta.adoc Outdated

Support for reading Jandex indexes under WEB-INF/classes is enabled by a new property of application and application manager elements:

* Property: *useJandexUnderClasses*
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One thing I thought would have been done is to edit the blog content to be consistent. We now have use of bold and highlight in different parts of the file. I figured they would have all be converted to highlight's because I think that is more widely used in our blog formatting, but you can correct me if I am wrong.

Comment thread posts/2026-04-07-26.0.0.4-beta.adoc Outdated
* 517: link:https://openjdk.org/jeps/517[HTTP/3 for the HTTP Client API]
* 522: link:https://openjdk.org/jeps/522[G1 GC: Improve Throughput by Reducing Synchronization]

A new change JEP 500 ("Prepare to Make Final Mean Final") in Java 26 starts enforcing true immutability of final fields by restricting their mutation by using deep reflection.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
A new change JEP 500 ("Prepare to Make Final Mean Final") in Java 26 starts enforcing true immutability of final fields by restricting their mutation by using deep reflection.
A new change JEP 500 ("Prepare to Make Final Mean Final") in Java 26 starts enforcing true immutability of final fields by restricting their mutation when using deep reflection.

Comment thread posts/2026-04-07-26.0.0.4-beta.adoc Outdated
* 522: link:https://openjdk.org/jeps/522[G1 GC: Improve Throughput by Reducing Synchronization]

A new change JEP 500 ("Prepare to Make Final Mean Final") in Java 26 starts enforcing true immutability of final fields by restricting their mutation by using deep reflection.
In JDK 26, such mutations still work but trigger runtime warnings by default, preparing developers for stricter enforcement.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
In JDK 26, such mutations still work but trigger runtime warnings by default, preparing developers for stricter enforcement.
In Java 26, such mutations still work but trigger runtime warnings by default, preparing developers for stricter enforcement.

Comment thread posts/2026-04-07-26.0.0.4-beta.adoc Outdated

Take advantage of trying out the new changes now and gain more time to preview how your applications and microservices run with Java 26.

Just link:https://jdk.java.net/26/[download the latest release of Java 26], download and install the link:https://openliberty.io/downloads/#runtime_betas[26.0.0.4-beta] version of Open Liberty, edit your Liberty server's link:https://openliberty.io/docs/latest/reference/config/server-configuration-overview.html#server-env[server.env] file with `JAVA_HOME` set to your Java 26 installation directory and start testing!
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Just link:https://jdk.java.net/26/[download the latest release of Java 26], download and install the link:https://openliberty.io/downloads/#runtime_betas[26.0.0.4-beta] version of Open Liberty, edit your Liberty server's link:https://openliberty.io/docs/latest/reference/config/server-configuration-overview.html#server-env[server.env] file with `JAVA_HOME` set to your Java 26 installation directory and start testing!
Just download the latest release of link:https://developer.ibm.com/languages/java/semeru-runtimes/downloads/[IBM Semeru Runtime 26] or link:https://adoptium.net/temurin/releases/?version=26[Temurin 26], download and install the link:https://openliberty.io/downloads/#runtime_betas[26.0.0.4-beta] version of Open Liberty, edit your Liberty server's link:https://openliberty.io/docs/latest/reference/config/server-configuration-overview.html#server-env[server.env] file with `JAVA_HOME` set to your Java 26 installation directory and start testing!

Since both Semeru and Temurin are available, we should reference both I think or just Semeru.

Comment thread posts/2026-04-07-26.0.0.4-beta.adoc Outdated

Just link:https://jdk.java.net/26/[download the latest release of Java 26], download and install the link:https://openliberty.io/downloads/#runtime_betas[26.0.0.4-beta] version of Open Liberty, edit your Liberty server's link:https://openliberty.io/docs/latest/reference/config/server-configuration-overview.html#server-env[server.env] file with `JAVA_HOME` set to your Java 26 installation directory and start testing!

For more information on Java 26, see the Java 26 link:https://jdk.java.net/26/release-notes[release notes page], link:https://download.java.net/java/early_access/jdk26/docs/api/[API Javadoc page] or link:https://jdk.java.net/26/[download page].
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
For more information on Java 26, see the Java 26 link:https://jdk.java.net/26/release-notes[release notes page], link:https://download.java.net/java/early_access/jdk26/docs/api/[API Javadoc page] or link:https://jdk.java.net/26/[download page].
For more information on Java 26, see the Java 26 link:https://jdk.java.net/26/release-notes[release notes page] and link:https://docs.oracle.com/en/java/javase/26/docs/api/index.html[API Javadoc page].

Comment thread posts/2026-04-07-26.0.0.4-beta.adoc Outdated
Just link:https://jdk.java.net/26/[download the latest release of Java 26], download and install the link:https://openliberty.io/downloads/#runtime_betas[26.0.0.4-beta] version of Open Liberty, edit your Liberty server's link:https://openliberty.io/docs/latest/reference/config/server-configuration-overview.html#server-env[server.env] file with `JAVA_HOME` set to your Java 26 installation directory and start testing!

For more information on Java 26, see the Java 26 link:https://jdk.java.net/26/release-notes[release notes page], link:https://download.java.net/java/early_access/jdk26/docs/api/[API Javadoc page] or link:https://jdk.java.net/26/[download page].
For more information on Open Liberty, see our link:https://openliberty.io/docs[documentation page].
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
For more information on Open Liberty, see our link:https://openliberty.io/docs[documentation page].

Should this just be removed as suggested?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess this can be removed

Comment thread posts/2026-04-07-26.0.0.4-beta.adoc Outdated
=== Learn More

* link:https://smallrye.io/jandex/jandex/3.5.3/index.html[Jandex Documentation]
* link:https://openliberty.io/docs/latest/reference/config/applicationManager.html[Application Manager Documentation]
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do all of the openliberty.io references in the beta blog need to be changed to {url-prefix}?

Comment thread posts/2026-04-07-26.0.0.4-beta.adoc Outdated
* link:https://smallrye.io/jandex/jandex/3.5.3/index.html[Jandex Documentation]
* link:https://openliberty.io/docs/latest/reference/config/applicationManager.html[Application Manager Documentation]
* link:https://openliberty.io/docs/latest/reference/config/applicationManager.html[Application Documentation]
* link:https://github.com/OpenLiberty/open-liberty/issues/34231[Open Liberty Jandex Index Format Update]
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tbitonti shouldn't this point to OpenLiberty/open-liberty#32438 instead of the jandex 3 issue? I assume the link description also should change to match.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah. 32438 is the correct link. Then:

Look for jandex index under WEB-INF/classes

@Arunkumar-Kallyodan
Copy link
Copy Markdown

@navaneethsnair1 for Beta support for Java 26 , kindly make the changes Jared suggested.

@navaneethsnair1 navaneethsnair1 merged commit 82b93d1 into staging Apr 7, 2026
1 check passed

Finally, the 3.0 API adds a new `jakarta.security.jacc.PrincipalMapper` class that you can obtain from the `PolicyContext` class when authorization processing is done in your `Policy` implementation. From this class, you can obtain the roles that are associated with a specific Subject to be able to determine whether the Subject is in the required role.

You can use the `PrincipalMapper` class in your `Policy` implementation's `impliesByRole`(or `implies`) method, as shown in the following example:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
You can use the `PrincipalMapper` class in your `Policy` implementation's `impliesByRole`(or `implies`) method, as shown in the following example:
You can use the `PrincipalMapper` class in your `Policy` implementation's `impliesByRole` (or `implies`) method, as shown in the following example:

A space is missing.

Comment on lines +146 to +148
Due to Jakarta Authorization 3.0 no longer using the `java.security.Policy` class and introducing a new configuration mechanism for authorization modules, the `com.ibm.wsspi.security.authorization.jacc.ProviderService` Liberty API is no longer available with the appAuthorization-3.0 feature.

If a Liberty user feature configures authorization modules, the OSGi service that provided a `ProviderService` implementation must be updated to use the `PolicyConfigurationFactory` and `PolicyFactory` `set` methods. These methods configure the modules in the OSGi service. Alternatively you can use a Web Application Bundle (WAB) in your user feature to specify your security modules in a `web.xml` file.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Due to Jakarta Authorization 3.0 no longer using the `java.security.Policy` class and introducing a new configuration mechanism for authorization modules, the `com.ibm.wsspi.security.authorization.jacc.ProviderService` Liberty API is no longer available with the appAuthorization-3.0 feature.
If a Liberty user feature configures authorization modules, the OSGi service that provided a `ProviderService` implementation must be updated to use the `PolicyConfigurationFactory` and `PolicyFactory` `set` methods. These methods configure the modules in the OSGi service. Alternatively you can use a Web Application Bundle (WAB) in your user feature to specify your security modules in a `web.xml` file.
Due to Jakarta Authorization 3.0 no longer using the `java.security.Policy` class and introducing a new configuration mechanism for authorization modules, the `com.ibm.wsspi.security.authorization.jacc.ProviderService` Liberty API is no longer available with the appAuthorization-3.0 feature. If a Liberty user feature configures authorization modules, the OSGi service that provided a `ProviderService` implementation must be updated to use the `PolicyConfigurationFactory` and `PolicyFactory` `set` methods. These methods configure the modules in the OSGi service. Alternatively you can use a Web Application Bundle (WAB) in your user feature to specify your security modules in a `web.xml` file.

These were meant to be in the same paragraph since they are about the same thing. The first sentence introduces the change and the follow on sentences explains the user's action due to that change.


These convenience features enable developers to rapidly develop applications using all APIs in the Web Profile and Platform specifications. Unlike the `jakartaee-10.0` Liberty feature, the `jakartaee-11.0` Liberty feature does not enable the Managed Beans specification function any longer, as this specification was removed from the platform which includes removal of the `jakarta.annotation.ManagedBean` annotation API. Applications relying on the `@ManagedBean` annotation must migrate to use CDI annotations.

The Jakarta EE 11 Platform specification removes all optional specifications from the platform, meaning Jakarta SOAP with Attachments, XML Binding, XML Web Services, and Enterprise Beans 2.x APIs functions are not included with the `jakartaee-11.0` Liberty feature. To use these capabilities, explicitly add Liberty features to your `server.xml` feature list: `xmlBinding-4.0` for XML Binding, `xmlWS-4.0` for SOAP with Attachments and XML Web Services, and `enterpriseBeansHome-4.0` for Jakarta Enterprise Beans 2.x APIs. Alternatively, use the equivalent versionless features with the `jakartaee-11.0` platform specification.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The Jakarta EE 11 Platform specification removes all optional specifications from the platform, meaning Jakarta SOAP with Attachments, XML Binding, XML Web Services, and Enterprise Beans 2.x APIs functions are not included with the `jakartaee-11.0` Liberty feature. To use these capabilities, explicitly add Liberty features to your `server.xml` feature list: `xmlBinding-4.0` for XML Binding, `xmlWS-4.0` for SOAP with Attachments and XML Web Services, and `enterpriseBeansHome-4.0` for Jakarta Enterprise Beans 2.x APIs. Alternatively, use the equivalent versionless features with the `jakartaee-11.0` platform specification.
The Jakarta EE 11 Platform specification removes all optional specifications from the platform, meaning Jakarta SOAP with Attachments, XML Binding, XML Web Services, and Enterprise Beans 2.x APIs functions are not included with the `jakartaee-11.0` Liberty feature. To use these capabilities, explicitly add Liberty features to your `server.xml` feature list: `xmlBinding-4.0` for XML Binding, `xmlWS-4.0` for SOAP with Attachments and XML Web Services, and `enterpriseBeansHome-4.0` for Jakarta Enterprise Beans 2.x APIs. Alternatively, use the equivalent versionless features with the `jakartaee-11.0` platform.

specifications isn't right. It is just called platform when you configure versionless features.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants