Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
03e9aee
FISH-13708 : Add Payara Jakarta Agentic AI module skeleton (aggregato…
luiseufrasio Jun 10, 2026
880fe90
FISH-13708 : Implement WorkflowScoped CDI context (BeanInstance, Work…
luiseufrasio Jun 10, 2026
c33f683
FISH-13708 : Implement classes in engine package
luiseufrasio Jun 11, 2026
b1d8ba1
FISH-13708 : Add AgenticAIExtension and method Javadocs for the agent…
luiseufrasio Jun 12, 2026
fffab26
FISH-13708 : Implement default LargeLanguageModel and self-vetoing CD…
luiseufrasio Jun 12, 2026
7af3402
FISH-13708 : Integrate Jakarta Validation into agent phase invocation
luiseufrasio Jun 15, 2026
c719031
FISH-13708 : Register CDI extension and package agentic AI into the P…
luiseufrasio Jun 15, 2026
89b3a89
Merge remote-tracking branch 'origin/main' into FISH-13708-implement-…
luiseufrasio Jun 15, 2026
df8d19b
FISH-13708 : Fix phase execution order to match source-file declarati…
luiseufrasio Jun 16, 2026
d36b5ac
FISH-13708 : Run @Outcome after @HandleException returns normally
luiseufrasio Jun 18, 2026
6ab05d8
FISH-13708 : Fix @Outcome not re-invoked after @HandleException recov…
luiseufrasio Jun 18, 2026
cfbedde
FISH-13708 : Add configurable LLM backends (Ollama, Anthropic) via Mi…
luiseufrasio Jun 25, 2026
1a04e55
FISH-13709 : Add Jakarta Agentic AI samples: quickstart and tutorial …
luiseufrasio Jun 26, 2026
891a1c8
FISH-13709 : Merge FISH-13708 (Jakarta Agentic AI 1.0 TCK support and…
luiseufrasio Jun 26, 2026
b65185f
FISH-13709 : Add Vertex AI backend and Azul-style UI for the tutorial…
luiseufrasio Jun 29, 2026
77c2024
FISH-13709 : Contextual field guide with slide-in panel and per-field…
luiseufrasio Jun 30, 2026
df7f20e
Merge branch 'main' into FISH-13709-create-agent-samples-with-jakarta…
luiseufrasio Jul 2, 2026
7ebad7d
Bump agentic-ai parent POM versions to 7.2026.7-SNAPSHOT after main m…
luiseufrasio Jul 2, 2026
699c856
Merge remote-tracking branch 'origin/main' into FISH-13709-create-age…
luiseufrasio Jul 3, 2026
b49e24b
Fix TutorialResource.refine to produce TEXT_HTML instead of APPLICATI…
luiseufrasio Jul 3, 2026
c54249b
Fix StubLargeLanguageModel to match actual refine prompt from Tutoria…
luiseufrasio Jul 3, 2026
52c3e9f
Address PR review comments from rohan267
luiseufrasio Jul 3, 2026
663b0ab
Merge remote-tracking branch 'payara/main-with-Jakarta-Agentic-AI' in…
luiseufrasio Jul 8, 2026
356498a
Update appserver/agentic-ai/agentic-ai-core/src/main/java/fish/payara…
luiseufrasio Jul 8, 2026
bb097d1
Update appserver/agentic-ai/agentic-ai-core/src/main/java/fish/payara…
luiseufrasio Jul 8, 2026
0e14909
Update appserver/agentic-ai/agentic-ai-core/src/main/java/fish/payara…
luiseufrasio Jul 8, 2026
42363c8
Update appserver/agentic-ai/agentic-ai-core/src/main/java/fish/payara…
luiseufrasio Jul 8, 2026
871b9d3
Update appserver/agentic-ai/agentic-ai-core/src/main/java/fish/payara…
luiseufrasio Jul 8, 2026
aac6e03
Update appserver/agentic-ai/agentic-ai-core/src/main/java/fish/payara…
luiseufrasio Jul 8, 2026
9c967b6
Merge branch 'main-with-Jakarta-Agentic-AI' into FISH-13708-implement…
luiseufrasio Jul 8, 2026
d734a60
Replace StringBuffer with StringBuilder in LargeLanguageModelImpl
luiseufrasio Jul 8, 2026
be9c9d0
FISH-13708 : command at the same line
luiseufrasio Jul 8, 2026
d206104
FISH-13708: Fix stale parent versions (7.2026.6 → 7.2026.7) in agenti…
luiseufrasio Jul 8, 2026
6778873
Update appserver/agentic-ai/agentic-ai-core/src/main/java/fish/payara…
luiseufrasio Jul 13, 2026
7be97e9
Update appserver/agentic-ai/agentic-ai-core/src/main/java/fish/payara…
luiseufrasio Jul 13, 2026
e653535
Update appserver/agentic-ai/agentic-ai-core/src/main/java/fish/payara…
luiseufrasio Jul 13, 2026
ff7e512
Update appserver/agentic-ai/agentic-ai-core/src/main/java/fish/payara…
luiseufrasio Jul 13, 2026
c13d3b1
Update appserver/agentic-ai/agentic-ai-core/src/main/java/fish/payara…
luiseufrasio Jul 13, 2026
6f7f106
FISH-13708 : extract LLM backend default values into constants
luiseufrasio Jul 13, 2026
c6fbb2c
FISH-13708 : add missing HttpURLConnection import
luiseufrasio Jul 13, 2026
87bd46e
Merge branch 'main-with-Jakarta-Agentic-AI' into FISH-13708-implement…
luiseufrasio Jul 13, 2026
e6541da
Merge pull request #8230 from luiseufrasio/FISH-13708-implement-jakar…
luiseufrasio Jul 13, 2026
ee27752
Merge remote-tracking branch 'payara/main-with-Jakarta-Agentic-AI' in…
luiseufrasio Jul 13, 2026
c3c967e
FISH-13708 : add Jakarta Agentic AI TCK stage to Jenkinsfile
luiseufrasio Jul 13, 2026
1b2d980
Merge pull request #8252 from luiseufrasio/FISH-13709-create-agent-sa…
luiseufrasio Jul 14, 2026
49659e6
Merge remote-tracking branch 'payara/main' into main-with-Jakarta-Age…
luiseufrasio Jul 28, 2026
a0efd83
FISH-13708: Fix stale parent versions (7.2026.7 -> 7.2026.8) in agent…
luiseufrasio Jul 28, 2026
a4871b7
Merge remote-tracking branch 'payara/main' into main-with-Jakarta-Age…
luiseufrasio Jul 30, 2026
22c96e2
Use released Jakarta Agentic AI API 1.0.0-M1 instead of SNAPSHOT
luiseufrasio Jul 30, 2026
5878343
Use EE11 branch for Jakarta Agentic AI TCK runner
luiseufrasio Jul 30, 2026
090beb6
Merge pull request #8319 from luiseufrasio/FISH-14025-review-agentic-…
luiseufrasio Aug 4, 2026
5b85ecb
Merge branch 'main' into main-with-Jakarta-Agentic-AI
luiseufrasio Aug 4, 2026
32d3027
FISH-14066 Run Agentic AI TCK via standard TCK delegation
luiseufrasio Aug 5, 2026
8fe3905
FISH-14066 Use jakarta.agentic-ai-api.version property for the API ve…
luiseufrasio Aug 6, 2026
6360c42
FISH-14066 Translate Portuguese pom comments to English
luiseufrasio Aug 6, 2026
847d934
FISH-14066 Explain empty Export-Package for internal agentic-ai module
luiseufrasio Aug 6, 2026
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
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,7 @@ appserver/packager/legal/src/main/resources/glassfish/legal/3RD-PARTY-LICENSE.tx
/appserver/tests/payara-samples/samples/data/.claude/settings.local.json
/appserver/tests/payara-samples/samples/.claude/settings.local.json
/.claude/settings.local.json
/.claude/steps.md
/.claude/issue.txt
/.claude/settings.json
/CLAUDE.md
210 changes: 115 additions & 95 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -225,101 +225,121 @@ pipeline {
echo '*#*#*#*#*#*#*#*#*#*#*#*# Ran MP Metrics TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
}
}
stage('MicroProfile OpenAPI TCK') {
agent {
label 'general-purpose'
}
steps {
echo '*#*#*#*#*#*#*#*#*#*#*#*# Running MP OpenAPI TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
build job: 'TCKs/MP-TCKs',
parameters: [
string(name: 'buildProject', value: 'Build'),
string(name: 'payaraBuildNumber', value: buildId),
string(name: 'repoOrg', value: 'payara'),
string(name: 'testBranchCommitOrTag', value: 'microprofile-7.1'),
string(name: 'suites', value: 'OpenAPI'),
string(name: 'jdkVer', value: 'zulu-21'),
string(name: 'distribution', value: 'full')
]
echo '*#*#*#*#*#*#*#*#*#*#*#*# Ran MP OpenAPI TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
}
}
stage('MicroProfile OpenTelemetry JVM Metrics TCK') {
agent {
label 'general-purpose'
}
steps {
echo '*#*#*#*#*#*#*#*#*#*#*#*# Running MP OpenTelemetry JVM Metrics TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
build job: 'TCKs/MP-TCKs',
parameters: [
string(name: 'buildProject', value: 'Build'),
string(name: 'payaraBuildNumber', value: buildId),
string(name: 'repoOrg', value: 'payara'),
string(name: 'testBranchCommitOrTag', value: 'microprofile-7.1'),
string(name: 'suites', value: 'OpenTelemetry-JVM-Metrics-Runtime'),
string(name: 'jdkVer', value: 'zulu-21'),
string(name: 'distribution', value: 'full')
]
echo '*#*#*#*#*#*#*#*#*#*#*#*# Ran MP OpenTelemetry JVM Metrics TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
}
}
stage('MicroProfile OpenTelemetry JVM Metrics Application TCK') {
agent {
label 'general-purpose'
}
steps {
echo '*#*#*#*#*#*#*#*#*#*#*#*# Running MP OpenTelemetry JVM Metrics Application TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
build job: 'TCKs/MP-TCKs',
parameters: [
string(name: 'buildProject', value: 'Build'),
string(name: 'payaraBuildNumber', value: buildId),
string(name: 'repoOrg', value: 'payara'),
string(name: 'testBranchCommitOrTag', value: 'microprofile-7.1'),
string(name: 'suites', value: 'OpenTelemetry-JVM-Metrics-Application'),
string(name: 'jdkVer', value: 'zulu-21'),
string(name: 'distribution', value: 'full')
]
echo '*#*#*#*#*#*#*#*#*#*#*#*# Ran MP OpenTelemetry JVM Metrics Application TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
}
}
stage('MicroProfile OpenTelemetry Tracing Logging TCK') {
agent {
label 'general-purpose'
}
steps {
echo '*#*#*#*#*#*#*#*#*#*#*#*# Running MP OpenTelemetry Tracing Logging TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
build job: 'TCKs/MP-TCKs',
parameters: [
string(name: 'buildProject', value: 'Build'),
string(name: 'payaraBuildNumber', value: buildId),
string(name: 'repoOrg', value: 'payara'),
string(name: 'testBranchCommitOrTag', value: 'microprofile-7.1'),
string(name: 'suites', value: 'OpenTelemetry-Tracing-Logging'),
string(name: 'jdkVer', value: 'zulu-21'),
string(name: 'distribution', value: 'full')
]
echo '*#*#*#*#*#*#*#*#*#*#*#*# Ran MP OpenTelemetry Tracing Logging TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
}
}
stage('MicroProfile REST Client TCK') {
agent {
label 'general-purpose'
}
steps {
echo '*#*#*#*#*#*#*#*#*#*#*#*# Running MP REST Client TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
build job: 'TCKs/MP-TCKs',
parameters: [
string(name: 'buildProject', value: 'Build'),
string(name: 'payaraBuildNumber', value: buildId),
string(name: 'repoOrg', value: 'payara'),
string(name: 'testBranchCommitOrTag', value: 'microprofile-7.1'),
string(name: 'suites', value: 'Rest-Client'),
string(name: 'jdkVer', value: 'zulu-21'),
string(name: 'distribution', value: 'full')
]
echo '*#*#*#*#*#*#*#*#*#*#*#*# Ran MP REST Client TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
}
}
stage('MicroProfile OpenAPI TCK') {
agent {
label 'general-purpose'
}
steps {
echo '*#*#*#*#*#*#*#*#*#*#*#*# Running MP OpenAPI TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
build job: 'TCKs/MP-TCKs',
parameters: [
string(name: 'buildProject', value: 'Build'),
string(name: 'payaraBuildNumber', value: buildId),
string(name: 'repoOrg', value: 'payara'),
string(name: 'testBranchCommitOrTag', value: 'microprofile-7.1'),
string(name: 'suites', value: 'OpenAPI'),
string(name: 'jdkVer', value: 'zulu-21'),
string(name: 'distribution', value: 'full')
]
echo '*#*#*#*#*#*#*#*#*#*#*#*# Ran MP OpenAPI TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
}
}
stage('MicroProfile OpenTelemetry JVM Metrics TCK') {
agent {
label 'general-purpose'
}
steps {
echo '*#*#*#*#*#*#*#*#*#*#*#*# Running MP OpenTelemetry JVM Metrics TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
build job: 'TCKs/MP-TCKs',
parameters: [
string(name: 'buildProject', value: 'Build'),
string(name: 'payaraBuildNumber', value: buildId),
string(name: 'repoOrg', value: 'payara'),
string(name: 'testBranchCommitOrTag', value: 'microprofile-7.1'),
string(name: 'suites', value: 'OpenTelemetry-JVM-Metrics-Runtime'),
string(name: 'jdkVer', value: 'zulu-21'),
string(name: 'distribution', value: 'full')
]
echo '*#*#*#*#*#*#*#*#*#*#*#*# Ran MP OpenTelemetry JVM Metrics TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
}
}
stage('MicroProfile OpenTelemetry JVM Metrics Application TCK') {
agent {
label 'general-purpose'
}
steps {
echo '*#*#*#*#*#*#*#*#*#*#*#*# Running MP OpenTelemetry JVM Metrics Application TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
build job: 'TCKs/MP-TCKs',
parameters: [
string(name: 'buildProject', value: 'Build'),
string(name: 'payaraBuildNumber', value: buildId),
string(name: 'repoOrg', value: 'payara'),
string(name: 'testBranchCommitOrTag', value: 'microprofile-7.1'),
string(name: 'suites', value: 'OpenTelemetry-JVM-Metrics-Application'),
string(name: 'jdkVer', value: 'zulu-21'),
string(name: 'distribution', value: 'full')
]
echo '*#*#*#*#*#*#*#*#*#*#*#*# Ran MP OpenTelemetry JVM Metrics Application TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
}
}
stage('MicroProfile OpenTelemetry Tracing Logging TCK') {
agent {
label 'general-purpose'
}
steps {
echo '*#*#*#*#*#*#*#*#*#*#*#*# Running MP OpenTelemetry Tracing Logging TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
build job: 'TCKs/MP-TCKs',
parameters: [
string(name: 'buildProject', value: 'Build'),
string(name: 'payaraBuildNumber', value: buildId),
string(name: 'repoOrg', value: 'payara'),
string(name: 'testBranchCommitOrTag', value: 'microprofile-7.1'),
string(name: 'suites', value: 'OpenTelemetry-Tracing-Logging'),
string(name: 'jdkVer', value: 'zulu-21'),
string(name: 'distribution', value: 'full')
]
echo '*#*#*#*#*#*#*#*#*#*#*#*# Ran MP OpenTelemetry Tracing Logging TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
}
}
stage('MicroProfile REST Client TCK') {
agent {
label 'general-purpose'
}
steps {
echo '*#*#*#*#*#*#*#*#*#*#*#*# Running MP REST Client TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
build job: 'TCKs/MP-TCKs',
parameters: [
string(name: 'buildProject', value: 'Build'),
string(name: 'payaraBuildNumber', value: buildId),
string(name: 'repoOrg', value: 'payara'),
string(name: 'testBranchCommitOrTag', value: 'microprofile-7.1'),
string(name: 'suites', value: 'Rest-Client'),
string(name: 'jdkVer', value: 'zulu-21'),
string(name: 'distribution', value: 'full')
]
echo '*#*#*#*#*#*#*#*#*#*#*#*# Ran MP REST Client TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
}
}
Comment on lines -228 to +322

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.

What is going on here? Why are so many lines being changed?

stage('Jakarta Agentic AI TCK') {
agent {
label 'general-purpose'
}
steps {
echo '*#*#*#*#*#*#*#*#*#*#*#*# Running Jakarta Agentic AI TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
build job: 'TCKs/JakartaEE-11-TCK',
parameters: [
string(name: 'buildProject', value: 'Build'),
string(name: 'payaraBuildNumber', value: buildId),
string(name: 'payaraDistribution', value: 'Full'),
string(name: 'tck_profile', value: 'Full'),
string(name: 'jdk_version', value: 'zulu-21'),
string(name: 'tck_suites', value: 'agentic-ai'),
string(name: 'specificRunnerBranchCommitOrTag', value: 'EE11'),
string(name: 'runnerRepoOrg', value: 'payara')
]
echo '*#*#*#*#*#*#*#*#*#*#*#*# Ran Jakarta Agentic AI TCK *#*#*#*#*#*#*#*#*#*#*#*#*#*#*#'
}
}
Comment on lines +323 to +342

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.

This raises a question: should we be running the TCK against every single PR?
I don't feel like we should be tbh - this feels much more like a weekly TCK run thing

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.

stage('EE8 Tests') {
agent {
label 'general-purpose'
Expand Down
5 changes: 5 additions & 0 deletions api/payara-bom/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -450,6 +450,11 @@
<artifactId>jakarta.data-api</artifactId>
<version>${jakarta.data-api.version}</version>
</dependency>
<dependency>
<groupId>jakarta.agentic-ai</groupId>
<artifactId>jakarta.agentic-ai-api</artifactId>
<version>${jakarta.agentic-ai-api.version}</version>
</dependency>

<dependency>
<groupId>org.osgi</groupId>
Expand Down
139 changes: 139 additions & 0 deletions appserver/agentic-ai/agentic-ai-core/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.

Copyright (c) 2026 Payara Foundation and/or its affiliates. All rights reserved.

The contents of this file are subject to the terms of either the GNU
General Public License Version 2 only ("GPL") or the Common Development
and Distribution License("CDDL") (collectively, the "License"). You
may not use this file except in compliance with the License. You can
obtain a copy of the License at
https://github.com/payara/Payara/blob/main/LICENSE.txt
See the License for the specific
language governing permissions and limitations under the License.

When distributing the software, include this License Header Notice in each
file and include the License file at legal/OPEN-SOURCE-LICENSE.txt.

GPL Classpath Exception:
The Payara Foundation designates this particular file as subject to the "Classpath"
exception as provided by the Payara Foundation in the GPL Version 2 section of the License
file that accompanied this code.

Modifications:
If applicable, add the following below the License Header, with the fields
enclosed by brackets [] replaced by your own identifying information:
"Portions Copyright [year] [name of copyright owner]"

Contributor(s):
If you wish your version of this file to be governed by only the CDDL or
only the GPL Version 2, indicate your decision by adding "[Contributor]
elects to include this software in this distribution under the [CDDL or GPL
Version 2] license." If you don't indicate a single choice of license, a
recipient has the option to distribute your version of this file under
either the CDDL, the GPL Version 2 or to extend the choice of license to
its licensees as provided above. However, if you add GPL Version 2 code
and therefore, elected the GPL Version 2 license, then the option applies
only if the new code is made subject to such option by the copyright
holder.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>fish.payara.server.internal.agentic-ai</groupId>
<artifactId>agentic-ai</artifactId>
<version>7.2026.8-SNAPSHOT</version>
</parent>
<artifactId>agentic-ai-core</artifactId>
<packaging>glassfish-jar</packaging>

<dependencies>
<!-- Jakarta Agentic AI 1.0 API -->
<dependency>
<groupId>jakarta.agentic-ai</groupId>
<artifactId>jakarta.agentic-ai-api</artifactId>
<version>${jakarta.agentic-ai-api.version}</version>
<scope>provided</scope>
</dependency>
<!-- CDI -->
<dependency>
<groupId>jakarta.enterprise</groupId>
<artifactId>jakarta.enterprise.cdi-api</artifactId>
<scope>provided</scope>
</dependency>
<!-- JSON-B (Yasson is already provided by Payara) -->
<dependency>
<groupId>jakarta.json.bind</groupId>
<artifactId>jakarta.json.bind-api</artifactId>
<scope>provided</scope>
</dependency>
<!-- Jakarta Validation -->
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
<scope>provided</scope>
</dependency>
<!-- Jakarta Annotations (@Priority) -->
<dependency>
<groupId>jakarta.annotation</groupId>
<artifactId>jakarta.annotation-api</artifactId>
<scope>provided</scope>
</dependency>
<!-- MicroProfile Config (LLM provider/key selection) -->
<dependency>
<groupId>org.eclipse.microprofile.config</groupId>
<artifactId>microprofile-config-api</artifactId>
<version>${microprofile-config.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>fish.payara.server.internal.deployment</groupId>
<artifactId>dol</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>fish.payara.server.internal.web</groupId>
<artifactId>weld-integration</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>fish.payara.server.internal.common</groupId>
<artifactId>container-common</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<executions>
<execution>
<id>bundle-manifest</id>
<phase>process-classes</phase>
<goals>
<goal>manifest</goal>
</goals>
<configuration>
<instructions>
<!--
This is an internal implementation module
(fish.payara.server.internal.agentic-ai), so it must
not export any packages for OSGi consumption. An empty
Export-Package keeps every package private, instead of
letting bnd fall back to exporting the module's packages.
Mirrors the Jakarta Data implementation module (data-core).
-->
<Export-Package/>

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.

What is the reasoning behind not using the default config?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This module is an internal implementation module (fish.payara.server.internal.agentic-ai), so it shouldn't export any packages for OSGi consumption. The empty <Export-Package/> keeps every package private instead of letting bnd fall back to exporting the module's packages. It mirrors the Jakarta Data implementation module (appserver/data/data-core), which uses the identical config for the same reason. I've added a comment to the pom explaining this.

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.

Almost all of our modules are internal only and export their OSGi contents though. I'm not convinced that your argument is correct without some more details

</instructions>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Loading