You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2012/02/02 17:18:47 UTC

svn commit: r1239703 - in /karaf/cellar/trunk: features/src/main/resources/OSGI-INF/blueprint/ itests/ itests/src/test/java/org/apache/karaf/cellar/itests/

Author: jbonofre
Date: Thu Feb  2 16:18:46 2012
New Revision: 1239703

URL: http://svn.apache.org/viewvc?rev=1239703&view=rev
Log:
Update itests in order to use "dynamic" version for Cellar feature

Modified:
    karaf/cellar/trunk/features/src/main/resources/OSGI-INF/blueprint/shell-features.xml
    karaf/cellar/trunk/itests/pom.xml
    karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarBundleTest.java
    karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarChildNodesTest.java
    karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarConfigurationTest.java
    karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarEventTest.java
    karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarFeaturesTest.java
    karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarGroupsTest.java
    karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarInstallationTest.java
    karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarObrTest.java
    karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarSampleCamelHazelcastTest.java
    karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarSampleDosgiGreeterTest.java
    karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarTestSupport.java

Modified: karaf/cellar/trunk/features/src/main/resources/OSGI-INF/blueprint/shell-features.xml
URL: http://svn.apache.org/viewvc/karaf/cellar/trunk/features/src/main/resources/OSGI-INF/blueprint/shell-features.xml?rev=1239703&r1=1239702&r2=1239703&view=diff
==============================================================================
--- karaf/cellar/trunk/features/src/main/resources/OSGI-INF/blueprint/shell-features.xml (original)
+++ karaf/cellar/trunk/features/src/main/resources/OSGI-INF/blueprint/shell-features.xml Thu Feb  2 16:18:46 2012
@@ -16,7 +16,7 @@
 
     <!-- Command Bundle -->
     <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.0.0">
-        <command name="cluster/features-install">
+        <command name="cluster/feature-install">
             <action class="org.apache.karaf.cellar.features.shell.InstallFeatureCommand">
                 <property name="clusterManager" ref="clusterManager"/>
                 <property name="groupManager" ref="groupManager"/>
@@ -28,7 +28,7 @@
                 <ref component-id="allFeatureCompleter"/>
             </completers>
         </command>
-        <command name="cluster/features-uninstall">
+        <command name="cluster/feature-uninstall">
             <action class="org.apache.karaf.cellar.features.shell.UninstallFeatureCommand">
                 <property name="clusterManager" ref="clusterManager"/>
                 <property name="groupManager" ref="groupManager"/>
@@ -40,7 +40,7 @@
                 <ref component-id="allFeatureCompleter"/>
             </completers>
         </command>
-        <command name="cluster/features-list">
+        <command name="cluster/feature-list">
             <action class="org.apache.karaf.cellar.features.shell.ListGroupFeatures">
                 <property name="clusterManager" ref="clusterManager"/>
                 <property name="featuresService" ref="featuresService"/>

Modified: karaf/cellar/trunk/itests/pom.xml
URL: http://svn.apache.org/viewvc/karaf/cellar/trunk/itests/pom.xml?rev=1239703&r1=1239702&r2=1239703&view=diff
==============================================================================
--- karaf/cellar/trunk/itests/pom.xml (original)
+++ karaf/cellar/trunk/itests/pom.xml Thu Feb  2 16:18:46 2012
@@ -53,6 +53,14 @@
 
         <dependency>
             <groupId>org.apache.karaf.cellar</groupId>
+            <artifactId>apache-karaf-cellar</artifactId>
+            <version>${project.version}</version>
+            <classifier>features</classifier>
+            <type>xml</type>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.karaf.cellar</groupId>
             <artifactId>org.apache.karaf.cellar.core</artifactId>
             <scope>test</scope>
         </dependency>
@@ -83,5 +91,21 @@
 
     </dependencies>
 
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.servicemix.tooling</groupId>
+                <artifactId>depends-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>generate-depends-file</id>
+                        <goals>
+                            <goal>generate-depends-file</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
 
 </project>

Modified: karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarBundleTest.java
URL: http://svn.apache.org/viewvc/karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarBundleTest.java?rev=1239703&r1=1239702&r2=1239703&view=diff
==============================================================================
--- karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarBundleTest.java (original)
+++ karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarBundleTest.java Thu Feb  2 16:18:46 2012
@@ -51,10 +51,4 @@ public class CellarBundleTest extends Ce
         }
     }
 
-    @Configuration
-    public Option[] config() {
-        return new Option[]{
-                cellarDistributionConfiguration(), keepRuntimeFolder(), logLevel(LogLevelOption.LogLevel.ERROR)};
-    }
-
 }

