Skip to content

25.0.0.7-beta staging #4419

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 6 commits into
base: staging
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions blog_tags.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
"blog_tags": [
{
"name": "announcements",
"posts": ["25.0.0.6", "25.0.0.6-beta", "25.0.0.5",
"posts": ["25.0.0.7-beta", "25.0.0.6",
"25.0.0.6-beta", "25.0.0.5",
"25.0.0.4", "25.0.0.4-beta",
"25.0.0.3", "open-liberty-cloud-hosted-guides-multi-languages",
"25.0.0.3-beta", "25.0.0.2",
Expand Down Expand Up @@ -91,7 +92,7 @@
"featured": "true"
},{
"name": "microprofile",
"posts": ["25.0.0.6", "25.0.0.6-beta",
"posts": ["25.0.0.7-beta", "25.0.0.6", "25.0.0.6-beta",
"25.0.0.5", "25.0.0.4",
"25.0.0.4-beta", "microprofile-telemetry-20",
"25.0.0.2-beta", "cloudant-with-open-liberty",
Expand Down Expand Up @@ -184,7 +185,8 @@
},
{
"name": "release",
"posts": ["25.0.0.6", "25.0.0.6-beta", "25.0.0.5",
"posts": ["25.0.0.7-beta", "25.0.0.6",
"25.0.0.6-beta", "25.0.0.5",
"25.0.0.4", "25.0.0.4-beta",
"25.0.0.3", "25.0.0.3-beta",
"25.0.0.2", "25.0.0.2-beta",
Expand Down Expand Up @@ -254,7 +256,8 @@
},
{
"name": "beta",
"posts": ["25.0.0.6-beta", "25.0.0.4-beta", "25.0.0.3-beta",
"posts": ["25.0.0.7-beta", "25.0.0.6-beta",
"25.0.0.4-beta", "25.0.0.3-beta",
"25.0.0.2-beta", "25.0.0.1-beta",
"24.0.0.12-beta", "24.0.0.11-beta",
"24.0.0.10-beta", "24.0.0.9-beta",
Expand Down
227 changes: 227 additions & 0 deletions posts/2025-07-01-25.0.0.7-beta.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,227 @@
---
layout: post
title: "Microprofile 7.1 and updates to its component specifications in 25.0.0.7-beta"
# Do NOT change the categories section
categories: blog
author_picture: https://avatars3.githubusercontent.com/navaneethsnair1
author_github: https://github.com/navaneethsnair1
seo-title: Microprofile 7.1 and updates to its component specifications in 25.0.0.7-beta - OpenLiberty.io
seo-description: This beta release introduces support for Microprofile 7.1, which updates two component specifications- Microprofile Telemetry and Microprofile OpenAPI.
blog_description: This beta release introduces support for Microprofile 7.1, which updates two component specifications- Microprofile Telemetry and Microprofile OpenAPI.
open-graph-image: https://openliberty.io/img/twitter_card.jpg
open-graph-image-alt: Open Liberty Logo
---
= Microprofile 7.1 and updates to its component specifications in 25.0.0.7-beta
Navaneeth S Nair <https://github.com/navaneethsnair1>
:imagesdir: /
:url-prefix:
:url-about: /
//Blank line here is necessary before starting the body of the post.

This beta release introduces support for Microprofile 7.1, which updates two component specifications- Microprofile Telemetry and Microprofile OpenAPI.

// // // // // // // //
// Change the RELEASE_SUMMARY to an introductory paragraph. This sentence is really
// important because it is supposed to grab the readers attention. Make sure to keep the blank lines
//
// Throughout the doc, replace 25.0.0.7-beta with the version number of Open Liberty, eg: 22.0.0.2-beta
// // // // // // // //

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

* <<microprofile, MicroProfile 7.1>>
* <<telemetry, MicroProfile Telemetry 2.1>>
* <<openapi, MicroProfile OpenAPI 4.1>>

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/31807
// Contact/Reviewer: Emily-Jiang
// // // // // // // //
[#microprofile]
== MicroProfile 7.1

MicroProfile 7.1 (`MP 7.1`) is a minor release. It has the following MicroProfile component specifications and works with Jakarta EE 10 Core Profile:
Copy link

Choose a reason for hiding this comment

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

Instead of It say MicroProfile 7.1

Copy link
Contributor

Choose a reason for hiding this comment

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

@is273 wont it be repetitive to frame it 'MicroProfile 7.1 has the following MicroProfile component specifications and works with Jakarta EE 10 Core Profile:'

Copy link
Contributor

@navaneethsnair1 navaneethsnair1 Jun 27, 2025

Choose a reason for hiding this comment

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

@is273 Can I frame it :
MicroProfile 7.1 has the following component specifications and works with Jakarta EE 10 Core Profile.

Still it sounds odd for me with the previous sentence

Copy link

Choose a reason for hiding this comment

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

@navaneethsnair1 It may sound repetitive but we refrain from using "it" to refer to something.


- link:https://jakarta.ee/specifications/coreprofile/10/[Jakarta EE 10 Core Profile]
- link:https://github.com/eclipse/microprofile-config/releases/tag/3.1[MicroProfile Config 3.1]
- link:https://github.com/eclipse/microprofile-fault-tolerance/releases/tag/4.1[MicroProfile Fault Tolerance 4.1]
- link:https://github.com/eclipse/microprofile-health/releases/tag/4.0[MicroProfile Health 4.0]
- link:https://github.com/eclipse/microprofile-telemetry/releases/tag/2.1[MicroProfile Telemetry 2.1]
- link:https://github.com/eclipse/microprofile-open-api/releases/tag/4.1[MicroProfile OpenAPI 4.1]
- link:https://github.com/eclipse/microprofile-jwt-auth/releases/tag/2.1[MicroProfile JWT Authentication 2.1]
- link:https://github.com/eclipse/microprofile-rest-client/releases/tag/4.0[MicroProfile Rest Client 4.0]

In this, MicroProfile Telemetry 2.1 and MicroProfile OpenAPI 4.1 have updates while the other three specifications remain unchanged.

To enable MicroProfile 7.1, add the feature to your `server.xml`:

```xml
<featureManager>
<feature>microProfile-7.1</feature>
</featureManager>
```

// 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/31805
// Contact/Reviewer: yasmin-aumeeruddy
// // // // // // // //
[#telemetry]
== MicroProfile Telemetry 2.1

MicroProfile Telemetry 2.1(`mpTelemetry-2.1`) provides developers with updated Open Telemetry technology as the feature now uses OpenTelemetry-1.48.0, which was updated from 1.39.0. APIs are now stable.

```xml
<featureManager>
<feature>mpTelemetry-2.1</feature>
</featureManager>
```

If third-party API visibility was enabled for no other purpose than to manually instrument the application code to collect traces or to define custom metrics with versions of mpTelemetry before 2.1, it is recommended to remove them from the `server.xml`:

```xml
<webApplication id="app-name" location="app-name.war">
<classloader apiTypeVisibility="+third-party"/>
</webApplication>
```
Comment on lines +83 to +89
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
If third-party API visibility was enabled for no other purpose than to manually instrument the application code to collect traces or to define custom metrics with versions of mpTelemetry before 2.1, it is recommended to remove them from the `server.xml`:
```xml
<webApplication id="app-name" location="app-name.war">
<classloader apiTypeVisibility="+third-party"/>
</webApplication>
```
To use the OpenTelemetry API, it is no longer required to add the `apiTypeVisibility="+third-party"` attribute to the `classloader` element of the server.xml. This also means that it is now possible to deploy an application that uses the OpenTelemetry API by dropping it into the dropins directory.


For more information about MicroProfile Telemetry, see the following links:

- https://github.com/eclipse/microprofile-telemetry[MicroProfile Telemetry]
- https://github.com/open-telemetry/opentelemetry-specification[specification]
- https://openliberty.io/docs/latest/docs/latest/microprofile-telemetry.html[documentation]


// 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/31811
// Contact/Reviewer: Azquelt
// // // // // // // //
[#openapi]
== MicroProfile OpenAPI 4.1

OpenAPI is a standardized way of documenting REST APIs in a JSON or YAML format. MicroProfile OpenAPI helps to generate and serve OpenAPI documentation for REST applications that are built by using JAX-RS or Jakarta restfulWS. This can be useful for developers to test out the API during development, or for people who uses API in production.

In this beta, the new MicroProfile OpenAPI 4.1 is introduced. To use it, first add the feature to your `server.xml`:
Copy link

Choose a reason for hiding this comment

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

Instead of it say MicroProfile OpenAPI 4.1

Copy link
Member

@Azquelt Azquelt Jun 27, 2025

Choose a reason for hiding this comment

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

I don't like the repetition suggested by @is273, how about this instead:

Suggested change
In this beta, the new MicroProfile OpenAPI 4.1 is introduced. To use it, first add the feature to your `server.xml`:
To use the new MicroProfile OpenAPI 4.1 feature, first add the feature to your `server.xml`:


```xml
<featureManager>
<feature>mpOpenAPI-4.1</feature>
</featureManager>
```

Then, deploy rest application and then see `/openapi` on liberty server to view the OpenAPI documentation, or go to `/openapi/ui` for a user interface that lets to browse through it. To enhance the documentation, use link:https://download.eclipse.org/microprofile/microprofile-open-api-4.1/apidocs/[annotations] in code to add things like textual descriptions to each method. The annotations are available as a maven dependency:
Copy link

Choose a reason for hiding this comment

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

Instead of
"Then, deploy rest application and then see /openapi on liberty server to view the OpenAPI documentation, or go to /openapi/ui for a user interface that lets to browse through it."
say
"Deploy the rest application. Then see /openapi on the Liberty server to view the OpenAPI documentation, or go to /openapi/ui for a user interface to browse through the documentation."

Copy link
Member

Choose a reason for hiding this comment

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

If you're going to take out "Then" here, then I think you should also take out "First" in the previous paragraph.

Copy link
Member

@Azquelt Azquelt Jun 27, 2025

Choose a reason for hiding this comment

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

I have to be honest, I don't understand these suggestions at all. This is a sequence of steps which follows on from the previous paragraph, why are we removing "then" from the start of one of the steps but leaving it on the other?

Copy link
Member

Choose a reason for hiding this comment

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

Ok, here's my suggestion:

"Next deploy any rest application. Then, in a web browser, go to /openapi on the Liberty server to view the YAML OpenAPI document, or go to /openapi/ui for a user interface to browse through the documentation."

  • At this point in the instructions, we haven't talked about a rest application, so we can't say "the" rest application. One of the main points about mpOpenAPI is that it works with any rest application and we really want the user to try this out with their own application, but any will do for a demonstration.
  • "then see /openapi" isn't very clear. We want the user to open a web browser and go to "localhost:9080/openapi", but we don't know if they're running their server locally.
  • When reading this back, I didn't think it was particularly clear what the difference between the two endpoints was, so let's make it clearer that one is a yaml document, and the other is a UI.


```xml
<dependency>
<groupId>org.eclipse.microprofile.openapi</groupId>
<artifactId>microprofile-openapi-api</artifactId>
<version>4.1</version>
<scope>provided</scope>
</dependency>
```

MicroProfile OpenAPI 4.1 is a very small release, which adds:
Copy link

Choose a reason for hiding this comment

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

Get rid of "very" and the comma

Copy link
Member

Choose a reason for hiding this comment

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

Should we not call it a very small release? It would be harder for it to be smaller, the only reason for this release is that we missed one property from the API in 4.0.

Copy link

Choose a reason for hiding this comment

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

@Azquelt We try not to use words like "really" which seems like a filler word. To a user, what is the difference between a very small release and a small release.


- The ability to set the link:https://spec.openapis.org/oas/v3.1.0.html#fixed-fields[`jsonSchemaDialect` field on the OpenAPI object] using the link:https://download.eclipse.org/microprofile/microprofile-open-api-4.1/apidocs/org.eclipse.microprofile.openapi/org/eclipse/microprofile/openapi/models/OpenAPI.html#setJsonSchemaDialect(java.lang.String)[model API]
- New methods `hasExtension` and `getExtension` on link:https://download.eclipse.org/microprofile/microprofile-open-api-4.1/apidocs/org.eclipse.microprofile.openapi/org/eclipse/microprofile/openapi/models/Extensible.html[`Extensible`] in the model API

More information about MicroProfile OpenAPI can be found in

- the liberty link:https://openliberty.io/guides/microprofile-openapi.html[guide]
- the liberty link:https://openliberty.io/docs/latest/documentation-openapi.html[documentation]
- the link:https://download.eclipse.org/microprofile/microprofile-open-api-4.1/apidocs/[javadoc]
- the link:https://download.eclipse.org/microprofile/microprofile-open-api-4.1/microprofile-openapi-spec-4.1.html[specification]
Comment on lines +133 to +138
Copy link
Member

Choose a reason for hiding this comment

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

I think I should have put "Open Liberty" here instead of "liberty"

Suggested change
More information about MicroProfile OpenAPI can be found in
- the liberty link:https://openliberty.io/guides/microprofile-openapi.html[guide]
- the liberty link:https://openliberty.io/docs/latest/documentation-openapi.html[documentation]
- the link:https://download.eclipse.org/microprofile/microprofile-open-api-4.1/apidocs/[javadoc]
- the link:https://download.eclipse.org/microprofile/microprofile-open-api-4.1/microprofile-openapi-spec-4.1.html[specification]
More information about MicroProfile OpenAPI can be found in
- the Open Liberty link:https://openliberty.io/guides/microprofile-openapi.html[guide]
- the Open Liberty link:https://openliberty.io/docs/latest/documentation-openapi.html[documentation]
- the link:https://download.eclipse.org/microprofile/microprofile-open-api-4.1/apidocs/[javadoc]
- the link:https://download.eclipse.org/microprofile/microprofile-open-api-4.1/microprofile-openapi-spec-4.1.html[specification]



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

=== Try it now

To try out these features, update your build tools to pull the Open Liberty All Beta Features package instead of the main release. The beta works with Java SE 21, Java SE 17, Java SE 11, and Java SE 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)
// https://openliberty.io/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.4</version>
<configuration>
<runtimeArtifact>
<groupId>io.openliberty.beta</groupId>
<artifactId>openliberty-runtime</artifactId>
<version>25.0.0.7-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.4'
}
}
apply plugin: 'liberty'
dependencies {
libertyRuntime group: 'io.openliberty.beta', name: 'openliberty-runtime', version: '[25.0.0.7-beta,)'
}
----

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:https://openliberty.io/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 hit a bug, link:https://github.com/OpenLiberty/open-liberty/issues[please raise an issue].