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 R7 OSGi Http Service and the R7 OSGi Http Whiteboard Specification org.apache.felix.http.jetty 4.1.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-4.1.4 8 9.4.35.v20201120 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 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.eclipse.jetty, !org.eclipse.jetty.util.log.jmx, !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.security.authentication, org.eclipse.jetty.util.log.jmx, org.eclipse.jetty.version org.apache.commons.* javax.imageio;resolution:=optional, javax.sql;resolution:=optional, org.slf4j.*;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.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.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.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=3.1))", 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.apache.felix.http.jetty org.apache.felix.http.base.*, org.apache.felix.http.jetty.* 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.eclipse.jetty.webapp;resolution:=optional, * 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.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=3.1))" {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.3.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-jmx ${jetty.version} org.eclipse.jetty jetty-security ${jetty.version} org.eclipse.jetty jetty-webapp ${jetty.version} org.eclipse.jetty.websocket websocket-servlet ${jetty.version} org.eclipse.jetty.websocket websocket-server ${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.http 1.2.1 provided org.osgi org.osgi.service.http.whiteboard 1.1.0 provided org.apache.felix org.apache.felix.http.base 4.1.2 commons-fileupload commons-fileupload 1.3.3 commons-io commons-io 2.6 org.osgi org.osgi.service.log 1.3.0 test