Modified: karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarChildNodesTest.java
URL: http://svn.apache.org/viewvc/karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarChildNodesTest.java?rev=1239703&r1=1239702&r2=1239703&view=diff
==============================================================================
--- karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarChildNodesTest.java (original)
+++ karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarChildNodesTest.java Thu Feb  2 16:18:46 2012
@@ -59,10 +59,4 @@ public class CellarChildNodesTest extend
         }
     }
 
-    @Configuration
-    public Option[] config() {
-        return new Option[]{
-                cellarDistributionConfiguration(), keepRuntimeFolder(), logLevel(LogLevelOption.LogLevel.ERROR)};
-    }
-
 }

Modified: karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarConfigurationTest.java
URL: http://svn.apache.org/viewvc/karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarConfigurationTest.java?rev=1239703&r1=1239702&r2=1239703&view=diff
==============================================================================
--- karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarConfigurationTest.java (original)
+++ karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarConfigurationTest.java Thu Feb  2 16:18:46 2012
@@ -89,10 +89,4 @@ public class CellarConfigurationTest ext
         }
     }
 
-    @Configuration
-    public Option[] config() {
-        return new Option[]{
-                cellarDistributionConfiguration(), keepRuntimeFolder(), logLevel(LogLevelOption.LogLevel.ERROR)};
-    }
-
 }

Modified: karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarEventTest.java
URL: http://svn.apache.org/viewvc/karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarEventTest.java?rev=1239703&r1=1239702&r2=1239703&view=diff
==============================================================================
--- karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarEventTest.java (original)
+++ karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarEventTest.java Thu Feb  2 16:18:46 2012
@@ -17,16 +17,11 @@ import org.apache.karaf.cellar.core.Clus
 import org.junit.After;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.openengsb.labs.paxexam.karaf.options.LogLevelOption;
-import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.Configuration;
 import org.ops4j.pax.exam.junit.ExamReactorStrategy;
 import org.ops4j.pax.exam.junit.JUnit4TestRunner;
 import org.ops4j.pax.exam.spi.reactors.AllConfinedStagedReactorFactory;
 
 import static org.junit.Assert.assertNotNull;
-import static org.openengsb.labs.paxexam.karaf.options.KarafDistributionOption.keepRuntimeFolder;
-import static org.openengsb.labs.paxexam.karaf.options.KarafDistributionOption.logLevel;
 
 @RunWith(JUnit4TestRunner.class)
 @ExamReactorStrategy(AllConfinedStagedReactorFactory.class)
@@ -51,10 +46,4 @@ public class CellarEventTest extends Cel
         }
     }
 
-    @Configuration
-    public Option[] config() {
-        return new Option[]{
-                cellarDistributionConfiguration(), keepRuntimeFolder(), logLevel(LogLevelOption.LogLevel.ERROR)};
-    }
-
 }

Modified: karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarFeaturesTest.java
URL: http://svn.apache.org/viewvc/karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarFeaturesTest.java?rev=1239703&r1=1239702&r2=1239703&view=diff
==============================================================================
--- karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarFeaturesTest.java (original)
+++ karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarFeaturesTest.java Thu Feb  2 16:18:46 2012
@@ -49,35 +49,35 @@ public class CellarFeaturesTest extends 
 
         System.err.println(executeCommand("admin:list"));
 
-        String eventadminFeatureStatus = executeCommand("admin:connect child1 feature:list | grep eventadmin");
+        String eventadminFeatureStatus = executeCommand("admin:connect child1 features:list | grep eventadmin");
         System.err.println(eventadminFeatureStatus);
         assertTrue(eventadminFeatureStatus.startsWith(UNINSTALLED));
 
         //Test feature sync - install
         System.err.println(executeCommand("features:install eventadmin"));
         Thread.sleep(5000);
-        eventadminFeatureStatus = executeCommand("admin:connect child1 feature:list | grep eventadmin");
+        eventadminFeatureStatus = executeCommand("admin:connect child1 features:list | grep eventadmin");
         System.err.println(eventadminFeatureStatus);
         assertTrue(eventadminFeatureStatus.startsWith(INSTALLED));
 
         //Test feature sync - uninstall
         System.err.println(executeCommand("features:uninstall eventadmin"));
         Thread.sleep(5000);
-        eventadminFeatureStatus = executeCommand("admin:connect child1 feature:list | grep eventadmin");
+        eventadminFeatureStatus = executeCommand("admin:connect child1 features:list | grep eventadmin");
         System.err.println(eventadminFeatureStatus);
         assertTrue(eventadminFeatureStatus.startsWith(UNINSTALLED));
 
         //Test feature command - install
         System.err.println(executeCommand("cluster:feature-install default eventadmin"));
         Thread.sleep(5000);
