4.0.0 org.apache.felix felix-parent 9 ../../pom/pom.xml Apache Felix Http Jetty This is an implementation of the R8.1 OSGi Servlet Service, the R7 OSGi Http Service and the R7 OSGi Http Whiteboard Specification org.apache.felix.http.jetty 5.1.12 bundle scm:git:https://github.com/apache/felix-dev.git scm:git:https://github.com/apache/felix-dev.git https://gitbox.apache.org/repos/asf?p=felix-dev.git org.apache.felix.http.jetty-5.1.12 11 11.0.20 true 4.13.3 -Xmx512M org.codehaus.gmaven groovy-maven-plugin 2.1.1 groovy-magic prepare-package execute 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(); } } } } ]]> org.apache.felix maven-bundle-plugin 5.1.9 true ${project.artifactId} ${project.version} ${jetty.version} org.apache.felix.http.jetty.internal.JettyActivator 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 org.apache.felix.http.base.*, org.apache.felix.http.jetty.*, org.eclipse.jetty, org.eclipse.jetty.version org.apache.commons.* 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)", * 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)" 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" 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 {maven-resources},${project.build.directory}/serviceloader-resources <_removeheaders> Private-Package,Conditional-Package bundle package bundle baseline baseline light-bundle bundle light ${project.name} Light ${project.artifactId}.light foo 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, org.apache.felix.http.javaxwrappers, org.apache.felix.http.jakartawrappers org.apache.felix.http.base.*, org.apache.felix.http.jetty.*, org.osgi.service.servlet.* 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)", * 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.contract;filter:="(&(osgi.contract=JavaServlet)(version=4.0))", osgi.contract;filter:="(&(osgi.contract=JakartaServlet)(version=5.0))" {maven-resources} <_removeheaders> X-Jetty-Version,Private-Package,Conditional-Package maven-surefire-plugin true org.apache.maven.plugins maven-failsafe-plugin integration-test integration-test integration-test verify integration-test verify true ${jetty.version} ${basedir}/target/${project.build.finalName}.jar ${pax.vm.options} javax.servlet javax.servlet-api 3.1.0 provided org.osgi osgi.core 6.0.0 provided org.osgi org.osgi.service.cm 1.5.0 provided org.osgi org.osgi.service.event 1.3.1 provided org.osgi org.osgi.service.metatype 1.4.0 provided org.osgi org.osgi.service.useradmin 1.1.0 provided org.eclipse.jetty jetty-servlet ${jetty.version} org.eclipse.jetty jetty-server ${jetty.version} org.eclipse.jetty jetty-util ${jetty.version} org.eclipse.jetty jetty-util-ajax ${jetty.version} org.eclipse.jetty jetty-jmx ${jetty.version} org.eclipse.jetty jetty-security ${jetty.version} org.eclipse.jetty.http2 http2-server ${jetty.version} org.eclipse.jetty.http2 http2-common ${jetty.version} org.eclipse.jetty.http2 http2-hpack ${jetty.version} org.eclipse.jetty jetty-alpn-server ${jetty.version} org.eclipse.jetty.websocket websocket-jakarta-server ${jetty.version} true org.eclipse.jetty.websocket websocket-jetty-server ${jetty.version} true org.osgi org.osgi.service.servlet 2.0.0 provided org.osgi org.osgi.service.http 1.2.1 provided org.osgi org.osgi.service.http.whiteboard 1.1.0 provided org.apache.felix org.apache.felix.http.base 5.1.8 org.apache.felix org.apache.felix.http.wrappers 1.0.2 commons-fileupload commons-fileupload 1.5 commons-io commons-io 2.11.0 junit junit 4.13.2 test org.mockito mockito-core 5.7.0 test org.osgi org.osgi.service.log 1.3.0 test org.apache.felix org.apache.felix.framework 7.0.5 test javax.inject javax.inject 1 test org.ops4j.pax.exam pax-exam ${org.ops4j.pax.exam.version} test org.ops4j.pax.exam pax-exam-cm ${org.ops4j.pax.exam.version} test org.ops4j.pax.exam pax-exam-container-forked ${org.ops4j.pax.exam.version} test org.ops4j.pax.exam pax-exam-junit4 ${org.ops4j.pax.exam.version} test org.ops4j.pax.exam pax-exam-link-mvn ${org.ops4j.pax.exam.version} test org.eclipse.jetty jetty-client ${jetty.version} test org.eclipse.jetty.websocket websocket-jetty-client ${jetty.version} test org.awaitility awaitility 4.2.1 test org.slf4j slf4j-simple 2.0.13 test