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 java.io.IOException;
import java.util.concurrent.CountDownLatch;
import javax.websocket.ClientEndpoint;
import javax.websocket.CloseReason;
import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.OnError;
import javax.websocket.Session;
@ClientEndpoint(

View File

@ -18,16 +18,19 @@
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.Arrays;
import java.util.List;
import javax.inject.Inject;
import org.eclipse.jetty.client.HttpClient;
import org.eclipse.jetty.client.api.ContentResponse;
import org.eclipse.jetty.http.HttpStatus;
import org.eclipse.jetty.osgi.boot.OSGiServerConstants;
import org.eclipse.jetty.server.handler.ContextHandler;
import org.junit.Ignore;
import org.junit.Test;
@ -40,13 +43,6 @@ import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
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
*

View File

@ -35,7 +35,6 @@ import javax.inject.Inject;
import org.eclipse.jetty.client.HttpClient;
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.http.HttpClientTransportOverHTTP2;
import org.eclipse.jetty.util.ssl.SslContextFactory;

View File

@ -18,44 +18,28 @@
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.net.InetSocketAddress;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Executor;
import java.util.concurrent.TimeUnit;
import javax.inject.Inject;
import org.eclipse.jetty.client.HttpClient;
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.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.thread.QueuedThreadPool;
import org.junit.Assert;
import org.junit.Assume;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
@ -69,15 +53,6 @@ import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
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.
*/
@ -94,7 +69,7 @@ public class TestJettyOSGiBootHTTP2Conscrypt
@Configuration
public Option[] config()
{
ArrayList<Option> options = new ArrayList<Option>();
ArrayList<Option> options = new ArrayList<>();
options.add(CoreOptions.junitBundles());
options.addAll(TestOSGiUtil.configureJettyHomeAndPort(true,"jetty-http2.xml"));
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()
{
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.sslContext.provider").value("Conscrypt"));
@ -150,7 +125,7 @@ public class TestJettyOSGiBootHTTP2Conscrypt
Bundle conscrypt = TestOSGiUtil.getBundle(bundleContext, "org.eclipse.jetty.alpn.conscrypt.server");
TestOSGiUtil.diagnoseNonActiveOrNonResolvedBundle(conscrypt);
assertNotNull(conscrypt);
ServiceReference[] services = conscrypt.getRegisteredServices();
ServiceReference<?>[] services = conscrypt.getRegisteredServices();
assertNotNull(services);
assertTrue(services.length > 0);
}
@ -162,12 +137,10 @@ public class TestJettyOSGiBootHTTP2Conscrypt
HTTP2Client client = new HTTP2Client();
try
{
String tmp = System.getProperty("boot.https.port");
assertNotNull(tmp);
int port = Integer.valueOf(tmp.trim()).intValue();
String port = System.getProperty("boot.https.port");
assertNotNull(port);
Path path = Paths.get("src", "test", "config");
File base = path.toFile();
File keys = path.resolve("etc").resolve("keystore").toFile();
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.systemProperty;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
@ -33,8 +32,6 @@ import javax.inject.Inject;
import org.eclipse.jetty.client.HttpClient;
import org.eclipse.jetty.client.api.ContentResponse;
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.junit.Ignore;
import org.junit.Test;
@ -68,7 +65,7 @@ public class TestJettyOSGiBootWebAppAsService
@Configuration
public static Option[] configure()
{
ArrayList<Option> options = new ArrayList<Option>();
ArrayList<Option> options = new ArrayList<>();
options.add(CoreOptions.junitBundles());
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.*"));
@ -88,15 +85,11 @@ public class TestJettyOSGiBootWebAppAsService
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
// to pick up and deploy
res.add(mavenBundle().groupId("org.eclipse.jetty.osgi").artifactId("test-jetty-osgi-webapp").versionAsInProject().start());
//a bundle that registers a new named Server instance
res.add(mavenBundle().groupId("org.eclipse.jetty.osgi").artifactId("test-jetty-osgi-server").versionAsInProject().start());
@ -122,25 +115,25 @@ public class TestJettyOSGiBootWebAppAsService
try
{
client.start();
String tmp = System.getProperty("boot.webapp.service.port");
assertNotNull(tmp);
int port = Integer.valueOf(tmp.trim()).intValue();
String port = System.getProperty("boot.webapp.service.port");
assertNotNull(port);
ContentResponse response = client.GET("http://127.0.0.1:" + port + "/acme/index.html");
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);
response = client.GET("http://127.0.0.1:" + port + "/acme/mime");
assertEquals(HttpStatus.OK_200, response.getStatus());
content = new String(response.getContent());
content = response.getContentAsString();
assertTrue(content.indexOf("MIMETYPE=application/gzip") != -1);
tmp = System.getProperty("bundle.server.port");
assertNotNull(tmp);
port = Integer.valueOf(tmp).intValue();
port = System.getProperty("bundle.server.port");
assertNotNull(port);
response = client.GET("http://127.0.0.1:" + port + "/acme/index.html");
assertEquals(HttpStatus.OK_200, response.getStatus());
content = new String(response.getContent());
content = response.getContentAsString();
assertTrue(content.indexOf("<h1>Test OSGi WebAppB</h1>") != -1);
}
finally
@ -148,7 +141,7 @@ public class TestJettyOSGiBootWebAppAsService
client.stop();
}
ServiceReference[] refs = bundleContext.getServiceReferences(WebAppContext.class.getName(), null);
ServiceReference<?>[] refs = bundleContext.getServiceReferences(WebAppContext.class.getName(), null);
assertNotNull(refs);
assertEquals(2, refs.length);
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.systemProperty;
import java.io.File;
import java.util.ArrayList;
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.Request;
import org.eclipse.jetty.http.HttpStatus;
import org.eclipse.jetty.osgi.boot.OSGiServerConstants;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
@ -61,7 +59,7 @@ public class TestJettyOSGiBootWithAnnotations
@Configuration
public static Option[] configure()
{
ArrayList<Option> options = new ArrayList<Option>();
ArrayList<Option> options = new ArrayList<>();
options.add(CoreOptions.junitBundles());
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.*"));
@ -72,7 +70,6 @@ public class TestJettyOSGiBootWithAnnotations
options.addAll(TestOSGiUtil.coreJettyDependencies());
options.add(systemProperty("org.ops4j.pax.logging.DefaultServiceLog.level").value(LOG_LEVEL));
options.add(systemProperty("org.eclipse.jetty.LEVEL").value(LOG_LEVEL));
// options.addAll(TestJettyOSGiBootCore.consoleDependencies());
options.addAll(jspDependencies());
options.addAll(annotationDependencies());
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()
{
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.tests").artifactId("test-container-initializer").versionAsInProject());
res.add(mavenBundle().groupId("org.eclipse.jetty.tests").artifactId("test-mock-resources").versionAsInProject());
@ -114,23 +111,22 @@ public class TestJettyOSGiBootWithAnnotations
try
{
client.start();
String tmp = System.getProperty("boot.annotations.port");
assertNotNull(tmp);
int port = Integer.valueOf(tmp.trim()).intValue();
String port = System.getProperty("boot.annotations.port");
assertNotNull(port);
ContentResponse response = client.GET("http://127.0.0.1:" + port + "/index.html");
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>"));
Request req = client.POST("http://127.0.0.1:" + port + "/test");
response = req.send();
content = new String(response.getContent());
content = response.getContentAsString();
assertTrue(content.contains("<p><b>Result: <span class=\"pass\">PASS</span></p>"));
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>"));
}
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.systemProperty;
import java.io.File;
import java.io.InputStream;
import java.net.URI;
import java.util.ArrayList;
@ -36,7 +35,6 @@ import javax.websocket.RemoteEndpoint;
import javax.websocket.Session;
import javax.websocket.WebSocketContainer;
import org.eclipse.jetty.osgi.boot.OSGiServerConstants;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
@ -66,7 +64,7 @@ public class TestJettyOSGiBootWithJavaxWebSocket
@Configuration
public static Option[] configure()
{
ArrayList<Option> options = new ArrayList<Option>();
ArrayList<Option> options = new ArrayList<>();
options.add(CoreOptions.junitBundles());
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.*"));
@ -91,7 +89,7 @@ public class TestJettyOSGiBootWithJavaxWebSocket
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.tests").artifactId("test-mock-resources").versionAsInProject());
//test webapp bundle
@ -100,7 +98,7 @@ public class TestJettyOSGiBootWithJavaxWebSocket
}
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("org.ops4j.pax.tinybundles").artifactId("tinybundles").version("2.1.1").start());
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)\"");
bundle.set(Constants.BUNDLE_SYMBOLICNAME, "javax.websocket.api.fragment");
InputStream is = bundle.build(TinyBundles.withBnd());
Bundle installed = bundleContext.installBundle("dummyLocation", is);
bundleContext.installBundle("dummyLocation", is);
Bundle websocketApiBundle = TestOSGiUtil.getBundle(bundleContext, "javax.websocket-api");
assertNotNull(websocketApiBundle);
@ -144,9 +142,8 @@ public class TestJettyOSGiBootWithJavaxWebSocket
javaxWebsocketServer.start();
String tmp = System.getProperty("boot.javax.websocket.port");
assertNotNull(tmp);
int port = Integer.valueOf(tmp.trim()).intValue();
String port = System.getProperty("boot.javax.websocket.port");
assertNotNull(port);
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
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.systemProperty;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
@ -33,8 +32,6 @@ import javax.inject.Inject;
import org.eclipse.jetty.client.HttpClient;
import org.eclipse.jetty.client.api.ContentResponse;
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.Test;
import org.junit.runner.RunWith;
@ -60,7 +57,7 @@ public class TestJettyOSGiBootWithJsp
@Configuration
public static Option[] configure()
{
ArrayList<Option> options = new ArrayList<Option>();
ArrayList<Option> options = new ArrayList<>();
options.add(CoreOptions.junitBundles());
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.*"));
@ -80,7 +77,7 @@ public class TestJettyOSGiBootWithJsp
public static List<Option> jspDependencies()
{
List<Option> res = new ArrayList<Option>();
List<Option> res = new ArrayList<>();
res.addAll(TestOSGiUtil.jspDependencies());
//test webapp bundle
res.add(mavenBundle().groupId("org.eclipse.jetty").artifactId("test-jetty-webapp").classifier("webbundle").versionAsInProject());
@ -106,13 +103,12 @@ public class TestJettyOSGiBootWithJsp
{
client.start();
String tmp = System.getProperty("boot.jsp.port");
assertNotNull(tmp);
int port = Integer.valueOf(tmp.trim()).intValue();
String port = System.getProperty("boot.jsp.port");
assertNotNull(port);
ContentResponse response = client.GET("http://127.0.0.1:" + port + "/jsp/jstl.jsp");
assertEquals(HttpStatus.OK_200, response.getStatus());
String content = new String(response.getContent());
String content = response.getContentAsString();
assertTrue(content.contains("JSTL Example"));
}
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.systemProperty;
import java.io.File;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;
@ -31,7 +30,6 @@ import java.util.concurrent.TimeUnit;
import javax.inject.Inject;
import org.eclipse.jetty.osgi.boot.OSGiServerConstants;
import org.eclipse.jetty.websocket.client.ClientUpgradeRequest;
import org.eclipse.jetty.websocket.client.WebSocketClient;
import org.junit.Ignore;
@ -57,7 +55,7 @@ public class TestJettyOSGiBootWithWebSocket
@Configuration
public static Option[] configure()
{
ArrayList<Option> options = new ArrayList<Option>();
ArrayList<Option> options = new ArrayList<>();
options.add(CoreOptions.junitBundles());
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.*"));
@ -80,7 +78,7 @@ public class TestJettyOSGiBootWithWebSocket
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.tests").artifactId("test-mock-resources").versionAsInProject());
//test webapp bundle
@ -101,9 +99,8 @@ public class TestJettyOSGiBootWithWebSocket
@Test
public void testWebsocket() throws Exception
{
String tmp = System.getProperty("boot.websocket.port");
assertNotNull(tmp);
int port = Integer.valueOf(tmp.trim()).intValue();
String port = System.getProperty("boot.websocket.port");
assertNotNull(port);
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.IOException;
import java.net.ServerSocket;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -58,7 +57,7 @@ public class TestOSGiUtil
{
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();
xmlConfigs.append(new File(etc, "jetty.xml").toURI());
xmlConfigs.append(";");
@ -88,9 +87,8 @@ public class TestOSGiUtil
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.
res.add(CoreOptions.systemProperty("jetty.home.bundle").value("org.eclipse.jetty.osgi.boot"));
res.addAll(coreJettyDependencies());
return res;
@ -99,14 +97,13 @@ public class TestOSGiUtil
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-commons" ).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.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( "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());
@ -139,7 +136,7 @@ public class TestOSGiUtil
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.enable.builtin").value("true"));
return res;
@ -149,7 +146,7 @@ public class TestOSGiUtil
public static List<Option> jspDependencies()
{
List<Option> res = new ArrayList<Option>();
List<Option> res = new ArrayList<>();
//jetty jsp bundles
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()
{
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.equinox.http" ).artifactId( "servlet" ).versionAsInProject().start());
return res;
@ -173,17 +170,17 @@ public class TestOSGiUtil
protected static Bundle getBundle(BundleContext bundleContext, String symbolicName)
{
Map<String,Bundle> _bundles = new HashMap<String, Bundle>();
for (Bundle b : bundleContext.getBundles())
{
Bundle prevBundle = _bundles.put(b.getSymbolicName(), b);
String err = prevBundle != null ? "2 versions of the bundle " + b.getSymbolicName()
+ " "
+ b.getHeaders().get("Bundle-Version")
+ " and "
+ prevBundle.getHeaders().get("Bundle-Version") : "";
Assert.assertNull(err, prevBundle);
}
Map<String,Bundle> _bundles = new HashMap<>();
for (Bundle b : bundleContext.getBundles())
{
Bundle prevBundle = _bundles.put(b.getSymbolicName(), b);
String err = prevBundle != null ? "2 versions of the bundle " + b.getSymbolicName()
+ " "
+ b.getHeaders().get("Bundle-Version")
+ " and "
+ prevBundle.getHeaders().get("Bundle-Version") : "";
Assert.assertNull(err, prevBundle);
}
return _bundles.get(symbolicName);
}
@ -259,6 +256,7 @@ public class TestOSGiUtil
}
}
@SuppressWarnings("rawtypes")
protected static ServiceReference[] getServices (String service, BundleContext bundleContext) throws Exception
{
return bundleContext.getAllServiceReferences(service, null);
@ -282,7 +280,7 @@ public class TestOSGiUtil
// tracker.
// here we purposely want to make sure that the httpService is actually
// 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);
HttpService http = (HttpService) bundleContext.getService(sr);
http.registerServlet("/greetings", new HttpServlet()
@ -312,41 +310,4 @@ public class TestOSGiUtil
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();
}
}
}