-        eventadminFeatureStatus = executeCommand("admin:connect child1 feature:list | grep eventadmin");
+        eventadminFeatureStatus = executeCommand("admin:connect child1 features:list | grep eventadmin");
         System.err.println(eventadminFeatureStatus);
         assertTrue(eventadminFeatureStatus.startsWith(INSTALLED));
 
         //Test feature command - uninstall
         System.err.println(executeCommand("cluster:feature-uninstall default eventadmin"));
         Thread.sleep(5000);
-        eventadminFeatureStatus = executeCommand("admin:connect child1 feature:list | grep eventadmin");
+        eventadminFeatureStatus = executeCommand("admin:connect child1 features:list | grep eventadmin");
         System.err.println(eventadminFeatureStatus);
         assertTrue(eventadminFeatureStatus.startsWith(UNINSTALLED));
 
@@ -85,7 +85,7 @@ public class CellarFeaturesTest extends 
         System.err.println(executeCommand("cluster:feature-install testgroup eventadmin"));
         System.err.println(executeCommand("cluster:group-set testgroup " + getNodeIdOfChild("child1")));
         Thread.sleep(5000);
-        eventadminFeatureStatus = executeCommand("admin:connect child1 feature:list | grep eventadmin");
+        eventadminFeatureStatus = executeCommand("admin:connect child1 features:list | grep eventadmin");
         System.err.println(eventadminFeatureStatus);
         assertTrue(eventadminFeatureStatus.startsWith(INSTALLED));
 
@@ -105,10 +105,4 @@ public class CellarFeaturesTest extends 
         }
     }
 
-    @Configuration
-    public Option[] config() {
-        return new Option[]{
-                cellarDistributionConfiguration(), keepRuntimeFolder(), logLevel(LogLevelOption.LogLevel.ERROR)};
-    }
-
 }

Modified: karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarGroupsTest.java
URL: http://svn.apache.org/viewvc/karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarGroupsTest.java?rev=1239703&r1=1239702&r2=1239703&view=diff
==============================================================================
--- karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarGroupsTest.java (original)
+++ karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarGroupsTest.java Thu Feb  2 16:18:46 2012
@@ -79,10 +79,4 @@ public class CellarGroupsTest extends Ce
         }
     }
 
-    @Configuration
-    public Option[] config() {
-        return new Option[]{
-                cellarDistributionConfiguration(), keepRuntimeFolder(), logLevel(LogLevelOption.LogLevel.ERROR)};
-    }
-
 }

Modified: karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarInstallationTest.java
URL: http://svn.apache.org/viewvc/karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarInstallationTest.java?rev=1239703&r1=1239702&r2=1239703&view=diff
==============================================================================
--- karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarInstallationTest.java (original)
+++ karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarInstallationTest.java Thu Feb  2 16:18:46 2012
@@ -40,11 +40,4 @@ public class CellarInstallationTest exte
         System.err.println(executeCommand("cluster:node-list"));
     }
 
-
-    @Configuration
-    public Option[] config() {
-        return new Option[]{
-                cellarDistributionConfiguration(), keepRuntimeFolder()};
-    }
-
 }

Modified: karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarObrTest.java
URL: http://svn.apache.org/viewvc/karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarObrTest.java?rev=1239703&r1=1239702&r2=1239703&view=diff
==============================================================================
--- karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarObrTest.java (original)
+++ karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarObrTest.java Thu Feb  2 16:18:46 2012
@@ -51,10 +51,4 @@ public class CellarObrTest extends Cella
         }
     }
 
-    @Configuration
-    public Option[] config() {
-        return new Option[]{
-                cellarDistributionConfiguration(), keepRuntimeFolder(), logLevel(LogLevelOption.LogLevel.ERROR)};
-    }
-
 }

Modified: karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarSampleCamelHazelcastTest.java
URL: http://svn.apache.org/viewvc/karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarSampleCamelHazelcastTest.java?rev=1239703&r1=1239702&r2=1239703&view=diff
==============================================================================
--- karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarSampleCamelHazelcastTest.java (original)
+++ karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarSampleCamelHazelcastTest.java Thu Feb  2 16:18:46 2012
@@ -103,10 +103,4 @@ public class CellarSampleCamelHazelcastT
         }
     }
 
-    @Configuration
-    public Option[] config() {
-        return new Option[]{
-                cellarDistributionConfiguration(), keepRuntimeFolder(), logLevel(LogLevelOption.LogLevel.ERROR)};
-    }
-
 }

Modified: karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarSampleDosgiGreeterTest.java
URL: http://svn.apache.org/viewvc/karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarSampleDosgiGreeterTest.java?rev=1239703&r1=1239702&r2=1239703&view=diff
==============================================================================
--- karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarSampleDosgiGreeterTest.java (original)
+++ karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarSampleDosgiGreeterTest.java Thu Feb  2 16:18:46 2012
@@ -113,10 +113,4 @@ public class CellarSampleDosgiGreeterTes
         }
     }
 
