You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by tj...@apache.org on 2014/06/30 18:55:06 UTC
svn commit: r1606837 [27/27] - in /aries/branches/subsystemsR6: ./
application/ application/application-api/ application/application-bundle/
application/application-converters/
application/application-default-local-platform/
application/application-dep...
Modified: aries/branches/subsystemsR6/web/web-itests/src/test/java/org/apache/aries/web/converter/itest/WabConverterITest.java
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/web/web-itests/src/test/java/org/apache/aries/web/converter/itest/WabConverterITest.java?rev=1606837&r1=1606836&r2=1606837&view=diff
==============================================================================
--- aries/branches/subsystemsR6/web/web-itests/src/test/java/org/apache/aries/web/converter/itest/WabConverterITest.java (original)
+++ aries/branches/subsystemsR6/web/web-itests/src/test/java/org/apache/aries/web/converter/itest/WabConverterITest.java Mon Jun 30 16:54:57 2014
@@ -19,228 +19,123 @@ package org.apache.aries.web.converter.i
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.equinox;
+import static org.ops4j.pax.exam.CoreOptions.composite;
+import static org.ops4j.pax.exam.CoreOptions.junitBundles;
import static org.ops4j.pax.exam.CoreOptions.options;
import static org.ops4j.pax.exam.CoreOptions.systemProperty;
-import static org.ops4j.pax.exam.CoreOptions.wrappedBundle;
-import static org.ops4j.pax.exam.OptionUtils.combine;
+import static org.ops4j.pax.exam.CoreOptions.vmOption;
+import static org.ops4j.pax.exam.CoreOptions.when;
import java.io.File;
import java.io.FileOutputStream;
+import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
-import java.util.ArrayList;
import java.util.Dictionary;
-import java.util.List;
+import javax.inject.Inject;
+
+import org.apache.aries.itest.AbstractIntegrationTest;
import org.apache.aries.unittest.fixture.ArchiveFixture;
import org.apache.aries.unittest.fixture.ArchiveFixture.ZipFixture;
-import org.junit.After;
-import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.Configuration;
import org.ops4j.pax.exam.CoreOptions;
-import org.ops4j.pax.exam.Inject;
import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.JUnit4TestRunner;
-import org.ops4j.pax.exam.options.BootDelegationOption;
+import org.ops4j.pax.exam.junit.PaxExam;
import org.ops4j.pax.exam.options.MavenArtifactProvisionOption;
+import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
+import org.ops4j.pax.exam.spi.reactors.PerClass;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Constants;
-import org.osgi.framework.Filter;
-import org.osgi.framework.FrameworkUtil;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.Version;
-import org.osgi.service.url.URLStreamHandlerService;
-import org.osgi.util.tracker.ServiceTracker;
-
-@RunWith(JUnit4TestRunner.class)
-public class WabConverterITest {
- public static final long DEFAULT_TIMEOUT = 60000;
-
- @Inject
- protected BundleContext bundleContext;
-
- private List<ServiceTracker> srs;
-
- @Before
- public void setUp() throws Exception {
- srs = new ArrayList<ServiceTracker>();
-
- ZipFixture testWar = ArchiveFixture.newJar()
- .binary("WEB-INF/classes/org/apache/aries/web/test/TestClass.class",
- getClass().getClassLoader().getResourceAsStream("org/apache/aries/web/test/TestClass.class"));
-
- FileOutputStream fout = new FileOutputStream("test.war");
- testWar.writeOut(fout);
- fout.close();
- }
-
- @After
- public void tearDown() throws Exception {
- new File("test.war").delete();
- for (ServiceTracker st : srs) {
- if (st != null) {
- st.close();
- }
- }
- }
-
- @Test
- public void getStarted() throws Exception {
-
- File testWar = new File("test.war");
- String baseUrl = "webbundle:" + testWar.toURI().toURL().toExternalForm() ;
-
- assertTrue("Time out waiting for webbundle URL handler", waitForURLHandler(baseUrl));
-
- Bundle converted = bundleContext.installBundle(baseUrl + "?Bundle-SymbolicName=test.war.bundle&Web-ContextPath=foo");
-
- assertNotNull(converted);
- Dictionary<String,String> man = converted.getHeaders();
-
- assertEquals("test.war.bundle", man.get(Constants.BUNDLE_SYMBOLICNAME));
- assertEquals("/foo", man.get("Web-ContextPath"));
- assertTrue(man.get(Constants.IMPORT_PACKAGE).contains("javax.naming"));
- }
-
- private boolean waitForURLHandler(String url) {
- int maxRepetition = 100;
- for (int i = 0; i < maxRepetition; i++) {
- try {
- new URL(url);
- return true;
- } catch (MalformedURLException e) {
- try {
- Thread.sleep(100);
- } catch (InterruptedException ee) {
- return false;
- }
- }
- }
- return false;
- }
-
- @org.ops4j.pax.exam.junit.Configuration
- public static Option[] configuration() {
- Option[] options = options(
- bootDelegation(),
-
- // Log
- mavenBundle("org.ops4j.pax.logging", "pax-logging-api"),
- mavenBundle("org.ops4j.pax.logging", "pax-logging-service"),
- // Felix Config Admin
- mavenBundle("org.apache.felix", "org.apache.felix.configadmin"),
- // Felix mvn url handler
- mavenBundle("org.ops4j.pax.url", "pax-url-mvn"),
-
- // this is how you set the default log level when using pax
- // logging (logProfile)
- systemProperty("org.ops4j.pax.logging.DefaultServiceLog.level").value("DEBUG"),
-
- // Bundles
- mavenBundle("org.apache.aries.web","org.apache.aries.web.urlhandler"),
- mavenBundle("org.apache.aries", "org.apache.aries.util"),
- mavenBundle("org.ow2.asm", "asm-all"),
- mavenBundle("org.apache.aries.proxy", "org.apache.aries.proxy"),
- mavenBundle("org.apache.aries.blueprint", "org.apache.aries.blueprint"),
- mavenBundle("org.osgi", "org.osgi.compendium"),
- mavenBundle("org.apache.aries.testsupport", "org.apache.aries.testsupport.unit"),
-
-
- equinox().version("3.5.0"));
- options = updateOptions(options);
- return options;
- }
-
-
- protected Bundle getBundle(String symbolicName) {
- return getBundle(symbolicName, null);
- }
-
- protected Bundle getBundle(String bundleSymbolicName, String version) {
- Bundle result = null;
- for (Bundle b : bundleContext.getBundles()) {
- if (b.getSymbolicName().equals(bundleSymbolicName)) {
- if (version == null
- || b.getVersion().equals(Version.parseVersion(version))) {
- result = b;
- break;
- }
- }
- }
- return result;
- }
-
- public static BootDelegationOption bootDelegation() {
- return new BootDelegationOption("org.apache.aries.unittest.fixture");
- }
-
- public static MavenArtifactProvisionOption mavenBundle(String groupId,
- String artifactId) {
- return CoreOptions.mavenBundle().groupId(groupId).artifactId(artifactId)
- .versionAsInProject();
- }
-
- protected static Option[] updateOptions(Option[] options) {
- // We need to add pax-exam-junit here when running with the ibm
- // jdk to avoid the following exception during the test run:
- // ClassNotFoundException: org.ops4j.pax.exam.junit.Configuration
- if ("IBM Corporation".equals(System.getProperty("java.vendor"))) {
- Option[] ibmOptions = options(wrappedBundle(mavenBundle(
- "org.ops4j.pax.exam", "pax-exam-junit")));
- options = combine(ibmOptions, options);
- }
-
- return options;
- }
-
- protected <T> T getOsgiService(Class<T> type, long timeout) {
- return getOsgiService(type, null, timeout);
- }
-
- protected <T> T getOsgiService(Class<T> type) {
- return getOsgiService(type, null, DEFAULT_TIMEOUT);
- }
-
- protected <T> T getOsgiService(Class<T> type, String filter, long timeout) {
- return getOsgiService(null, type, filter, timeout);
- }
-
- protected <T> T getOsgiService(BundleContext bc, Class<T> type,
- String filter, long timeout) {
- ServiceTracker tracker = null;
- try {
- String flt;
- if (filter != null) {
- if (filter.startsWith("(")) {
- flt = "(&(" + Constants.OBJECTCLASS + "=" + type.getName() + ")"
- + filter + ")";
- } else {
- flt = "(&(" + Constants.OBJECTCLASS + "=" + type.getName() + ")("
- + filter + "))";
- }
- } else {
- flt = "(" + Constants.OBJECTCLASS + "=" + type.getName() + ")";
- }
- Filter osgiFilter = FrameworkUtil.createFilter(flt);
- tracker = new ServiceTracker(bc == null ? bundleContext : bc, osgiFilter,
- null);
- tracker.open();
-
- // add tracker to the list of trackers we close at tear down
- srs.add(tracker);
-
- Object svc = type.cast(tracker.waitForService(timeout));
- if (svc == null) {
- throw new RuntimeException("Gave up waiting for service " + flt);
- }
- return type.cast(svc);
- } catch (InvalidSyntaxException e) {
- throw new IllegalArgumentException("Invalid filter", e);
- } catch (InterruptedException e) {
- throw new RuntimeException(e);
- }
- }
+
+@RunWith(PaxExam.class)
+@ExamReactorStrategy(PerClass.class)
+public class WabConverterITest extends AbstractIntegrationTest {
+ @Inject
+ protected BundleContext bundleContext;
+
+ private void createTestWar(File warFile) throws IOException {
+ ZipFixture testWar = ArchiveFixture.newJar().binary(
+ "WEB-INF/classes/org/apache/aries/web/test/TestClass.class",
+ getClass().getClassLoader().getResourceAsStream(
+ "org/apache/aries/web/test/TestClass.class"));
+
+ FileOutputStream fout = new FileOutputStream(warFile);
+ testWar.writeOut(fout);
+ fout.close();
+ }
+
+ @Test
+ public void getStarted() throws Exception {
+ File testWar = File.createTempFile("test", ".war");
+ createTestWar(testWar);
+ String baseUrl = "webbundle:"
+ + testWar.toURI().toURL().toExternalForm();
+ assertTrue("Time out waiting for webbundle URL handler",
+ waitForURLHandler(baseUrl));
+
+ Bundle converted = bundleContext.installBundle(baseUrl
+ + "?Bundle-SymbolicName=test.war.bundle&Web-ContextPath=foo");
+
+ assertNotNull(converted);
+ Dictionary<String, String> man = converted.getHeaders();
+
+ assertEquals("test.war.bundle", man.get(Constants.BUNDLE_SYMBOLICNAME));
+ assertEquals("/foo", man.get("Web-ContextPath"));
+ assertTrue(man.get(Constants.IMPORT_PACKAGE).contains("javax.naming"));
+ new File("test.war").delete();
+ }
+
+ private boolean waitForURLHandler(String url) {
+ int maxRepetition = 100;
+ for (int i = 0; i < maxRepetition; i++) {
+ try {
+ new URL(url);
+ return true;
+ } catch (MalformedURLException e) {
+ try {
+ Thread.sleep(100);
+ } catch (InterruptedException ee) {
+ return false;
+ }
+ }
+ }
+ return false;
+ }
+
+ public Option baseOptions() {
+ String localRepo = getLocalRepo();
+ return composite(
+ junitBundles(),
+ systemProperty("org.ops4j.pax.logging.DefaultServiceLog.level").value("INFO"),
+ when(localRepo != null).useOptions(
+ vmOption("-Dorg.ops4j.pax.url.mvn.localRepository=" + localRepo)));
+ }
+
+ @Configuration
+ public Option[] configuration() {
+ return options(
+ // bootDelegation(),
+ baseOptions(),
+ mavenBundle("org.osgi", "org.osgi.compendium"),
+ mavenBundle("org.apache.felix", "org.apache.felix.configadmin"),
+
+ // Bundles
+ mavenBundle("org.apache.aries.web", "org.apache.aries.web.urlhandler"),
+ mavenBundle("org.apache.aries", "org.apache.aries.util"),
+ mavenBundle("org.ow2.asm", "asm-debug-all"),
+ mavenBundle("org.apache.aries.proxy", "org.apache.aries.proxy"),
+ mavenBundle("org.apache.aries.blueprint", "org.apache.aries.blueprint"),
+ mavenBundle("org.apache.aries.testsupport", "org.apache.aries.testsupport.unit"));
+ }
+
+ private MavenArtifactProvisionOption mavenBundle(String groupId,
+ String artifactId) {
+ return CoreOptions.mavenBundle().groupId(groupId)
+ .artifactId(artifactId).versionAsInProject();
+ }
+
}
Modified: aries/branches/subsystemsR6/web/web-urlhandler/pom.xml
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/web/web-urlhandler/pom.xml?rev=1606837&r1=1606836&r2=1606837&view=diff
==============================================================================
--- aries/branches/subsystemsR6/web/web-urlhandler/pom.xml (original)
+++ aries/branches/subsystemsR6/web/web-urlhandler/pom.xml Mon Jun 30 16:54:57 2014
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
@@ -17,13 +18,15 @@
under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
<parent>
<groupId>org.apache.aries</groupId>
- <artifactId>java5-parent</artifactId>
- <version>1.0.0</version>
- <relativePath />
+ <artifactId>parent</artifactId>
+ <version>2.0.0-SNAPSHOT</version>
+ <relativePath>../../parent/pom.xml</relativePath>
</parent>
- <modelVersion>4.0.0</modelVersion>
<groupId>org.apache.aries.web</groupId>
<artifactId>org.apache.aries.web.urlhandler</artifactId>
@@ -31,23 +34,23 @@
<version>1.0.1-SNAPSHOT</version>
<name>Apache Aries Web Url handler</name>
- <scm>
- <connection>scm:svn:http://svn.apache.org/repos/asf/aries/trunk/web/web-urlhandler</connection>
- <developerConnection>scm:svn:https://svn.apache.org/repos/asf/aries/trunk/web/web-urlhandler</developerConnection>
- <url>http://svn.apache.org/viewvc/aries/trunk/web/web-urlhandler</url>
- </scm>
+ <scm>
+ <connection>scm:svn:http://svn.apache.org/repos/asf/aries/trunk/web/web-urlhandler</connection>
+ <developerConnection>scm:svn:https://svn.apache.org/repos/asf/aries/trunk/web/web-urlhandler</developerConnection>
+ <url>http://svn.apache.org/viewvc/aries/trunk/web/web-urlhandler</url>
+ </scm>
- <properties>
+ <properties>
<!-- Export package versions are maintained in packageinfo files -->
-
- <aries.osgi.export.pkg>
- org.apache.aries.web.converter;provide:=true
- </aries.osgi.export.pkg>
- <aries.osgi.private.pkg>
- org.apache.aries.web.converter.impl,
- org.apache.aries.web.url
- </aries.osgi.private.pkg>
- </properties>
+ <aries.osgi.export.pkg>
+ org.apache.aries.web.converter;provide:=true
+ </aries.osgi.export.pkg>
+ <aries.osgi.private.pkg>
+ org.apache.aries.web.converter.impl,
+ org.apache.aries.web.url
+ </aries.osgi.private.pkg>
+ <lastReleaseVersion>1.0.0</lastReleaseVersion>
+ </properties>
<dependencies>
<dependency>
@@ -61,9 +64,9 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.ow2.asm</groupId>
- <artifactId>asm-all</artifactId>
- <version>4.0</version>
+ <groupId>org.ow2.asm</groupId>
+ <artifactId>asm-debug-all</artifactId>
+ <version>5.0.3</version>
</dependency>
<dependency>
<groupId>org.apache.aries.testsupport</groupId>
@@ -72,12 +75,12 @@
<version>1.0.0</version>
</dependency>
</dependencies>
+
<build>
<plugins>
<plugin>
<groupId>org.apache.aries.versioning</groupId>
<artifactId>org.apache.aries.versioning.plugin</artifactId>
- <version>0.1.0</version>
<executions>
<execution>
<id>default-verify</id>
@@ -85,9 +88,6 @@
<goals>
<goal>version-check</goal>
</goals>
- <configuration>
- <oldArtifact>org.apache.aries.web:org.apache.aries.web.urlhandler:1.0.0</oldArtifact>
- </configuration>
</execution>
</executions>
</plugin>