Added: release/felix/org.apache.felix.http.jetty-5.1.34.pom ============================================================================== --- release/felix/org.apache.felix.http.jetty-5.1.34.pom (added) +++ release/felix/org.apache.felix.http.jetty-5.1.34.pom Mon May 26 07:57:55 2025 @@ -0,0 +1,611 @@ +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF 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/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.felix</groupId> + <artifactId>felix-parent</artifactId> + <version>9</version> + <relativePath>../../pom/pom.xml</relativePath> + </parent> + + <name>Apache Felix Http Jetty 11.x</name> + <description>This is an implementation of the R8.1 OSGi Servlet Service, the R7 OSGi Http Service and the R7 OSGi Http Whiteboard Specification</description> + + <artifactId>org.apache.felix.http.jetty</artifactId> + <version>5.1.34</version> + <packaging>bundle</packaging> + + <scm> + <connection>scm:git:https://github.com/apache/felix-dev.git</connection> + <developerConnection>scm:git:https://github.com/apache/felix-dev.git</developerConnection> + <url>https://gitbox.apache.org/repos/asf?p=felix-dev.git</url> + <tag>org.apache.felix.http.jetty-5.1.34</tag> + </scm> + + <properties> + <felix.java.version>11</felix.java.version> + <jetty.version>11.0.25</jetty.version> + <baseline.skip>true</baseline.skip> + <org.ops4j.pax.exam.version>4.13.3</org.ops4j.pax.exam.version> + <!-- To debug the pax process, override this with -D --> + <pax.vm.options>-Xmx512M</pax.vm.options> + </properties> + + <build> + <plugins> + + <!-- Use a groovy script to preserve the META-INF/services/* files for the artifacts that are embeded in the uber jar --> + <plugin> + <groupId>org.codehaus.gmaven</groupId> + <artifactId>groovy-maven-plugin</artifactId> + <version>2.1.1</version> + <executions> + <execution> + <id>groovy-magic</id> + <phase>prepare-package</phase> + <goals> + <goal>execute</goal> + </goals> + <configuration> + <source><![CDATA[ + // make an output dir for the merged resource files + def slDir = new File(project.build.directory, "serviceloader-resources"); + slDir.mkdirs(); + + // scan each of the artifacts to preserve the information found in any META-INF/services/* files + project.artifacts.each() { artifact -> + + if (artifact.getArtifactHandler().isAddedToClasspath() && !org.apache.maven.artifact.Artifact.SCOPE_TEST.equals( artifact.getScope() ) + && !"org.eclipse.jetty.websocket".equals(artifact.getGroupId()) // skip the optional websocket artifacts + && !"jetty-annotations".equals(artifact.getArtifactId()) // skip the transitive artifacts from the optional websocket artifacts + && !"jetty-plus".equals(artifact.getArtifactId()) + && !"jetty-webapp".equals(artifact.getArtifactId())) { + def jar; + try { + jar = new java.util.jar.JarFile(artifact.file) + jar.stream().each() { entry -> + if (!entry.isDirectory() && entry.name.startsWith("META-INF/services/")) { + + // check if we already have a file with this name + def svcFile = new File(slDir, entry.name) + def svcSet = new LinkedHashSet(); + if (svcFile.exists()) { + // found existing file, so load the items from the existing file so we can merge + svcFile.eachLine { className -> + className = className.trim(); + if (!className.isEmpty()) { + svcSet.add(className); + } + } + } + + // read the content of the found entry + def lineReader; + try { + lineReader = new BufferedReader(new InputStreamReader(jar.getInputStream(entry), java.nio.charset.StandardCharsets.UTF_8)); + def className; + while ( ( className = lineReader.readLine() ) != null ) { + className = className.trim(); + if (!className.isEmpty()) { + svcSet.add(className); + } + } + } finally { + // cleanup + if (lineReader != null) { + lineReader.close() + } + } + + // write the merged data to the output file + if (!svcSet.isEmpty()) { + // make any missing folders + svcFile.getParentFile().mkdirs(); + + svcFile.withWriter('utf-8') { writer -> + svcSet.each() { item -> + writer.writeLine item; + } + + // finish up with a blank line + writer.println(); + } + } + + } + } + } finally { + // cleanup + if (jar != null) { + jar.close(); + } + } + } + + } + ]]></source> + </configuration> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <version>5.1.9</version> + <extensions>true</extensions> + <configuration> + <instructions> + <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName> + <Bundle-Version>${project.version}</Bundle-Version> + <X-Jetty-Version> + ${jetty.version} + </X-Jetty-Version> + <Bundle-Activator> + org.apache.felix.http.jetty.internal.JettyActivator + </Bundle-Activator> + <Export-Package> + org.osgi.service.http, + org.osgi.service.http.context, + org.osgi.service.http.runtime, + org.osgi.service.http.runtime.dto, + org.osgi.service.http.whiteboard, + org.osgi.service.servlet.context, + org.osgi.service.servlet.runtime, + org.osgi.service.servlet.runtime.dto, + org.osgi.service.servlet.whiteboard, + org.eclipse.jetty.alpn.server, + org.eclipse.jetty.http.*, + org.eclipse.jetty.http2.*, + org.eclipse.jetty.io.*, + org.eclipse.jetty.jmx.*, + org.eclipse.jetty.security.*, + org.eclipse.jetty.server.*, + org.eclipse.jetty.servlet.*, + org.eclipse.jetty.util.*, + org.apache.felix.http.jetty, + org.apache.felix.http.jakartawrappers, + org.apache.felix.http.javaxwrappers + </Export-Package> + <Private-Package> + org.apache.felix.http.base.*, + org.apache.felix.http.jetty.*, + org.eclipse.jetty, + org.eclipse.jetty.version + </Private-Package> + <Conditional-Package> + org.apache.commons.* + </Conditional-Package> + <Import-Package> + sun.misc;resolution:=optional, + sun.nio.ch;resolution:=optional, + javax.imageio;resolution:=optional, + javax.sql;resolution:=optional, + org.ietf.jgss;resolution:=optional, + org.osgi.service.cm;resolution:=optional;version="[1.3,2)", + org.osgi.service.event;resolution:=optional;version="[1.2,2)", + org.osgi.service.log;resolution:=optional;version="[1.3,2)", + org.osgi.service.metatype;resolution:=optional;version="[1.1,2)", + org.osgi.service.useradmin;resolution:=optional;version="[1.1,2)", + org.osgi.service.http;version="[1.2.1,1.3)", + org.osgi.service.http.context;version="[1.1,1.2)", + org.osgi.service.http.runtime;version="[1.1,1.2)", + org.osgi.service.http.runtime.dto;version="[1.1,1.2)", + * + </Import-Package> + <DynamicImport-Package> + org.osgi.service.cm;version="[1.3,2)", + org.osgi.service.event;version="[1.2,2)", + org.osgi.service.log;version="[1.3,2)", + org.osgi.service.metatype;version="[1.4,2)" + </DynamicImport-Package> + <Provide-Capability> + osgi.implementation;osgi.implementation="osgi.http";version:Version="1.1"; + uses:="javax.servlet,javax.servlet.http,org.osgi.service.http.context,org.osgi.service.http.whiteboard", + osgi.implementation;osgi.implementation="osgi.http";version:Version="2.0"; + uses:="jakarta.servlet,jakarta.servlet.http,org.osgi.service.servlet.context,org.osgi.service.servlet.whiteboard", + osgi.service;objectClass:List<String>="org.osgi.service.servlet.runtime.HttpServiceRuntime"; + uses:="org.osgi.service.servlet.runtime,org.osgi.service.servlet.runtime.dto", + osgi.service;objectClass:List<String>="org.osgi.service.http.runtime.HttpServiceRuntime"; + uses:="org.osgi.service.http.runtime,org.osgi.service.http.runtime.dto", + osgi.service;objectClass:List<String>="org.osgi.service.http.HttpService"; + uses:="org.osgi.service.http", + osgi.serviceloader;osgi.serviceloader="org.eclipse.jetty.http.HttpFieldPreEncoder" + </Provide-Capability> + <Require-Capability> + osgi.contract;filter:="(&(osgi.contract=JavaServlet)(version=4.0))", + osgi.contract;filter:="(&(osgi.contract=JakartaServlet)(version=5.0))", + osgi.extender;filter:="(osgi.extender=osgi.serviceloader.registrar)";resolution:=optional, + osgi.extender;filter:="(osgi.extender=osgi.serviceloader.processor)";resolution:=optional, + osgi.serviceloader;filter:="(osgi.serviceloader=org.eclipse.jetty.http.HttpFieldPreEncoder)";resolution:=optional;cardinality:=multiple, + osgi.serviceloader;filter:="(osgi.serviceloader=org.eclipse.jetty.io.ssl.ALPNProcessor$Server)";resolution:=optional;cardinality:=multiple + </Require-Capability> + <Include-Resource> + {maven-resources},${project.build.directory}/serviceloader-resources + </Include-Resource> + <_removeheaders> + Private-Package,Conditional-Package + </_removeheaders> + </instructions> + </configuration> + <executions> + <execution> + <id>bundle</id> + <phase>package</phase> + <goals> + <goal>bundle</goal> + </goals> + </execution> + <execution> + <id>baseline</id> + <goals> + <goal>baseline</goal> + </goals> + </execution> + <execution> + <id>light-bundle</id> + <goals> + <goal>bundle</goal> + </goals> + <configuration> + <classifier>light</classifier> + <instructions> + <Bundle-Name>${project.name} Light</Bundle-Name> + <Bundle-SymbolicName>${project.artifactId}.light</Bundle-SymbolicName> + <!-- We need to override this from the base configuration --> + <Conditional-Package> + foo + </Conditional-Package> + <Export-Package> + org.osgi.service.http, + org.osgi.service.http.context, + org.osgi.service.http.runtime, + org.osgi.service.http.runtime.dto, + org.osgi.service.http.whiteboard, + org.osgi.service.servlet.context, + org.osgi.service.servlet.runtime, + org.osgi.service.servlet.runtime.dto, + org.osgi.service.servlet.whiteboard, + org.apache.felix.http.jetty, + org.apache.felix.http.javaxwrappers, + org.apache.felix.http.jakartawrappers + </Export-Package> + <Private-Package> + org.apache.felix.http.base.*, + org.apache.felix.http.jetty.*, + </Private-Package> + <Import-Package> + org.osgi.service.cm;resolution:=optional;version="[1.3,2)", + org.osgi.service.event;resolution:=optional;version="[1.2,2)", + org.osgi.service.log;resolution:=optional;version="[1.3,2)", + org.osgi.service.metatype;resolution:=optional;version="[1.4,2)", + org.osgi.service.useradmin;resolution:=optional;version="[1.1,2)", + org.osgi.service.http;version="[1.2.1,1.3)", + org.osgi.service.http.context;version="[1.1,1.2)", + org.osgi.service.http.runtime;version="[1.1,1.2)", + org.osgi.service.http.runtime.dto;version="[1.1,1.2)", + * + </Import-Package> + <!-- We need to override this from the base configuration to exclude the ServiceLoader capabilities --> + <Provide-Capability> + osgi.implementation;osgi.implementation="osgi.http";version:Version="1.1"; + uses:="javax.servlet,javax.servlet.http,org.osgi.service.http.context,org.osgi.service.http.whiteboard", + osgi.implementation;osgi.implementation="osgi.http";version:Version="2.0"; + uses:="jakarta.servlet,jakarta.servlet.http,org.osgi.service.servlet.context,org.osgi.service.servlet.whiteboard", + osgi.service;objectClass:List<String>="org.osgi.service.servlet.runtime.HttpServiceRuntime"; + uses:="org.osgi.service.servlet.runtime,org.osgi.service.servlet.runtime.dto", + osgi.service;objectClass:List<String>="org.osgi.service.http.runtime.HttpServiceRuntime"; + uses:="org.osgi.service.http.runtime,org.osgi.service.http.runtime.dto", + osgi.service;objectClass:List<String>="org.osgi.service.http.HttpService"; + uses:="org.osgi.service.http" + </Provide-Capability> + <!-- We need to override this from the base configuration to exclude the ServiceLoader capabilities --> + <Require-Capability> + osgi.contract;filter:="(&(osgi.contract=JavaServlet)(version=4.0))", + osgi.contract;filter:="(&(osgi.contract=JakartaServlet)(version=5.0))" + </Require-Capability> + <!-- We need to override this from the base configuration to exclude the ServiceLoader resources --> + <Include-Resource> + {maven-resources} + </Include-Resource> + <_removeheaders> + X-Jetty-Version,Private-Package,Conditional-Package + </_removeheaders> + </instructions> + </configuration> + </execution> + </executions> + </plugin> + + <plugin> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <redirectTestOutputToFile>true</redirectTestOutputToFile> + </configuration> + </plugin> + <!-- plugins for paxexam integration tests --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-failsafe-plugin</artifactId> + <executions> + <execution> + <id>integration-test</id> + <phase>integration-test</phase> + <goals> + <goal>integration-test</goal> + </goals> + </execution> + <execution> + <id>verify</id> + <phase>integration-test</phase> + <goals> + <goal>verify</goal> + </goals> + </execution> + </executions> + <configuration> + <redirectTestOutputToFile>true</redirectTestOutputToFile> + <systemPropertyVariables> + <jetty.version>${jetty.version}</jetty.version> + <bundle.filename>${basedir}/target/${project.build.finalName}.jar</bundle.filename> + <pax.vm.options>${pax.vm.options}</pax.vm.options> + </systemPropertyVariables> + </configuration> + </plugin> + </plugins> + </build> + + <dependencies> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + <version>2.0.17</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>javax.servlet-api</artifactId> + <version>3.1.0</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.osgi</groupId> + <artifactId>osgi.core</artifactId> + <version>6.0.0</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.osgi</groupId> + <artifactId>org.osgi.service.cm</artifactId> + <version>1.5.0</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.osgi</groupId> + <artifactId>org.osgi.service.event</artifactId> + <version>1.3.1</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.osgi</groupId> + <artifactId>org.osgi.service.metatype</artifactId> + <version>1.4.0</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.osgi</groupId> + <artifactId>org.osgi.service.useradmin</artifactId> + <version>1.1.0</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-servlet</artifactId> + <version>${jetty.version}</version> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-server</artifactId> + <version>${jetty.version}</version> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-util</artifactId> + <version>${jetty.version}</version> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-util-ajax</artifactId> + <version>${jetty.version}</version> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-jmx</artifactId> + <version>${jetty.version}</version> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-security</artifactId> + <version>${jetty.version}</version> + </dependency> + <dependency> + <groupId>org.eclipse.jetty.http2</groupId> + <artifactId>http2-server</artifactId> + <version>${jetty.version}</version> + </dependency> + <dependency> + <groupId>org.eclipse.jetty.http2</groupId> + <artifactId>http2-common</artifactId> + <version>${jetty.version}</version> + </dependency> + <dependency> + <groupId>org.eclipse.jetty.http2</groupId> + <artifactId>http2-hpack</artifactId> + <version>${jetty.version}</version> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-alpn-server</artifactId> + <version>${jetty.version}</version> + </dependency> + <dependency> + <groupId>org.eclipse.jetty.websocket</groupId> + <artifactId>websocket-jakarta-server</artifactId> + <version>${jetty.version}</version> + <optional>true</optional> + </dependency> + <dependency> + <groupId>org.eclipse.jetty.websocket</groupId> + <artifactId>websocket-jetty-server</artifactId> + <version>${jetty.version}</version> + <optional>true</optional> + </dependency> + <dependency> + <groupId>org.osgi</groupId> + <artifactId>org.osgi.service.servlet</artifactId> + <version>2.0.0</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.osgi</groupId> + <artifactId>org.osgi.service.http</artifactId> + <version>1.2.1</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.osgi</groupId> + <artifactId>org.osgi.service.http.whiteboard</artifactId> + <version>1.1.1</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.apache.felix</groupId> + <artifactId>org.apache.felix.http.base</artifactId> + <version>5.1.14</version> + </dependency> + <dependency> + <groupId>org.apache.felix</groupId> + <artifactId>org.apache.felix.http.wrappers</artifactId> + <version>1.0.8</version> + </dependency> + <dependency> + <groupId>commons-fileupload</groupId> + <artifactId>commons-fileupload</artifactId> + <version>1.5</version> + </dependency> + <dependency> + <groupId>commons-io</groupId> + <artifactId>commons-io</artifactId> + <version>2.19.0</version> + </dependency> + <!-- Testing --> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.13.2</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-core</artifactId> + <version>5.17.0</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.osgi</groupId> + <artifactId>org.osgi.service.log</artifactId> + <version>1.3.0</version> + <scope>test</scope> + </dependency> + + <!-- an OSGi framework --> + <dependency> + <groupId>org.apache.felix</groupId> + <artifactId>org.apache.felix.framework</artifactId> + <version>7.0.5</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>javax.inject</groupId> + <artifactId>javax.inject</artifactId> + <version>1</version> + <scope>test</scope> + </dependency> + + <!-- Pax Exam --> + <dependency> + <groupId>org.ops4j.pax.exam</groupId> + <artifactId>pax-exam</artifactId> + <version>${org.ops4j.pax.exam.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.ops4j.pax.exam</groupId> + <artifactId>pax-exam-cm</artifactId> + <version>${org.ops4j.pax.exam.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.ops4j.pax.exam</groupId> + <artifactId>pax-exam-container-forked</artifactId> + <version>${org.ops4j.pax.exam.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.ops4j.pax.exam</groupId> + <artifactId>pax-exam-junit4</artifactId> + <version>${org.ops4j.pax.exam.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.ops4j.pax.exam</groupId> + <artifactId>pax-exam-link-mvn</artifactId> + <version>${org.ops4j.pax.exam.version}</version> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-client</artifactId> + <version>${jetty.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.eclipse.jetty.websocket</groupId> + <artifactId>websocket-jetty-client</artifactId> + <version>${jetty.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.awaitility</groupId> + <artifactId>awaitility</artifactId> + <version>4.2.1</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-simple</artifactId> + <version>2.0.17</version> + <scope>test</scope> + </dependency> + + </dependencies> +</project>
Added: release/felix/org.apache.felix.http.jetty-5.1.34.pom.asc ============================================================================== --- release/felix/org.apache.felix.http.jetty-5.1.34.pom.asc (added) +++ release/felix/org.apache.felix.http.jetty-5.1.34.pom.asc Mon May 26 07:57:55 2025 @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- + +iHUEABYKAB0WIQRSTiGiaWYxRzGdVfjdKxesopvXqwUCaCRCYAAKCRDdKxesopvX +qzJ2AQCaCnSkfvIRc+HooluYHIL3WgvdEwGYMeSpWt8tmQkYTgD/cwdNjUHSYlFh +GVovFlM1IxBCvScyS4tmCYiGfyZ4FAI= +=w9Le +-----END PGP SIGNATURE----- Added: release/felix/org.apache.felix.http.jetty-5.1.34.pom.sha1 ============================================================================== --- release/felix/org.apache.felix.http.jetty-5.1.34.pom.sha1 (added) +++ release/felix/org.apache.felix.http.jetty-5.1.34.pom.sha1 Mon May 26 07:57:55 2025 @@ -0,0 +1 @@ +4ab987e2a4a01113767a8a6aba8338d345d3921c \ No newline at end of file Added: release/felix/org.apache.felix.http.jetty-5.1.34.pom.sha512 ============================================================================== --- release/felix/org.apache.felix.http.jetty-5.1.34.pom.sha512 (added) +++ release/felix/org.apache.felix.http.jetty-5.1.34.pom.sha512 Mon May 26 07:57:55 2025 @@ -0,0 +1 @@ +1c415204cd011078aea2207855202dfef6ba1cccc3c17cecc622e2f8e40d673243df6a76bddf34b1f53a8b3ec390b95baa5d7f4042d9838a3461eedbd416a069 org.apache.felix.http.jetty-5.1.34.pom