-    @Configuration
-    public Option[] config() {
-        return new Option[]{
-                cellarDistributionConfiguration(), keepRuntimeFolder(), logLevel(LogLevelOption.LogLevel.ERROR)};
-    }
-
 }

Modified: karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarTestSupport.java
URL: http://svn.apache.org/viewvc/karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarTestSupport.java?rev=1239703&r1=1239702&r2=1239703&view=diff
==============================================================================
--- karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarTestSupport.java (original)
+++ karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarTestSupport.java Thu Feb  2 16:18:46 2012
@@ -13,45 +13,28 @@
  */
 package org.apache.karaf.cellar.itests;
 
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.PrintStream;
-import java.net.DatagramSocket;
-import java.net.ServerSocket;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Dictionary;
-import java.util.Enumeration;
-import java.util.concurrent.Callable;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.FutureTask;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-import javax.inject.Inject;
-
-import EDU.oswego.cs.dl.util.concurrent.Sync;
 import org.apache.felix.service.command.CommandProcessor;
 import org.apache.felix.service.command.CommandSession;
-import org.fusesource.jansi.Ansi;
+import org.openengsb.labs.paxexam.karaf.options.LogLevelOption;
 import org.ops4j.pax.exam.MavenUtils;
 import org.ops4j.pax.exam.Option;
-import org.ops4j.pax.exam.junit.ProbeBuilder;
 import org.ops4j.pax.exam.TestProbeBuilder;
-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.ServiceReference;
+import org.ops4j.pax.exam.junit.Configuration;
+import org.ops4j.pax.exam.junit.ProbeBuilder;
+import org.osgi.framework.*;
 import org.osgi.util.tracker.ServiceTracker;
 
+import javax.inject.Inject;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.net.DatagramSocket;
+import java.net.ServerSocket;
+import java.util.*;
+import java.util.concurrent.*;
 
-import static org.openengsb.labs.paxexam.karaf.options.KarafDistributionOption.karafDistributionConfiguration;
+import static org.openengsb.labs.paxexam.karaf.options.KarafDistributionOption.*;
 import static org.ops4j.pax.exam.CoreOptions.maven;
 
 public class CellarTestSupport {
@@ -65,8 +48,6 @@ public class CellarTestSupport {
     static final String INSTANCE_STARTED = "Started";
     static final String INSTANCE_STARTING = "Starting";
 
-    static final String CELLAR_FEATURE_URL = String.format("mvn:org.apache.karaf.cellar/apache-karaf-cellar/%s/xml/features", "3.0.0-SNAPSHOT");
-
     static final String DEBUG_OPTS = " --java-opts \"-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=%s\"";
 
     ExecutorService executor = Executors.newCachedThreadPool();
@@ -109,7 +90,7 @@ public class CellarTestSupport {
      * Installs the Cellar feature
      */
     protected void installCellar() {
-        System.err.println(executeCommand("features:addurl " + CELLAR_FEATURE_URL));
+        System.err.println(executeCommand("features:addurl " + System.getProperty("cellar.feature.url")));
         System.err.println(executeCommand("features:listurl"));
         System.err.println(executeCommand("features:list"));
         executeCommand("features:install cellar");
@@ -128,11 +109,11 @@ public class CellarTestSupport {
 
     protected void createCellarChild(String name, boolean debug, int port) {
         int instances = 0;
-        String createCommad = "admin:create --featureURL " + CELLAR_FEATURE_URL + " --feature cellar ";
+        String createCommand = "admin:create --featureURL " + System.getProperty("cellar.feature.url") + " --feature cellar ";
         if (debug && port > 0) {
-            createCommad = createCommad + String.format(DEBUG_OPTS, port);
+            createCommand = createCommand + String.format(DEBUG_OPTS, port);
         }
-        System.err.println(executeCommand(createCommad + " " + name));
+        System.err.println(executeCommand(createCommand + " " + name));
         System.err.println(executeCommand("admin:start " + name));
 
         //Wait till the node is listed as Starting
@@ -185,6 +166,13 @@ public class CellarTestSupport {
                 .karafVersion(MavenUtils.getArtifactVersion(GROUP_ID, ARTIFACT_ID)).name("Apache Karaf").unpackDirectory(new File("target/paxexam/"));
     }
 
+    @Configuration
+    public Option[] config() {
+        return new Option[]{
+                cellarDistributionConfiguration(), keepRuntimeFolder(), logLevel(LogLevelOption.LogLevel.ERROR),
+                editConfigurationFileExtend("etc/system.properties", "cellar.feature.url", maven().groupId("org.apache.karaf.cellar").artifactId("apache-karaf-cellar").versionAsInProject().classifier("features").type("xml").getURL())};
+    }
+
     /**
      * Executes a shell command and returns output as a String.
      * Commands have a default timeout of 10 seconds.