Skip to content

Commit

Permalink
Initial prototype for porting to Jetty 12
Browse files Browse the repository at this point in the history
  • Loading branch information
merks committed Oct 10, 2023
1 parent 8f196c5 commit 4338383
Show file tree
Hide file tree
Showing 7 changed files with 64 additions and 55 deletions.
4 changes: 2 additions & 2 deletions build/org.eclipse.birt.releng/BIRT.setup
Expand Up @@ -213,7 +213,7 @@
<setupTask
xsi:type="setup:VariableTask"
name="eclipse.target.platform"
value="2023-09"
value="${eclipse.target.platform.latest}"
storageURI="scope://Workspace"/>
<setupTask
xsi:type="setup.p2:P2Task"
Expand Down Expand Up @@ -444,7 +444,7 @@
<repository
url="https://download.eclipse.org/oomph/simrel-orbit-legacy/milestone/latest"/>
<repository
url="https://download.eclipse.org/oomph/jetty/release/10.0.15"/>
url="https://download.eclipse.org/tools/orbit/simrel/maven-jetty/nightly/latest"/>
<repository
url="https://download.eclipse.org/datatools/updates/milestone/latest"/>
<repository
Expand Down
37 changes: 22 additions & 15 deletions build/org.eclipse.birt.target/org.eclipse.birt.target.target
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde version="3.8"?>
<target name="Generated from BIRT" sequenceNumber="20">
<target name="Generated from BIRT" sequenceNumber="21">
<locations>
<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
<unit id="org.eclipse.license.feature.group" version="0.0.0"/>
Expand All @@ -10,17 +10,23 @@
<unit id="bcpg" version="0.0.0"/>
<unit id="bcprov" version="0.0.0"/>
<unit id="biz.aQute.bnd.util" version="0.0.0"/>
<unit id="biz.aQute.bndlib" version="0.0.0"/>
<unit id="com.github.librepdf.openpdf" version="0.0.0"/>
<unit id="com.github.virtuald.curvesapi" version="0.0.0"/>
<unit id="com.google.guava" version="0.0.0"/>
<unit id="com.google.guava.failureaccess" version="0.0.0"/>
<unit id="com.google.javascript" version="0.0.0"/>
<unit id="com.ibm.icu" version="0.0.0"/>
<unit id="com.jcraft.jsch" version="0.0.0"/>
<unit id="com.sun.el.javax.el" version="0.0.0"/>
<unit id="com.sun.jna" version="0.0.0"/>
<unit id="com.sun.jna.platform" version="0.0.0"/>
<unit id="com.zaxxer.sparsebits" version="0.0.0"/>
<unit id="jakarta.annotation-api" version="0.0.0"/>
<unit id="jakarta.enterprise.cdi-api" version="0.0.0"/>
<unit id="jakarta.interceptor-api" version="0.0.0"/>
<unit id="jakarta.servlet-api" version="0.0.0"/>
<unit id="jakarta.transaction-api" version="0.0.0"/>
<unit id="javax.el-api" version="0.0.0"/>
<unit id="javax.servlet-api" version="0.0.0"/>
<unit id="javax.servlet.jsp-api" version="0.0.0"/>
Expand All @@ -38,6 +44,7 @@
<unit id="junit-platform-suite-commons" version="0.0.0"/>
<unit id="junit-platform-suite-engine" version="0.0.0"/>
<unit id="junit-vintage-engine" version="0.0.0"/>
<unit id="org.apache.ant" version="0.0.0"/>
<unit id="org.apache.aries.spifly.dynamic.bundle" version="0.0.0"/>
<unit id="org.apache.axis.ant" version="0.0.0"/>
<unit id="org.apache.batik.anim" version="0.0.0"/>
Expand Down Expand Up @@ -81,6 +88,7 @@
<unit id="org.apache.poi.ooxml.schemas" version="0.0.0"/>
<unit id="org.apache.wsil4j" version="0.0.0"/>
<unit id="org.apache.xmlbeans" version="0.0.0"/>
<unit id="org.apache.xmlgraphics" version="0.0.0"/>
<unit id="org.apiguardian.api" version="0.0.0"/>
<unit id="org.dom4j" version="0.0.0"/>
<unit id="org.eclipse.jetty.servlet-api" version="0.0.0"/>
Expand Down Expand Up @@ -134,9 +142,9 @@
<unit id="javax.mail" version="0.0.0"/>
<unit id="javax.servlet" version="0.0.0"/>
<unit id="javax.servlet.jsp" version="0.0.0"/>
<unit id="javax.transaction" version="0.0.0"/>
<unit id="javax.xml" version="0.0.0"/>
<unit id="javax.xml.bind" version="0.0.0"/>
<unit id="javax.xml.rpc" version="0.0.0"/>
<unit id="javax.xml.soap" version="0.0.0"/>
<unit id="javax.xml.stream" version="0.0.0"/>
<unit id="net.sourceforge.lpg.lpgjavaruntime" version="0.0.0"/>
Expand All @@ -147,27 +155,26 @@
<unit id="org.apache.lucene.core" version="0.0.0"/>
<unit id="org.apache.xml.serializer" version="0.0.0"/>
<unit id="org.eclipse.orbit.mongodb" version="0.0.0"/>
<unit id="org.w3c.css.sac" version="0.0.0"/>
<unit id="org.w3c.dom.events" version="0.0.0"/>
<unit id="org.w3c.dom.smil" version="0.0.0"/>
<unit id="org.w3c.dom.svg" version="0.0.0"/>
<repository location="https://download.eclipse.org/oomph/simrel-orbit-legacy/milestone/latest"/>
</location>
<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
<unit id="org.eclipse.jetty.apache-jsp" version="0.0.0"/>
<unit id="org.eclipse.jetty.deploy" version="0.0.0"/>
<unit id="org.eclipse.jetty.ee8.apache-jsp" version="0.0.0"/>
<unit id="org.eclipse.jetty.ee8.plus" version="0.0.0"/>
<unit id="org.eclipse.jetty.ee8.security" version="0.0.0"/>
<unit id="org.eclipse.jetty.ee8.server" version="0.0.0"/>
<unit id="org.eclipse.jetty.ee8.servlet" version="0.0.0"/>
<unit id="org.eclipse.jetty.ee8.webapp" version="0.0.0"/>
<unit id="org.eclipse.jetty.http" version="0.0.0"/>
<unit id="org.eclipse.jetty.io" version="0.0.0"/>
<unit id="org.eclipse.jetty.jndi" version="0.0.0"/>
<unit id="org.eclipse.jetty.osgi.boot" version="0.0.0"/>
<unit id="org.eclipse.jetty.plus" version="0.0.0"/>
<unit id="org.eclipse.jetty.security" version="0.0.0"/>
<unit id="org.eclipse.jetty.server" version="0.0.0"/>
<unit id="org.eclipse.jetty.servlet" version="0.0.0"/>
<unit id="org.eclipse.jetty.session" version="0.0.0"/>
<unit id="org.eclipse.jetty.util" version="0.0.0"/>
<unit id="org.eclipse.jetty.webapp" version="0.0.0"/>
<unit id="org.eclipse.jetty.util.ajax" version="0.0.0"/>
<unit id="org.eclipse.jetty.xml" version="0.0.0"/>
<repository location="https://download.eclipse.org/oomph/jetty/release/10.0.16"/>
<repository location="https://download.eclipse.org/tools/orbit/simrel/maven-jetty/nightly/latest"/>
</location>
<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
<unit id="org.apache.xerces" version="0.0.0"/>
Expand Down Expand Up @@ -330,18 +337,18 @@
<repository location="https://download.eclipse.org/justj/jres/17/updates/release/latest"/>
</location>
<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
<unit id="biz.aQute.bndlib" version="0.0.0"/>
<unit id="org.eclipse.e4.tools.emf.ui" version="0.0.0"/>
<unit id="org.eclipse.e4.tools.services" version="0.0.0"/>
<unit id="org.eclipse.ecf.core.feature.feature.group" version="0.0.0"/>
<unit id="org.eclipse.ecf.core.ssl.feature.feature.group" version="0.0.0"/>
<unit id="org.eclipse.ecf.filetransfer.feature.feature.group" version="0.0.0"/>
<unit id="org.eclipse.ecf.filetransfer.httpclient5.feature.feature.group" version="0.0.0"/>
<unit id="org.eclipse.ecf.filetransfer.httpclientjava.feature.feature.group" version="0.0.0"/>
<unit id="org.eclipse.ecf.filetransfer.ssl.feature.feature.group" version="0.0.0"/>
<unit id="org.eclipse.equinox.executable.feature.group" version="0.0.0"/>
<unit id="org.eclipse.rcp.configuration.feature.group" version="0.0.0"/>
<unit id="org.eclipse.sdk.feature.group" version="0.0.0"/>
<repository location="https://download.eclipse.org/eclipse/updates/4.29/R-4.29-202309031000"/>
<unit id="org.eclipse.search.core" version="0.0.0"/>
<repository location="https://download.eclipse.org/eclipse/updates/4.30-I-builds"/>
</location>
</locations>
</target>
9 changes: 1 addition & 8 deletions features/org.eclipse.birt.feature/feature.xml
Expand Up @@ -883,13 +883,6 @@
version="0.0.0"
unpack="false"/>

