Author: gnodet
Date: Thu Sep 23 09:18:07 2010
New Revision: 1000372
URL: http://svn.apache.org/viewvc?rev=1000372&view=rev
Log:
[KARAF-219] Fix integration tests
Added:
karaf/trunk/tooling/testing/src/main/java/org/apache/karaf/testing/HeaderParser.java
- copied, changed from r1000371,
karaf/trunk/itests/tests/src/test/java/org/apache/karaf/shell/itests/HeaderParser.java
Removed:
karaf/trunk/itests/tests/src/test/java/org/apache/karaf/shell/itests/HeaderParser.java
Modified:
karaf/trunk/itests/tests/src/test/java/org/apache/karaf/shell/itests/CoreTest.java
karaf/trunk/itests/tests/src/test/java/org/apache/karaf/shell/itests/FeaturesTest.java
karaf/trunk/pom.xml
karaf/trunk/tooling/testing/pom.xml
karaf/trunk/tooling/testing/src/main/java/org/apache/karaf/testing/Helper.java
Modified:
karaf/trunk/itests/tests/src/test/java/org/apache/karaf/shell/itests/CoreTest.java
URL:
http://svn.apache.org/viewvc/karaf/trunk/itests/tests/src/test/java/org/apache/karaf/shell/itests/CoreTest.java?rev=1000372&r1=1000371&r2=1000372&view=diff
==============================================================================
---
karaf/trunk/itests/tests/src/test/java/org/apache/karaf/shell/itests/CoreTest.java
(original)
+++
karaf/trunk/itests/tests/src/test/java/org/apache/karaf/shell/itests/CoreTest.java
Thu Sep 23 09:18:07 2010
@@ -16,17 +16,25 @@
*/
package org.apache.karaf.shell.itests;
+import java.io.InputStream;
+import java.util.List;
+import java.util.jar.Manifest;
+
import org.apache.karaf.testing.AbstractIntegrationTest;
+import org.apache.karaf.testing.HeaderParser;
import org.apache.karaf.testing.Helper;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.Customizer;
import org.ops4j.pax.exam.Option;
import org.ops4j.pax.exam.junit.Configuration;
import org.ops4j.pax.exam.junit.JUnit4TestRunner;
import org.osgi.framework.Bundle;
import org.apache.felix.service.command.CommandProcessor;
import org.apache.felix.service.command.CommandSession;
+import org.osgi.framework.Constants;
+import static org.apache.karaf.testing.Helper.felixProvisionalApis;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.ops4j.pax.exam.CoreOptions.equinox;
@@ -36,6 +44,7 @@ import static org.ops4j.pax.exam.CoreOpt
import static org.ops4j.pax.exam.OptionUtils.combine;
import static
org.ops4j.pax.exam.container.def.PaxRunnerOptions.workingDirectory;
+import static org.ops4j.pax.swissbox.tinybundles.core.TinyBundles.modifyBundle;
@RunWith(JUnit4TestRunner.class)
public class CoreTest extends AbstractIntegrationTest {
@@ -121,11 +130,14 @@ public class CoreTest extends AbstractIn
waitForFrameworkStartup(),
// Test on both equinox and felix
- equinox(), felix()
+ equinox(), felix(),
+
+ felixProvisionalApis()
);
// Stop the shell log bundle
Helper.findMaven(options, "org.apache.karaf.shell",
"org.apache.karaf.shell.log").noStart();
return options;
}
+
}
Modified:
karaf/trunk/itests/tests/src/test/java/org/apache/karaf/shell/itests/FeaturesTest.java
URL:
http://svn.apache.org/viewvc/karaf/trunk/itests/tests/src/test/java/org/apache/karaf/shell/itests/FeaturesTest.java?rev=1000372&r1=1000371&r2=1000372&view=diff
==============================================================================
---
karaf/trunk/itests/tests/src/test/java/org/apache/karaf/shell/itests/FeaturesTest.java
(original)
+++
karaf/trunk/itests/tests/src/test/java/org/apache/karaf/shell/itests/FeaturesTest.java
Thu Sep 23 09:18:07 2010
@@ -16,17 +16,24 @@
*/
package org.apache.karaf.shell.itests;
+import java.io.InputStream;
+import java.util.List;
+import java.util.jar.Manifest;
+
import org.apache.karaf.testing.AbstractIntegrationTest;
import org.apache.karaf.testing.Helper;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.Customizer;
import org.ops4j.pax.exam.Option;
import org.ops4j.pax.exam.junit.Configuration;
import org.ops4j.pax.exam.junit.JUnit4TestRunner;
+import org.osgi.framework.Constants;
import org.osgi.service.blueprint.container.BlueprintContainer;
import org.apache.felix.service.command.CommandProcessor;
import org.apache.felix.service.command.CommandSession;
+import static org.apache.karaf.testing.Helper.felixProvisionalApis;
import static org.junit.Assert.assertNotNull;
import static org.ops4j.pax.exam.CoreOptions.equinox;
import static org.ops4j.pax.exam.CoreOptions.felix;
@@ -37,6 +44,7 @@ import static org.ops4j.pax.exam.OptionU
import static org.ops4j.pax.exam.container.def.PaxRunnerOptions.scanFeatures;
import static
org.ops4j.pax.exam.container.def.PaxRunnerOptions.workingDirectory;
+import static org.ops4j.pax.swissbox.tinybundles.core.TinyBundles.modifyBundle;
@RunWith(JUnit4TestRunner.class)
public class FeaturesTest extends AbstractIntegrationTest {
@@ -73,7 +81,9 @@ public class FeaturesTest extends Abstra
waitForFrameworkStartup(),
// Test on both equinox and felix
- equinox(), felix()
+ equinox(), felix(),
+
+ felixProvisionalApis()
);
}
Modified: karaf/trunk/pom.xml
URL:
http://svn.apache.org/viewvc/karaf/trunk/pom.xml?rev=1000372&r1=1000371&r2=1000372&view=diff
==============================================================================
--- karaf/trunk/pom.xml (original)
+++ karaf/trunk/pom.xml Thu Sep 23 09:18:07 2010
@@ -139,6 +139,7 @@
<pax.runner.version>1.5.0</pax.runner.version>
<pax.url.version>1.1.3</pax.url.version>
<pax.web.version>0.7.3</pax.web.version>
+ <pax.tinybundles.version>1.3.0</pax.tinybundles.version>
<servlet.api.version>2.5</servlet.api.version>
<spring.osgi.version>1.2.0</spring.osgi.version>
<spring2.version>2.5.6.SEC01</spring2.version>
@@ -716,6 +717,11 @@
<version>${pax.exam.version}</version>
</dependency>
<dependency>
+ <groupId>org.ops4j.pax.swissbox</groupId>
+ <artifactId>pax-swissbox-tinybundles</artifactId>
+ <version>${pax.tinybundles.version}</version>
+ </dependency>
+ <dependency>
<groupId>org.eclipse</groupId>
<artifactId>osgi</artifactId>
<version>${equinox.version}</version>
Modified: karaf/trunk/tooling/testing/pom.xml
URL:
http://svn.apache.org/viewvc/karaf/trunk/tooling/testing/pom.xml?rev=1000372&r1=1000371&r2=1000372&view=diff
==============================================================================
--- karaf/trunk/tooling/testing/pom.xml (original)
+++ karaf/trunk/tooling/testing/pom.xml Thu Sep 23 09:18:07 2010
@@ -64,6 +64,10 @@
<artifactId>pax-exam-junit-extender-impl</artifactId>
</dependency>
<dependency>
+ <groupId>org.ops4j.pax.swissbox</groupId>
+ <artifactId>pax-swissbox-tinybundles</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.apache.servicemix.bundles</groupId>
<artifactId>org.apache.servicemix.bundles.junit</artifactId>
</dependency>
@@ -132,6 +136,7 @@
<Import-Package>
!org.apache.karaf.testing*,
!org.ops4j.pax.exam.junit.options,
+
org.ops4j.pax.swissbox.tinybundles*;resolution:=optional,
*
</Import-Package>
<Include-Resource>
Copied:
karaf/trunk/tooling/testing/src/main/java/org/apache/karaf/testing/HeaderParser.java
(from r1000371,
karaf/trunk/itests/tests/src/test/java/org/apache/karaf/shell/itests/HeaderParser.java)
URL:
http://svn.apache.org/viewvc/karaf/trunk/tooling/testing/src/main/java/org/apache/karaf/testing/HeaderParser.java?p2=karaf/trunk/tooling/testing/src/main/java/org/apache/karaf/testing/HeaderParser.java&p1=karaf/trunk/itests/tests/src/test/java/org/apache/karaf/shell/itests/HeaderParser.java&r1=1000371&r2=1000372&rev=1000372&view=diff
==============================================================================
---
karaf/trunk/itests/tests/src/test/java/org/apache/karaf/shell/itests/HeaderParser.java
(original)
+++
karaf/trunk/tooling/testing/src/main/java/org/apache/karaf/testing/HeaderParser.java
Thu Sep 23 09:18:07 2010
@@ -16,12 +16,17 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.karaf.shell.itests;
+package org.apache.karaf.testing;
+import java.io.BufferedInputStream;
+import java.io.IOException;
+import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.jar.JarInputStream;
+import java.util.jar.Manifest;
/**
* Utility class to parse a standard OSGi header with paths.
@@ -35,6 +40,16 @@ public final class HeaderParser {
private HeaderParser() {
}
+ public static InputStream wireTapManifest( InputStream is, Manifest mf )
throws IOException {
+ BufferedInputStream bis = new BufferedInputStream( is, 64 * 1024 );
+ bis.mark( 64 * 1024 );
+ JarInputStream jis = new JarInputStream( bis );
+ mf.getMainAttributes().putAll( jis.getManifest().getMainAttributes() );
+ mf.getEntries().putAll( jis.getManifest().getEntries() );
+ bis.reset();
+ return bis;
+ }
+
/**
* Parse a given OSGi header into a list of paths
*
Modified:
karaf/trunk/tooling/testing/src/main/java/org/apache/karaf/testing/Helper.java
URL:
http://svn.apache.org/viewvc/karaf/trunk/tooling/testing/src/main/java/org/apache/karaf/testing/Helper.java?rev=1000372&r1=1000371&r2=1000372&view=diff
==============================================================================
---
karaf/trunk/tooling/testing/src/main/java/org/apache/karaf/testing/Helper.java
(original)
+++
karaf/trunk/tooling/testing/src/main/java/org/apache/karaf/testing/Helper.java
Thu Sep 23 09:18:07 2010
@@ -28,12 +28,15 @@ import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.StringTokenizer;
+import java.util.jar.Manifest;
import org.ops4j.pax.exam.CoreOptions;
+import org.ops4j.pax.exam.Customizer;
import org.ops4j.pax.exam.Option;
import org.ops4j.pax.exam.junit.options.JUnitBundlesOption;
import org.ops4j.pax.exam.options.MavenArtifactProvisionOption;
import org.ops4j.pax.exam.options.SystemPropertyOption;
+import org.osgi.framework.Constants;
import static org.ops4j.pax.exam.CoreOptions.bootClasspathLibrary;
import static org.ops4j.pax.exam.CoreOptions.bootDelegationPackages;
@@ -42,6 +45,7 @@ import static org.ops4j.pax.exam.CoreOpt
import static org.ops4j.pax.exam.CoreOptions.wrappedBundle;
import static org.ops4j.pax.exam.OptionUtils.combine;
import static org.ops4j.pax.exam.container.def.PaxRunnerOptions.vmOption;
+import static org.ops4j.pax.swissbox.tinybundles.core.TinyBundles.modifyBundle;
/**
* Helper class for setting up a pax-exam test environment for karaf.
@@ -68,6 +72,41 @@ public final class Helper {
private Helper() {
}
+ public static Customizer felixProvisionalApis() {
+ return new Customizer() {
+ @Override
+ public InputStream customizeTestProbe(InputStream testProbe)
throws Exception {
+ Manifest mf = new Manifest();
+ testProbe = HeaderParser.wireTapManifest( testProbe, mf );
+ List<HeaderParser.PathElement> elems =
HeaderParser.parseHeader( mf.getMainAttributes().getValue(
Constants.IMPORT_PACKAGE ));
+ StringBuilder sb = new StringBuilder();
+ for (HeaderParser.PathElement elem : elems) {
+ if
(elem.getName().startsWith("org.apache.felix.service.")) {
+ elem.getAttributes().put("status", "provisional");
+ }
+ if (sb.length() > 0) {
+ sb.append(",");
+ }
+ sb.append(elem.toString());
+ }
+
+ System.out.println("==============================");
+ System.out.println("");
+ System.out.println("Old: " + mf.getMainAttributes().getValue(
Constants.IMPORT_PACKAGE ));
+ System.out.println("");
+ System.out.println("==============================");
+ System.out.println("");
+ System.out.println("New: " + sb.toString());
+ System.out.println("");
+ System.out.println("==============================");
+
+ return modifyBundle( testProbe )
+ .set( Constants.IMPORT_PACKAGE, sb.toString() )
+ .build();
+ }
+ };
+ }
+
/**
* Create an provisioning option for the specified maven artifact
* (groupId and artifactId), using the version found in the list