Author: jbonofre
Date: Wed Jan 18 08:45:07 2012
New Revision: 1232786
URL: http://svn.apache.org/viewvc?rev=1232786&view=rev
Log:
Fix the itests
Removed:
karaf/cellar/trunk/samples/dosgi-greeter/client/src/main/resources/OSGI-INF/blueprint/blueprint.xml
Modified:
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/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/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
karaf/cellar/trunk/samples/dosgi-greeter/client/src/main/resources/OSGI-INF/blueprint/shell-greeter.xml
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=1232786&r1=1232785&r2=1232786&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
Wed Jan 18 08:45:07 2012
@@ -26,7 +26,6 @@ import org.ops4j.pax.exam.junit.ExamReac
import org.ops4j.pax.exam.junit.JUnit4TestRunner;
import org.ops4j.pax.exam.spi.reactors.AllConfinedStagedReactorFactory;
-
import static org.junit.Assert.*;
import static
org.openengsb.labs.paxexam.karaf.options.KarafDistributionOption.keepRuntimeFolder;
import static
org.openengsb.labs.paxexam.karaf.options.KarafDistributionOption.logLevel;
@@ -47,8 +46,6 @@ public class CellarChildNodesTest extend
Set<Node> nodes =clusterManager.listNodes();
System.err.println(executeCommand("cluster:nodes-list"));
assertTrue("There should be at least 2 cellar nodes running", 2 <=
nodes.size());
-
-
}
@After
@@ -61,10 +58,10 @@ 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=1232786&r1=1232785&r2=1232786&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
Wed Jan 18 08:45:07 2012
@@ -13,9 +13,7 @@
*/
package org.apache.karaf.cellar.itests;
-import java.util.Set;
import org.apache.karaf.cellar.core.ClusterManager;
-import org.apache.karaf.cellar.core.Node;
import org.junit.After;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -26,10 +24,7 @@ import org.ops4j.pax.exam.junit.ExamReac
import org.ops4j.pax.exam.junit.JUnit4TestRunner;
import org.ops4j.pax.exam.spi.reactors.AllConfinedStagedReactorFactory;
-
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.*;
import static
org.openengsb.labs.paxexam.karaf.options.KarafDistributionOption.keepRuntimeFolder;
import static
org.openengsb.labs.paxexam.karaf.options.KarafDistributionOption.logLevel;
@@ -37,7 +32,7 @@ import static org.openengsb.labs.paxexam
@ExamReactorStrategy(AllConfinedStagedReactorFactory.class)
public class CellarConfigurationTest extends CellarTestSupport {
- private static final String TESTPID="org.apache.karaf.cellar.tst";
+ private static final String TESTPID = "org.apache.karaf.cellar.tst";
@Test
public void testCellarFeaturesModule() throws InterruptedException {
@@ -52,37 +47,35 @@ public class CellarConfigurationTest ext
String node2 = getNodeIdOfChild("child2");
System.err.println(executeCommand("admin:list"));
- String properties = executeCommand("admin:connect child1
config:proplist --pid "+TESTPID);
+ String properties = executeCommand("admin:connect child1
config:proplist --pid " + TESTPID);
System.err.println(properties);
assertFalse((properties.contains("myKey")));
//Test configuration sync - add property
- System.err.println(executeCommand("config:propset --pid "+TESTPID+"
myKey myValue"));
+ System.err.println(executeCommand("config:propset --pid " + TESTPID +
" myKey myValue"));
Thread.sleep(5000);
- properties = executeCommand("admin:connect child1 config:proplist
--pid "+TESTPID);
+ properties = executeCommand("admin:connect child1 config:proplist
--pid " + TESTPID);
System.err.println(properties);
assertTrue(properties.contains("myKey = myValue"));
//Test configuration sync - remove property
- System.err.println(executeCommand("config:propdel --pid "+TESTPID+"
myKey"));
+ System.err.println(executeCommand("config:propdel --pid " + TESTPID +
" myKey"));
Thread.sleep(5000);
- properties = executeCommand("admin:connect child1 config:proplist
--pid "+TESTPID);
+ properties = executeCommand("admin:connect child1 config:proplist
--pid " + TESTPID);
System.err.println(properties);
assertFalse(properties.contains("myKey"));
//Test configuration sync - add property - join later
- System.err.println(executeCommand("cluster:group-set new-grp "+node1));
+ System.err.println(executeCommand("cluster:group-set new-grp " +
node1));
Thread.sleep(5000);
- System.err.println(executeCommand("admin:connect child1 config:propset
--pid "+TESTPID+" myKey2 myValue2"));
- properties = executeCommand("admin:connect child1 config:proplist
--pid "+TESTPID);
+ System.err.println(executeCommand("admin:connect child1 config:propset
--pid " + TESTPID + " myKey2 myValue2"));
+ properties = executeCommand("admin:connect child1 config:proplist
--pid " + TESTPID);
Thread.sleep(5000);
- System.err.println(executeCommand("cluster:group-set new-grp "+node2));
- properties = executeCommand("admin:connect child2 config:proplist
--pid "+TESTPID);
+ System.err.println(executeCommand("cluster:group-set new-grp " +
node2));
+ properties = executeCommand("admin:connect child2 config:proplist
--pid " + TESTPID);
System.err.println(properties);
assertTrue(properties.contains("myKey2 = myValue2"));
-
-
}
@After
@@ -96,10 +89,10 @@ 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/CellarFeaturesTest.java
URL:
http://svn.apache.org/viewvc/karaf/cellar/trunk/itests/src/test/java/org/apache/karaf/cellar/itests/CellarFeaturesTest.java?rev=1232786&r1=1232785&r2=1232786&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
Wed Jan 18 08:45:07 2012
@@ -13,7 +13,6 @@
*/
package org.apache.karaf.cellar.itests;
-import java.util.Set;
import org.apache.karaf.cellar.core.ClusterManager;
import org.apache.karaf.cellar.core.Node;
import org.junit.After;
@@ -26,10 +25,10 @@ import org.ops4j.pax.exam.junit.ExamReac
import org.ops4j.pax.exam.junit.JUnit4TestRunner;
import org.ops4j.pax.exam.spi.reactors.AllConfinedStagedReactorFactory;
+import java.util.Set;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
-import static
org.openengsb.labs.paxexam.karaf.options.KarafDistributionOption.debugConfiguration;
import static
org.openengsb.labs.paxexam.karaf.options.KarafDistributionOption.keepRuntimeFolder;
import static
org.openengsb.labs.paxexam.karaf.options.KarafDistributionOption.logLevel;
@@ -37,8 +36,8 @@ import static org.openengsb.labs.paxexam
@ExamReactorStrategy(AllConfinedStagedReactorFactory.class)
public class CellarFeaturesTest extends CellarTestSupport {
- private static final String UNINSTALLED="[uninstalled]";
- private static final String INSTALLED="[installed ]";
+ private static final String UNINSTALLED = "[uninstalled]";
+ private static final String INSTALLED = "[installed ]";
@Test
public void testCellarFeaturesModule() throws InterruptedException {
@@ -84,19 +83,16 @@ public class CellarFeaturesTest extends
//Test feature command - install - before a node joins
System.err.println(executeCommand("cluster:features-install testgroup
eventadmin"));
- System.err.println(executeCommand("cluster:group-set testgroup
"+getNodeIdOfChild("child1")));
+ System.err.println(executeCommand("cluster:group-set testgroup " +
getNodeIdOfChild("child1")));
Thread.sleep(5000);
httpFeatureStatus = executeCommand("admin:connect child1 features:list
| grep eventadmin");
System.err.println(httpFeatureStatus);
assertTrue(httpFeatureStatus.startsWith(INSTALLED));
-
Node localNode = clusterManager.getNode();
Set<Node> nodes =clusterManager.listNodes();
System.err.println(executeCommand("cluster:nodes-list"));
assertTrue("There should be at least 2 cellar nodes running", 2 <=
nodes.size());
-
-
}
@After
@@ -109,10 +105,10 @@ 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=1232786&r1=1232785&r2=1232786&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
Wed Jan 18 08:45:07 2012
@@ -53,7 +53,7 @@ public class CellarGroupsTest extends Ce
assertTrue("There should be at least 2 cellar nodes running", 2 <=
nodes.size());
System.err.println(executeCommand("cluster:group-list"));
- System.err.println(executeCommand("cluster:group-set testgroup
"+localNode.getId()));
+ System.err.println(executeCommand("cluster:group-set testgroup " +
localNode.getId()));
System.err.println(executeCommand("cluster:group-list"));
GroupManager groupManager = getOsgiService(GroupManager.class);
@@ -66,7 +66,6 @@ public class CellarGroupsTest extends Ce
System.err.println(executeCommand("cluster:group-list"));
groups = groupManager.listAllGroups();
assertEquals("There should be a single cellar group", 1 ,
groups.size());
-
}
@After
@@ -79,10 +78,10 @@ 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=1232786&r1=1232785&r2=1232786&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
Wed Jan 18 08:45:07 2012
@@ -11,7 +11,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.karaf.cellar.itests;
import org.apache.karaf.cellar.core.ClusterManager;
@@ -47,4 +46,5 @@ public class CellarInstallationTest exte
return new Option[]{
cellarDistributionConfiguration(), keepRuntimeFolder()};
}
+
}
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=1232786&r1=1232785&r2=1232786&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
Wed Jan 18 08:45:07 2012
@@ -63,9 +63,9 @@ public class CellarSampleCamelHazelcastT
System.err.println("Child1:"+node1);
System.err.println("Child2:"+node2);
- System.err.println(executeCommand("cluster:group-set producer-grp
"+localNode.getId()));
- System.err.println(executeCommand("cluster:group-set consumer-grp
"+node1));
- System.err.println(executeCommand("cluster:group-set consumer-grp
"+node2));
+ System.err.println(executeCommand("cluster:group-set producer-grp " +
localNode.getId()));
+ System.err.println(executeCommand("cluster:group-set consumer-grp " +
node1));
+ System.err.println(executeCommand("cluster:group-set consumer-grp " +
node2));
System.err.println(executeCommand("cluster:group-list"));
System.err.println(executeCommand("cluster:features-install
consumer-grp cellar-sample-camel-consumer"));
@@ -82,8 +82,8 @@ public class CellarSampleCamelHazelcastT
System.err.println(output1);
String output2 = executeCommand("admin:connect child2 log:display |
grep \"Hallo Cellar\"");
System.err.println(output2);
- assertTrue("Expected at least 1 lines",1 <=
countOutputEntires(output1));
- assertTrue("Expected at least 1 lines",1 <=
countOutputEntires(output2));
+ assertTrue("Expected at least 1 lines", 1 <=
countOutputEntires(output1));
+ assertTrue("Expected at least 1 lines", 1 <=
countOutputEntires(output2));
}
public int countOutputEntires(String output) {
@@ -102,10 +102,10 @@ 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=1232786&r1=1232785&r2=1232786&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
Wed Jan 18 08:45:07 2012
@@ -38,9 +38,6 @@ import static org.openengsb.labs.paxexam
@ExamReactorStrategy(AllConfinedStagedReactorFactory.class)
public class CellarSampleDosgiGreeterTest extends CellarTestSupport {
- private static final String UNINSTALLED="[uninstalled]";
- private static final String INSTALLED="[installed ]";
-
@Test
public void testDosgiGreeter() throws InterruptedException {
installCellar();
@@ -64,12 +61,12 @@ public class CellarSampleDosgiGreeterTes
String node1 = getNodeIdOfChild("child1");
String node2 = getNodeIdOfChild("child2");
- System.err.println("Child1:"+node1);
- System.err.println("Child2:"+node2);
+ System.err.println("Child1: " + node1);
+ System.err.println("Child2: " + node2);
System.err.println(executeCommand("cluster:group-list"));
- System.err.println(executeCommand("cluster:group-set client-grp
"+localNode.getId()));
- System.err.println(executeCommand("cluster:group-set service-grp
"+node1));
+ System.err.println(executeCommand("cluster:group-set client-grp " +
localNode.getId()));
+ System.err.println(executeCommand("cluster:group-set service-grp " +
node1));
System.err.println(executeCommand("cluster:group-list"));
System.err.println(executeCommand("cluster:features-install client-grp
greeter-client"));
@@ -81,11 +78,11 @@ public class CellarSampleDosgiGreeterTes
String greetOutput = executeCommand("dosgi-greeter:greet Hi 10");
System.err.println(greetOutput);
assertEquals("Expected 10 greets", 10,
countGreetsFromNode(greetOutput, node1));
- System.err.println(executeCommand("cluster:group-set service-grp
"+node2));
+ System.err.println(executeCommand("cluster:group-set service-grp " +
node2));
Thread.sleep(10000);
Thread.sleep(10000);
System.err.println(executeCommand("cluster:group-list"));
- System.err.println(executeCommand("admin:connect child2 osgi:list -t
0"));
+ System.err.println(executeCommand("admin:connect child2 osgi:list -t
0"));
System.err.println(executeCommand("cluster:list-services"));
greetOutput = executeCommand("dosgi-greeter:greet Hi 10");
System.err.println(greetOutput);
@@ -115,10 +112,10 @@ public class CellarSampleDosgiGreeterTes
}
}
-
@Configuration
public Option[] config() {
return new Option[]{
- cellarDistributionConfiguration(),
keepRuntimeFolder(),logLevel(LogLevelOption.LogLevel.ERROR),debugConfiguration("5005",true)};
+ 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=1232786&r1=1232785&r2=1232786&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
Wed Jan 18 08:45:07 2012
@@ -11,7 +11,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.karaf.cellar.itests;
import java.io.ByteArrayOutputStream;
@@ -81,7 +80,6 @@ public class CellarTestSupport {
@ProbeBuilder
public TestProbeBuilder probeConfiguration(TestProbeBuilder probe) {
probe.setHeader(Constants.DYNAMICIMPORT_PACKAGE,
"*,org.apache.felix.service.*;status=provisional");
-
return probe;
}
@@ -157,22 +155,20 @@ public class CellarTestSupport {
}
/**
- * Destorys the child node.
+ * Destroys the child node.
*/
protected void destroyCellarChild(String name) {
- System.err.println(executeCommand("admin:connect " + name+"
features:uninstall cellar"));
+ System.err.println(executeCommand("admin:connect " + name + "
features:uninstall cellar"));
System.err.println(executeCommand("admin:stop " + name));
//System.err.println(executeCommand("admin:destroy " + name));
}
/**
* Returns the node id of a specific child instance.
- * @param name
- * @return
*/
protected String getNodeIdOfChild(String name) {
String nodeId = null;
- String nodesList = executeCommand("admin:connect " + name+"
cluster:nodes-list | grep \\\\*",COMMAND_TIMEOUT,true);
+ String nodesList = executeCommand("admin:connect " + name + "
cluster:nodes-list | grep \\\\*", COMMAND_TIMEOUT, true);
String[] tokens = nodesList.split(" ");
if(tokens != null && tokens.length > 0) {
nodeId = tokens[tokens.length - 1].trim().replaceAll("\n","");
@@ -182,11 +178,6 @@ public class CellarTestSupport {
return nodeId;
}
- /**
- * Create an {@link org.ops4j.pax.exam.Option} for using a .
- *
- * @return
- */
protected Option cellarDistributionConfiguration() {
return karafDistributionConfiguration().frameworkUrl(
maven().groupId(GROUP_ID).artifactId(ARTIFACT_ID).versionAsInProject().type("tar.gz"))
@@ -200,7 +191,7 @@ public class CellarTestSupport {
* @return
*/
protected String executeCommand(final String command) {
- return executeCommand(command,COMMAND_TIMEOUT,false);
+ return executeCommand(command, COMMAND_TIMEOUT, false);
}
/**
@@ -294,8 +285,8 @@ public class CellarTestSupport {
throw new RuntimeException("Bundle " + symbolicName + " does not
exist");
}
- /*
- * Explode the dictionary into a ,-delimited list of key=value pairs
+ /**
+ * Explodes the dictionary into a ,-delimited list of key=value pairs
*/
private static String explode(Dictionary dictionary) {
Enumeration keys = dictionary.keys();
@@ -398,11 +389,9 @@ public class CellarTestSupport {
}
}
}
-
return false;
}
-
/*
* Provides an iterable collection of references, even if the original
array is null
*/
@@ -410,5 +399,4 @@ public class CellarTestSupport {
return references != null ? Arrays.asList(references) :
Collections.<ServiceReference>emptyList();
}
-
}
Modified:
karaf/cellar/trunk/samples/dosgi-greeter/client/src/main/resources/OSGI-INF/blueprint/shell-greeter.xml
URL:
http://svn.apache.org/viewvc/karaf/cellar/trunk/samples/dosgi-greeter/client/src/main/resources/OSGI-INF/blueprint/shell-greeter.xml?rev=1232786&r1=1232785&r2=1232786&view=diff
==============================================================================
---
karaf/cellar/trunk/samples/dosgi-greeter/client/src/main/resources/OSGI-INF/blueprint/shell-greeter.xml
(original)
+++
karaf/cellar/trunk/samples/dosgi-greeter/client/src/main/resources/OSGI-INF/blueprint/shell-greeter.xml
Wed Jan 18 08:45:07 2012
@@ -13,7 +13,9 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
default-activation="lazy">
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
default-activation="eager">
+
+ <reference id="greeter"
interface="org.apache.karaf.cellar.samples.dosgi.greeter.api.Greeter"/>
<!-- Command Bundle -->
<command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.0.0">