Skip to content

Commit 451c864

Browse files
updates to 26.0.0.5-beta blog
1 parent 269d8de commit 451c864

2 files changed

Lines changed: 26 additions & 73 deletions

File tree

blog_tags.json

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"blog_tags": [
33
{
44
"name": "announcements",
5-
"posts": ["26.0.0.4", "26.0.0.4-beta",
5+
"posts": ["26.0.0.5-beta", "26.0.0.4", "26.0.0.4-beta",
66
"26.0.0.3", "26.0.0.3-beta",
77
"26.0.0.2", "26.0.0.2-beta",
88
"26.0.0.1", "26.0.0.1-beta",
@@ -199,7 +199,7 @@
199199
},
200200
{
201201
"name": "release",
202-
"posts": ["26.0.0.4", "26.0.0.4-beta",
202+
"posts": ["26.0.0.5-beta", "26.0.0.4", "26.0.0.4-beta",
203203
"26.0.0.3", "26.0.0.3-beta",
204204
"26.0.0.2", "26.0.0.2-beta",
205205
"26.0.0.1", "26.0.0.1-beta",
@@ -279,7 +279,8 @@
279279
},
280280
{
281281
"name": "beta",
282-
"posts": ["26.0.0.4-beta", "26.0.0.3-beta", "26.0.0.2-beta",
282+
"posts": ["26.0.0.5-beta", "26.0.0.4-beta",
283+
"26.0.0.3-beta", "26.0.0.2-beta",
283284
"26.0.0.1-beta", "mcp-standalone-blog",
284285
"25.0.0.12-beta", "25.0.0.11-beta",
285286
"25.0.0.10-beta","25.0.0.9-beta",
@@ -335,7 +336,8 @@
335336
},
336337
{
337338
"name": "security",
338-
"posts": ["26.0.0.4", "26.0.0.4-beta", "26.0.0.3",
339+
"posts": ["26.0.0.5-beta", "26.0.0.4",
340+
"26.0.0.4-beta", "26.0.0.3",
339341
"25.0.0.12", "25.0.0.12-beta",
340342
"25.0.0.9", "25.0.0.9-beta",
341343
"25.0.0.3", "25.0.0.3-beta",

posts/2026-05-05-26.0.0.5-beta.adoc

Lines changed: 20 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -44,21 +44,20 @@ The link:{url-about}[Open Liberty] 26.0.0.5-beta includes the following beta fea
4444
See also link:{url-prefix}/blog/?search=beta&key=tag[previous Open Liberty beta blog posts].
4545

4646
// // // // DO NOT MODIFY THIS COMMENT BLOCK <GHA-BLOG-TOPIC> // // // //
47-
// Blog issue: https://github.com/OpenLiberty/open-liberty/issues/33838
47+
// Blog issue: https://github.com/OpenLiberty/open-liberty/issues/34763
4848
// Contact/Reviewer: martindrozdz
4949
// // // // // // // //
5050
[#mcp]
5151
== Updates to `mcpServer-1.0`
5252

53-
The link:https://modelcontextprotocol.io/docs/getting-started/intro[Model Context Protocol (MCP)] is an open standard that enables AI applications to access real-time information from external sources. The Liberty MCP Server feature `mcpServer-1.0` allows developers to expose the business logic of their applications, allowing it to be integrated into agentic AI workflows.
53+
The link:https://modelcontextprotocol.io/docs/getting-started/intro[Model Context Protocol (MCP)] is an open standard that enables AI applications to access real-time information from external sources. The Liberty MCP Server feature `mcpServer-1.0` allows developers to expose the business logic or data from their applications, allowing it to be integrated into agentic AI workflows.
5454

5555
This beta release of Liberty includes important updates to the `mcpServer-1.0` feature, including configurable endpoint paths and notable bug fixes.
5656

5757
=== Prerequisites
5858
To use the `mcpServer-1.0` feature, it is required to have `Java 17` or later installed on your system.
5959

60-
=== Configure custom MCP endpoint paths (Currently disabled pending review - testing revealed inconsistent behavior across multiple modules)
61-
60+
=== Configure custom MCP endpoint paths
6261
Previously, the MCP endpoint was hard-coded to `/mcp` under the web application context root. You can now configure custom endpoint paths to better suit your application architecture and naming conventions.
6362

6463
==== Single Application Configuration
@@ -67,76 +66,30 @@ For a single application, configure the endpoint path directly in the `<mcpServe
6766

6867
[source,xml]
6968
----
70-
<server description="Liberty server with custom MCP endpoint">
69+
<server description="Configurable Mcp Path Liberty server">
7170
7271
<featureManager>
7372
<feature>servlet-6.0</feature>
7473
<feature>cdi-4.0</feature>
7574
<feature>mcpServer-1.0</feature>
7675
</featureManager>
7776
78-
<httpEndpoint id="defaultHttpEndpoint"
79-
httpPort="9080"
80-
httpsPort="9443"/>
77+
<application location="configurableMcpPathTests.war">
78+
<mcpServer path="/custom-mcp"/>
79+
</application>
8180
82-
<!-- Configure custom MCP endpoint path -->
83-
<mcpServer endpoint="/custom-mcp"/>
81+
<include location="../fatTestPorts.xml" />
8482
8583
</server>
8684
----
8785

8886
With this configuration, MCP server can be accessed at `/custom-mcp` instead of the default `/mcp` path.
8987

90-
==== Multiple Application Configuration
91-
92-
For applications with multiple modules or when you need different endpoint paths for different parts of your application, configure the MCP server settings under the `<application>` element:
93-
94-
[source,xml]
95-
----
96-
<server description="Liberty server with multiple MCP endpoints">
97-
98-
<featureManager>
99-
<feature>servlet-6.0</feature>
100-
<feature>cdi-4.0</feature>
101-
<feature>mcpServer-1.0</feature>
102-
</featureManager>
103-
104-
<httpEndpoint id="defaultHttpEndpoint"
105-
httpPort="9080"
106-
httpsPort="9443"/>
107-
108-
<application name="myApp" location="myApp.ear" type="ear">
109-
<!-- Configure MCP endpoint for specific module -->
110-
<mcpServer moduleName="module1" name="default" path="/api/mcp"/>
111-
<mcpServer moduleName="module2" name="default" path="/services/mcp"/>
112-
</application>
113-
114-
</server>
115-
----
116-
117-
This configuration supports the following:
118-
119-
* Define different endpoint paths for different modules within the same application
120-
* Use descriptive paths that align with your API structure
121-
* Support future extensibility for multiple MCP endpoints within a single module
122-
123-
==== Configuration Options
88+
=== Configuration Options
12489

12590
The `<mcpServer>` element supports the following attributes:
12691

127-
* *endpoint* (single app): The custom path for the MCP endpoint (e.g., `/custom-mcp`)
128-
* *moduleName* (multi-app): The name of the module to configure
129-
* *name* (multi-app): The identifier for the MCP server configuration (typically "default")
130-
* *path* (multi-app): The custom path for the MCP endpoint
131-
132-
==== Benefits
133-
134-
Configurable endpoint paths provide:
135-
136-
* *Flexibility*: Align MCP endpoints with your existing API structure
137-
* *Multi-tenancy support*: Different paths for different applications or modules
138-
* *Future-proofing*: Foundation for supporting multiple MCP endpoints per application
139-
* *Better organization*: Descriptive paths that reflect the purpose of each endpoint
92+
- **path** (single app): The custom path for the MCP endpoint (for example, `/custom-mcp`)
14093

14194
=== Notable bug fixes in this release for `mcpServer-1.0`
14295

@@ -194,8 +147,8 @@ This has been fixed to ensure proper isolation of encoder beans per application,
194147
// DO NOT MODIFY THIS LINE. </GHA-BLOG-TOPIC>
195148

196149
// // // // DO NOT MODIFY THIS COMMENT BLOCK <GHA-BLOG-TOPIC> // // // //
197-
// Blog issue: https://github.com/OpenLiberty/open-liberty/issues/33838
198-
// Contact/Reviewer: martindrozdz
150+
// Blog issue: https://github.com/OpenLiberty/open-liberty/issues/34374
151+
// Contact/Reviewer: rangaran
199152
// // // // // // // //
200153
[#transportSecurity]
201154
== Transport Security
@@ -204,27 +157,24 @@ Liberty uses the default cipher list from the JDK. The `securityLevel` attribute
204157

205158
This change modifies the existing attribute `enabledCiphers` in the `ssl` config.
206159

207-
Liberty's `securityLevel` based cipher categories no longer provide meaningful value. The `MEDIUM` and `LOW` categories contain no remaining ciphers and `securityLevel` `HIGH` does not sync up (or not the same) with/as the JDK defaults.
160+
Liberty's `securityLevel` based cipher categories no longer provide meaningful value. The `MEDIUM` and `LOW` categories contain no remaining ciphers.
208161

209-
The `enabledCiphers` attribute includes a new syntax option to add '+' or remove '–' specific ciphers from the JDK default list without redefining everything. A static list and +/- syntax in the same `enabledCiphers` entry is not allowed. If the value set in `enabledCiphers` contains a static entry and a +/- entry, an error is logged, and the server ignores the `enabledCiphers` value by returning the JDK default list.
162+
The `enabledCiphers` attribute includes a new syntax option to add '+' or remove '–' specific ciphers from the effective JDK cipher list without redefining everything. A static list and +/- syntax in the same `enabledCiphers` entry is not allowed. If the value set in `enabledCiphers` contains a static entry and a +/- entry, an error is logged, and the server ignores the `enabledCiphers` value by returning the effective JDK cipher list.
210163

211164
*Example Usage*
212165

213166
[source,xml]
214167
----
215168
<ssl id="defaultSSL" securityLevel="HIGH"/>
216-
<ssl id="defaultSSL" securityLevel="CUSTOM" enabledCiphers="TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 ..."/>
217-
<ssl id="defaultSSL" securityLevel="CUSTOM" enabledCiphers="TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA384..../">
218-
<!-- basically everything except TLS_RSA ciphers from the effective jdk list -->
169+
<ssl id="defaultSSL" securityLevel="CUSTOM" enabledCiphers="TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA384..../"> <!-- basically everything except TLS_RSA ciphers from the effective jdk list -->
170+
<ssl id="defaultSSL" securityLevel="CUSTOM" enabledCiphers="TLS_RSA_WITH_AES_128_GCM_SHA256"/>
219171
----
220172

221-
*Example with proposed change*
173+
*Example with new syntax*
222174

223175
[source,xml]
224176
----
225-
<ssl id="defaultSSL"/>
226-
<ssl id="defaultSSL" enabledCiphers="TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"/>
227-
<ssl id="defaultSSL" enabledCiphers="-TLS_RSA*"/>
177+
<ssl id="defaultSSL" enabledCiphers="-TLS_RSA* +TLS_RSA_WITH_AES_128_GCM_SHA256"/>
228178
----
229179

230180
To learn more about Transport Security, see link:https://openliberty.io/docs/modules/reference/23.0.0.6/com.ibm.websphere.appserver.api.ssl_1.5-javadoc/com/ibm/websphere/ssl/Constants.html[SSL Constants Javadoc], link:https://openliberty.io/docs/modules/reference/23.0.0.6/com.ibm.websphere.appserver.api.ssl_1.5-javadoc/com/ibm/websphere/ssl/JSSEProvider.html[JSSEProvider Javadoc], and link:https://openliberty.io/docs/latest/reference/config/ssl.html[SSL Configuration Reference].
@@ -234,7 +184,8 @@ To learn more about Transport Security, see link:https://openliberty.io/docs/mod
234184
[#run]
235185
=== Try it now
236186

237-
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.
187+
To try out these features, update your build tools to pull the Open Liberty All Beta Features package instead of the main release. To enable the MCP server feature, follow the instructions from link:https://openliberty.io/blog/2025/10/23/mcp-standalone-blog.html[MCP standalone blog]. The beta works with Java SE 25, Java SE 21, Java SE 17, Java SE 11, and Java SE 8.
188+
238189
// // // // // // // //
239190
// In the preceding section:
240191
// 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)

0 commit comments

Comments
 (0)