diff --git a/Jenkinsfile b/Jenkinsfile index 0bb55ca2a056..352a0b668e72 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -112,7 +112,7 @@ def mavenBuild(jdk, cmdline, mvnName) { buildCache = useBuildCache() if (buildCache) { echo "Using build cache" - extraArgs = " -Dmaven.build.cache.restoreGeneratedSources=false -Dmaven.build.cache.remote.url=dav:http://nginx-cache-service.jenkins.svc.cluster.local:80 -Dmaven.build.cache.remote.enabled=true -Dmaven.build.cache.remote.save.enabled=true -Dmaven.build.cache.remote.server.id=remote-build-cache-server " + extraArgs = " -Dmaven.build.cache.restoreGeneratedSources=false -Dmaven.build.cache.remote.url=http://nginx-cache-service.jenkins.svc.cluster.local:80 -Dmaven.build.cache.remote.enabled=true -Dmaven.build.cache.remote.save.enabled=true -Dmaven.build.cache.remote.server.id=remote-build-cache-server -Daether.connector.http.supportWebDav=true " } else { // when not using cache echo "Not using build cache" diff --git a/jetty-core/jetty-osgi/src/main/java/org/eclipse/jetty/osgi/BundleWebAppProvider.java b/jetty-core/jetty-osgi/src/main/java/org/eclipse/jetty/osgi/BundleWebAppProvider.java index 7c5f8e9e3a2a..843e427551fb 100644 --- a/jetty-core/jetty-osgi/src/main/java/org/eclipse/jetty/osgi/BundleWebAppProvider.java +++ b/jetty-core/jetty-osgi/src/main/java/org/eclipse/jetty/osgi/BundleWebAppProvider.java @@ -64,7 +64,7 @@ public Object addingBundle(Bundle bundle, BundleEvent event) { try { - String serverName = (String)bundle.getHeaders().get(OSGiServerConstants.MANAGED_JETTY_SERVER_NAME); + String serverName = bundle.getHeaders().get(OSGiServerConstants.MANAGED_JETTY_SERVER_NAME); if ((StringUtil.isBlank(serverName) && _managedServerName.equals(OSGiServerConstants.MANAGED_JETTY_SERVER_DEFAULT_NAME)) || (!StringUtil.isBlank(serverName) && (serverName.equals(_managedServerName)))) diff --git a/jetty-core/jetty-osgi/src/main/java/org/eclipse/jetty/osgi/util/ServerConnectorListener.java b/jetty-core/jetty-osgi/src/main/java/org/eclipse/jetty/osgi/util/ServerConnectorListener.java index 7b50f89209f8..ce6d604b0b9a 100644 --- a/jetty-core/jetty-osgi/src/main/java/org/eclipse/jetty/osgi/util/ServerConnectorListener.java +++ b/jetty-core/jetty-osgi/src/main/java/org/eclipse/jetty/osgi/util/ServerConnectorListener.java @@ -42,7 +42,6 @@ public void lifeCycleStarted(LifeCycle event) { Files.deleteIfExists(_filePath); writer.write(((ServerConnector)event).getLocalPort()); - writer.close(); } catch (Exception e) { diff --git a/jetty-core/jetty-util/src/test/java/org/eclipse/jetty/util/resource/FileSystemResourceTest.java b/jetty-core/jetty-util/src/test/java/org/eclipse/jetty/util/resource/FileSystemResourceTest.java index e523f6cd5f01..c3aa50f53458 100644 --- a/jetty-core/jetty-util/src/test/java/org/eclipse/jetty/util/resource/FileSystemResourceTest.java +++ b/jetty-core/jetty-util/src/test/java/org/eclipse/jetty/util/resource/FileSystemResourceTest.java @@ -49,6 +49,7 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledOnOs; import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.api.parallel.Isolated; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsInAnyOrder; @@ -70,6 +71,7 @@ import static org.junit.jupiter.api.condition.OS.WINDOWS; @ExtendWith(WorkDirExtension.class) +@Isolated("Access static FileSystemPool.INSTANCE.mounts()") public class FileSystemResourceTest { diff --git a/jetty-ee8/jetty-ee8-annotations/pom.xml b/jetty-ee8/jetty-ee8-annotations/pom.xml index cb5757bffc32..d021a3de51c8 100644 --- a/jetty-ee8/jetty-ee8-annotations/pom.xml +++ b/jetty-ee8/jetty-ee8-annotations/pom.xml @@ -82,7 +82,7 @@ ${osgi.slf4j.import.packages},org.objectweb.asm;version="[$(version;==;${asm.version}),$(version;+;${asm.version}))",* - osgi.extender; filter:="(osgi.extender=osgi.serviceloader.registrar)", osgi.serviceloader; filter:="(osgi.serviceloader=jakarta.servlet.ServletContainerInitializer)";resolution:=optional;cardinality:=multiple, osgi.extender; filter:="(osgi.extender=osgi.serviceloader.processor)";resolution:=optional + osgi.extender; filter:="(osgi.extender=osgi.serviceloader.registrar)", osgi.serviceloader; filter:="(osgi.serviceloader=javax.servlet.ServletContainerInitializer)";resolution:=optional;cardinality:=multiple, osgi.extender; filter:="(osgi.extender=osgi.serviceloader.processor)";resolution:=optional osgi.serviceloader; osgi.serviceloader=org.eclipse.jetty.ee8.webapp.Configuration diff --git a/jetty-ee8/jetty-ee8-demos/jetty-ee8-demo-jetty-webapp/pom.xml b/jetty-ee8/jetty-ee8-demos/jetty-ee8-demo-jetty-webapp/pom.xml index 2ee97abce81b..d1b00b10c55c 100644 --- a/jetty-ee8/jetty-ee8-demos/jetty-ee8-demo-jetty-webapp/pom.xml +++ b/jetty-ee8/jetty-ee8-demos/jetty-ee8-demo-jetty-webapp/pom.xml @@ -134,13 +134,14 @@ !org.example* - / + /ee8-demo-jetty .,WEB-INF/classes + ee8 diff --git a/jetty-ee8/jetty-ee8-demos/jetty-ee8-demo-jetty-webapp/src/main/assembly/embedded-jetty-web-for-webbundle.xml b/jetty-ee8/jetty-ee8-demos/jetty-ee8-demo-jetty-webapp/src/main/assembly/embedded-jetty-web-for-webbundle.xml index 6a7eaa3f6678..0b4950e9a18e 100644 --- a/jetty-ee8/jetty-ee8-demos/jetty-ee8-demo-jetty-webapp/src/main/assembly/embedded-jetty-web-for-webbundle.xml +++ b/jetty-ee8/jetty-ee8-demos/jetty-ee8-demo-jetty-webapp/src/main/assembly/embedded-jetty-web-for-webbundle.xml @@ -11,7 +11,7 @@ directory, additional configuration may be specified and hot deployments detected. ===================================================================== --> - + @@ -19,15 +19,15 @@ detected. / - /webapps/ee9-demo-jetty.war + /webapps/ee8-demo-jetty.war true false - /etc/webdefault-ee9.xml - /etc/ee9-demo-override-web.xml + /etc/webdefault-ee8.xml + /etc/ee8-demo-override-web.xml + javax.servlet.jsp;version="[2.2.0,4.1)",javax.servlet.jsp.tagext;version="[2.2.0,4.1)",java.io,java.lang,java.text,java.util,javax.servlet;version="[4.0.0,5)",javax.servlet.http;version="[4.0.0,5)" !org.example.* /ee8-demo-jsp .,WEB-INF/classes + ee8 diff --git a/jetty-ee8/jetty-ee8-demos/jetty-ee8-demo-mock-resources/pom.xml b/jetty-ee8/jetty-ee8-demos/jetty-ee8-demo-mock-resources/pom.xml index b9024dd7f75d..e9a5917212a0 100644 --- a/jetty-ee8/jetty-ee8-demos/jetty-ee8-demo-mock-resources/pom.xml +++ b/jetty-ee8/jetty-ee8-demos/jetty-ee8-demo-mock-resources/pom.xml @@ -46,7 +46,7 @@ org.eclipse.jetty.ee8.demos.ee8-demo-mock-resources Mock resources used for testing org.example;version="${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}" - javax.sql, jakarta.transaction;version="1.3.3" + javax.sql, javax.transaction;version="1.3.3" <_nouses>true diff --git a/jetty-ee8/jetty-ee8-demos/jetty-ee8-demo-spec/jetty-ee8-demo-container-initializer/pom.xml b/jetty-ee8/jetty-ee8-demos/jetty-ee8-demo-spec/jetty-ee8-demo-container-initializer/pom.xml index 3291d0336606..122d285806b8 100644 --- a/jetty-ee8/jetty-ee8-demos/jetty-ee8-demo-spec/jetty-ee8-demo-container-initializer/pom.xml +++ b/jetty-ee8/jetty-ee8-demos/jetty-ee8-demo-spec/jetty-ee8-demo-container-initializer/pom.xml @@ -31,7 +31,7 @@ org.eclipse.jetty.ee8.demos.ee8-demo-servlet-container-initializer;singleton:=true A bundle containing a ServletContainerInitializer for testing osgi.extender; filter:="(osgi.extender=osgi.serviceloader.registrar)" - osgi.serviceloader; osgi.serviceloader=jakarta.servlet.ServletContainerInitializer + osgi.serviceloader; osgi.serviceloader=javax.servlet.ServletContainerInitializer org.example.initializer;version="${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}" <_nouses>true diff --git a/jetty-ee8/jetty-ee8-demos/jetty-ee8-demo-spec/jetty-ee8-demo-spec-webapp/pom.xml b/jetty-ee8/jetty-ee8-demos/jetty-ee8-demo-spec/jetty-ee8-demo-spec-webapp/pom.xml index 355cffc63708..5e2c5caf28f2 100644 --- a/jetty-ee8/jetty-ee8-demos/jetty-ee8-demo-spec/jetty-ee8-demo-spec-webapp/pom.xml +++ b/jetty-ee8/jetty-ee8-demos/jetty-ee8-demo-spec/jetty-ee8-demo-spec-webapp/pom.xml @@ -102,12 +102,13 @@ Test Webapp for Servlet 5.0 Features - jakarta.transaction*;version="2.0.0", jakarta.servlet*;version="[5,6)", org.eclipse.jetty*;version="[$(version;===;${parsedVersion.osgiVersion}),$(version;==+;${parsedVersion.osgiVersion}))", org.eclipse.jetty.webapp;version="[$(version;===;${parsedVersion.osgiVersion}),$(version;==+;${parsedVersion.osgiVersion}))";resolution:="optional", org.eclipse.jetty.plus.jndi;version="[$(version;===;${parsedVersion.osgiVersion}),$(version;==+;${parsedVersion.osgiVersion}))";resolution:="optional", org.example;version="${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}", * + javax.transaction*;version="[1.1,2.0)", javax.servlet*;version="[2.6,4.1)", org.eclipse.jetty*;version="[$(version;===;${parsedVersion.osgiVersion}),$(version;==+;${parsedVersion.osgiVersion}))", org.eclipse.jetty.webapp;version="[$(version;===;${parsedVersion.osgiVersion}),$(version;==+;${parsedVersion.osgiVersion}))";resolution:="optional", org.eclipse.jetty.plus.jndi;version="[$(version;===;${parsedVersion.osgiVersion}),$(version;==+;${parsedVersion.osgiVersion}))";resolution:="optional", org.example;version="${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}", * <_nouses> org.example.test;version="${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}";-noimport:=true / .,WEB-INF/classes,WEB-INF/lib - /META-INF/plugin-context.xml + META-INF/plugin-context.xml + ee8 diff --git a/jetty-ee8/jetty-ee8-jndi/pom.xml b/jetty-ee8/jetty-ee8-jndi/pom.xml index 9911bb7cb942..7cf9bc6e3c01 100644 --- a/jetty-ee8/jetty-ee8-jndi/pom.xml +++ b/jetty-ee8/jetty-ee8-jndi/pom.xml @@ -57,7 +57,7 @@ true - ${osgi.slf4j.import.packages},jakarta.mail.*;resolution:=optional,* + ${osgi.slf4j.import.packages},javax.mail.*;resolution:=optional,* diff --git a/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot-jsp/pom.xml b/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot-jsp/pom.xml new file mode 100644 index 000000000000..9f9a3464e626 --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot-jsp/pom.xml @@ -0,0 +1,151 @@ + + + 4.0.0 + + org.eclipse.jetty.ee8.osgi + jetty-ee8-osgi + 12.0.3-SNAPSHOT + + jetty-ee8-osgi-boot-jsp + EE8 :: OSGi :: Boot JSP + Jetty OSGi Boot JSP bundle + + ${project.groupId}.boot.jsp + jetty-ee9-osgi/jetty-ee9-osgi-boot-jsp + 2.3 + org.eclipse.jetty.ee8.osgi.boot.jasper.*,org.eclipse.jetty.ee8.osgi.boot.jsp.* + + + + org.eclipse.jetty + jetty-deploy + + + + org.eclipse.jetty.ee8 + jetty-ee8-apache-jsp + + + + org.eclipse.jetty.toolchain + jetty-servlet-api + + + org.eclipse.platform + org.eclipse.osgi + + + org.eclipse.platform + org.eclipse.osgi.services + + + org.eclipse.jetty.ee8.osgi + jetty-ee8-osgi-boot + provided + + + + + + + + org.apache.felix + maven-bundle-plugin + true + + + Jetty-OSGi-Jasper Integration + + org.eclipse.jetty.ee8.osgi.boot + !org.eclipse.jetty.ee8.osgi.boot.* + ${osgi.slf4j.import.packages}, + org.eclipse.jdt.*;resolution:=optional, + org.eclipse.jdt.core.compiler.*;resolution:=optional, + com.sun.el;resolution:=optional, + com.sun.el.lang;resolution:=optional, + com.sun.el.parser;resolution:=optional, + com.sun.el.util;resolution:=optional, + javax.el;version="[3.0,3.1)", + javax.servlet;version="[$(version;==;${jetty.servlet.api.version}),$(version;+;${jetty.servlet.api.version}))", + javax.servlet.resources;version="[$(version;==;${jetty.servlet.api.version}),$(version;+;${jetty.servlet.api.version}))", + javax.servlet.jsp.resources;version="[$(version;==;${javax.servlet.jsp.api.version}),$(version;+;${javax.servlet.jsp.api.version}))", + javax.servlet.jsp;version="[$(version;==;${javax.servlet.jsp.api.version}),$(version;+;${javax.servlet.jsp.api.version}))", + javax.servlet.jsp.el;version="[$(version;==;${javax.servlet.jsp.api.version}),$(version;+;${javax.servlet.jsp.api.version}))", + javax.servlet.jsp.tagext;version="[$(version;==;${javax.servlet.jsp.api.version}),$(version;+;${javax.servlet.jsp.api.version}))", + javax.servlet.jsp.jstl.core;version="1.2";resolution:=optional, + javax.servlet.jsp.jstl.fmt;version="1.2";resolution:=optional, + javax.servlet.jsp.jstl.sql;version="1.2";resolution:=optional, + javax.servlet.jsp.jstl.tlv;version="1.2";resolution:=optional, + org.apache.el;version="[$(version;==;${jspImpl.osgiVersion}),$(version;+;${jspImpl.osgiVersion}))";resolution:=optional, + org.apache.el.lang;version="[$(version;==;${jspImpl.osgiVersion}),$(version;+;${jspImpl.osgiVersion}))";resolution:=optional, + org.apache.el.stream;version="[$(version;==;${jspImpl.osgiVersion}),$(version;+;${jspImpl.osgiVersion}))";resolution:=optional, + org.apache.el.util;version="[$(version;==;${jspImpl.osgiVersion}),$(version;+;${jspImpl.osgiVersion}))";resolution:=optional, + org.apache.el.parser;version="[$(version;==;${jspImpl.osgiVersion}),$(version;+;${jspImpl.osgiVersion}))";resolution:=optional, + org.apache.jasper;version="[$(version;==;${jspImpl.osgiVersion}),$(version;+;${jspImpl.osgiVersion}))";resolution:=optional, + org.apache.jasper.compiler;version="[$(version;==;${jspImpl.osgiVersion}),$(version;+;${jspImpl.osgiVersion}))";resolution:=optional, + org.apache.jasper.compiler.tagplugin;version="[$(version;==;${jspImpl.osgiVersion}),$(version;+;${jspImpl.osgiVersion}))";resolution:=optional, + org.apache.jasper.runtime;version="[$(version;==;${jspImpl.osgiVersion}),$(version;+;${jspImpl.osgiVersion}))";resolution:=optional, + org.apache.jasper.security;version="[$(version;==;${jspImpl.osgiVersion}),$(version;+;${jspImpl.osgiVersion}))";resolution:=optional, + org.apache.jasper.servlet;version="[$(version;==;${jspImpl.osgiVersion}),$(version;+;${jspImpl.osgiVersion}))";resolution:=optional, + org.apache.jasper.tagplugins.jstl;version="[$(version;==;${jspImpl.osgiVersion}),$(version;+;${jspImpl.osgiVersion}))";resolution:=optional, + org.apache.jasper.util;version="[$(version;===;${jspImpl.osgiVersion}),$(version;+;${jspImpl.osgiVersion}))";resolution:=optional, + org.apache.jasper.xmlparser;version="[$(version;==;${jspImpl.osgiVersion}),$(version;+;${jspImpl.osgiVersion}))";resolution:=optional, + org.apache.taglibs.standard;version="1.2";resolution:=optional, + org.apache.taglibs.standard.extra.spath;version="1.2";resolution:=optional, + org.apache.taglibs.standard.functions;version="1.2";resolution:=optional, + org.apache.taglibs.standard.lang.jstl;version="1.2";resolution:=optional, + org.apache.taglibs.standard.lang.jstl.parser;version="1.2";resolution:=optional, + org.apache.taglibs.standard.lang.jstl.test;version="1.2";resolution:=optional, + org.apache.taglibs.standard.lang.jstl.test.beans;version="1.2";resolution:=optional, + org.apache.taglibs.standard.lang.support;version="1.2";resolution:=optional, + org.apache.taglibs.standard.resources;version="1.2";resolution:=optional, + org.apache.taglibs.standard.tag.common.core;version="1.2";resolution:=optional, + org.apache.taglibs.standard.tag.common.fmt;version="1.2";resolution:=optional, + org.apache.taglibs.standard.tag.common.sql;version="1.2";resolution:=optional, + org.apache.taglibs.standard.tag.common.xml;version="1.2";resolution:=optional, + org.apache.taglibs.standard.tag.el.core;version="1.2";resolution:=optional, + org.apache.taglibs.standard.tag.el.fmt;version="1.2";resolution:=optional, + org.apache.taglibs.standard.tag.el.sql;version="1.2";resolution:=optional, + org.apache.taglibs.standard.tag.el.xml;version="1.2";resolution:=optional, + org.apache.taglibs.standard.tag.rt.core;version="1.2";resolution:=optional, + org.apache.taglibs.standard.tag.rt.fmt;version="1.2";resolution:=optional, + org.apache.taglibs.standard.tag.rt.sql;version="1.2";resolution:=optional, + org.apache.taglibs.standard.tag.rt.xml;version="1.2";resolution:=optional, + org.apache.taglibs.standard.tei;version="1.2";resolution:=optional, + org.apache.taglibs.standard.tlv;version="1.2";resolution:=optional, + org.apache.tomcat;version="[$(version;==;${jspImpl.osgiVersion}),$(version;+;${jspImpl.osgiVersion}))";resolution:=optional, + org.eclipse.jetty.ee8.jsp;version="[$(version;===;${parsedVersion.osgiVersion}),$(version;==+;${parsedVersion.osgiVersion}))";resolution:=optional, + org.osgi.*, + org.xml.*;resolution:=optional, + org.xml.sax.*;resolution:=optional, + javax.xml.*;resolution:=optional, + org.w3c.dom;resolution:=optional, + org.w3c.dom.ls;resolution:=optional, + javax.xml.parser;resolution:=optional + org.eclipse.jetty.ee8.jsp.*;version="[$(version;===;${parsedVersion.osgiVersion}),$(version;==+;${parsedVersion.osgiVersion}))", + org.apache.jasper.*;version="[$(version;===;${jspImpl.osgiVersion}),$(version;+;${jspImpl.osgiVersion}))", + org.apache.el.*;version="[$(version;===;${jspImpl.osgiVersion}),$(version;+;${jspImpl.osgiVersion}))" + + + + + + org.codehaus.mojo + build-helper-maven-plugin + + + set-jsp-api-version + + parse-version + + validate + + ${jsp.impl.version} + jspImpl + + + + + + + diff --git a/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/jettyhome/contexts/README b/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/jettyhome/contexts/README new file mode 100644 index 000000000000..91f4a49ead32 --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/jettyhome/contexts/README @@ -0,0 +1,2 @@ +Default locations for standard context definitions. +Those applications are unlikely to have access to the OSGi framework currently. \ No newline at end of file diff --git a/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/jettyhome/etc/README b/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/jettyhome/etc/README new file mode 100644 index 000000000000..dbc9fa715646 --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/jettyhome/etc/README @@ -0,0 +1,2 @@ +This folder contains the default jetty configurations file for the server. +In production, it is likely to be a different folder outside of the jetty's bootstrap plugin. \ No newline at end of file diff --git a/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/jettyhome/etc/jetty-deploy.xml b/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/jettyhome/etc/jetty-deploy.xml new file mode 100644 index 000000000000..88fc1a79e598 --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/jettyhome/etc/jetty-deploy.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/jettyhome/etc/jetty-http.xml b/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/jettyhome/etc/jetty-http.xml new file mode 100644 index 000000000000..bbd9ab19ed56 --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/jettyhome/etc/jetty-http.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/jettyhome/etc/jetty.xml b/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/jettyhome/etc/jetty.xml new file mode 100644 index 000000000000..a2e40523909c --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/jettyhome/etc/jetty.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + 10 + 200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.naming.factory.initial + + + + java.naming.factory.url.pkgs + + + + diff --git a/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/jettyhome/lib/ext/README b/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/jettyhome/lib/ext/README new file mode 100644 index 000000000000..921d5f41bd43 --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/jettyhome/lib/ext/README @@ -0,0 +1,2 @@ +Place here the jars that are inserted in the jetty classloader. +As similar as possible as what this folder was for in the classical jetty installation. diff --git a/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/jettyhome/logs/README b/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/jettyhome/logs/README new file mode 100644 index 000000000000..ef503747e9d6 --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/jettyhome/logs/README @@ -0,0 +1,3 @@ +This folder contains the logs by default during development time. +In production or outside the eclipse PDE, it is likely that a different jetty.home +was set or jetty.log so it won't be here. \ No newline at end of file diff --git a/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/jettyhome/resources/README b/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/jettyhome/resources/README new file mode 100644 index 000000000000..f2baef21eff7 --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/jettyhome/resources/README @@ -0,0 +1,2 @@ +This folder is part of the class-loader shared by the webapps run in jetty. +Typically it contains log4j configuration files. \ No newline at end of file diff --git a/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/jettyhome/webapps/README b/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/jettyhome/webapps/README new file mode 100644 index 000000000000..08a57edf6ef8 --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/jettyhome/webapps/README @@ -0,0 +1,2 @@ +Default locations for standard web-applications. +Those applications are unlikely to have access to the OSGi framework currently. \ No newline at end of file diff --git a/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/pom.xml b/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/pom.xml new file mode 100644 index 000000000000..e5d19dc085fa --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/pom.xml @@ -0,0 +1,125 @@ + + + 4.0.0 + + org.eclipse.jetty.ee8.osgi + jetty-ee8-osgi + 12.0.3-SNAPSHOT + + jetty-ee8-osgi-boot + EE8 :: OSGi :: Boot + Jetty OSGi Boot bundle + + ${project.groupId}.boot + jetty-ee9-osgi/jetty-ee9-osgi-boot + org.eclipse.jetty.ee8.osgi.boot.* + + + + org.eclipse.jetty + jetty-jmx + + + org.eclipse.jetty + jetty-osgi + + + org.eclipse.jetty.ee8 + jetty-ee8-annotations + + + org.eclipse.jetty.ee8 + jetty-ee8-webapp + + + org.eclipse.platform + org.eclipse.osgi + + + org.eclipse.platform + org.eclipse.osgi.services + + + org.osgi + org.osgi.service.cm + + + org.osgi + org.osgi.service.event + + + org.osgi + org.osgi.util.tracker + + + + + + + src/main/resources + + + + + org.apache.felix + maven-bundle-plugin + true + + + org.eclipse.jetty.ee8.osgi.boot;singleton:=true + org.eclipse.jetty.ee8.osgi.boot.EE8Activator + org.eclipse.jetty.*;version="[$(version;===;${parsedVersion.osgiVersion}),$(version;==+;${parsedVersion.osgiVersion}))", org.eclipse.jetty.ee8.*;version="[$(version;===;${parsedVersion.osgiVersion}),$(version;==+;${parsedVersion.osgiVersion}))" + ${osgi.slf4j.import.packages}, + javax.mail;version="2.0";resolution:=optional, + javax.mail.event;version="2.0";resolution:=optional, + javax.mail.internet;version="2.0";resolution:=optional, + javax.mail.search;version="2.0";resolution:=optional, + javax.mail.util;version="2.0";resolution:=optional, + javax.servlet;version="[$(version;==;${jetty.servlet.api.version}),$(version;+;${jetty.servlet.api.version}))", + javax.servlet.http;version="[$(version;==;${jetty.servlet.api.version}),$(version;+;${jetty.servlet.api.version}))", + javax.transaction;version="2.0.0";resolution:=optional, + javax.transaction.xa;version="2.0.0";resolution:=optional, + org.objectweb.asm;version="$(version;=;${asm.version})";resolution:=optional, + org.osgi.framework, + org.osgi.service.cm;version="${osgi-service-cm-version}", + org.osgi.service.component;version="${osgi-service-component-version}", + org.osgi.service.event;version="${osgi-service-event-version}", + org.osgi.service.packageadmin, + org.osgi.service.startlevel;version="1.0.0", + org.osgi.service.url;version="1.0.0", + org.osgi.util.tracker;version="${osgi-util-tracker-version}", + org.xml.sax, + org.xml.sax.helpers, + org.eclipse.jetty.ee8.annotations;resolution:=optional, + * + osgi.extender; filter:="(osgi.extender=osgi.serviceloader.registrar)" + osgi.serviceloader; osgi.serviceloader=org.eclipse.jetty.ee8.webapp.Configuration + <_nouses>true + + + + + maven-antrun-plugin + + + + run + + process-resources + + + + + + + + + + + + + + + + + diff --git a/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/src/main/resources/META-INF/services/org.eclipse.jetty.ee8.webapp.Configuration b/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/src/main/resources/META-INF/services/org.eclipse.jetty.ee8.webapp.Configuration new file mode 100644 index 000000000000..1b480430ab6a --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/jetty-ee8-osgi-boot/src/main/resources/META-INF/services/org.eclipse.jetty.ee8.webapp.Configuration @@ -0,0 +1,2 @@ +org.eclipse.jetty.ee8.osgi.annotations.AnnotationConfiguration +org.eclipse.jetty.ee8.osgi.boot.OSGiMetaInfConfiguration diff --git a/jetty-ee8/jetty-ee8-osgi/pom.xml b/jetty-ee8/jetty-ee8-osgi/pom.xml new file mode 100644 index 000000000000..fc4ff8627ad9 --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/pom.xml @@ -0,0 +1,71 @@ + + + + 4.0.0 + + org.eclipse.jetty.ee8 + jetty-ee8 + 12.0.3-SNAPSHOT + + org.eclipse.jetty.ee8.osgi + jetty-ee8-osgi + pom + EE8 :: OSGi + + + jetty-ee8-osgi-boot + jetty-ee8-osgi-boot-jsp + test-jetty-ee8-osgi-webapp-resources + test-jetty-ee8-osgi-fragment + test-jetty-ee8-osgi-server + test-jetty-ee8-osgi + + + + true + + + + + + org.eclipse.jetty.ee8.osgi + jetty-ee8-osgi-boot + ${project.version} + + + org.eclipse.jetty.ee8.osgi + jetty-ee8-osgi-boot-jsp + ${project.version} + + + + + + + + true + META-INF/.. + + META-INF/**/* + + + **/.* + **/*.jar + .settings/**/* + pom.xml + + jettyhome/**/* + src/**/* + target/**/* + build.properties + + + + src/main/java + + **/*.java + + + + + diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi-fragment/pom.xml b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi-fragment/pom.xml new file mode 100644 index 000000000000..2b93bae539a5 --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi-fragment/pom.xml @@ -0,0 +1,41 @@ + + + 4.0.0 + + org.eclipse.jetty.ee8.osgi + jetty-ee8-osgi + 12.0.3-SNAPSHOT + + test-jetty-ee8-osgi-fragment + EE8 :: OSGi :: WebApp Fragment + Test Jetty OSGi Webapp Fragment bundle + + ${project.groupId}.webapp.fragment + true + true + + + + + src/main/resources + + + + + org.apache.felix + maven-bundle-plugin + true + + + ${bundle-symbolic-name} + Jetty OSGi Test WebApp Fragment + J2SE-1.5 + org.eclipse.jetty.ee8.demos.spec.webapp + / + + + + + + + diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi-fragment/src/main/resources/frag.html b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi-fragment/src/main/resources/frag.html new file mode 100644 index 000000000000..9dd6187f75e7 --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi-fragment/src/main/resources/frag.html @@ -0,0 +1,5 @@ + + +

FRAGMENT

+ + diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi-server/pom.xml b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi-server/pom.xml new file mode 100644 index 000000000000..919b6c044bc4 --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi-server/pom.xml @@ -0,0 +1,71 @@ + + + 4.0.0 + + org.eclipse.jetty.ee8.osgi + jetty-ee8-osgi + 12.0.3-SNAPSHOT + + test-jetty-ee8-osgi-server + EE8 :: OSGi :: Server + Test Jetty OSGi bundle with a Server + + ${project.groupId}.testserver + jetty-ee9-osgi/test-jetty-ee9-osgi-server + true + true + + + + org.eclipse.jetty + jetty-osgi + + + org.eclipse.jetty.ee8 + jetty-ee8-webapp + + + org.eclipse.platform + org.eclipse.osgi + provided + + + org.eclipse.platform + org.eclipse.osgi.services + provided + + + + + + + org.apache.felix + maven-bundle-plugin + true + + + ${bundle-symbolic-name} + Jetty OSGi Test Server + com.acme.osgi.Activator + J2SE-1.5 + + <_nouses>true + org.osgi.framework, + org.osgi.service.cm;version="${osgi-service-cm-version}", + org.osgi.service.packageadmin, + org.osgi.service.startlevel;version="1.0.0", + org.osgi.service.url;version="1.0.0", + org.osgi.util.tracker;version="${osgi-util-tracker-version}", + org.xml.sax, + org.xml.sax.helpers, + * + org.eclipse.jetty.*;version="[$(version;==;${parsedVersion.osgiVersion}),$(version;+;${parsedVersion.osgiVersion}))" + + + + + + + diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi-server/src/main/resources/index.html b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi-server/src/main/resources/index.html new file mode 100644 index 000000000000..9e62c04bb91d --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi-server/src/main/resources/index.html @@ -0,0 +1,6 @@ + + +

Test OSGi WebApp

+

Webapp registered by bundle as service successfully deployed.

+ + diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi-webapp-resources/pom.xml b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi-webapp-resources/pom.xml new file mode 100644 index 000000000000..e53c75ad77e1 --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi-webapp-resources/pom.xml @@ -0,0 +1,74 @@ + + + 4.0.0 + + org.eclipse.jetty.ee8.osgi + jetty-ee8-osgi + 12.0.3-SNAPSHOT + + test-jetty-ee8-osgi-webapp-resources + war + EE8 :: OSGi :: WebApp With Resources + + ${project.groupId}.webapp.resources + jetty-ee9-osgi/test-jetty-ee9-osgi-webapp-resources + true + true + + + + org.eclipse.jetty.toolchain + jetty-servlet-api + provided + + + + + + org.apache.felix + maven-bundle-plugin + true + + + war + + + !com.acme* + / + ee8 + + + + + org.apache.maven.plugins + maven-resources-plugin + + + copy-resources + + copy-resources + + validate + + ${basedir}/target/classes + + + src/main/resources + + + + + + + + + maven-war-plugin + + + ${project.build.outputDirectory}/META-INF/MANIFEST.MF + + + + + + diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi-webapp-resources/src/main/resources/fake.properties b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi-webapp-resources/src/main/resources/fake.properties new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi-webapp-resources/src/main/webapp/WEB-INF/web.xml b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi-webapp-resources/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 000000000000..90efb1dceace --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi-webapp-resources/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,24 @@ + + + + WebApp With Resources + + + Hello + com.acme.HelloWorld + 1 + + + + Hello + /hello/* + + + + + diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/README.txt b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/README.txt new file mode 100644 index 000000000000..471571132c76 --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/README.txt @@ -0,0 +1,220 @@ +Unit Tests with OSGi +==================== + +The unit tests use PaxExam https://ops4j1.jira.com/wiki/spaces/PAXEXAM4/overview +to fork a jvm to start an OSGi container (currently eclipse) and deploy the jetty +jars as osgi bundles, along with the jetty-ee9-osgi infrastructure (like jetty-ee9-osgi-boot). + +To run all the tests: + mvn test + +To run a particular test: + mvn test -Dtest=[name of test] + + +At the time of writing, PaxExam only works with junit-4, so you may not be +able to invoke them easily from your IDE. + + +Logging +------- + +By default, very little log info comes out of the tests. If you wish to see more +logging information, you can control this from the command line. + +There are 2 sources of logging information: 1) the pax environment and 2) jetty logs. + +To set the logging level for the pax environment use the following system property: + + mvn -Dpax.exam.LEVEL=[log level] + +INFO, WARN and TRACE are known to work. + +To set the logging level for the jetty logs edit the src/test/resources/jetty-logging.properties +to set the logging level you want and rerun your tests. The usual jetty logging levels apply. + + + +General Test Diagnostics +------------------------ + +There are generally only ever 2 things wrong with the jetty/osgi interworking: + +1. you've added or changed an existing jetty-whatever subproject to use the java ServiceLoader, but you haven't put the right entries into the jar's manifest to allow ServiceLoader to work in osgi + +2. you've upgraded the jvm version and the version of Aries SpiFly that we use to provide ServiceLoader functionality in osgi does not support parsing java classes compiled with the new version + + +* Diagnosing problem 1: + +Can be an obvious failure, because the osgi test that exercises your feature fails. Worst case is that your code substitutes the missing service with some default that isn't your new feature and it's never detected because the test still works. That's a problem with the design of the test, c'est la vie. + +Other problems with misconfigured manifests are usually to do with missing or incorrect Import-Package/Export-Package statements. This usually isn't a problem because we mostly automatically generate these using the mvn bnd tool during assembly of the jar, but can become a problem if the manifest has been manually cobbled together in the pom.xml. You'll notice these failures because an osgi test will fail with messages something like the following: + +Bundle [id:24, url:mvn:org.eclipse.jetty/jetty-util/11.0.0-SNAPSHOT] is not resolved + +To diagnose that further, you can rerun the test, and ask it to spit out a list of the status of every jetty jar that is deployed. To do that, supply the following system property at the command line: +mvn -Dbundle.debug=true + +You'll see several lines of output like the following. All of the bundles should be state 32 (active) or state 4 (resolved): + +ACTIVE 32 +RESOLVED 4 +INSTALLED 2 +0 org.eclipse.osgi System Bundle 3.15.100.v20191114-1701 32 +1 org.ops4j.pax.exam file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.ops4j.pax.exam_4.13.1.jar 4.13.1 32 +2 org.ops4j.pax.exam.inject file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.ops4j.pax.exam.inject_4.13.1.jar 4.13.1 32 +3 org.ops4j.pax.exam.extender.service file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.ops4j.pax.exam.extender.service_4.13.1.jar 4.13.1 32 +4 osgi.cmpn file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/osgi.cmpn_4.3.1.201210102024.jar 4.3.1.201210102024 32 +5 org.ops4j.pax.logging.pax-logging-api file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.ops4j.pax.logging.pax-logging-api_1.10.1.jar 1.10.1 32 +6 org.ops4j.base file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.ops4j.base_1.5.0.jar 1.5.0 32 +7 org.ops4j.pax.swissbox.core file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.ops4j.pax.swissbox.core_1.8.2.jar 1.8.2 32 +8 org.ops4j.pax.swissbox.extender file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.ops4j.pax.swissbox.extender_1.8.2.jar 1.8.2 32 +9 org.ops4j.pax.swissbox.framework file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.ops4j.pax.swissbox.framework_1.8.2.jar 1.8.2 32 +10 org.ops4j.pax.swissbox.lifecycle file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.ops4j.pax.swissbox.lifecycle_1.8.2.jar 1.8.2 32 +11 org.ops4j.pax.swissbox.tracker file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.ops4j.pax.swissbox.tracker_1.8.2.jar 1.8.2 32 +12 org.apache.geronimo.specs.geronimo-atinject_1.0_spec file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.apache.geronimo.specs.geronimo-atinject_1.0_spec_1.0.jar 1.0.0 32 +13 org.ops4j.pax.tipi.junit file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.ops4j.pax.tipi.junit_4.12.0.1.jar 4.12.0.1 32 +14 org.ops4j.pax.tipi.hamcrest.core file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.ops4j.pax.tipi.hamcrest.core_1.3.0.1.jar 1.3.0.1 32 +15 org.ops4j.pax.exam.invoker.junit file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.ops4j.pax.exam.invoker.junit_4.13.1.jar 4.13.1 32 +16 org.eclipse.jetty.servlet-api file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.servlet-api_4.0.3.jar 4.0.3 32 +17 org.objectweb.asm file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.objectweb.asm_7.2.0.jar 7.2.0 32 +18 org.objectweb.asm.commons file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.objectweb.asm.commons_7.2.0.jar 7.2.0 32 +19 org.objectweb.asm.tree file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.objectweb.asm.tree_7.2.0.jar 7.2.0 32 +20 org.apache.aries.spifly.dynamic.bundle file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.apache.aries.spifly.dynamic.bundle_1.2.3.jar 1.2.3 32 +21 jakarta.annotation-api file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/jakarta.annotation-api_1.3.4.jar 1.3.4 32 +22 org.apache.geronimo.specs.geronimo-jta_1.1_spec file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.apache.geronimo.specs.geronimo-jta_1.1_spec_1.1.1.jar 1.1.1 32 +23 slf4j.api file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/slf4j.api_2.0.0.alpha1.jar 2.0.0.alpha1 4 +24 slf4j.log4j12 file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/slf4j.log4j12_2.0.0.alpha1.jar 2.0.0.alpha1 4 +25 org.eclipse.jetty.util file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.util_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 32 +26 org.eclipse.jetty.deploy file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.deploy_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 32 +27 org.eclipse.jetty.server file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.server_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 32 +28 org.eclipse.jetty.servlet file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.servlet_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 32 +29 org.eclipse.jetty.http file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.http_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 32 +30 org.eclipse.jetty.xml file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.xml_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 32 +31 org.eclipse.jetty.webapp file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.webapp_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 32 +32 org.eclipse.jetty.io file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.io_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 32 +33 org.eclipse.jetty.security file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.security_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 32 +34 org.eclipse.jetty.servlets file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.servlets_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 32 +35 org.eclipse.jetty.client file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.client_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 32 +36 org.eclipse.jetty.jndi file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.jndi_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 32 +37 org.eclipse.jetty.plus file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.plus_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 32 +38 org.eclipse.jetty.annotations file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.annotations_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 32 +39 org.eclipse.jetty.websocket.core file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.websocket.core_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 32 +40 org.eclipse.jetty.websocket.servlet file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.websocket.servlet_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 32 +41 org.eclipse.jetty.websocket.util file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.websocket.util_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 32 +42 org.eclipse.jetty.ee9.websocket.api file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.ee9.websocket.api_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 32 +43 org.eclipse.jetty.websocket.server file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.websocket.server_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 32 +44 org.eclipse.jetty.ee9.websocket.client file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.ee9.websocket.client_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 32 +45 org.eclipse.jetty.websocket.common file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.websocket.common_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 32 +46 org.eclipse.jetty.websocket-api file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.websocket-api_1.1.2.jar 1.1.2 4 +47 org.eclipse.jetty.websocket.javax.server file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.websocket.javax.server_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 4 +48 org.eclipse.jetty.websocket.javax.client file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.websocket.javax.client_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 4 +49 org.eclipse.jetty.websocket.javax.common file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.websocket.javax.common_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 4 +50 org.eclipse.jetty.ee9.osgi.boot file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.ee9.osgi.boot_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 32 +51 org.eclipse.jetty.alpn.java.client file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.alpn.java.client_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 32 +52 org.eclipse.jetty.alpn.client file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.alpn.client_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 32 +53 javax.servlet.jsp.jstl file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/javax.servlet.jsp.jstl_1.2.0.v201105211821.jar 1.2.0.v201105211821 32 +54 org.mortbay.jasper.apache-el file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.mortbay.jasper.apache-el_9.0.29.jar 9.0.29 32 +55 org.mortbay.jasper.apache-jsp file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.mortbay.jasper.apache-jsp_9.0.29.jar 9.0.29 32 +56 org.eclipse.jetty.apache-jsp file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.apache-jsp_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 32 +57 org.glassfish.web.javax.servlet.jsp.jstl file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.glassfish.web.javax.servlet.jsp.jstl_1.2.2.jar 1.2.2 32 +58 org.eclipse.jdt.core.compiler.batch file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jdt.core.compiler.batch_3.19.0.v20190903-0936.jar 3.19.0.v20190903-0936 32 +59 org.eclipse.jetty.ee9.osgi.boot.jsp file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.ee9.osgi.boot.jsp_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 4 +60 org.eclipse.jetty.tests.webapp file:/home/janb/src/jetty-eclipse/jetty-10.0.x/jetty-ee9-osgi/test-jetty-ee9-osgi/target/1584628869418-0/pax-exam-downloads/org.eclipse.jetty.tests.webapp_10.0.0.SNAPSHOT.jar 10.0.0.SNAPSHOT 32 +61 PAXEXAM-PROBE-d9c5a341-5c98-4084-b814-8303880cb447 local 0.0.0 32 + + +If things didn't go so well, and some bundle that should be in state ACTIVE (32) isn't, then you'll see diagnosis like this: + +Trying to start the bundle org.glassfish.web.jakarta.servlet.jsp.jstl that was supposed to be active or resolved. +org.glassfish.web.jakarta.servlet.jsp.jstl failed to start +org.osgi.framework.BundleException: Could not resolve module: org.glassfish.web.jakarta.servlet.jsp.jstl [57] + Unresolved requirement: Import-Package: jakarta.servlet.jsp.jstl.core + +The "Unresolved requirement" means either that some bundle that exports that package has not been deployed, or that it is deployed, but it's manifest is screwed up, and didn't expose that package. Check the test code for the mavenBundle() statements to ascertain if it has been deployed, and then check the manifest inside the jar for the Export-Package statements to verify the correct packages are exported. + + + +* Diagnosing Problem 2 + +If you've upgraded the jetty jar and that's all you've changed, then more than likely it's a SpiFly versioning problem. SpiFly internally uses asm to parse classes to find services for the ServiceLoader, so it can be that the version of asm used by SpiFly doesn't support the higher jvm version. At the time of writing SpiFly is shipping an older version of asm baked into their jars, so very likely it won't support anything above jdk13. + +Also, if you don't see any test failures with unresolved jar messages, then it's also a good indicator that the problem is with SpiFly versioning. Unfortunately, when the problem is a jvm/SpiFly versioning mismatch, the osgi paxexam environment doesn't output any good log messages. There is a java.lang.Error that is thrown from inside asm that the environment doesn't pass on in any useful fashion. + +To try and catch this error, you can modify the ServletInstanceWrapper at line 163 to catch Throwable instead of Exception: +https://github.com/eclipse/jetty.project/blob/jetty-10.0.x/jetty-ee9-osgi/jetty-ee9-osgi-boot/src/main/java/org/eclipse/jetty/osgi/boot/internal/serverfactory/ServerInstanceWrapper.java#L163 + +When you do this, you get output like the following: + +java.lang.ClassFormatError: Unexpected error from weaving hook. +at org.eclipse.osgi.internal.weaving.WeavingHookConfigurator.processClass(WeavingHookConfigurator.java:77) +at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.processClass(ClasspathManager.java:736) +at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.defineClass(ClasspathManager.java:707) +at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findClassImpl(ClasspathManager.java:640) +at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:608) +at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClassImpl(ClasspathManager.java:588) +at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:567) +at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:346) +at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:398) +at org.eclipse.osgi.internal.loader.sources.SingleSourcePackage.loadClass(SingleSourcePackage.java:41) +at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:460) +at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:425) +at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417) +at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:171) +at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) +at org.eclipse.jetty.ee9.osgi.boot.internal.serverfactory.ServerInstanceWrapper.configure(ServerInstanceWrapper.java:143) +at org.eclipse.jetty.ee9.osgi.boot.internal.serverfactory.DefaultJettyAtJettyHomeHelper.startJettyAtJettyHome(DefaultJettyAtJettyHomeHelper.java:211) +at org.eclipse.jetty.ee9.osgi.boot.JettyBootstrapActivator.start(JettyBootstrapActivator.java:98) +at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:842) +at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1) +at java.base/java.security.AccessController.doPrivileged(AccessController.java:554) +at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:834) +at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:791) +at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:1015) +at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:365) +at org.eclipse.osgi.container.Module.doStart(Module.java:603) +at org.eclipse.osgi.container.Module.start(Module.java:467) +at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel$2.run(ModuleContainer.java:1844) +at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor$1$1.execute(EquinoxContainerAdaptor.java:136) +at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1837) +at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1780) +at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1742) +at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1664) +at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) +at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234) +at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:345) +Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 58 +at org.objectweb.asm.ClassReader.(ClassReader.java:195) +at org.objectweb.asm.ClassReader.(ClassReader.java:176) +at org.objectweb.asm.ClassReader.(ClassReader.java:162) +at org.objectweb.asm.ClassReader.(ClassReader.java:283) +at org.apache.aries.spifly.dynamic.OSGiFriendlyClassWriter.getCommonSuperClass(OSGiFriendlyClassWriter.java:81) +at org.objectweb.asm.SymbolTable.addMergedType(SymbolTable.java:1200) +at org.objectweb.asm.Frame.merge(Frame.java:1299) +at org.objectweb.asm.Frame.merge(Frame.java:1207) +at org.objectweb.asm.MethodWriter.computeAllFrames(MethodWriter.java:1607) +at org.objectweb.asm.MethodWriter.visitMaxs(MethodWriter.java:1543) +at org.objectweb.asm.MethodVisitor.visitMaxs(MethodVisitor.java:762) +at org.objectweb.asm.commons.LocalVariablesSorter.visitMaxs(LocalVariablesSorter.java:147) +at org.objectweb.asm.ClassReader.readCode(ClassReader.java:2431) +at org.objectweb.asm.ClassReader.readMethod(ClassReader.java:1283) +at org.objectweb.asm.ClassReader.accept(ClassReader.java:688) +at org.objectweb.asm.ClassReader.accept(ClassReader.java:400) +at org.apache.aries.spifly.dynamic.ClientWeavingHook.weave(ClientWeavingHook.java:60) +at org.eclipse.osgi.internal.weaving.WovenClassImpl.call(WovenClassImpl.java:175) +at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHookPrivileged(ServiceRegistry.java:1343) +at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.notifyHooksPrivileged(ServiceRegistry.java:1323) +at org.eclipse.osgi.internal.weaving.WovenClassImpl.callHooks(WovenClassImpl.java:270) +at org.eclipse.osgi.internal.weaving.WeavingHookConfigurator.processClass(WeavingHookConfigurator.java:71) +... 35 more + + + + +Other Useful Things +------------------- + +If you have an ordinary jar with no osgi manifest headers in it, or one with incorrect/incomplete osgi manifest headers in it, you can use the Pax Wrapped Bundle facility to add in/replace the headers so that the test will work. + +See https://ops4j1.jira.com/wiki/spaces/PAXEXAM4/pages/54263890/Configuration+Options#ConfigurationOptions-wrappedBundle for more information. The wrappedBundle() itself uses an underlying Wrap Protocol mechanism, which has more details on configuration options, so also look at https://ops4j1.jira.com/wiki/spaces/paxurl/pages/3833898/Wrap+Protocol. For an example of it in use in the tests, look at TestOSGiUtil.java line 179. diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/pom.xml b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/pom.xml new file mode 100644 index 000000000000..ece35b0d1467 --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/pom.xml @@ -0,0 +1,658 @@ + + + 4.0.0 + + org.eclipse.jetty.ee8.osgi + jetty-ee8-osgi + 12.0.3-SNAPSHOT + + test-jetty-ee8-osgi + EE8 :: OSGi :: Test + Jetty OSGi Integration test + + jakarta.annotation-api + jakarta.annotation + target/distribution + ${project.groupId}.boot.test.osgi + true + jetty-ee9-osgi/test-jetty-ee9-osgi + apache-el + org.mortbay.jasper + jakarta.enterprise.cdi-api + jakarta.enterprise + jakarta.inject-api + jakarta.inject + 1.2 + jakarta.interceptor-api + jakarta.interceptor + https://download.eclipse.org/jetty/orbit/ + jakarta.servlet.jsp.jstl-api + jakarta.servlet.jsp.jstl + true + true + WARN + -1 + 4.13.5 + 2.6.14 + jetty-servlet-api + 1.3.6 + 1.8.3 + 3.0.0 + jakarta.transaction-api + jakarta.transaction + + + + biz.aQute.bnd + biz.aQute.bndlib + + + org.osgi + org.osgi.core + + + + + jakarta.servlet.jsp.jstl + jakarta.servlet.jsp.jstl-api + + + jakarta.el + jakarta.el-api + + + + + org.eclipse.jetty.ee8.demos + jetty-ee8-demo-mock-resources + ${project.version} + + + org.eclipse.jetty.http2 + jetty-http2-hpack + + + org.eclipse.jetty.http2 + jetty-http2-server + + + org.eclipse.jetty.toolchain + jetty-servlet-api + + + org.glassfish.web + javax.servlet.jsp.jstl + + + javax.servlet + * + + + javax.servlet.jsp + * + + + + + org.mortbay.jasper + apache-el + + + org.mortbay.jasper + apache-jsp + + + org.ops4j.pax.tinybundles + tinybundles + + + org.eclipse.jetty + jetty-client + runtime + + + org.eclipse.jetty + jetty-deploy + runtime + + + org.eclipse.jetty + jetty-jmx + runtime + + + org.eclipse.jetty + jetty-server + runtime + + + org.eclipse.jetty + jetty-util + runtime + + + org.eclipse.jetty + jetty-xml + runtime + + + org.eclipse.jetty.ee8 + jetty-ee8-annotations + runtime + + + + org.eclipse.jetty.ee8 + jetty-ee8-jndi + runtime + + + org.eclipse.jetty.ee8 + jetty-ee8-plus + runtime + + + org.eclipse.jetty.ee8 + jetty-ee8-security + runtime + + + org.eclipse.jetty.ee8 + jetty-ee8-servlet + runtime + + + org.eclipse.jetty.ee8 + jetty-ee8-servlets + runtime + + + org.eclipse.jetty.ee8 + jetty-ee8-webapp + runtime + + + org.eclipse.jetty.ee8.websocket + jetty-ee8-websocket-javax-client + runtime + + + org.eclipse.jetty.ee8.websocket + jetty-ee8-websocket-javax-server + runtime + + + org.eclipse.jetty.ee8.websocket + jetty-ee8-websocket-jetty-api + runtime + + + org.eclipse.jetty.ee8.websocket + jetty-ee8-websocket-jetty-client + runtime + + + org.eclipse.jetty.ee8.websocket + jetty-ee8-websocket-jetty-common + runtime + + + org.eclipse.jetty.ee8.websocket + jetty-ee8-websocket-jetty-server + runtime + + + org.eclipse.jetty.ee8.websocket + jetty-ee8-websocket-servlet + runtime + + + org.eclipse.jetty.toolchain + jetty-javax-websocket-api + runtime + + + jakarta.activation + jakarta.activation-api + test + + + jakarta.el + jakarta.el-api + 3.0.3 + test + + + jakarta.enterprise + jakarta.enterprise.cdi-api + 2.0.2 + test + + + jakarta.inject + jakarta.inject-api + 1.0.5 + test + + + jakarta.interceptor + jakarta.interceptor-api + 1.2.5 + test + + + jakarta.transaction + jakarta.transaction-api + test + + + org.apache.aries.spifly + org.apache.aries.spifly.dynamic.bundle + test + + + org.apache.felix + org.apache.felix.framework + + + + + org.apache.geronimo.specs + geronimo-atinject_1.0_spec + test + + + org.conscrypt + conscrypt-openjdk-uber + test + + + org.eclipse.jetty + jetty-alpn-conscrypt-client + test + + + org.eclipse.jetty + jetty-alpn-conscrypt-server + test + + + org.eclipse.jetty + jetty-alpn-java-client + test + + + org.eclipse.jetty + jetty-alpn-java-server + test + + + org.eclipse.jetty + jetty-alpn-server + ${project.version} + test + + + + + + + + org.eclipse.jetty.ee8.demos + jetty-ee8-demo-container-initializer + ${project.version} + test + + + org.eclipse.jetty.ee8.demos + jetty-ee8-demo-jetty-webapp + ${project.version} + war + test + + + org.eclipse.jetty.ee8.demos + jetty-ee8-demo-jetty-webapp + ${project.version} + webbundle + test + + + + + org.eclipse.jetty.ee8.demos + jetty-ee8-demo-jsp-webapp + ${project.version} + webbundle + test + + + org.eclipse.jetty.ee8.demos + jetty-ee8-demo-spec-webapp + ${project.version} + war + test + + + org.eclipse.jetty.ee8.osgi + jetty-ee8-osgi-boot + test + + + org.eclipse.platform + org.eclipse.osgi + + + org.eclipse.platform + org.eclipse.osgi.services + + + + + org.eclipse.jetty.ee8.osgi + jetty-ee8-osgi-boot-jsp + test + + + org.eclipse.platform + org.eclipse.osgi + + + org.eclipse.platform + org.eclipse.osgi.services + + + + + org.eclipse.jetty.ee8.osgi + test-jetty-ee8-osgi-fragment + ${project.version} + test + + + org.eclipse.jetty.ee8.osgi + test-jetty-ee8-osgi-server + ${project.version} + test + + + org.eclipse.jetty.ee8.osgi + test-jetty-ee8-osgi-webapp-resources + ${project.version} + war + test + + + org.eclipse.jetty.http2 + jetty-http2-client + test + + + org.eclipse.jetty.http2 + jetty-http2-client-transport + test + + + org.eclipse.jetty.toolchain + jetty-test-helper + test + + + org.eclipse.platform + org.eclipse.osgi + test + + + org.eclipse.platform + org.eclipse.osgi.services + test + + + org.eclipse.platform + org.eclipse.osgi.util + test + + + + org.ops4j.pax.exam + pax-exam + test + + + + org.ops4j.pax.exam + pax-exam-container-forked + test + + + biz.aQute.bnd + bndlib + + + org.ops4j.pax.tinybundles + tinybundles + + + + + org.ops4j.pax.exam + pax-exam-inject + test + + + org.ops4j.pax.exam + pax-exam-junit4 + test + + + org.ops4j.pax.exam + pax-exam-link-mvn + test + + + org.ops4j.pax.swissbox + pax-swissbox-framework + test + + + org.ops4j.base + ops4j-base-monitors + + + + + org.ops4j.pax.swissbox + pax-swissbox-tracker + test + + + org.ops4j.pax.url + pax-url-aether + test + + + javax.annotation + javax.annotation-api + + + + + org.ops4j.pax.url + pax-url-wrap + test + + + biz.aQute.bnd + bndlib + + + + + org.osgi + org.osgi.util.measurement + test + + + org.osgi + org.osgi.util.position + test + + + org.osgi + org.osgi.util.promise + test + + + org.osgi + org.osgi.util.xml + test + + + org.ow2.asm + asm + test + + + org.ow2.asm + asm-analysis + test + + + org.ow2.asm + asm-commons + test + + + org.ow2.asm + asm-tree + test + + + org.ow2.asm + asm-util + test + + + + org.slf4j + slf4j-api + test + + + + + + + maven-surefire-plugin + + ${skipTests} + + ${annotation.groupId} + ${annotation.artifactId} + ${bundle.debug} + ${el.artifactId} + ${el.groupId} + ${enterprise.groupId} + ${enterprise.artifactId} + ${interceptor.artifactId} + ${interceptor.groupId} + ${jstl.artifactId} + ${jstl.groupId} + ${session.repositorySession.localRepository.basedir.absolutePath} + ${pax.exam.debug.port} + ${pax.exam.LEVEL} + ${env.GLOBAL_MVN_SETTINGS} + ${servlet.artifactId} + ${inject.groupId} + ${inject.artifactId} + ${transaction.groupId} + ${transaction.artifactId} + + -Dconscrypt-version=${conscrypt.version} + + + **/TestJettyOSGiBootHTTP2Conscrypt.java + **/TestJettyOSGiBootHTTP2JDK9.java + + + + + + org.apache.maven.surefire + surefire-junit47 + ${maven.surefire.plugin.version} + + + + + org.apache.servicemix.tooling + depends-maven-plugin + + + generate-depends-file + + generate-depends-file + + + + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + org.apache.servicemix.tooling + depends-maven-plugin + [1.2,) + + generate-depends-file + + + + + + + + + + + + + + + maven-dependency-plugin + + test-jetty-ee8-osgi-webapp-resources + target + true + + + + copy + + copy-dependencies + + process-test-resources + + + + + org.apache.servicemix.tooling + depends-maven-plugin + + + generate-depends-file + + generate-depends-file + + + + + + + diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-alpn.xml b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-alpn.xml new file mode 100644 index 000000000000..f07dfa108074 --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-alpn.xml @@ -0,0 +1,23 @@ + + + + + + + + + alpn + + + + + + + + + + + + + + diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-deploy.xml b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-deploy.xml new file mode 100644 index 000000000000..21d724916da6 --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-deploy.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http-boot-context-as-service.xml b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http-boot-context-as-service.xml new file mode 100644 index 000000000000..368b7b13f04d --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http-boot-context-as-service.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + boot.context.service.port + + + + + + + + + + + diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http-boot-webapp-as-service.xml b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http-boot-webapp-as-service.xml new file mode 100644 index 000000000000..0f8a95f6ba26 --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http-boot-webapp-as-service.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + boot.webapp.service.port + + + + + + + + + + + diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http-boot-with-annotations.xml b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http-boot-with-annotations.xml new file mode 100644 index 000000000000..2f192b9ad762 --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http-boot-with-annotations.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + boot.annotations.port + + + + + + + + + + + diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http-boot-with-bundle.xml b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http-boot-with-bundle.xml new file mode 100644 index 000000000000..55833c5cdd6a --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http-boot-with-bundle.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + boot.bundle.port + + + + + + + + + + + diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http-boot-with-javax-websocket.xml b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http-boot-with-javax-websocket.xml new file mode 100644 index 000000000000..48e9f5b31890 --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http-boot-with-javax-websocket.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + boot.javax.websocket.port + + + + + + + + + + diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http-boot-with-jsp.xml b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http-boot-with-jsp.xml new file mode 100644 index 000000000000..250f55485ff6 --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http-boot-with-jsp.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + boot.jsp.port + + + + + + + + + + + diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http-boot-with-resources.xml b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http-boot-with-resources.xml new file mode 100644 index 000000000000..a1b677bc6ec8 --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http-boot-with-resources.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + boot.resources.port + + + + + + + + + + + diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http-boot-with-websocket.xml b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http-boot-with-websocket.xml new file mode 100644 index 000000000000..c5a60d879574 --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http-boot-with-websocket.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + boot.websocket.port + + + + + + + + + + diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http.xml b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http.xml new file mode 100644 index 000000000000..a98af21f658f --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + foo.foo + + + + + + + + + + + diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http2-jdk9.xml b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http2-jdk9.xml new file mode 100644 index 000000000000..8bcf77c3992c --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http2-jdk9.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + true + + + diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http2.xml b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http2.xml new file mode 100644 index 000000000000..750062e2bfd8 --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-http2.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + true + + + + TLSv1.3 + + + + + + diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-https.xml b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-https.xml new file mode 100644 index 000000000000..58901463ac2d --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-https.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + http/1.1 + + + + + + + + boot.https.port + + + + + + + + + + + + diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-ssl.xml b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-ssl.xml new file mode 100644 index 000000000000..e76e7cfda347 --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-ssl.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + / + + / + + + + + + + + + + + + + + + + + + + diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-testrealm.xml b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-testrealm.xml new file mode 100644 index 000000000000..aa5a5b7d6d8e --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-testrealm.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + /etc/realm.properties + + + + + + + Test Realm + + + + + + + diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-with-custom-class.xml b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-with-custom-class.xml new file mode 100644 index 000000000000..5ee75015be6e --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty-with-custom-class.xml @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + 10 + 200 + + + + + + + + + + + + + + https + + 32768 + 8192 + 8192 + true + false + 512 + + + + + + + true + 1000 + false + false + + + + + + + + + org.eclipse.jetty.ee8.webapp.FragmentConfiguration + org.eclipse.jetty.ee8.webapp.JettyWebXmlConfiguration + org.eclipse.jetty.ee8.webapp.WebXmlConfiguration + org.eclipse.jetty.ee8.webapp.WebAppConfiguration + org.eclipse.jetty.ee8.webapp.ServletsConfiguration + org.eclipse.jetty.ee8.webapp.JspConfiguration + org.eclipse.jetty.ee8.webapp.JaasConfiguration + org.eclipse.jetty.ee8.webapp.JndiConfiguration + org.eclipse.jetty.plus.webapp.PlusConfiguration + org.eclipse.jetty.plus.webapp.EnvConfiguration + org.eclipse.jetty.ee8.webapp.JmxConfiguration + org.eclipse.jetty.ee8.websocket.server.config.JettyWebSocketConfiguration + + org.eclipse.jetty.ee8.osgi.annotations.AnnotationConfiguration + org.eclipse.jetty.ee8.osgi.boot.OSGiWebInfConfiguration + org.eclipse.jetty.ee8.osgi.boot.OSGiMetaInfConfiguration + + + + + + java.naming.factory.initial + + + + java.naming.factory.url.pkgs + + + + diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty.xml b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty.xml new file mode 100644 index 000000000000..3042e2e31d50 --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/jetty.xml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + 10 + 200 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.naming.factory.initial + + + + java.naming.factory.url.pkgs + + + + diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/keystore.p12 b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/keystore.p12 new file mode 100644 index 000000000000..7196dcdadc0a Binary files /dev/null and b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/keystore.p12 differ diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/realm.properties b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/realm.properties new file mode 100644 index 000000000000..cbf905de9fbb --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/realm.properties @@ -0,0 +1,21 @@ +# +# This file defines users passwords and roles for a HashUserRealm +# +# The format is +# : [, ...] +# +# Passwords may be clear text, obfuscated or checksummed. The class +# org.eclipse.util.Password should be used to generate obfuscated +# passwords or password checksums +# +# If DIGEST Authentication is used, the password must be in a recoverable +# format, either plain text or OBF:. +# +jetty: MD5:164c88b302622e17050af52c89945d44,user +admin: CRYPT:adpexzg3FUZAk,server-administrator,content-administrator,admin +other: OBF:1xmk1w261u9r1w1c1xmq,user +plain: plain,user +user: password,user + +# This entry is for digest auth. The credential is a MD5 hash of username:realmname:password +digest: MD5:6e120743ad67abfbc385bc2bb754e297,user diff --git a/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/webdefault-ee8.xml b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/webdefault-ee8.xml new file mode 100644 index 000000000000..712fbae57078 --- /dev/null +++ b/jetty-ee8/jetty-ee8-osgi/test-jetty-ee8-osgi/src/test/config/etc/webdefault-ee8.xml @@ -0,0 +1,534 @@ + + + + + + + + + + + + + + + + + + + + + + + Default web.xml file. + This file is applied to a Web application before its own WEB_INF/web.xml file + + + + + + + + org.eclipse.jetty.ee8.servlet.listener.ELContextCleaner + + + + + + + + org.eclipse.jetty.ee8.servlet.listener.IntrospectorCleaner + + + + + + + + + + + + + + + + + default + org.eclipse.jetty.ee8.servlet.DefaultServlet + + aliases + false + + + acceptRanges + true + + + dirAllowed + true + + + welcomeServlets + false + + + redirectWelcome + false + + + maxCacheSize + 256000000 + + + maxCachedFileSize + 200000000 + + + maxCachedFiles + 2048 + + + gzip + false + + + etags + false + + + useFileMappedBuffer + true + + + + 0 + + + + default + / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + jsp + org.eclipse.jetty.ee8.jsp.JettyJspServlet + + logVerbosityLevel + DEBUG + + + fork + false + + + xpoweredBy + false + + + compilerTargetVM + 1.7 + + + compilerSourceVM + 1.7 + + + 0 + + + + jsp + *.jsp + *.jspf + *.jspx + *.xsp + *.JSP + *.JSPF + *.JSPX + *.XSP + + + + + + + + 30 + + + + + + + + + + + + + + + index.html + index.htm + index.jsp + + + + + + + + ar + ISO-8859-6 + + + be + ISO-8859-5 + + + bg + ISO-8859-5 + + + ca + ISO-8859-1 + + + cs + ISO-8859-2 + + + da + ISO-8859-1 + + + de + ISO-8859-1 + + + el + ISO-8859-7 + + + en + ISO-8859-1 + + + es + ISO-8859-1 + + + et + ISO-8859-1 + + + fi + ISO-8859-1 + + + fr + ISO-8859-1 + + + hr + ISO-8859-2 + + + hu + ISO-8859-2 + + + is + ISO-8859-1 + + + it + ISO-8859-1 + + + iw + ISO-8859-8 + + + ja + Shift_JIS + + + ko + EUC-KR + + + lt + ISO-8859-2 + + + lv + ISO-8859-2 + + + mk + ISO-8859-5 + + + nl + ISO-8859-1 + + + no + ISO-8859-1 + + + pl + ISO-8859-2 + + + pt + ISO-8859-1 + + + ro + ISO-8859-2 + + + ru + ISO-8859-5 + + + sh + ISO-8859-5 + + + sk + ISO-8859-2 + + + sl + ISO-8859-2 + + + sq + ISO-8859-2 + + + sr + ISO-8859-5 + + + sv + ISO-8859-1 + + + tr + ISO-8859-9 + + + uk + ISO-8859-5 + + + zh + GB2312 + + + zh_TW + Big5 + + + + + + + + + Disable TRACE + / + TRACE + + + + + + Enable everything but TRACE + / + TRACE + + + + + diff --git a/jetty-ee8/jetty-ee8-websocket/jetty-ee8-websocket-jetty-server/pom.xml b/jetty-ee8/jetty-ee8-websocket/jetty-ee8-websocket-jetty-server/pom.xml index adb5bd0dad12..528254ca7b43 100644 --- a/jetty-ee8/jetty-ee8-websocket/jetty-ee8-websocket-jetty-server/pom.xml +++ b/jetty-ee8/jetty-ee8-websocket/jetty-ee8-websocket-jetty-server/pom.xml @@ -67,7 +67,7 @@ Jetty Websocket Server osgi.extender; filter:="(osgi.extender=osgi.serviceloader.registrar)";resolution:=optional osgi.serviceloader;osgi.serviceloader=org.eclipse.jetty.ee8.webapp.Configuration, - osgi.serviceloader;osgi.serviceloader=jakarta.servlet.ServletContainerInitializer + osgi.serviceloader;osgi.serviceloader=javax.servlet.ServletContainerInitializer diff --git a/jetty-ee8/pom.xml b/jetty-ee8/pom.xml index 4c26fba3c5ec..f7f77ef1b036 100644 --- a/jetty-ee8/pom.xml +++ b/jetty-ee8/pom.xml @@ -25,6 +25,7 @@ jetty-ee8-maven-plugin jetty-ee8-nested jetty-ee8-openid + jetty-ee8-osgi jetty-ee8-plus jetty-ee8-proxy jetty-ee8-quickstart @@ -36,6 +37,9 @@ + + true + true @@ -46,9 +50,10 @@ 1.4.1.v201005082020 4.0.6 9.0.52 - 1.0.6 + 1.0.8 true 3.1.9.Final + @@ -235,6 +240,11 @@ javax.servlet.jsp.jstl 1.2.5 + + org.mortbay.jasper + apache-el + ${jsp.impl.version} + org.mortbay.jasper apache-jsp @@ -294,6 +304,7 @@ sha1 png sha + clazz diff --git a/jetty-ee9/jetty-ee9-osgi/jetty-ee9-osgi-boot/src/main/java/org/eclipse/jetty/ee9/osgi/boot/EE9Activator.java b/jetty-ee9/jetty-ee9-osgi/jetty-ee9-osgi-boot/src/main/java/org/eclipse/jetty/ee9/osgi/boot/EE9Activator.java index ee6866b7c4bd..5eeb61b381d6 100644 --- a/jetty-ee9/jetty-ee9-osgi/jetty-ee9-osgi-boot/src/main/java/org/eclipse/jetty/ee9/osgi/boot/EE9Activator.java +++ b/jetty-ee9/jetty-ee9-osgi/jetty-ee9-osgi-boot/src/main/java/org/eclipse/jetty/ee9/osgi/boot/EE9Activator.java @@ -116,8 +116,8 @@ public Object addingService(ServiceReference sr) List contributedURLs = new ArrayList<>(); List contributedBundles = new ArrayList<>(); Collection serverClasspathContributors = getServerClasspathContributors(); - serverClasspathContributors.stream().forEach(c -> contributedBundles.addAll(c.getScannableBundles())); - contributedBundles.stream().forEach(b -> contributedURLs.addAll(convertBundleToURL(b))); + serverClasspathContributors.forEach(c -> contributedBundles.addAll(c.getScannableBundles())); + contributedBundles.forEach(b -> contributedURLs.addAll(convertBundleToURL(b))); if (!contributedURLs.isEmpty()) { @@ -126,7 +126,7 @@ public Object addingService(ServiceReference sr) if (serverClassLoader != null) { server.setAttribute(OSGiServerConstants.SERVER_CLASSLOADER, - new FakeURLClassLoader(serverClassLoader, contributedURLs.toArray(new URL[contributedURLs.size()]))); + new FakeURLClassLoader(serverClassLoader, contributedURLs.toArray(new URL[0]))); if (LOG.isDebugEnabled()) LOG.debug("Server classloader for contexts = {}", server.getAttribute(OSGiServerConstants.SERVER_CLASSLOADER)); @@ -139,11 +139,11 @@ public Object addingService(ServiceReference sr) BundleContextProvider contextProvider = null; String containerScanBundlePattern = null; - if (contributedBundles != null) + if (!contributedBundles.isEmpty()) { StringBuffer strbuff = new StringBuffer(); - contributedBundles.stream().forEach(b -> strbuff.append(b.getSymbolicName()).append("|")); - containerScanBundlePattern = strbuff.toString().substring(0, strbuff.length() - 1); + contributedBundles.forEach(b -> strbuff.append(b.getSymbolicName()).append("|")); + containerScanBundlePattern = strbuff.substring(0, strbuff.length() - 1); } if (deployer.isPresent()) diff --git a/jetty-ee9/jetty-ee9-osgi/test-jetty-ee9-osgi/src/test/java/org/eclipse/jetty/ee9/osgi/test/TestJettyOSGiAnnotationParser.java b/jetty-ee9/jetty-ee9-osgi/test-jetty-ee9-osgi/src/test/java/org/eclipse/jetty/ee9/osgi/test/TestJettyOSGiAnnotationParser.java index 8a8ff183c613..adfef5456737 100644 --- a/jetty-ee9/jetty-ee9-osgi/test-jetty-ee9-osgi/src/test/java/org/eclipse/jetty/ee9/osgi/test/TestJettyOSGiAnnotationParser.java +++ b/jetty-ee9/jetty-ee9-osgi/test-jetty-ee9-osgi/src/test/java/org/eclipse/jetty/ee9/osgi/test/TestJettyOSGiAnnotationParser.java @@ -67,7 +67,7 @@ public static Option[] configure() throws IOException options.add(mavenBundle().groupId("org.eclipse.jetty").artifactId("jetty-alpn-client").versionAsInProject().start()); //get a reference to a pre-prepared module-info - Path path = Paths.get("src", "test", "resources", "module-info.clazz"); + Path path = Paths.get("target", "test-classes", "module-info.clazz"); File moduleInfo = path.toFile(); assertTrue(moduleInfo.exists()); diff --git a/jetty-ee9/jetty-ee9-osgi/test-jetty-ee9-osgi/src/test/java/org/eclipse/jetty/ee9/osgi/test/TestJettyOSGiBootWithJakartaWebSocket.java b/jetty-ee9/jetty-ee9-osgi/test-jetty-ee9-osgi/src/test/java/org/eclipse/jetty/ee9/osgi/test/TestJettyOSGiBootWithJakartaWebSocket.java index 80f220bec272..877c2a5ba44a 100644 --- a/jetty-ee9/jetty-ee9-osgi/test-jetty-ee9-osgi/src/test/java/org/eclipse/jetty/ee9/osgi/test/TestJettyOSGiBootWithJakartaWebSocket.java +++ b/jetty-ee9/jetty-ee9-osgi/test-jetty-ee9-osgi/src/test/java/org/eclipse/jetty/ee9/osgi/test/TestJettyOSGiBootWithJakartaWebSocket.java @@ -120,6 +120,10 @@ public void testWebsocket() throws Exception log.info("Send message"); assertTrue(socket.messageLatch.await(2, TimeUnit.SECONDS)); // give remote 1 second to respond } + catch (Throwable e) + { + e.printStackTrace(); + } finally { assertTrue(socket.closeLatch.await(2, TimeUnit.SECONDS)); // give remote 1 second to acknowledge response diff --git a/jetty-ee9/jetty-ee9-osgi/test-jetty-ee9-osgi/src/test/java/org/eclipse/jetty/ee9/osgi/test/TestOSGiUtil.java b/jetty-ee9/jetty-ee9-osgi/test-jetty-ee9-osgi/src/test/java/org/eclipse/jetty/ee9/osgi/test/TestOSGiUtil.java index 0344521cd6f8..69aae69ae9dc 100644 --- a/jetty-ee9/jetty-ee9-osgi/test-jetty-ee9-osgi/src/test/java/org/eclipse/jetty/ee9/osgi/test/TestOSGiUtil.java +++ b/jetty-ee9/jetty-ee9-osgi/test-jetty-ee9-osgi/src/test/java/org/eclipse/jetty/ee9/osgi/test/TestOSGiUtil.java @@ -27,6 +27,7 @@ import org.ops4j.pax.exam.CoreOptions; import org.ops4j.pax.exam.Option; import org.ops4j.pax.exam.options.MavenArtifactProvisionOption; +import org.ops4j.pax.exam.options.extra.VMOption; import org.ops4j.pax.tinybundles.core.TinyBundle; import org.ops4j.pax.tinybundles.core.TinyBundles; import org.osgi.framework.Bundle; @@ -37,6 +38,7 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; +import static org.ops4j.pax.exam.Constants.START_LEVEL_SYSTEM_BUNDLES; import static org.ops4j.pax.exam.CoreOptions.mavenBundle; import static org.ops4j.pax.exam.CoreOptions.systemProperty; @@ -103,6 +105,11 @@ public static List