<plugin
id="org.eclipse.jetty.osgi.boot"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>

<plugin
id="org.mortbay.jasper.apache-el"
download-size="0"
Expand All @@ -905,7 +898,7 @@
unpack="false"/>

<plugin
id="org.eclipse.jetty.apache-jsp"
id="org.eclipse.jetty.ee8.apache-jsp"
download-size="0"
install-size="0"
version="0.0.0"
Expand Down
9 changes: 1 addition & 8 deletions features/org.eclipse.birt.osgi.runtime/feature.xml
Expand Up @@ -688,13 +688,6 @@
version="0.0.0"
unpack="false"/>

<plugin
id="org.eclipse.jetty.osgi.boot"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>

<plugin
id="org.mortbay.jasper.apache-jsp"
download-size="0"
Expand All @@ -710,7 +703,7 @@
unpack="false"/>

<plugin
id="org.eclipse.jetty.apache-jsp"
id="org.eclipse.jetty.ee8.apache-jsp"
download-size="0"
install-size="0"
version="0.0.0"
Expand Down
16 changes: 8 additions & 8 deletions viewer/org.eclipse.birt.report.viewer/META-INF/MANIFEST.MF
Expand Up @@ -46,15 +46,15 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
org.apache.xerces;bundle-version="[2.8.0,3.0.0)";resolution:=optional,
org.eclipse.birt.report.item.crosstab.core;bundle-version="[2.2.0,5.0.0)";resolution:=optional,
org.eclipse.birt.report.designer.core;bundle-version="4.13.0",
org.eclipse.jetty.server;bundle-version="10.0.11",
org.eclipse.jetty.util;bundle-version="10.0.11",
org.eclipse.jetty.webapp;bundle-version="10.0.11",
org.eclipse.jetty.plus;bundle-version="10.0.11",
org.eclipse.jetty.servlet;bundle-version="10.0.11",
org.eclipse.jetty.http;bundle-version="10.0.11",
org.eclipse.jetty.osgi.boot;bundle-version="10.0.11",
org.eclipse.jetty.server;bundle-version="12.0.1",
org.eclipse.jetty.util;bundle-version="12.0.1",
org.eclipse.jetty.ee8.webapp;bundle-version="12.0.1",
org.eclipse.jetty.ee8.plus;bundle-version="12.0.1",
org.eclipse.jetty.ee8.servlet;bundle-version="12.0.1",
org.eclipse.jetty.ee8.server;bundle-version="12.0.1",
org.eclipse.jetty.http;bundle-version="12.0.1",
org.mortbay.jasper.apache-jsp;bundle-version="[9.0.29,10.0.0)",
org.eclipse.jetty.apache-jsp;bundle-version="10.0.11",
org.eclipse.jetty.ee8.apache-jsp;bundle-version="12.0.1",
org.mortbay.jasper.apache-el;bundle-version="[9.0.29,10.0.0)",
com.sun.el.javax.el;bundle-version="3.0.0"
Bundle-ActivationPolicy: lazy
Expand Down
Expand Up @@ -18,12 +18,10 @@
import org.apache.tomcat.InstanceManager;
import org.apache.tomcat.SimpleInstanceManager;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.jetty.osgi.boot.OSGiServerConstants;
import org.eclipse.jetty.osgi.boot.OSGiWebappConstants;
import org.eclipse.jetty.ee8.servlet.ServletContextHandler;
import org.eclipse.jetty.ee8.webapp.WebAppContext;
import org.eclipse.jetty.ee8.webapp.WebXmlConfiguration;
import org.eclipse.jetty.server.handler.ContextHandler;
import org.eclipse.jetty.util.resource.Resource;
import org.eclipse.jetty.webapp.WebAppContext;
import org.eclipse.jetty.webapp.WebXmlConfiguration;
import org.osgi.framework.Bundle;
import org.osgi.framework.ServiceRegistration;

