Skip to content
Open
Show file tree
Hide file tree
Changes from 2 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
75 changes: 75 additions & 0 deletions tomcat-catalina-ha/9.0.115.wso2v1/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2026, WSO2 LLC. (https://www.wso2.com).
~
~ WSO2 LLC. licenses this file to you under the Apache License,
~ Version 2.0 (the "License"); you may not use this file except
~ in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
-->
<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>
<groupId>org.wso2.orbit.org.apache.tomcat</groupId>
<artifactId>tomcat-catalina-ha</artifactId>
<version>9.0.115.wso2v1</version>
<packaging>bundle</packaging>
<name>Tomcat high availability orbit bundle - 9.0.115.wso2v1</name>
<description>Apache Tomcat HA</description>

<dependencies>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-catalina-ha</artifactId>
<version>${version.tomcat}</version>
<optional>true</optional>
</dependency>
</dependencies>

<distributionManagement>
<repository>
<id>wso2.releases</id>
<name>WSO2 internal Repository</name>
<url>https://maven.wso2.org/nexus/content/repositories/releases/</url>
</repository>
</distributionManagement>

<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.3.6</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Bundle-Name>${project.artifactId}</Bundle-Name>
<Export-Package>
org.apache.catalina.ha.*;version="${version.tomcat}",
org.apache.catalina.ha.session.*;version="${version.tomcat}"
</Export-Package>
<Import-Package>
*;resolution:=optional
</Import-Package>
<DynamicImport-Package>*</DynamicImport-Package>
</instructions>
</configuration>
</plugin>
</plugins>
</build>

<properties>
<version.tomcat>9.0.115</version.tomcat>
</properties>
</project>
77 changes: 77 additions & 0 deletions tomcat-el-api-jdk21/9.0.115.wso2v1/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2026, WSO2 LLC. (https://www.wso2.com).
~
~ WSO2 LLC. licenses this file to you under the Apache License,
~ Version 2.0 (the "License"); you may not use this file except
~ in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
-->
<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>
<groupId>org.wso2.orbit.org.apache.tomcat</groupId>
<artifactId>tomcat-el-api-jdk21</artifactId>
<version>9.0.115.wso2v1</version>
<packaging>bundle</packaging>
<name>tomcat el api orbit bundle for JDK 21+ - 9.0.115.wso2v1</name>
<description>Apache Tomcat EL API</description>

<dependencies>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-el-api</artifactId>
<version>${version.tomcat}</version>
<optional>true</optional>
</dependency>
</dependencies>

<distributionManagement>
<repository>
<id>wso2.releases</id>
<name>WSO2 internal Repository</name>
<url>https://maven.wso2.org/nexus/content/repositories/releases/</url>
</repository>
</distributionManagement>

<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.4.0</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Bundle-Name>${project.artifactId}</Bundle-Name>
<Private-Package>
javax.el.*;version="3.0"
</Private-Package>
<Export-Package>
javax.el;version="3.0.0"
</Export-Package>
<Import-Package>
*;resolution:=optional
</Import-Package>
<DynamicImport-Package>*</DynamicImport-Package>
</instructions>
</configuration>
</plugin>
</plugins>
</build>

<properties>
<version.tomcat>9.0.115</version.tomcat>
</properties>
</project>
77 changes: 77 additions & 0 deletions tomcat-el-api/9.0.115.wso2v1/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2026, WSO2 LLC. (https://www.wso2.com).
~
~ WSO2 LLC. licenses this file to you under the Apache License,
~ Version 2.0 (the "License"); you may not use this file except
~ in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
-->
<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>
<groupId>org.wso2.orbit.org.apache.tomcat</groupId>
<artifactId>tomcat-el-api</artifactId>
<version>9.0.115.wso2v1</version>
<packaging>bundle</packaging>
<name>tomcat el api orbit bundle - 9.0.115.wso2v1</name>
<description>Apache Tomcat EL API</description>

<dependencies>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-el-api</artifactId>
<version>${version.tomcat}</version>
<optional>true</optional>
</dependency>
</dependencies>

<distributionManagement>
<repository>
<id>wso2.releases</id>
<name>WSO2 internal Repository</name>
<url>https://maven.wso2.org/nexus/content/repositories/releases/</url>
</repository>
</distributionManagement>

<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.4.0</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Bundle-Name>${project.artifactId}</Bundle-Name>
<Private-Package>
javax.el.*;version="3.0"
</Private-Package>
<Export-Package>
javax.el;version="3.0.0"
</Export-Package>
<Import-Package>
*;resolution:=optional
</Import-Package>
<DynamicImport-Package>*</DynamicImport-Package>
</instructions>
</configuration>
</plugin>
</plugins>
</build>

<properties>
<version.tomcat>9.0.115</version.tomcat>
</properties>
</project>
142 changes: 142 additions & 0 deletions tomcat-jdk21/9.0.115.wso2v1/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2026, WSO2 LLC. (https://www.wso2.com).
~
~ WSO2 LLC. licenses this file to you under the Apache License,
~ Version 2.0 (the "License"); you may not use this file except
~ in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
-->
<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>
<groupId>org.wso2.orbit.org.apache.tomcat</groupId>
<artifactId>tomcat-jdk21</artifactId>
<version>9.0.115.wso2v1</version>
<packaging>bundle</packaging>
<name>tomcat orbit bundle for JDK 21+ - 9.0.115.wso2v1</name>
<description>Apache Tomcat</description>

<dependencies>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-dbcp</artifactId>
<version>${version.tomcat}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
<version>${version.tomcat}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<version>${version.tomcat}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-websocket-api</artifactId>
<version>${version.tomcat}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-websocket</artifactId>
<version>${version.tomcat}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jasper</artifactId>
<version>${version.tomcat}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jaspic-api</artifactId>
<version>${version.tomcat}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jasper-el</artifactId>
<version>${version.tomcat}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.eclipse.jdt.core.compiler</groupId>
<artifactId>ecj</artifactId>
<version>${version.ecj}</version>
<optional>true</optional>
</dependency>
</dependencies>

<distributionManagement>
<repository>
<id>wso2.releases</id>
<name>WSO2 internal Repository</name>
<url>https://maven.wso2.org/nexus/content/repositories/releases/</url>
</repository>
</distributionManagement>

<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<version>2.4.0</version>
<configuration>
<instructions>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Bundle-Name>${project.artifactId}</Bundle-Name>
<Export-Package>
!org.apache.tomcat.jdbc.pool.*,
!org.apache.juli.logging,
org.apache.jasper.*;version="${version.tomcat}";-split-package:=merge-first,
org.apache.naming.*;version="${version.tomcat}",
org.apache.tomcat.*;version="${version.tomcat}";-split-package:=merge-first,
org.apache.catalina.*;version="${version.tomcat}",
org.apache.coyote.*;version="${version.tomcat}",
org.apache.el.*;version="${version.tomcat}";-split-package:=merge-first,
javax.websocket.*;version="1.1.0";-split-package:=merge-first,
javax.security.auth.message.*;version="6.0.0";-split-package:=merge-first
</Export-Package>
<Private-Package>
org.apache.juli
</Private-Package>
<Import-Package>
javax.annotation;version="0.0.0",
*;resolution:=optional
</Import-Package>
<DynamicImport-Package>*</DynamicImport-Package>
<Include-Resource>
{maven-resources},
@tomcat-embed-websocket-${version.tomcat}.jar!/META-INF/*,
src/main/resources
</Include-Resource>
<Bundle-Classpath>patch.jar,.</Bundle-Classpath>
</instructions>
</configuration>
</plugin>
</plugins>
</build>

<properties>
<version.tomcat>9.0.115</version.tomcat>
<version.ecj>4.6.1</version.ecj>
Comment on lines +138 to +140
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

ECJ 4.6.1 Java version support compatibility JDK

💡 Result:

  • Running ecj-4.6.1.jar (the standalone Eclipse Compiler for Java): the published Maven POM for ECJ 4.6.1 sets maven.compiler.source/target to 1.7, meaning the JAR is built for Java 7 bytecode → you need JRE/JDK 7+ to run it. [1]
  • What Java it can compile (language level): ECJ 4.6.1 corresponds to the Eclipse Neon era and is generally used for up to Java 8 source/target; Java 9 support is not provided by Neon-era tooling (Java 9 support comes with later Eclipse trains). [2]
  • Note (batch compiler defaults/constraints): Eclipse’s batch-compiler docs note an implicit default of -source 1.6 -target 1.6, and that annotation processing support requires a 1.6 VM. [3]

Sources:
[1] Sonatype/Maven Central page showing ECJ 4.6.1 POM snippet (maven.compiler.source/target=1.7). (central.sonatype.com)
[2] Stack Overflow: Eclipse Neon vs Java 9 support (points to needing later Eclipse versions for Java 9). (stackoverflow.com)
[3] Eclipse Help: “Using the batch compiler” (implicit -source/-target 1.6, annotation processing needs 1.6 VM). (help.eclipse.org)

Citations:


🌐 Web query:

Apache Tomcat 9.0.115 ECJ version dependency

💡 Result:

For Apache Tomcat 9.0.115, the Jasper JSP compiler (tomcat-jasper) has a Maven dependency on:

  • ECJ artifact: org.eclipse.jdt:ecj
  • ECJ version: 3.26.0 (compile dependency) [1]

If you’re looking at the Tomcat binary distribution (the lib/ folder), Tomcat 9 commonly ships an ECJ JAR named ecj-4.20.jar (optional, used when you configure Jasper to use ECJ instead of javac) [2].

Sources:
[1] https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-jasper/9.0.115/dependencies
[2] https://stackoverflow.com/questions/79415289/org-apache-jasper-jasperexception-unable-to-compile-class-for-jsp-facing-this


🏁 Script executed:

# Search for Tomcat 9.0.115 official pom.xml to see what ecj version it uses
curl -s "https://repo.maven.apache.org/maven2/org/apache/tomcat/tomcat/9.0.115/tomcat-9.0.115.pom" | grep -A 5 -B 5 "ecj" || echo "Direct fetch failed, will try alternative"

Repository: wso2/orbit

Length of output: 95


🏁 Script executed:

# Check Maven Central for ECJ 4.6.1 release info
curl -s "https://repo1.maven.org/maven2/org/eclipse/jdt/core/compiler/ecj/4.6.1/" | grep -i "release\|date\|version" | head -20

Repository: wso2/orbit

Length of output: 36


ECJ 4.6.1 cannot compile code for JDK 21.

Line 140 pins ecj to 4.6.1, which only supports Java 8 language features and lacks Java 9+ support. This will cause JSP compilation failures with JDK 21. Additionally, Tomcat 9.0.115 officially uses ECJ 3.26.0 (a much newer version), so this pinning moves backward from the baseline dependency.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@tomcat-jdk21/9.0.115.wso2v1/pom.xml` around lines 138 - 140, The POM pins ECJ
to an old incompatible version via the property version.ecj (currently 4.6.1);
update that property to a modern ECJ release that supports Java 21 (for example
set version.ecj to 3.26.0 which is the Tomcat 9.0.115 baseline) so JSP/ECJ
compilation will work under JDK 21 and align with Tomcat's expected dependency.

</properties>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
org.apache.el.ExpressionFactoryImpl
Loading