Jersey 2: Migrate test factories
A few APIs have changed in the class JerseyTest from Jersey 1 to Jersey 2,
but direct replacements are available for most cases albeit the setup is
slightly different.
References:
https://eclipse-ee4j.github.io/jersey.github.io/apidocs/2.32/jersey/org/glassfish/jersey/test/JerseyTest.html
https://eclipse-ee4j.github.io/jersey.github.io/apidocs/2.32/jersey/org/glassfish/jersey/test/ServletDeploymentContext.html
diff --git a/lite/src/test/java/de/ids_mannheim/korap/config/LiteJerseyTest.java b/lite/src/test/java/de/ids_mannheim/korap/config/LiteJerseyTest.java
index e6536f5..882efce 100644
--- a/lite/src/test/java/de/ids_mannheim/korap/config/LiteJerseyTest.java
+++ b/lite/src/test/java/de/ids_mannheim/korap/config/LiteJerseyTest.java
@@ -1,9 +1,5 @@
package de.ids_mannheim.korap.config;
-import java.io.IOException;
-import java.net.ServerSocket;
-import java.util.concurrent.ThreadLocalRandom;
-
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.support.GenericApplicationContext;
@@ -11,13 +7,14 @@
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.web.context.support.GenericWebApplicationContext;
-import com.sun.jersey.spi.spring.container.servlet.SpringServlet;
-import com.sun.jersey.test.framework.AppDescriptor;
-import com.sun.jersey.test.framework.JerseyTest;
-import com.sun.jersey.test.framework.WebAppDescriptor;
-import com.sun.jersey.test.framework.spi.container.TestContainerException;
-import com.sun.jersey.test.framework.spi.container.TestContainerFactory;
-import com.sun.jersey.test.framework.spi.container.grizzly.web.GrizzlyWebTestContainerFactory;
+import org.glassfish.jersey.server.ResourceConfig;
+import org.glassfish.jersey.servlet.ServletContainer;
+import org.glassfish.jersey.test.DeploymentContext;
+import org.glassfish.jersey.test.JerseyTest;
+import org.glassfish.jersey.test.ServletDeploymentContext;
+import org.glassfish.jersey.test.grizzly.GrizzlyWebTestContainerFactory;
+import org.glassfish.jersey.test.spi.TestContainerException;
+import org.glassfish.jersey.test.spi.TestContainerFactory;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:test-config.xml")
@@ -53,26 +50,11 @@
}
@Override
- protected AppDescriptor configure () {
- return new WebAppDescriptor.Builder(classPackages)
- .servletClass(SpringServlet.class)
- .contextListenerClass(StaticContextLoaderListener.class)
+ protected DeploymentContext configureDeployment() {
+ return ServletDeploymentContext
+ .forServlet(new ServletContainer(new ResourceConfig().packages(classPackages)))
+ .addListener(StaticContextLoaderListener.class)
.contextParam("adminToken", "secret")
.build();
}
-
- @Override
- protected int getPort (int defaultPort) {
- int port = ThreadLocalRandom.current().nextInt(5000, 8000 + 1);
- try {
- ServerSocket socket = new ServerSocket(port);
- socket.close();
- }
- catch (IOException e) {
- e.printStackTrace();
- port = getPort(port);
- }
- return port;
- }
-
}