@@ -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 b9024dd7f75..e9a5917212a 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 3291d033660..122d285806b 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 355cffc6370..5e2c5caf28f 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 9911bb7cb94..7cf9bc6e3c0 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 00000000000..9f9a3464e62
--- /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 00000000000..91f4a49ead3
--- /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 00000000000..dbc9fa71564
--- /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 00000000000..88fc1a79e59
--- /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 00000000000..bbd9ab19ed5
--- /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 00000000000..a2e40523909
--- /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 00000000000..921d5f41bd4
--- /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 00000000000..ef503747e9d
--- /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 00000000000..f2baef21eff
--- /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 00000000000..08a57edf6ef
--- /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 00000000000..e5d19dc085f
--- /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 00000000000..1b480430ab6
--- /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 00000000000..fc4ff8627ad
--- /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 00000000000..2b93bae539a
--- /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 00000000000..9dd6187f75e
--- /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 00000000000..919b6c044bc
--- /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 00000000000..9e62c04bb91
--- /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 00000000000..e53c75ad77e
--- /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 00000000000..e69de29bb2d
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 00000000000..90efb1dceac
--- /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 00000000000..471571132c7
--- /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 00000000000..ece35b0d146
--- /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 00000000000..f07dfa10807
--- /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 00000000000..21d724916da
--- /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 00000000000..368b7b13f04
--- /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 00000000000..0f8a95f6ba2
--- /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 00000000000..2f192b9ad76
--- /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 00000000000..55833c5cdd6
--- /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 00000000000..48e9f5b3189
--- /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 00000000000..250f55485ff
--- /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 00000000000..a1b677bc6ec
--- /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 00000000000..c5a60d87957
--- /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 00000000000..a98af21f658
--- /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 00000000000..8bcf77c3992
--- /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 00000000000..750062e2bfd
--- /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 00000000000..58901463ac2
--- /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 00000000000..e76e7cfda34
--- /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 00000000000..aa5a5b7d6d8
--- /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 00000000000..5ee75015be6
--- /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 00000000000..3042e2e31d5
--- /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 00000000000..7196dcdadc0
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 00000000000..cbf905de9fb
--- /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 00000000000..712fbae5707
--- /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 adb5bd0dad1..528254ca7b4 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 4c26fba3c5e..f7f77ef1b03 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 ee6866b7c4b..5eeb61b381d 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 class EE9Activator implements BundleActivator
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 class EE9Activator implements BundleActivator
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 class EE9Activator implements BundleActivator
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 8a8ff183c61..adfef545673 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 class TestJettyOSGiAnnotationParser
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 80f220bec27..877c2a5ba44 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 class TestJettyOSGiBootWithJakartaWebSocket
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 0344521cd6f..69aae69ae9d 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.eclipse.jetty.util.ssl.SslContextFactory;
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 org.osgi.framework.ServiceReference;
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 class TestOSGiUtil
options.add(systemProperty("pax.exam.logging").value("none"));
String paxExamLogLevel = System.getProperty("pax.exam.LEVEL", "WARN");
options.add(systemProperty("org.ops4j.pax.logging.DefaultServiceLog.level").value(paxExamLogLevel));
+ int debugPort = Integer.getInteger("pax.exam.debug.port", -1);
+ if (debugPort >= 0)
+ {
+ options.add(new VMOption("-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=" + debugPort));
+ }
return options;
}
@@ -132,7 +139,7 @@ public class TestOSGiUtil
res.add(systemProperty("org.ops4j.pax.url.mvn.settings").value(System.getProperty("settingsFilePath")));
}
- res.add(mavenBundle().groupId("org.slf4j").artifactId("slf4j-api").versionAsInProject().noStart());
+ res.add(mavenBundle().groupId("org.slf4j").artifactId("slf4j-api").version("1.7.36").startLevel(START_LEVEL_SYSTEM_BUNDLES)); //.versionAsInProject().noStart());
/*
* Jetty 11 uses slf4j 2.0.0 by default, however we want to test with slf4j 1.7.30 for backwards compatibility.
@@ -140,7 +147,7 @@ public class TestOSGiUtil
* file available so that jetty logging can be configured
*/
// BEGIN - slf4j 1.7.x
- /* slf4j-simple conflicts with both slf4j 1.7.x, and jetty-slf4j-impl. (but in different ways)
+ /* slf4j-simple conflicts with both slf4j 1.7.x, and jetty-slf4j-impl. (but in different ways) */
TinyBundle simpleLoggingPropertiesBundle = TinyBundles.bundle();
simpleLoggingPropertiesBundle.add("simplelogger.properties", ClassLoader.getSystemResource("simplelogger.properties"));
@@ -148,24 +155,25 @@ public class TestOSGiUtil
simpleLoggingPropertiesBundle.set(Constants.FRAGMENT_HOST, "slf4j-simple");
simpleLoggingPropertiesBundle.add(FragmentActivator.class);
res.add(CoreOptions.streamBundle(simpleLoggingPropertiesBundle.build()).noStart());
- res.add(mavenBundle().groupId("org.slf4j").artifactId("slf4j-simple").versionAsInProject().noStart());
- */
+ res.add(mavenBundle().groupId("org.slf4j").artifactId("slf4j-simple").version("1.7.36").startLevel(START_LEVEL_SYSTEM_BUNDLES)); // .versionAsInProject()
+
// END - slf4j 1.7.x
/*
* When running with slf4j >= 2.0.0, remove the slf4j simple logger above and uncomment the following lines
*/
// BEGIN - slf4j 2.x
- TinyBundle loggingPropertiesBundle = TinyBundles.bundle();
- loggingPropertiesBundle.add("jetty-logging.properties", ClassLoader.getSystemResource("jetty-logging.properties"));
- loggingPropertiesBundle.set(Constants.BUNDLE_SYMBOLICNAME, "jetty-logging-properties");
- loggingPropertiesBundle.set(Constants.FRAGMENT_HOST, "org.eclipse.jetty.logging");
- loggingPropertiesBundle.add(FragmentActivator.class);
- res.add(CoreOptions.streamBundle(loggingPropertiesBundle.build()).noStart());
- res.add(mavenBundle().groupId("org.eclipse.jetty").artifactId("jetty-slf4j-impl").versionAsInProject().start());
+// TinyBundle loggingPropertiesBundle = TinyBundles.bundle();
+// loggingPropertiesBundle.add("jetty-logging.properties", ClassLoader.getSystemResource("jetty-logging.properties"));
+// loggingPropertiesBundle.set(Constants.BUNDLE_SYMBOLICNAME, "jetty-logging-properties");
+// loggingPropertiesBundle.set(Constants.FRAGMENT_HOST, "org.eclipse.jetty.logging");
+// loggingPropertiesBundle.add(FragmentActivator.class);
+// res.add(CoreOptions.streamBundle(loggingPropertiesBundle.build()).noStart());
+// res.add(mavenBundle().groupId("org.eclipse.jetty").artifactId("jetty-slf4j-impl").versionAsInProject().start());
// END - slf4j 2.x
-
- res.add(mavenBundle().groupId("org.eclipse.jetty.toolchain").artifactId("jetty-jakarta-servlet-api").versionAsInProject().start());
+ String servletGroupId = System.getProperty("servlet.groupId", "org.eclipse.jetty.toolchain");
+ String servletArtifactId = System.getProperty("servlet.artifactId", "jetty-jakarta-servlet-api");
+ res.add(mavenBundle().groupId(servletGroupId).artifactId(servletArtifactId).versionAsInProject().start());
res.add(mavenBundle().groupId("org.eclipse.platform").artifactId("org.eclipse.osgi.util").versionAsInProject());
res.add(mavenBundle().groupId("org.osgi").artifactId("org.osgi.service.cm").versionAsInProject());
res.add(mavenBundle().groupId("org.osgi").artifactId("org.osgi.service.device").versionAsInProject());
@@ -191,12 +199,24 @@ public class TestOSGiUtil
res.add(mavenBundle().groupId("org.ow2.asm").artifactId("asm-analysis").versionAsInProject().start());
res.add(mavenBundle().groupId("org.ow2.asm").artifactId("asm-util").versionAsInProject().start());
res.add(mavenBundle().groupId("org.apache.aries.spifly").artifactId("org.apache.aries.spifly.dynamic.bundle").versionAsInProject().start());
- res.add(mavenBundle().groupId("jakarta.inject").artifactId("jakarta.inject-api").versionAsInProject().start());
- res.add(mavenBundle().groupId("jakarta.annotation").artifactId("jakarta.annotation-api").versionAsInProject().start());
- res.add(mavenBundle().groupId("jakarta.enterprise").artifactId("jakarta.enterprise.cdi-api").versionAsInProject().start());
- res.add(mavenBundle().groupId("jakarta.interceptor").artifactId("jakarta.interceptor-api").versionAsInProject().start());
- res.add(mavenBundle().groupId("jakarta.transaction").artifactId("jakarta.transaction-api").versionAsInProject().start());
- res.add(mavenBundle().groupId("jakarta.el").artifactId("jakarta.el-api").versionAsInProject().start());
+ String injectGroupId = System.getProperty("inject.groupId", "jakarta.inject");
+ String injectArtifactId = System.getProperty("inject.artifactId", "jakarta.inject-api");
+ res.add(mavenBundle().groupId(injectGroupId).artifactId(injectArtifactId).versionAsInProject().start());
+ String annotationGroupId = System.getProperty("annotation.groupId", "jakarta.annotation");
+ String annotationArtifactId = System.getProperty("annotation.artifactId", "jakarta.annotation-api");
+ res.add(mavenBundle().groupId(annotationGroupId).artifactId(annotationArtifactId).versionAsInProject().start());
+ String enterpriseGroupId = System.getProperty("enterprise.groupId", "jakarta.enterprise");
+ String enterpriseArtifactId = System.getProperty("enterprise.artifactId", "jakarta.enterprise.cdi-api");
+ res.add(mavenBundle().groupId(enterpriseGroupId).artifactId(enterpriseArtifactId).versionAsInProject().start());
+ String interceptorGroupId = System.getProperty("interceptor.groupId", "jakarta.interceptor");
+ String interceptorArtifactId = System.getProperty("interceptor.artifactId", "jakarta.interceptor-api");
+ res.add(mavenBundle().groupId(interceptorGroupId).artifactId(interceptorArtifactId).versionAsInProject().start());
+ String transactionGroupId = System.getProperty("transaction.groupId", "jakarta.transaction");
+ String transactionArtifactId = System.getProperty("transaction.artifactId", "jakarta.transaction-api");
+ res.add(mavenBundle().groupId(transactionGroupId).artifactId(transactionArtifactId).versionAsInProject().start());
+ String elGroupId = System.getProperty("el.groupId", "jakarta.el");
+ String elArtifactId = System.getProperty("el.artifactId", "jakarta.el-api");
+ res.add(mavenBundle().groupId(elGroupId).artifactId(elArtifactId).versionAsInProject().start());
res.add(mavenBundle().groupId("org.eclipse.jetty").artifactId("jetty-util").versionAsInProject().start());
res.add(mavenBundle().groupId("org.eclipse.jetty").artifactId("jetty-io").versionAsInProject().start());
@@ -240,7 +260,9 @@ public class TestOSGiUtil
* However, as we are now configuring the full jsp bundle set, we need to remove the jakarta.el-api
* bundle because the org.mortbay.jasper.apache-el bundle will be providing both the api and the impl.
*/
- MavenArtifactProvisionOption option = mavenBundle().groupId("jakarta.el").artifactId("jakarta.el-api").versionAsInProject();
+ String elGroupId = System.getProperty("el.groupId", "jakarta.el");
+ String elArtifactId = System.getProperty("el.artifactId", "jakarta.el-api");
+ MavenArtifactProvisionOption option = mavenBundle().groupId(elGroupId).artifactId(elArtifactId).versionAsInProject();
ListIterator