Expand All @@ -50,19 +48,31 @@ public void start() throws IOException {
WebAppContext webapp = new WebAppContext();
WebXmlConfiguration servletsConfiguration = new WebXmlConfiguration();

ServletContextHandler x = webapp;

webapp.addConfiguration(servletsConfiguration);

webapp.setAttribute(InstanceManager.class.getName(), new SimpleInstanceManager());

Dictionary<String, Object> props = new Hashtable<>();
props.put(OSGiWebappConstants.RFC66_WEB_CONTEXTPATH, contextPath); // Web-ContextPath: /viewer
props.put(OSGiWebappConstants.JETTY_WAR_RESOURCE_PATH, getWebAppPath(bundle, webAppPath)); // Jetty-WarResourcePath:
props.put(OSGiServerConstants.MANAGED_JETTY_SERVER_NAME, ViewerWebServer.VIEWER_WEB_SERVER_ID);
// TODO
// props.put(OSGiWebappConstants.RFC66_WEB_CONTEXTPATH, contextPath); //
// Web-ContextPath: /viewer
props.put("Web-ContextPath", contextPath); // Web-ContextPath: /viewer
// props.put(OSGiWebappConstants.JETTY_WAR_RESOURCE_PATH, getWebAppPath(bundle,
// webAppPath)); // Jetty-WarResourcePath:
props.put("Jetty-WarResourcePath", getWebAppPath(bundle, webAppPath)); // Jetty-WarResourcePath:
// props.put(OSGiServerConstants.MANAGED_JETTY_SERVER_NAME,
// ViewerWebServer.VIEWER_WEB_SERVER_ID);
props.put("managedServerName", ViewerWebServer.VIEWER_WEB_SERVER_ID);
props.put("Jetty-WebXmlFilePath", "birt/WEB-INF/web-viewer.xml"); //$NON-NLS-1$ //$NON-NLS-2$

URL url = bundle.getEntry(webAppPath);
if (url != null) {
webapp.setBaseResource(Resource.newResource(url));
// TODO
// webapp.setBaseResource(Resource.newResource(url));
URL resolvedURL = FileLocator.resolve(url);
webapp.setBaseResource(webapp.getResourceFactory().newResource(resolvedURL));
}

if (encoding != null) {
Expand Down
Expand Up @@ -17,7 +17,6 @@

import org.eclipse.birt.report.viewer.ViewerPlugin;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.jetty.osgi.boot.OSGiServerConstants;
import org.eclipse.jetty.server.Server;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
Expand Down Expand Up @@ -47,10 +46,17 @@ public void start() {
Server server = new Server();
// server configuration goes here
Dictionary<String, Object> serverProps = new Hashtable<>();
serverProps.put(OSGiServerConstants.MANAGED_JETTY_SERVER_NAME, VIEWER_WEB_SERVER_ID);
serverProps.put(OSGiServerConstants.JETTY_HOST, host);
serverProps.put(OSGiServerConstants.JETTY_PORT, port);
serverProps.put(OSGiServerConstants.MANAGED_JETTY_XML_CONFIG_URLS, getJettyConfigURLs());
// TODO
// serverProps.put(OSGiServerConstants.MANAGED_JETTY_SERVER_NAME,
// VIEWER_WEB_SERVER_ID);
serverProps.put("managedServerName", VIEWER_WEB_SERVER_ID);
// serverProps.put(OSGiServerConstants.JETTY_HOST, host);
serverProps.put("jetty.http.host", host);
// serverProps.put(OSGiServerConstants.JETTY_PORT, port);
serverProps.put("jetty.http.port", port);
// serverProps.put(OSGiServerConstants.MANAGED_JETTY_XML_CONFIG_URLS,
// getJettyConfigURLs());
serverProps.put("jetty.etc.config.urls", getJettyConfigURLs());

// register as an OSGi Service for Jetty to find
BundleContext context = ViewerPlugin.getDefault().getBundleContext();
Expand Down

0 comments on commit 4338383

Please sign in to comment.