Skip to content

Commit

Permalink
Merge pull request #4111 from OpenLiberty/staging
Browse files Browse the repository at this point in the history
Publish 24.0.0.11-beta post
  • Loading branch information
dmuelle authored Oct 23, 2024
2 parents ffbf304 + 1f5703f commit 996378d
Show file tree
Hide file tree
Showing 2 changed files with 175 additions and 4 deletions.
11 changes: 7 additions & 4 deletions blog_tags.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"blog_tags": [
{
"name": "announcements",
"posts": ["24.0.0.10",
"posts": ["24.0.0.11-beta", "24.0.0.10",
"24.0.0.10-beta", "24.0.0.9",
"24.0.0.9-beta", "liberty-developer-essentials-badge",
"24.0.0.8", "24.0.0.8-beta",
Expand Down Expand Up @@ -171,7 +171,8 @@
},
{
"name": "release",
"posts": ["24.0.0.10", "24.0.0.10-beta",
"posts": ["24.0.0.11-beta",
"24.0.0.10", "24.0.0.10-beta",
"24.0.0.9", "24.0.0.9-beta",
"24.0.0.8", "24.0.0.8-beta",
"24.0.0.7", "24.0.0.7-beta",
Expand Down Expand Up @@ -234,7 +235,8 @@
},
{
"name": "beta",
"posts": ["24.0.0.10-beta", "24.0.0.9-beta",
"posts": ["24.0.0.11-beta",
"24.0.0.10-beta", "24.0.0.9-beta",
"24.0.0.8-beta", "24.0.0.7-beta",
"24.0.0.6-beta", "24.0.0.5-beta",
"24.0.0.4-beta", "24.0.0.2-beta",
Expand Down Expand Up @@ -565,7 +567,8 @@
},
{
"name": "performance-enhancements",
"posts": ["five-java-dev-musthaves-fast-startup", "rapid-startup-without-compromise",
"posts": ["24.0.0.11-beta",
"five-java-dev-musthaves-fast-startup", "rapid-startup-without-compromise",
"liberty-on-amazon-ecs","virtual-threads-case-study",
"24.0.0.6", "24.0.0.3",
"Java21-Images", "24.0.0.1",
Expand Down
168 changes: 168 additions & 0 deletions posts/2024-10-22-24.0.0.11-beta.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
---
layout: post
title: "Expanded InstantOn support and new options to configure the web module class loader in 24.0.0.11-beta"
# Do NOT change the categories section
categories: blog
author_picture: https://avatars3.githubusercontent.com/dmuelle
author_github: https://github.com/dmuelle
seo-title: Expanded InstantOn support and new options to configure the web module class loader in 24.0.0.11-beta - OpenLiberty.io
seo-description: The 24.0.0.11-beta release expands the collection of InstantOn-supported Liberty features and adds a configuration option for the web module class loader.
blog_description: The 24.0.0.11-beta release expands the collection of InstantOn-supported Liberty features and adds a configuration option for the web module class loader.
open-graph-image: https://openliberty.io/img/twitter_card.jpg
open-graph-image-alt: Open Liberty Logo
---
= Expanded InstantOn support and new options to configure the web module class loader in 24.0.0.11-beta
David Mueller <https://github.com/dmuelle>
:imagesdir: /
:url-prefix:
:url-about: /


The 24.0.0.11-beta release expands the collection of InstantOn-supported Liberty features and adds a configuration option for the web module class loader.



The link:{url-about}[Open Liberty] 24.0.0.11-beta includes the following beta features (along with link:{url-prefix}/docs/latest/reference/feature/feature-overview.html[all GA features]):

* <<instant, Use Liberty InstantOn with authorization and messaging features>>
* <<class, Configure the web module class loader for an enterprise application>>

See also link:{url-prefix}/blog/?search=beta&key=tag[previous Open Liberty beta blog posts].

// // // // DO NOT MODIFY THIS COMMENT BLOCK <GHA-BLOG-TOPIC> // // // //
// Blog issue: https://github.com/OpenLiberty/open-liberty/issues/29768
// Contact/Reviewer: anjumfatima90
// // // // // // // //

[#instant]
== Use Liberty InstantOn with authorization and messaging features

InstantOn supports link:{url-prefix}/docs/latest/instanton.html#supported-features[a subset of Open Liberty features]. As of the 24.0.0.11-beta release, the following features are enhanced to support InstantOn:

* link:{url-prefix}/docs/latest/reference/feature/jacc-1.5.html[Java Authorization Contract for Containers (jacc-1.5)].
* link:{url-prefix}/docs/latest/reference/feature/appAuthorization-2.0.html[Jakarta Authorization 2.0 (appAuthorization-2.0)]
* link:{url-prefix}/docs/latest/reference/feature/appAuthorization-2.1.html[Jakarta Authorization 2.1 (appAuthorization-2.1)]
* link:{url-prefix}/docs/latest/reference/feature/wasJmsServer-1.0.html[Message Server 1.0 (wasJmsServer-1.0)]
* link:{url-prefix}/docs/latest/reference/feature/messagingServer-3.0.html[Messaging Server 3.0 (messagingServer-3.0.html)]
* link:{url-prefix}/docs/latest/reference/feature/wasJmsClient-2.0.html[JMS Client for Message Server 2.0 (wasJmsClient-2.0)]
* link:{url-prefix}/docs/latest/reference/feature/messagingClient-3.0.html[Messaging Server Client (messagingClient-3.0.html)]

This enhancement enables you to rapidly deploy applications that use these features by using Open Liberty InstantOn. For more information, see link:{url-prefix}/docs/latest/instanton.html[Faster startup for containerized applications with Open Liberty InstantOn].


// DO NOT MODIFY THIS LINE. </GHA-BLOG-TOPIC>

// // // // DO NOT MODIFY THIS COMMENT BLOCK <GHA-BLOG-TOPIC> // // // //
// Blog issue: https://github.com/OpenLiberty/open-liberty/issues/29766
// Contact/Reviewer: tjwatson
// // // // // // // //
[#class]
== Configure the web module class loader for an enterprise application

Web modules (WARs) that are part of an enterprise application (EAR) can specify their own link:https://docs.oracle.com/javase/8/docs/technotes/guides/jar/jar.html#classpath[Class-Path]. By default, Liberty adds the JARs that are referenced by a web module `Class-Path` attribute to the web module class loader. However, some runtime implementations of Java EE and Jakarta EE, such as WebSphere Application Server traditional, instead use the enterprise application class loader for these JARs. Typically, the enterprise application class loader is the parent class loader for the web module class loader.

To enable smooth migration from such runtimes to Liberty, the 24.0.0.11-beta release introduces the `webModuleClassPathLoader` configuration attribute for the `enterpriseApplication` element, which controls what class loader is used for the JARs that are referenced by a web module `Class-Path` attribute.

The default value for the `webModuleClassPathLoader` attribute is `war`. The `war` value configures the web module `Class-Path` to be loaded by the web module class loader. You can set the `webModuleClassPathLoader` attribute value to `ear` to configure the enterprise application class loader to load the web module `Class-Path`.

For example, to configure the EAR named `myApp.ear` to use the `ear` class loader, set the following Liberty configuration in the `server.xml` file:

[source,xml]
----
<enterpriseApplication location="myApp.ear" webModuleClassPathLoader="ear"/>
----

// DO NOT MODIFY THIS LINE. </GHA-BLOG-TOPIC>

[#run]
=== Try it now

To try out these enhancements, update your build tools to pull the Open Liberty All Beta Features package instead of the main release. The beta works with Java SE 23, 21, 17, 11, and 8.
// // // // // // // //
// In the preceding section:
// Check if a new non-LTS Java SE version is supported that needs to be added to the list (21, 17, 11, and 8 are LTS and will remain for a while)
// {url-prefix}/docs/latest/java-se.html
//
// In the following section:
// Check if a new MicroProfile or Jakarta version is in beta that could replace the example values in the codeblock
// // // // // // // //

If you're using link:{url-prefix}/guides/maven-intro.html[Maven], you can install the All Beta Features package using:

[source,xml]
----
<plugin>
<groupId>io.openliberty.tools</groupId>
<artifactId>liberty-maven-plugin</artifactId>
<version>3.11.1</version>
<configuration>
<runtimeArtifact>
<groupId>io.openliberty.beta</groupId>
<artifactId>openliberty-runtime</artifactId>
<version>24.0.0.11-beta</version>
<type>zip</type>
</runtimeArtifact>
</configuration>
</plugin>
----

You must also add dependencies to your pom.xml file for the beta version of the APIs that are associated with the beta features that you want to try. For example, the following block adds dependencies for two example beta APIs:

[source,xml]
----
<dependency>
<groupId>org.example.spec</groupId>
<artifactId>exampleApi</artifactId>
<version>7.0</version>
<type>pom</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>example.platform</groupId>
<artifactId>example.example-api</artifactId>
<version>11.0.0</version>
<scope>provided</scope>
</dependency>
----

Or for link:{url-prefix}/guides/gradle-intro.html[Gradle]:

[source,gradle]
----
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'io.openliberty.tools:liberty-gradle-plugin:3.9.1'
}
}
apply plugin: 'liberty'
dependencies {
libertyRuntime group: 'io.openliberty.beta', name: 'openliberty-runtime', version: '[24.0.0.11-beta,)'
}
----
// // // // // // // //
// In the preceding section:
// Replace the Maven `3.8.2` with the latest version of the plugin: https://search.maven.org/artifact/io.openliberty.tools/liberty-maven-plugin
// Replace the Gradle `3.6.2` with the latest version of the plugin: https://search.maven.org/artifact/io.openliberty.tools/liberty-gradle-plugin
// TODO: Update GHA to automatically do the above. If the maven.org is problematic, then could fallback to using the GH Releases for the plugins
// // // // // // // //

Or if you're using link:{url-prefix}/docs/latest/container-images.html[container images]:

[source]
----
FROM icr.io/appcafe/open-liberty:beta
----

Or take a look at our link:{url-prefix}/downloads/#runtime_betas[Downloads page].

If you're using link:https://plugins.jetbrains.com/plugin/14856-liberty-tools[IntelliJ IDEA], link:https://marketplace.visualstudio.com/items?itemName=Open-Liberty.liberty-dev-vscode-ext[Visual Studio Code] or link:https://marketplace.eclipse.org/content/liberty-tools[Eclipse IDE], you can also take advantage of our open source link:{url-prefix}/docs/latest/develop-liberty-tools.html[Liberty developer tools] to enable effective development, testing, debugging, and application management all from within your IDE.

For more information on using a beta release, refer to the link:{url-prefix}docs/latest/installing-open-liberty-betas.html[Installing Open Liberty beta releases] documentation.

[#feedback]
== We welcome your feedback

Let us know what you think on link:https://groups.io/g/openliberty[our mailing list]. If you hit a problem, link:https://stackoverflow.com/questions/tagged/open-liberty[post a question on StackOverflow]. If you find a bug, you can link:https://github.com/OpenLiberty/open-liberty/issues[raise an issue].

0 comments on commit 996378d

Please sign in to comment.