Jetty 9.4.x 2247 2256 modernize osgi test code (#2258)

* Issue #2247 Ensure random unused ssl port for osgi tests

Signed-off-by: Jan Bartel <janb@webtide.com>

* Issue #2256 code cleanup of osgi tests

Signed-off-by: Jan Bartel <janb@webtide.com>
This commit is contained in:
Jan Bartel 2018-03-01 10:14:37 +11:00 committed by GitHub
parent 0b89ffd055
commit 8cf357a17d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 74 additions and 166 deletions

View File

@ -20,15 +20,15 @@ package org.eclipse.jetty.osgi.test;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;
import java.io.IOException;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
import javax.websocket.ClientEndpoint; import javax.websocket.ClientEndpoint;
import javax.websocket.CloseReason; import javax.websocket.CloseReason;
import javax.websocket.OnClose; import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage; import javax.websocket.OnMessage;
import javax.websocket.OnOpen; import javax.websocket.OnOpen;
import javax.websocket.OnError;
import javax.websocket.Session; import javax.websocket.Session;
@ClientEndpoint( @ClientEndpoint(

View File

@ -18,16 +18,19 @@
package org.eclipse.jetty.osgi.test; package org.eclipse.jetty.osgi.test;
import java.io.File; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
import static org.ops4j.pax.exam.CoreOptions.systemProperty;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
import org.eclipse.jetty.client.HttpClient; import org.eclipse.jetty.client.HttpClient;
import org.eclipse.jetty.client.api.ContentResponse; import org.eclipse.jetty.client.api.ContentResponse;
import org.eclipse.jetty.http.HttpStatus; import org.eclipse.jetty.http.HttpStatus;
import org.eclipse.jetty.osgi.boot.OSGiServerConstants;
import org.eclipse.jetty.server.handler.ContextHandler; import org.eclipse.jetty.server.handler.ContextHandler;
import org.junit.Ignore; import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
@ -40,13 +43,6 @@ import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext; import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference; import org.osgi.framework.ServiceReference;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
import static org.ops4j.pax.exam.CoreOptions.options;
import static org.ops4j.pax.exam.CoreOptions.systemProperty;
/** /**
* TestJettyOSGiBootContextAsService * TestJettyOSGiBootContextAsService
* *

View File

@ -35,7 +35,6 @@ import javax.inject.Inject;
import org.eclipse.jetty.client.HttpClient; import org.eclipse.jetty.client.HttpClient;
import org.eclipse.jetty.client.api.ContentResponse; import org.eclipse.jetty.client.api.ContentResponse;
import org.eclipse.jetty.http.HttpStatus;
import org.eclipse.jetty.http2.client.HTTP2Client; import org.eclipse.jetty.http2.client.HTTP2Client;
import org.eclipse.jetty.http2.client.http.HttpClientTransportOverHTTP2; import org.eclipse.jetty.http2.client.http.HttpClientTransportOverHTTP2;
import org.eclipse.jetty.util.ssl.SslContextFactory; import org.eclipse.jetty.util.ssl.SslContextFactory;

View File

@ -18,44 +18,28 @@
package org.eclipse.jetty.osgi.test; package org.eclipse.jetty.osgi.test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
import static org.ops4j.pax.exam.CoreOptions.systemProperty;
import static org.ops4j.pax.exam.CoreOptions.wrappedBundle;
import java.io.File; import java.io.File;
import java.net.InetSocketAddress;
import java.nio.file.Path; import java.nio.file.Path;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
import java.util.concurrent.TimeUnit;
import javax.inject.Inject; import javax.inject.Inject;
import org.eclipse.jetty.client.HttpClient; import org.eclipse.jetty.client.HttpClient;
import org.eclipse.jetty.client.api.ContentResponse; import org.eclipse.jetty.client.api.ContentResponse;
import org.eclipse.jetty.http.HostPortHttpField;
import org.eclipse.jetty.http.HttpFields;
import org.eclipse.jetty.http.HttpScheme;
import org.eclipse.jetty.http.HttpStatus;
import org.eclipse.jetty.http.HttpVersion;
import org.eclipse.jetty.http.MetaData;
import org.eclipse.jetty.http2.FlowControlStrategy;
import org.eclipse.jetty.http2.api.Session;
import org.eclipse.jetty.http2.api.Stream;
import org.eclipse.jetty.http2.client.HTTP2Client; import org.eclipse.jetty.http2.client.HTTP2Client;
import org.eclipse.jetty.http2.client.http.HttpClientTransportOverHTTP2; import org.eclipse.jetty.http2.client.http.HttpClientTransportOverHTTP2;
import org.eclipse.jetty.http2.frames.DataFrame;
import org.eclipse.jetty.http2.frames.HeadersFrame;
import org.eclipse.jetty.toolchain.test.JDK;
import org.eclipse.jetty.toolchain.test.OS;
import org.eclipse.jetty.util.Callback;
import org.eclipse.jetty.util.FuturePromise;
import org.eclipse.jetty.util.Promise;
import org.eclipse.jetty.util.ssl.SslContextFactory; import org.eclipse.jetty.util.ssl.SslContextFactory;
import org.eclipse.jetty.util.thread.QueuedThreadPool; import org.eclipse.jetty.util.thread.QueuedThreadPool;
import org.junit.Assert;
import org.junit.Assume;
import org.junit.Before;
import org.junit.Ignore; import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
@ -69,15 +53,6 @@ import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext; import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference; import org.osgi.framework.ServiceReference;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
import static org.ops4j.pax.exam.CoreOptions.wrappedBundle;
import static org.ops4j.pax.exam.CoreOptions.options;
import static org.ops4j.pax.exam.CoreOptions.systemProperty;
/** /**
* HTTP2 setup. * HTTP2 setup.
*/ */
@ -94,7 +69,7 @@ public class TestJettyOSGiBootHTTP2Conscrypt
@Configuration @Configuration
public Option[] config() public Option[] config()
{ {
ArrayList<Option> options = new ArrayList<Option>(); ArrayList<Option> options = new ArrayList<>();
options.add(CoreOptions.junitBundles()); options.add(CoreOptions.junitBundles());
options.addAll(TestOSGiUtil.configureJettyHomeAndPort(true,"jetty-http2.xml")); options.addAll(TestOSGiUtil.configureJettyHomeAndPort(true,"jetty-http2.xml"));
options.add(CoreOptions.bootDelegationPackages("org.xml.sax", "org.xml.*", "org.w3c.*", "javax.xml.*", "javax.activation.*")); options.add(CoreOptions.bootDelegationPackages("org.xml.sax", "org.xml.*", "org.w3c.*", "javax.xml.*", "javax.activation.*"));
@ -121,7 +96,7 @@ public class TestJettyOSGiBootHTTP2Conscrypt
public static List<Option> http2JettyDependencies() public static List<Option> http2JettyDependencies()
{ {
List<Option> res = new ArrayList<Option>(); List<Option> res = new ArrayList<>();
res.add(CoreOptions.systemProperty("jetty.alpn.protocols").value("h2,http/1.1")); res.add(CoreOptions.systemProperty("jetty.alpn.protocols").value("h2,http/1.1"));
res.add(CoreOptions.systemProperty("jetty.sslContext.provider").value("Conscrypt")); res.add(CoreOptions.systemProperty("jetty.sslContext.provider").value("Conscrypt"));
@ -150,7 +125,7 @@ public class TestJettyOSGiBootHTTP2Conscrypt
Bundle conscrypt = TestOSGiUtil.getBundle(bundleContext, "org.eclipse.jetty.alpn.conscrypt.server"); Bundle conscrypt = TestOSGiUtil.getBundle(bundleContext, "org.eclipse.jetty.alpn.conscrypt.server");
TestOSGiUtil.diagnoseNonActiveOrNonResolvedBundle(conscrypt); TestOSGiUtil.diagnoseNonActiveOrNonResolvedBundle(conscrypt);
assertNotNull(conscrypt); assertNotNull(conscrypt);
ServiceReference[] services = conscrypt.getRegisteredServices(); ServiceReference<?>[] services = conscrypt.getRegisteredServices();
assertNotNull(services); assertNotNull(services);
assertTrue(services.length > 0); assertTrue(services.length > 0);
} }
@ -162,12 +137,10 @@ public class TestJettyOSGiBootHTTP2Conscrypt
HTTP2Client client = new HTTP2Client(); HTTP2Client client = new HTTP2Client();
try try
{ {
String tmp = System.getProperty("boot.https.port"); String port = System.getProperty("boot.https.port");
assertNotNull(tmp); assertNotNull(port);
int port = Integer.valueOf(tmp.trim()).intValue();
Path path = Paths.get("src", "test", "config"); Path path = Paths.get("src", "test", "config");
File base = path.toFile();
File keys = path.resolve("etc").resolve("keystore").toFile(); File keys = path.resolve("etc").resolve("keystore").toFile();
HTTP2Client http2Client = new HTTP2Client(); HTTP2Client http2Client = new HTTP2Client();

View File

@ -24,7 +24,6 @@ import static org.junit.Assert.assertTrue;
import static org.ops4j.pax.exam.CoreOptions.mavenBundle; import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
import static org.ops4j.pax.exam.CoreOptions.systemProperty; import static org.ops4j.pax.exam.CoreOptions.systemProperty;
import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -33,8 +32,6 @@ import javax.inject.Inject;
import org.eclipse.jetty.client.HttpClient; import org.eclipse.jetty.client.HttpClient;
import org.eclipse.jetty.client.api.ContentResponse; import org.eclipse.jetty.client.api.ContentResponse;
import org.eclipse.jetty.http.HttpStatus; import org.eclipse.jetty.http.HttpStatus;
import org.eclipse.jetty.osgi.boot.OSGiServerConstants;
import org.eclipse.jetty.server.handler.ContextHandler;
import org.eclipse.jetty.webapp.WebAppContext; import org.eclipse.jetty.webapp.WebAppContext;
import org.junit.Ignore; import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
@ -68,7 +65,7 @@ public class TestJettyOSGiBootWebAppAsService
@Configuration @Configuration
public static Option[] configure() public static Option[] configure()
{ {
ArrayList<Option> options = new ArrayList<Option>(); ArrayList<Option> options = new ArrayList<>();
options.add(CoreOptions.junitBundles()); options.add(CoreOptions.junitBundles());
options.addAll(TestOSGiUtil.configureJettyHomeAndPort(false, "jetty-http-boot-webapp-as-service.xml")); options.addAll(TestOSGiUtil.configureJettyHomeAndPort(false, "jetty-http-boot-webapp-as-service.xml"));
options.add(CoreOptions.bootDelegationPackages("org.xml.sax", "org.xml.*", "org.w3c.*", "javax.xml.*")); options.add(CoreOptions.bootDelegationPackages("org.xml.sax", "org.xml.*", "org.w3c.*", "javax.xml.*"));
@ -88,16 +85,12 @@ public class TestJettyOSGiBootWebAppAsService
public static List<Option> testDependencies() public static List<Option> testDependencies()
{ {
List<Option> res = new ArrayList<Option>(); List<Option> res = new ArrayList<>();
// a bundle that registers a webapp as a service for the jetty osgi core // a bundle that registers a webapp as a service for the jetty osgi core
// to pick up and deploy // to pick up and deploy
res.add(mavenBundle().groupId("org.eclipse.jetty.osgi").artifactId("test-jetty-osgi-webapp").versionAsInProject().start()); res.add(mavenBundle().groupId("org.eclipse.jetty.osgi").artifactId("test-jetty-osgi-webapp").versionAsInProject().start());
//a bundle that registers a new named Server instance //a bundle that registers a new named Server instance
res.add(mavenBundle().groupId("org.eclipse.jetty.osgi").artifactId("test-jetty-osgi-server").versionAsInProject().start()); res.add(mavenBundle().groupId("org.eclipse.jetty.osgi").artifactId("test-jetty-osgi-server").versionAsInProject().start());
@ -122,25 +115,25 @@ public class TestJettyOSGiBootWebAppAsService
try try
{ {
client.start(); client.start();
String tmp = System.getProperty("boot.webapp.service.port"); String port = System.getProperty("boot.webapp.service.port");
assertNotNull(tmp); assertNotNull(port);
int port = Integer.valueOf(tmp.trim()).intValue();
ContentResponse response = client.GET("http://127.0.0.1:" + port + "/acme/index.html"); ContentResponse response = client.GET("http://127.0.0.1:" + port + "/acme/index.html");
assertEquals(HttpStatus.OK_200, response.getStatus()); assertEquals(HttpStatus.OK_200, response.getStatus());
String content = new String(response.getContent()); String content = response.getContentAsString();
assertTrue(content.indexOf("<h1>Test OSGi WebAppA</h1>") != -1); assertTrue(content.indexOf("<h1>Test OSGi WebAppA</h1>") != -1);
response = client.GET("http://127.0.0.1:" + port + "/acme/mime"); response = client.GET("http://127.0.0.1:" + port + "/acme/mime");
assertEquals(HttpStatus.OK_200, response.getStatus()); assertEquals(HttpStatus.OK_200, response.getStatus());
content = new String(response.getContent()); content = response.getContentAsString();
assertTrue(content.indexOf("MIMETYPE=application/gzip") != -1); assertTrue(content.indexOf("MIMETYPE=application/gzip") != -1);
tmp = System.getProperty("bundle.server.port"); port = System.getProperty("bundle.server.port");
assertNotNull(tmp); assertNotNull(port);
port = Integer.valueOf(tmp).intValue();
response = client.GET("http://127.0.0.1:" + port + "/acme/index.html"); response = client.GET("http://127.0.0.1:" + port + "/acme/index.html");
assertEquals(HttpStatus.OK_200, response.getStatus()); assertEquals(HttpStatus.OK_200, response.getStatus());
content = new String(response.getContent()); content = response.getContentAsString();
assertTrue(content.indexOf("<h1>Test OSGi WebAppB</h1>") != -1); assertTrue(content.indexOf("<h1>Test OSGi WebAppB</h1>") != -1);
} }
finally finally
@ -148,7 +141,7 @@ public class TestJettyOSGiBootWebAppAsService
client.stop(); client.stop();
} }
ServiceReference[] refs = bundleContext.getServiceReferences(WebAppContext.class.getName(), null); ServiceReference<?>[] refs = bundleContext.getServiceReferences(WebAppContext.class.getName(), null);
assertNotNull(refs); assertNotNull(refs);
assertEquals(2, refs.length); assertEquals(2, refs.length);
WebAppContext wac = (WebAppContext) bundleContext.getService(refs[0]); WebAppContext wac = (WebAppContext) bundleContext.getService(refs[0]);

View File

@ -24,7 +24,6 @@ import static org.junit.Assert.assertTrue;
import static org.ops4j.pax.exam.CoreOptions.mavenBundle; import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
import static org.ops4j.pax.exam.CoreOptions.systemProperty; import static org.ops4j.pax.exam.CoreOptions.systemProperty;
import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -34,7 +33,6 @@ import org.eclipse.jetty.client.HttpClient;
import org.eclipse.jetty.client.api.ContentResponse; import org.eclipse.jetty.client.api.ContentResponse;
import org.eclipse.jetty.client.api.Request; import org.eclipse.jetty.client.api.Request;
import org.eclipse.jetty.http.HttpStatus; import org.eclipse.jetty.http.HttpStatus;
import org.eclipse.jetty.osgi.boot.OSGiServerConstants;
import org.junit.Ignore; import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
@ -61,7 +59,7 @@ public class TestJettyOSGiBootWithAnnotations
@Configuration @Configuration
public static Option[] configure() public static Option[] configure()
{ {
ArrayList<Option> options = new ArrayList<Option>(); ArrayList<Option> options = new ArrayList<>();
options.add(CoreOptions.junitBundles()); options.add(CoreOptions.junitBundles());
options.addAll(TestOSGiUtil.configureJettyHomeAndPort(false, "jetty-http-boot-with-annotations.xml")); options.addAll(TestOSGiUtil.configureJettyHomeAndPort(false, "jetty-http-boot-with-annotations.xml"));
options.add(CoreOptions.bootDelegationPackages("org.xml.sax", "org.xml.*", "org.w3c.*", "javax.sql.*","javax.xml.*", "javax.activation.*")); options.add(CoreOptions.bootDelegationPackages("org.xml.sax", "org.xml.*", "org.w3c.*", "javax.sql.*","javax.xml.*", "javax.activation.*"));
@ -72,7 +70,6 @@ public class TestJettyOSGiBootWithAnnotations
options.addAll(TestOSGiUtil.coreJettyDependencies()); options.addAll(TestOSGiUtil.coreJettyDependencies());
options.add(systemProperty("org.ops4j.pax.logging.DefaultServiceLog.level").value(LOG_LEVEL)); options.add(systemProperty("org.ops4j.pax.logging.DefaultServiceLog.level").value(LOG_LEVEL));
options.add(systemProperty("org.eclipse.jetty.LEVEL").value(LOG_LEVEL)); options.add(systemProperty("org.eclipse.jetty.LEVEL").value(LOG_LEVEL));
// options.addAll(TestJettyOSGiBootCore.consoleDependencies());
options.addAll(jspDependencies()); options.addAll(jspDependencies());
options.addAll(annotationDependencies()); options.addAll(annotationDependencies());
options.add(mavenBundle().groupId("org.eclipse.jetty.osgi").artifactId("test-jetty-osgi-fragment").versionAsInProject().noStart()); options.add(mavenBundle().groupId("org.eclipse.jetty.osgi").artifactId("test-jetty-osgi-fragment").versionAsInProject().noStart());
@ -87,7 +84,7 @@ public class TestJettyOSGiBootWithAnnotations
public static List<Option> annotationDependencies() public static List<Option> annotationDependencies()
{ {
List<Option> res = new ArrayList<Option>(); List<Option> res = new ArrayList<>();
res.add(mavenBundle().groupId( "org.eclipse.jetty.orbit" ).artifactId( "javax.mail.glassfish" ).version( "1.4.1.v201005082020" ).noStart()); res.add(mavenBundle().groupId( "org.eclipse.jetty.orbit" ).artifactId( "javax.mail.glassfish" ).version( "1.4.1.v201005082020" ).noStart());
res.add(mavenBundle().groupId("org.eclipse.jetty.tests").artifactId("test-container-initializer").versionAsInProject()); res.add(mavenBundle().groupId("org.eclipse.jetty.tests").artifactId("test-container-initializer").versionAsInProject());
res.add(mavenBundle().groupId("org.eclipse.jetty.tests").artifactId("test-mock-resources").versionAsInProject()); res.add(mavenBundle().groupId("org.eclipse.jetty.tests").artifactId("test-mock-resources").versionAsInProject());
@ -114,23 +111,22 @@ public class TestJettyOSGiBootWithAnnotations
try try
{ {
client.start(); client.start();
String tmp = System.getProperty("boot.annotations.port"); String port = System.getProperty("boot.annotations.port");
assertNotNull(tmp); assertNotNull(port);
int port = Integer.valueOf(tmp.trim()).intValue();
ContentResponse response = client.GET("http://127.0.0.1:" + port + "/index.html"); ContentResponse response = client.GET("http://127.0.0.1:" + port + "/index.html");
assertEquals(HttpStatus.OK_200, response.getStatus()); assertEquals(HttpStatus.OK_200, response.getStatus());
String content = new String(response.getContent()); String content = response.getContentAsString();
assertTrue(content.contains("<h1>Servlet 3.1 Test WebApp</h1>")); assertTrue(content.contains("<h1>Servlet 3.1 Test WebApp</h1>"));
Request req = client.POST("http://127.0.0.1:" + port + "/test"); Request req = client.POST("http://127.0.0.1:" + port + "/test");
response = req.send(); response = req.send();
content = new String(response.getContent()); content = response.getContentAsString();
assertTrue(content.contains("<p><b>Result: <span class=\"pass\">PASS</span></p>")); assertTrue(content.contains("<p><b>Result: <span class=\"pass\">PASS</span></p>"));
response = client.GET("http://127.0.0.1:" + port + "/frag.html"); response = client.GET("http://127.0.0.1:" + port + "/frag.html");
content = new String(response.getContent()); content = response.getContentAsString();
assertTrue(content.contains("<h1>FRAGMENT</h1>")); assertTrue(content.contains("<h1>FRAGMENT</h1>"));
} }
finally finally

View File

@ -23,7 +23,6 @@ import static org.junit.Assert.assertTrue;
import static org.ops4j.pax.exam.CoreOptions.mavenBundle; import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
import static org.ops4j.pax.exam.CoreOptions.systemProperty; import static org.ops4j.pax.exam.CoreOptions.systemProperty;
import java.io.File;
import java.io.InputStream; import java.io.InputStream;
import java.net.URI; import java.net.URI;
import java.util.ArrayList; import java.util.ArrayList;
@ -36,7 +35,6 @@ import javax.websocket.RemoteEndpoint;
import javax.websocket.Session; import javax.websocket.Session;
import javax.websocket.WebSocketContainer; import javax.websocket.WebSocketContainer;
import org.eclipse.jetty.osgi.boot.OSGiServerConstants;
import org.junit.Ignore; import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
@ -66,7 +64,7 @@ public class TestJettyOSGiBootWithJavaxWebSocket
@Configuration @Configuration
public static Option[] configure() public static Option[] configure()
{ {
ArrayList<Option> options = new ArrayList<Option>(); ArrayList<Option> options = new ArrayList<>();
options.add(CoreOptions.junitBundles()); options.add(CoreOptions.junitBundles());
options.addAll(TestOSGiUtil.configureJettyHomeAndPort(false, "jetty-http-boot-with-javax-websocket.xml")); options.addAll(TestOSGiUtil.configureJettyHomeAndPort(false, "jetty-http-boot-with-javax-websocket.xml"));
options.add(CoreOptions.bootDelegationPackages("org.xml.sax", "org.xml.*", "org.w3c.*", "javax.sql.*","javax.xml.*", "javax.activation.*")); options.add(CoreOptions.bootDelegationPackages("org.xml.sax", "org.xml.*", "org.w3c.*", "javax.sql.*","javax.xml.*", "javax.activation.*"));
@ -91,7 +89,7 @@ public class TestJettyOSGiBootWithJavaxWebSocket
public static List<Option> annotationDependencies() public static List<Option> annotationDependencies()
{ {
List<Option> res = new ArrayList<Option>(); List<Option> res = new ArrayList<>();
res.add(mavenBundle().groupId( "org.eclipse.jetty.orbit" ).artifactId( "javax.mail.glassfish" ).version( "1.4.1.v201005082020" ).noStart()); res.add(mavenBundle().groupId( "org.eclipse.jetty.orbit" ).artifactId( "javax.mail.glassfish" ).version( "1.4.1.v201005082020" ).noStart());
res.add(mavenBundle().groupId("org.eclipse.jetty.tests").artifactId("test-mock-resources").versionAsInProject()); res.add(mavenBundle().groupId("org.eclipse.jetty.tests").artifactId("test-mock-resources").versionAsInProject());
//test webapp bundle //test webapp bundle
@ -100,7 +98,7 @@ public class TestJettyOSGiBootWithJavaxWebSocket
} }
public static List<Option> extraDependencies() public static List<Option> extraDependencies()
{ {
List<Option> res = new ArrayList<Option>(); List<Option> res = new ArrayList<>();
res.add(mavenBundle().groupId("biz.aQute.bnd").artifactId("bndlib").versionAsInProject().start()); res.add(mavenBundle().groupId("biz.aQute.bnd").artifactId("bndlib").versionAsInProject().start());
res.add(mavenBundle().groupId("org.ops4j.pax.tinybundles").artifactId("tinybundles").version("2.1.1").start()); res.add(mavenBundle().groupId("org.ops4j.pax.tinybundles").artifactId("tinybundles").version("2.1.1").start());
return res; return res;
@ -127,7 +125,7 @@ public class TestJettyOSGiBootWithJavaxWebSocket
"osgi.serviceloader;filter:=\"(osgi.serviceloader=javax.websocket.ContainerProvider)\";resolution:=optional;cardinality:=multiple, osgi.extender; filter:=\"(osgi.extender=osgi.serviceloader.processor)\""); "osgi.serviceloader;filter:=\"(osgi.serviceloader=javax.websocket.ContainerProvider)\";resolution:=optional;cardinality:=multiple, osgi.extender; filter:=\"(osgi.extender=osgi.serviceloader.processor)\"");
bundle.set(Constants.BUNDLE_SYMBOLICNAME, "javax.websocket.api.fragment"); bundle.set(Constants.BUNDLE_SYMBOLICNAME, "javax.websocket.api.fragment");
InputStream is = bundle.build(TinyBundles.withBnd()); InputStream is = bundle.build(TinyBundles.withBnd());
Bundle installed = bundleContext.installBundle("dummyLocation", is); bundleContext.installBundle("dummyLocation", is);
Bundle websocketApiBundle = TestOSGiUtil.getBundle(bundleContext, "javax.websocket-api"); Bundle websocketApiBundle = TestOSGiUtil.getBundle(bundleContext, "javax.websocket-api");
assertNotNull(websocketApiBundle); assertNotNull(websocketApiBundle);
@ -144,9 +142,8 @@ public class TestJettyOSGiBootWithJavaxWebSocket
javaxWebsocketServer.start(); javaxWebsocketServer.start();
String tmp = System.getProperty("boot.javax.websocket.port"); String port = System.getProperty("boot.javax.websocket.port");
assertNotNull(tmp); assertNotNull(port);
int port = Integer.valueOf(tmp.trim()).intValue();
WebSocketContainer container = ContainerProvider.getWebSocketContainer(); WebSocketContainer container = ContainerProvider.getWebSocketContainer();
assertNotNull(container); assertNotNull(container);

View File

@ -24,7 +24,6 @@ import static org.junit.Assert.assertTrue;
import static org.ops4j.pax.exam.CoreOptions.mavenBundle; import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
import static org.ops4j.pax.exam.CoreOptions.systemProperty; import static org.ops4j.pax.exam.CoreOptions.systemProperty;
import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -33,8 +32,6 @@ import javax.inject.Inject;
import org.eclipse.jetty.client.HttpClient; import org.eclipse.jetty.client.HttpClient;
import org.eclipse.jetty.client.api.ContentResponse; import org.eclipse.jetty.client.api.ContentResponse;
import org.eclipse.jetty.http.HttpStatus; import org.eclipse.jetty.http.HttpStatus;
import org.eclipse.jetty.osgi.boot.OSGiServerConstants;
import org.eclipse.jetty.toolchain.test.OS;
import org.junit.Ignore; import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
@ -60,7 +57,7 @@ public class TestJettyOSGiBootWithJsp
@Configuration @Configuration
public static Option[] configure() public static Option[] configure()
{ {
ArrayList<Option> options = new ArrayList<Option>(); ArrayList<Option> options = new ArrayList<>();
options.add(CoreOptions.junitBundles()); options.add(CoreOptions.junitBundles());
options.addAll(TestOSGiUtil.configureJettyHomeAndPort(false,"jetty-http-boot-with-jsp.xml")); options.addAll(TestOSGiUtil.configureJettyHomeAndPort(false,"jetty-http-boot-with-jsp.xml"));
options.add(CoreOptions.bootDelegationPackages("org.xml.sax", "org.xml.*", "org.w3c.*", "javax.xml.*", "javax.activation.*")); options.add(CoreOptions.bootDelegationPackages("org.xml.sax", "org.xml.*", "org.w3c.*", "javax.xml.*", "javax.activation.*"));
@ -80,7 +77,7 @@ public class TestJettyOSGiBootWithJsp
public static List<Option> jspDependencies() public static List<Option> jspDependencies()
{ {
List<Option> res = new ArrayList<Option>(); List<Option> res = new ArrayList<>();
res.addAll(TestOSGiUtil.jspDependencies()); res.addAll(TestOSGiUtil.jspDependencies());
//test webapp bundle //test webapp bundle
res.add(mavenBundle().groupId("org.eclipse.jetty").artifactId("test-jetty-webapp").classifier("webbundle").versionAsInProject()); res.add(mavenBundle().groupId("org.eclipse.jetty").artifactId("test-jetty-webapp").classifier("webbundle").versionAsInProject());
@ -106,13 +103,12 @@ public class TestJettyOSGiBootWithJsp
{ {
client.start(); client.start();
String tmp = System.getProperty("boot.jsp.port"); String port = System.getProperty("boot.jsp.port");
assertNotNull(tmp); assertNotNull(port);
int port = Integer.valueOf(tmp.trim()).intValue();
ContentResponse response = client.GET("http://127.0.0.1:" + port + "/jsp/jstl.jsp"); ContentResponse response = client.GET("http://127.0.0.1:" + port + "/jsp/jstl.jsp");
assertEquals(HttpStatus.OK_200, response.getStatus()); assertEquals(HttpStatus.OK_200, response.getStatus());
String content = new String(response.getContent()); String content = response.getContentAsString();
assertTrue(content.contains("JSTL Example")); assertTrue(content.contains("JSTL Example"));
} }
finally finally

View File

@ -23,7 +23,6 @@ import static org.junit.Assert.assertTrue;
import static org.ops4j.pax.exam.CoreOptions.mavenBundle; import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
import static org.ops4j.pax.exam.CoreOptions.systemProperty; import static org.ops4j.pax.exam.CoreOptions.systemProperty;
import java.io.File;
import java.net.URI; import java.net.URI;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -31,7 +30,6 @@ import java.util.concurrent.TimeUnit;
import javax.inject.Inject; import javax.inject.Inject;
import org.eclipse.jetty.osgi.boot.OSGiServerConstants;
import org.eclipse.jetty.websocket.client.ClientUpgradeRequest; import org.eclipse.jetty.websocket.client.ClientUpgradeRequest;
import org.eclipse.jetty.websocket.client.WebSocketClient; import org.eclipse.jetty.websocket.client.WebSocketClient;
import org.junit.Ignore; import org.junit.Ignore;
@ -57,7 +55,7 @@ public class TestJettyOSGiBootWithWebSocket
@Configuration @Configuration
public static Option[] configure() public static Option[] configure()
{ {
ArrayList<Option> options = new ArrayList<Option>(); ArrayList<Option> options = new ArrayList<>();
options.add(CoreOptions.junitBundles()); options.add(CoreOptions.junitBundles());
options.addAll(TestOSGiUtil.configureJettyHomeAndPort(false, "jetty-http-boot-with-websocket.xml")); options.addAll(TestOSGiUtil.configureJettyHomeAndPort(false, "jetty-http-boot-with-websocket.xml"));
options.add(CoreOptions.bootDelegationPackages("org.xml.sax", "org.xml.*", "org.w3c.*", "javax.sql.*","javax.xml.*", "javax.activation.*")); options.add(CoreOptions.bootDelegationPackages("org.xml.sax", "org.xml.*", "org.w3c.*", "javax.sql.*","javax.xml.*", "javax.activation.*"));
@ -80,7 +78,7 @@ public class TestJettyOSGiBootWithWebSocket
public static List<Option> annotationDependencies() public static List<Option> annotationDependencies()
{ {
List<Option> res = new ArrayList<Option>(); List<Option> res = new ArrayList<>();
res.add(mavenBundle().groupId( "org.eclipse.jetty.orbit" ).artifactId( "javax.mail.glassfish" ).version( "1.4.1.v201005082020" ).noStart()); res.add(mavenBundle().groupId( "org.eclipse.jetty.orbit" ).artifactId( "javax.mail.glassfish" ).version( "1.4.1.v201005082020" ).noStart());
res.add(mavenBundle().groupId("org.eclipse.jetty.tests").artifactId("test-mock-resources").versionAsInProject()); res.add(mavenBundle().groupId("org.eclipse.jetty.tests").artifactId("test-mock-resources").versionAsInProject());
//test webapp bundle //test webapp bundle
@ -101,9 +99,8 @@ public class TestJettyOSGiBootWithWebSocket
@Test @Test
public void testWebsocket() throws Exception public void testWebsocket() throws Exception
{ {
String tmp = System.getProperty("boot.websocket.port"); String port = System.getProperty("boot.websocket.port");
assertNotNull(tmp); assertNotNull(port);
int port = Integer.valueOf(tmp.trim()).intValue();
URI uri = new URI("ws://127.0.0.1:" + port+"/ws/foo"); URI uri = new URI("ws://127.0.0.1:" + port+"/ws/foo");

View File

@ -23,7 +23,6 @@ import static org.ops4j.pax.exam.CoreOptions.systemProperty;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.net.ServerSocket;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@ -58,7 +57,7 @@ public class TestOSGiUtil
{ {
File etc = new File(OS.separators("src/test/config/etc")); File etc = new File(OS.separators("src/test/config/etc"));
List<Option> options = new ArrayList<Option>(); List<Option> options = new ArrayList<>();
StringBuffer xmlConfigs = new StringBuffer(); StringBuffer xmlConfigs = new StringBuffer();
xmlConfigs.append(new File(etc, "jetty.xml").toURI()); xmlConfigs.append(new File(etc, "jetty.xml").toURI());
xmlConfigs.append(";"); xmlConfigs.append(";");
@ -88,9 +87,8 @@ public class TestOSGiUtil
public static List<Option> provisionCoreJetty() public static List<Option> provisionCoreJetty()
{ {
List<Option> res = new ArrayList<Option>(); List<Option> res = new ArrayList<>();
// get the jetty home config from the osgi boot bundle. // get the jetty home config from the osgi boot bundle.
res.add(CoreOptions.systemProperty("jetty.home.bundle").value("org.eclipse.jetty.osgi.boot")); res.add(CoreOptions.systemProperty("jetty.home.bundle").value("org.eclipse.jetty.osgi.boot"));
res.addAll(coreJettyDependencies()); res.addAll(coreJettyDependencies());
return res; return res;
@ -99,14 +97,13 @@ public class TestOSGiUtil
public static List<Option> coreJettyDependencies() public static List<Option> coreJettyDependencies()
{ {
List<Option> res = new ArrayList<Option>(); List<Option> res = new ArrayList<>();
res.add(mavenBundle().groupId( "org.ow2.asm" ).artifactId( "asm" ).versionAsInProject().start()); res.add(mavenBundle().groupId( "org.ow2.asm" ).artifactId( "asm" ).versionAsInProject().start());
res.add(mavenBundle().groupId( "org.ow2.asm" ).artifactId( "asm-commons" ).versionAsInProject().start()); res.add(mavenBundle().groupId( "org.ow2.asm" ).artifactId( "asm-commons" ).versionAsInProject().start());
res.add(mavenBundle().groupId( "org.ow2.asm" ).artifactId( "asm-tree" ).versionAsInProject().start()); res.add(mavenBundle().groupId( "org.ow2.asm" ).artifactId( "asm-tree" ).versionAsInProject().start());
res.add(mavenBundle().groupId( "org.apache.aries" ).artifactId( "org.apache.aries.util" ).versionAsInProject().start()); res.add(mavenBundle().groupId( "org.apache.aries" ).artifactId( "org.apache.aries.util" ).versionAsInProject().start());
res.add(mavenBundle().groupId( "org.apache.aries.spifly" ).artifactId( "org.apache.aries.spifly.dynamic.bundle" ).versionAsInProject().start()); res.add(mavenBundle().groupId( "org.apache.aries.spifly" ).artifactId( "org.apache.aries.spifly.dynamic.bundle" ).versionAsInProject().start());
res.add(mavenBundle().groupId( "org.eclipse.jetty.toolchain" ).artifactId( "jetty-osgi-servlet-api" ).versionAsInProject().noStart()); res.add(mavenBundle().groupId( "org.eclipse.jetty.toolchain" ).artifactId( "jetty-osgi-servlet-api" ).versionAsInProject().noStart());
res.add(mavenBundle().groupId( "javax.annotation" ).artifactId( "javax.annotation-api" ).versionAsInProject().start()); res.add(mavenBundle().groupId( "javax.annotation" ).artifactId( "javax.annotation-api" ).versionAsInProject().start());
res.add(mavenBundle().groupId( "org.apache.geronimo.specs" ).artifactId( "geronimo-jta_1.1_spec" ).version("1.1.1").start()); res.add(mavenBundle().groupId( "org.apache.geronimo.specs" ).artifactId( "geronimo-jta_1.1_spec" ).version("1.1.1").start());
@ -139,7 +136,7 @@ public class TestOSGiUtil
public static List<Option> consoleDependencies() public static List<Option> consoleDependencies()
{ {
List<Option> res = new ArrayList<Option>(); List<Option> res = new ArrayList<>();
res.add(systemProperty("osgi.console").value("6666")); res.add(systemProperty("osgi.console").value("6666"));
res.add(systemProperty("osgi.console.enable.builtin").value("true")); res.add(systemProperty("osgi.console.enable.builtin").value("true"));
return res; return res;
@ -149,7 +146,7 @@ public class TestOSGiUtil
public static List<Option> jspDependencies() public static List<Option> jspDependencies()
{ {
List<Option> res = new ArrayList<Option>(); List<Option> res = new ArrayList<>();
//jetty jsp bundles //jetty jsp bundles
res.add(mavenBundle().groupId("org.eclipse.jetty.toolchain").artifactId("jetty-schemas").versionAsInProject().start()); res.add(mavenBundle().groupId("org.eclipse.jetty.toolchain").artifactId("jetty-schemas").versionAsInProject().start());
@ -165,7 +162,7 @@ public class TestOSGiUtil
public static List<Option> httpServiceJetty() public static List<Option> httpServiceJetty()
{ {
List<Option> res = new ArrayList<Option>(); List<Option> res = new ArrayList<>();
res.add(mavenBundle().groupId( "org.eclipse.jetty.osgi" ).artifactId( "jetty-httpservice" ).versionAsInProject().start()); res.add(mavenBundle().groupId( "org.eclipse.jetty.osgi" ).artifactId( "jetty-httpservice" ).versionAsInProject().start());
res.add(mavenBundle().groupId( "org.eclipse.equinox.http" ).artifactId( "servlet" ).versionAsInProject().start()); res.add(mavenBundle().groupId( "org.eclipse.equinox.http" ).artifactId( "servlet" ).versionAsInProject().start());
return res; return res;
@ -173,7 +170,7 @@ public class TestOSGiUtil
protected static Bundle getBundle(BundleContext bundleContext, String symbolicName) protected static Bundle getBundle(BundleContext bundleContext, String symbolicName)
{ {
Map<String,Bundle> _bundles = new HashMap<String, Bundle>(); Map<String,Bundle> _bundles = new HashMap<>();
for (Bundle b : bundleContext.getBundles()) for (Bundle b : bundleContext.getBundles())
{ {
Bundle prevBundle = _bundles.put(b.getSymbolicName(), b); Bundle prevBundle = _bundles.put(b.getSymbolicName(), b);
@ -259,6 +256,7 @@ public class TestOSGiUtil
} }
} }
@SuppressWarnings("rawtypes")
protected static ServiceReference[] getServices (String service, BundleContext bundleContext) throws Exception protected static ServiceReference[] getServices (String service, BundleContext bundleContext) throws Exception
{ {
return bundleContext.getAllServiceReferences(service, null); return bundleContext.getAllServiceReferences(service, null);
@ -282,7 +280,7 @@ public class TestOSGiUtil
// tracker. // tracker.
// here we purposely want to make sure that the httpService is actually // here we purposely want to make sure that the httpService is actually
// ready. // ready.
ServiceReference sr = bundleContext.getServiceReference(HttpService.class.getName()); ServiceReference<?> sr = bundleContext.getServiceReference(HttpService.class.getName());
Assert.assertNotNull("The httpServiceOSGiBundle is started and should " + "have deployed a service reference for HttpService", sr); Assert.assertNotNull("The httpServiceOSGiBundle is started and should " + "have deployed a service reference for HttpService", sr);
HttpService http = (HttpService) bundleContext.getService(sr); HttpService http = (HttpService) bundleContext.getService(sr);
http.registerServlet("/greetings", new HttpServlet() http.registerServlet("/greetings", new HttpServlet()
@ -312,41 +310,4 @@ public class TestOSGiUtil
client.stop(); client.stop();
} }
} }
public static int findFreePort(String systemProperty)
{
String freeport = System.getProperty(systemProperty);
if (freeport!=null)
return Integer.valueOf(freeport);
try (ServerSocket socket = new ServerSocket(0))
{
socket.setReuseAddress(true);
int port = socket.getLocalPort();
System.setProperty(systemProperty,Integer.toString(port));
return port;
}
catch (IOException e)
{
throw new RuntimeException(e);
}
}
public static void main(String... args)
{
int freeport = TestOSGiUtil.findFreePort("test");
System.err.println("Found Free port="+freeport);
try (ServerSocket socket = new ServerSocket(TestOSGiUtil.findFreePort("test")))
{
System.err.println("reused port="+socket.getLocalPort());
}
catch (IOException e)
{
e.printStackTrace();
}
}
} }