Added: release/felix/org.apache.felix.http.jetty-5.0.6.pom ============================================================================== --- release/felix/org.apache.felix.http.jetty-5.0.6.pom (added) +++ release/felix/org.apache.felix.http.jetty-5.0.6.pom Mon Aug 21 10:56:33 2023 @@ -0,0 +1,432 @@ +<!-- + 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>org.apache.felix.http.parent</artifactId> + <version>13</version> + <relativePath>../parent/pom.xml</relativePath> + </parent> + + <name>Apache Felix Http Jetty</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.0.6</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.0.6</tag> + </scm> + + <properties> + <felix.java.version>11</felix.java.version> + <jetty.version>11.0.15</jetty.version> + </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() )) { + 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.4</version> + <extensions>true</extensions> + <configuration> + <instructions> + <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, + !org.eclipse.jetty.version, + org.eclipse.jetty.*, + org.apache.felix.http.jetty + </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)", + org.slf4j;version="[1.0,3.0)", + * + </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> + <!-- Skip Baselining due to Jetty API --> + <skip>true</skip> + </configuration> + <executions> + <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.*, + org.apache.felix.http.jetty + </Export-Package> + <Private-Package> + org.apache.felix.http.base.*, + org.apache.felix.http.jetty.*, + org.osgi.service.servlet.* + </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> + </plugins> + </build> + + <dependencies> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>javax.servlet-api</artifactId> + </dependency> + <dependency> + <groupId>org.osgi</groupId> + <artifactId>osgi.core</artifactId> + </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.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.0</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.apache.felix</groupId> + <artifactId>org.apache.felix.http.base</artifactId> + <version>5.0.4</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.11.0</version> + </dependency> + <!-- Testing --> + <dependency> + <groupId>org.osgi</groupId> + <artifactId>org.osgi.service.log</artifactId> + <version>1.3.0</version> + <scope>test</scope> + </dependency> + </dependencies> +</project>
Added: release/felix/org.apache.felix.http.jetty-5.0.6.pom.asc ============================================================================== --- release/felix/org.apache.felix.http.jetty-5.0.6.pom.asc (added) +++ release/felix/org.apache.felix.http.jetty-5.0.6.pom.asc Mon Aug 21 10:56:33 2023 @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEX9UUWovQMXqU3HcTP89Sn/LyegYFAmTcoBMACgkQP89Sn/Ly +egbRZw//X++Cy0nDholbr4mK5Nq97M9e4keeBe8YHedNryOT726PsWyV86FuSBUI +qj7XgrEqpvJqWW2YAuSLoR9Sk/jRvr58jZa6+ymGvnEYgfk7kGxdLNMdiG8Jm5fV +gjM+RO+i6Wk5erIdoANLGY0YpaPrzyBYMPiZCFAFZrMaPjStNhBrg759Ru9VP/xu +42Om8WONnAB+/e+BQKI/Esbe4+q2zFRME27xffRp2cwcie17XGDhMdemER/6zKMO +EV82uurs3BqHQfdx3qxXcjRle6TLdRc5jW7fHEfAH2Qawz1QBTk+yNol25SacRrT +PQoxPdoyMfyb32PkemxV3FNocf8AjwyHEE3Ai3i0Clu7YP/h2lIPO7zhLtSCRWep +9qIGEwCrSPMeUx+DQ5maMva/4+caCOnUqKaRTm9i+by7ODZ8pBmqhz1Hl6JkBuCM +wKx0V6LuTA6kMVoVBFdswrabXrStlifJeG41h9OjF/LlS4xY0M4JVsTEQV+TlDgB +FJfho0DSuL6f4d2wdw0cpfMEX8eVbvzeK7UzBSVGIIqLhj0W5oP7y+e2FUHjGuhK +Pv+tbd92OuPJPxGDtr8TtuEsqjYhoZclWPck6ryBX2qnnnj/rdubI+49E94G8uCD +ZLlJVQ68CNJ2aec3I8XH2yMIXAMwuNruDWnWQfwi4Pnpl2WUgA4= +=Px5F +-----END PGP SIGNATURE----- Added: release/felix/org.apache.felix.http.jetty-5.0.6.pom.sha1 ============================================================================== --- release/felix/org.apache.felix.http.jetty-5.0.6.pom.sha1 (added) +++ release/felix/org.apache.felix.http.jetty-5.0.6.pom.sha1 Mon Aug 21 10:56:33 2023 @@ -0,0 +1 @@ +50a862a7b7c2d87640e0a2c02e5ed617bb11fcbe \ No newline at end of file Added: release/felix/org.apache.felix.http.jetty-5.0.6.pom.sha512 ============================================================================== --- release/felix/org.apache.felix.http.jetty-5.0.6.pom.sha512 (added) +++ release/felix/org.apache.felix.http.jetty-5.0.6.pom.sha512 Mon Aug 21 10:56:33 2023 @@ -0,0 +1 @@ +daed4f690bcdd65139f1e238c0fcdd0b14590a5baa339304c224248b5855db7fa98cc4041000ebae4c764e9696d4c3cbea9dfd275e3b3b80c1da1439ac8cb76c org.apache.felix.http.jetty-5.0.6.pom
