We are experiencing the same slowdown in PAX-Exam with 3.0.0, also using TinyBundles. Pretty painful.
MavenArtifactUrlReference karafUrl = maven()
.groupId( "org.apache.karaf" )
.artifactId( "apache-karaf" )
.version( "3.0.0" )
.type( "tar.gz" );
...
karafDistributionConfiguration()
.frameworkUrl( karafUrl )
.unpackDirectory( new File( "target/exam" ) )
.useDeployFolder( false ),
On 2/13/15, 6:10 AM, "koslowskyj" <[email protected]> wrote:
>Hi,
>
>I am not sure whether this belongs on the karaf or rather on the pax
>mailinglist.
>After i upgraded from karaf 2.3.3 to 3.0.3 i noticed that our integration
>tests slowed down dramatically (30 seconds to 1 minute per test).
>
>So i tried a few things, setted up a minimal test with PaxExam for
>KarafContainer and added also a Tinybundle to the Test (because most of
>our
>tests use TinyBundles). I noticed that when i was using the same Test and
>same maven settings for PaxExam with diffrent Karaf Version they were a
>lot
>slower on Karaf 3.0.3 (a ~30 second timeout during the Test with 3.0.3).
>With Karaf 2.3.3 they behaved as expected. This only seems to happen when
>using TinyBundles and Karaf 3.0.3.
>Is this a bug? Does anybody know how to fix this?
>
>Best regards
>
>
>2.3.3 result:
>
>[INFO] Total time: 24.384 s
>
>3.0.3 result:
>
>[INFO] Total time: 54.138 s
>
>
>Test:
>
>
>import static aQute.bnd.osgi.Constants.BUNDLE_SYMBOLICNAME;
>import static aQute.bnd.osgi.Constants.EXPORT_PACKAGE;
>import static aQute.bnd.osgi.Constants.IMPORT_PACKAGE;
>import static junit.framework.Assert.assertTrue;
>import static org.ops4j.pax.exam.CoreOptions.maven;
>import static org.ops4j.pax.exam.CoreOptions.streamBundle;
>import static org.ops4j.pax.tinybundles.core.TinyBundles.bundle;
>import static org.osgi.framework.Constants.DYNAMICIMPORT_PACKAGE;
>
>import java.io.File;
>
>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.Option;
>import org.ops4j.pax.exam.junit.PaxExam;
>import org.ops4j.pax.exam.karaf.options.KarafDistributionOption;
>import org.ops4j.pax.exam.karaf.options.LogLevelOption.LogLevel;
>import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
>import org.ops4j.pax.exam.spi.reactors.PerClass;
>import org.ops4j.pax.tinybundles.core.TinyBundle;
>
>import sample.minimal.karaf.test.second.MyClass;
>
>@RunWith(PaxExam.class)
>@ExamReactorStrategy(PerClass.class)
>public class VersionAsInProjectKarafTest
>{
>
> @Configuration
> public Option[] config()
> {
> return new Option[]{
> KarafDistributionOption.logLevel(LogLevel.TRACE),
>
>KarafDistributionOption.karafDistributionConfiguration().frameworkUrl(
>
>maven().groupId("org.apache.karaf").artifactId("apache-karaf").type("tar.g
>z").versionAsInProject())
> .karafVersion("2.3.3")
> // .karafVersion("3.0.3")
> .name("Apache
>Karaf").useDeployFolder(false).unpackDirectory(new
>File("target/paxexam")),
>
>KarafDistributionOption.editConfigurationFileExtend("etc/config.properties
>",
>"org.apache.aries.blueprint.synchronous", "false"),
> runtimeUtils()
> };
> }
>
>
> /**
> * Sets up and provisions a bundle packaged with the runtime utitlity
>classes and corresponding headers. This method
> * should not be called directly as it is called from {@link
>#provisionRuntimeUtilities()}.
> */
> private static Option runtimeUtils()
> {
>
> final TinyBundle tinyBundle = bundle()
> .add(MyClass.class)
> .set(BUNDLE_SYMBOLICNAME,
>"sample.minimal.karaf.test.second")
> .set(EXPORT_PACKAGE, "sample.minimal.karaf.test.second")
> .set(IMPORT_PACKAGE, "*")
> .set(DYNAMICIMPORT_PACKAGE, "*");
>
> return CoreOptions.provision(streamBundle(tinyBundle.build()));
> }
>
>
> @Test
> public void test() throws Exception
> {
> assertTrue(true);
> }
>
>}
>
>pom.xml
>
>
><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/xsd/maven-4.0.0.xsd">
> <modelVersion>4.0.0</modelVersion>
> <groupId>some.test</groupId>
>
> <artifactId>sample.minimal.karaf.test.second</artifactId>
> <version>0.0.1-SNAPSHOT</version>
> <packaging>bundle</packaging>
>
> <dependencies>
>
> <dependency>
> *setting for karaf 3*
> /
> < groupId>org.apache.karaf.features</groupId>
>
> <version>3.0.3</version>/
>
>
> *setting for karaf 2*
>/ <groupId>org.apache.karaf.assemblies.features</groupId>
> /
> <artifactId>standard</artifactId>
>
> /<version>2.3.3</version>/
>
> <classifier>features</classifier>
>
> <type>xml</type>
> </dependency>
>
>
>
> <dependency>
>
> <groupId>org.apache.karaf</groupId>
>
> <artifactId>apache-karaf</artifactId>
>
> <version>2.3.3</version>
>
> <type>tar.gz</type>
>
> <scope>test</scope>
> </dependency>
>
> <dependency>
>
> <groupId>
>
> org.ops4j.pax.exam
>
> </groupId>
>
> <artifactId>
>
> pax-exam-spi
>
> </artifactId>
>
> <version>4.4.0</version>
>
> <scope>test</scope>
> </dependency>
>
> <dependency>
>
> <groupId>org.ops4j.pax.exam</groupId>
>
> <artifactId>pax-exam-container-karaf</artifactId>
>
> <version>4.4.0</version>
>
> <scope>test</scope>
> </dependency>
> <dependency>
>
> <groupId>org.ops4j.pax.exam</groupId>
>
> <artifactId>pax-exam-junit4</artifactId>
>
> <version>4.4.0</version>
>
> <scope>test</scope>
> </dependency>
> <dependency>
>
> <groupId>org.ops4j.pax.exam</groupId>
>
> <artifactId>pax-exam</artifactId>
>
> <version>4.4.0</version>
>
> <scope>test</scope>
> </dependency>
> <dependency>
>
> <groupId>org.ops4j.pax.url</groupId>
>
> <artifactId>pax-url-aether</artifactId>
>
> <version>2.3.0</version>
>
> <scope>test</scope>
> </dependency>
> <dependency>
>
> <groupId>javax.inject</groupId>
>
> <artifactId>javax.inject</artifactId>
>
> <version>1</version>
>
> <scope>test</scope>
> </dependency>
> <dependency>
>
> <groupId>junit</groupId>
>
> <artifactId>junit</artifactId>
>
> <version>4.11</version>
>
> <scope>test</scope>
> </dependency>
> </dependencies>
>
> <build>
> <plugins>
>
>
> <plugin>
>
>
> <artifactId>maven-compiler-plugin</artifactId>
>
> <version>3.1</version>
>
> <configuration>
>
>
> <source>1.7</source>
>
>
> <target>1.7</target>
>
> </configuration>
>
> </plugin>
>
> <plugin>
>
>
> <groupId>org.apache.felix</groupId>
>
>
> <artifactId>maven-bundle-plugin</artifactId>
>
> <extensions>true</extensions>
>
> <version>2.3.7</version>
>
>
> </plugin>
>
> <plugin>
>
>
> <groupId>org.apache.servicemix.tooling</groupId>
>
>
> <artifactId>depends-maven-plugin</artifactId>
>
> <version>1.2</version>
>
>
>
> <executions>
>
>
> <execution>
>
>
> <id>generate-depends-file</id>
>
>
> <goals>
>
>
>
> <goal>generate-depends-file</goal>
>
>
> </goals>
>
>
> </execution>
>
> </executions>
>
> </plugin>
>
> <plugin>
>
>
> <artifactId>maven-surefire-plugin</artifactId>
>
> <configuration>
>
>
> <systemPropertyVariables>
>
>
>
><pax.exam.karaf.version>2.3.3</pax.exam.karaf.version>
>
>
> </systemPropertyVariables>
>
> </configuration>
>
> </plugin>
> </plugins>
> </build>
></project>
>
>
>
>
>
>--
>View this message in context:
>http://karaf.922171.n3.nabble.com/Integration-Tests-hang-for-approx-30-sec
>onds-after-Karaf-2-3-3-upgrade-to-3-0-3-tp4038517.html
>Sent from the Karaf - User mailing list archive at Nabble.com.
