Bug 572026 - Support Jetty 9 and 10
Make USS-SDK work with Jetty 9 and 10. Note that Jetty 10
made some bundle changes
- Pull in javax.servlet APIs through import-package
- Fix uses of sendError() to setStatus() to preserve response headers
- Remove deprecated Jetty logger; tests now show Jetty output,
which is actually useful
- added new .target for eclipse-latest, orbit-latest, and jetty 10
for use as an Eclipse target platform for development
- added new profiles to build and test for other named Eclipse releases
mvn -Declipse.target=neon verify
or use the following to test with Jetty 10
mvn -Declipse.target=latest verify
Change-Id: I385b9c883bc4615e372a08238a2a158010368825
Signed-off-by: Brian de Alwis <bsd@acm.org>
diff --git a/org.eclipse.userstorage.releng/org.eclipse.userstorage.releng.latest.target b/org.eclipse.userstorage.releng/org.eclipse.userstorage.releng.latest.target
new file mode 100644
index 0000000..05449cb
--- /dev/null
+++ b/org.eclipse.userstorage.releng/org.eclipse.userstorage.releng.latest.target
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde version="3.8"?>
+<target name="Generated from User Storage SDK" sequenceNumber="1">
+ <locations>
+ <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="false" type="InstallableUnit">
+ <repository location="http://download.eclipse.org/releases/latest"/>
+ <unit id="org.eclipse.sdk.feature.group" version="4.19.0.v20210303-1800"/>
+ </location>
+ <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="false" type="InstallableUnit">
+ <repository location="https://download.eclipse.org/eclipse/jetty/10.0.2/"/>
+ <unit id="org.eclipse.jetty.server" version="10.0.2"/>
+ <unit id="slf4j.api" version="2.0.0.alpha1"/>
+ </location>
+ <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="false" type="InstallableUnit">
+ <repository location="http://download.eclipse.org/tools/orbit/downloads/latest-R"/>
+ <unit id="org.hamcrest" version="1.1.0.v20090501071000"/>
+ <unit id="org.hamcrest.core" version="1.1.0.v20090501071000"/>
+ <unit id="org.mockito" version="2.23.0.v20200310-1642"/>
+ <unit id="org.apache.commons.logging" version="1.1.1.v201101211721"/>
+ </location>
+ </locations>
+</target>
\ No newline at end of file
diff --git a/org.eclipse.userstorage.tests/META-INF/MANIFEST.MF b/org.eclipse.userstorage.tests/META-INF/MANIFEST.MF
index 680e099..6255c47 100644
--- a/org.eclipse.userstorage.tests/META-INF/MANIFEST.MF
+++ b/org.eclipse.userstorage.tests/META-INF/MANIFEST.MF
@@ -10,14 +10,15 @@
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.0.0,4.0.0)",
org.apache.httpcomponents.httpclient;bundle-version="[4.0.0,5.0.0)";visibility:=reexport,
org.apache.httpcomponents.httpcore;bundle-version="[4.0.0,5.0.0)";visibility:=reexport,
+ org.eclipse.jetty.server;bundle-version="[9.0.0,10.1.0)";visibility:=reexport,
+ org.eclipse.jetty.servlet;bundle-version="[9.0.0,10.1.0)";visibility:=reexport,
+ org.eclipse.jetty.http;bundle-version="[9.0.0,10.1.0)";visibility:=reexport,
+ org.eclipse.jetty.io;bundle-version="[9.0.0,10.1.0)";visibility:=reexport,
+ org.eclipse.jetty.util;bundle-version="[9.0.0,10.1.0)";visibility:=reexport,
org.eclipse.userstorage;bundle-version="[1.0.0,2.0.0)";visibility:=reexport,
- org.eclipse.jetty.server;bundle-version="[9.0.0,10.0.0)";visibility:=reexport,
- org.eclipse.jetty.servlet;bundle-version="[9.0.0,10.0.0)";visibility:=reexport,
- org.eclipse.jetty.http;bundle-version="[9.0.0,10.0.0)";visibility:=reexport,
- org.eclipse.jetty.io;bundle-version="[9.0.0,10.0.0)";visibility:=reexport,
- org.eclipse.jetty.util;bundle-version="[9.0.0,10.0.0)";visibility:=reexport,
- javax.servlet;bundle-version="[3.0.0,4.0.0)";visibility:=reexport,
org.junit;bundle-version="[4.11.0,5.0.0)";visibility:=reexport
Export-Package: org.eclipse.userstorage.tests;version="1.0.0";x-internal:=true,
org.eclipse.userstorage.tests.util;version="1.0.0";x-internal:=true
Eclipse-RegisterBuddy: org.eclipse.userstorage
+Import-Package: javax.servlet;version="[3.1.0,4.0.0]",
+ javax.servlet.http;version="[3.1.0,4.0.0]"
diff --git a/org.eclipse.userstorage.tests/src/org/eclipse/userstorage/tests/util/ServerFixture.java b/org.eclipse.userstorage.tests/src/org/eclipse/userstorage/tests/util/ServerFixture.java
index 470c9ad..4ec332b 100644
--- a/org.eclipse.userstorage.tests/src/org/eclipse/userstorage/tests/util/ServerFixture.java
+++ b/org.eclipse.userstorage.tests/src/org/eclipse/userstorage/tests/util/ServerFixture.java
@@ -19,13 +19,10 @@
import org.eclipse.userstorage.internal.util.IOUtil;
import org.eclipse.userstorage.internal.util.StringUtil;
import org.eclipse.userstorage.spi.ISettings;
-import org.eclipse.userstorage.tests.util.USSServer.NOOPLogger;
import org.eclipse.userstorage.tests.util.USSServer.User;
import org.eclipse.userstorage.util.NotFoundException;
import org.eclipse.userstorage.util.Settings.MemorySettings;
-import org.eclipse.jetty.util.log.Log;
-
import java.io.File;
import java.io.IOException;
import java.util.UUID;
@@ -216,7 +213,6 @@
protected void configureServerLogging()
{
- Log.setLog(new NOOPLogger());
}
protected boolean manageBundleLifecycle()
diff --git a/org.eclipse.userstorage.tests/src/org/eclipse/userstorage/tests/util/USSServer.java b/org.eclipse.userstorage.tests/src/org/eclipse/userstorage/tests/util/USSServer.java
index 522634a..cc6c369 100644
--- a/org.eclipse.userstorage.tests/src/org/eclipse/userstorage/tests/util/USSServer.java
+++ b/org.eclipse.userstorage.tests/src/org/eclipse/userstorage/tests/util/USSServer.java
@@ -22,8 +22,6 @@
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.AbstractHandler;
-import org.eclipse.jetty.util.log.Log;
-import org.eclipse.jetty.util.log.Logger;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
@@ -349,7 +347,7 @@
if (StringUtil.isEmpty(ifMatch) || !ifMatch.equals(etag))
{
response.setHeader("ETag", "\"" + etag + "\"");
- response.sendError(HttpServletResponse.SC_CONFLICT);
+ response.setStatus(HttpServletResponse.SC_CONFLICT);
return;
}
}
@@ -803,94 +801,8 @@
}
}
- /**
- * @author Eike Stepper
- */
- public static class NOOPLogger implements Logger
- {
- @Override
- public String getName()
- {
- return "noop";
- }
-
- @Override
- public void warn(String msg, Object... args)
- {
- }
-
- @Override
- public void warn(Throwable thrown)
- {
- }
-
- @Override
- public void warn(String msg, Throwable thrown)
- {
- }
-
- @Override
- public void info(String msg, Object... args)
- {
- }
-
- @Override
- public void info(Throwable thrown)
- {
- }
-
- @Override
- public void info(String msg, Throwable thrown)
- {
- }
-
- @Override
- public boolean isDebugEnabled()
- {
- return false;
- }
-
- @Override
- public void setDebugEnabled(boolean enabled)
- {
- }
-
- @Override
- public void debug(String msg, Object... args)
- {
- }
-
- @Override
- public void debug(Throwable thrown)
- {
- }
-
- @Override
- public void debug(String msg, Throwable thrown)
- {
- }
-
- @Override
- public void debug(String msg, long value)
- {
- }
-
- @Override
- public Logger getLogger(String name)
- {
- return this;
- }
-
- @Override
- public void ignore(Throwable ignored)
- {
- }
- }
-
public static void main(String[] args) throws Exception
{
- Log.setLog(new NOOPLogger());
-
USSServer server = new USSServer(8080, new File(System.getProperty("java.io.tmpdir"), "uss-server"));
server.addUser(FixedCredentialsProvider.DEFAULT_CREDENTIALS);
diff --git a/pom.xml b/pom.xml
index db778c3..ee14874 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,7 +22,7 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<tycho.scmUrl>scm:git:https://git.eclipse.org/r/p/usssdk/org.eclipse.usssdk.git</tycho.scmUrl>
- <tycho-version>1.6.0</tycho-version>
+ <tycho-version>2.2.0</tycho-version>
<jarsigner-version>1.3.1</jarsigner-version>
<!-- OS-specific JVM flags, empty for the default case but redefined below -->
@@ -89,6 +89,7 @@
<artifactId>tycho-surefire-plugin</artifactId>
<configuration>
<useUIHarness>false</useUIHarness>
+ <trimStackTrace>false</trimStackTrace>
<appArgLine>
-consoleLog
-eclipse.keyring /dev/null
@@ -148,22 +149,6 @@
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
- <artifactId>target-platform-configuration</artifactId>
- <version>${tycho-version}</version>
- <configuration>
- <target>
- <artifact>
- <groupId>org.eclipse.userstorage</groupId>
- <artifactId>org.eclipse.userstorage.releng</artifactId>
- <version>1.0.0-SNAPSHOT</version>
- </artifact>
- </target>
- <!--executionEnvironmentDefault>JavaSE-${javaVersion}</executionEnvironmentDefault-->
- <includePackedArtifacts>true</includePackedArtifacts>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-surefire-plugin</artifactId>
<version>${tycho-version}</version>
</plugin>
@@ -301,6 +286,99 @@
</build>
</profile>
+ <profile>
+ <id>eclipse-target-4.5</id>
+ <activation>
+ <property>
+ <name>!eclipse.target</name>
+ </property>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.eclipse.tycho</groupId>
+ <artifactId>target-platform-configuration</artifactId>
+ <version>${tycho-version}</version>
+ <configuration>
+ <target>
+ <artifact>
+ <groupId>org.eclipse.userstorage</groupId>
+ <artifactId>org.eclipse.userstorage.releng</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ </artifact>
+ </target>
+ <!--executionEnvironmentDefault>JavaSE-${javaVersion}</executionEnvironmentDefault-->
+ <includePackedArtifacts>true</includePackedArtifacts>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+
+ <profile>
+ <!-- this target should only be used for testing purposes -->
+ <id>target-eclipse-release</id>
+ <activation>
+ <property>
+ <name>eclipse.target</name>
+ </property>
+ </activation>
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.eclipse.tycho</groupId>
+ <artifactId>tycho-compiler-plugin</artifactId>
+ <version>${tycho-version}</version>
+ <configuration>
+ <!--
+ tycho-compiler-plugin's useProjectSettings
+ defaults to true, such that it will use the JDT
+ compiler source and target settings. These are
+ currently set to JavaSE 1.6. This setting causes
+ issues for Eclipse Neon (Platform 4.6) or later
+ as they target JavaSE 1.8 and so their .class files
+ result in version errors. Fix this problem by
+ forcing a later target.
+ -->
+ <target>11</target>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+ <repositories>
+ <repository>
+ <id>eclipse-named</id>
+ <layout>p2</layout>
+ <url>http://download.eclipse.org/releases/${eclipse.target}</url>
+ </repository>
+ <repository>
+ <id>orbit-latest</id>
+ <layout>p2</layout>
+ <url>http://download.eclipse.org/tools/orbit/downloads/latest-R</url>
+ </repository>
+ </repositories>
+ </profile>
+
+ <profile>
+ <!-- this target should only be used for testing purposes -->
+ <id>eclipse-target-latest</id>
+ <activation>
+ <property>
+ <name>eclipse.target</name>
+ <value>latest</value>
+ </property>
+ </activation>
+ <repositories>
+ <repository>
+ <id>eclipse-jetty-10</id>
+ <layout>p2</layout>
+ <url>https://download.eclipse.org/eclipse/jetty/10.0.2/</url>
+ </repository>
+ </repositories>
+ </profile>
+
</profiles>
</project>