4.0.0 org.apache.felix org.apache.felix.http.parent 13 ../parent/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.0.4 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.0.4 11 11.0.13 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() )) { 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.4 true ${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, !org.eclipse.jetty.version, org.eclipse.jetty.*, org.apache.felix.http.jetty 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 true 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.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 javax.servlet javax.servlet-api org.osgi osgi.core 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.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.0.2 commons-fileupload commons-fileupload 1.5 commons-io commons-io 2.11.0 org.osgi org.osgi.service.log 1.3.0 test