You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by io...@apache.org on 2011/12/03 20:15:19 UTC

svn commit: r1209984 - in /karaf/cellar/branches/cellar-2.2.x: ./ assembly/src/main/resources/ core/src/main/java/org/apache/karaf/cellar/core/ core/src/main/java/org/apache/karaf/cellar/core/control/ core/src/main/java/org/apache/karaf/cellar/core/dis...

Author: iocanel
Date: Sat Dec  3 19:15:18 2011
New Revision: 1209984

URL: http://svn.apache.org/viewvc?rev=1209984&view=rev
Log:
Merged from trunk
[KARAF-1082] Added a unit test for the Hazlecast configuration manager that tests isUpdated method. Also removed tests that now belong to CellarUtilsTest. [from revision 1209976]

Modified:
    karaf/cellar/branches/cellar-2.2.x/   (props changed)
    karaf/cellar/branches/cellar-2.2.x/README
    karaf/cellar/branches/cellar-2.2.x/assembly/src/main/resources/instance.cfg
    karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/Group.java
    karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/control/ManageGroupCommandHandler.java
    karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/discovery/DiscoveryTask.java
    karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/shell/completer/LocalGroupsCompleter.java
    karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/shell/completer/OtherGroupsCompleter.java
    karaf/cellar/branches/cellar-2.2.x/core/src/test/java/org/apache/karaf/cellar/core/CellarSupportTest.java
    karaf/cellar/branches/cellar-2.2.x/hazelcast/src/test/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastConfigurationManagerTest.java
    karaf/cellar/branches/cellar-2.2.x/manual/src/main/webapp/architecture-guide/overview.conf
    karaf/cellar/branches/cellar-2.2.x/manual/src/main/webapp/architecture-guide/supported_events.conf
    karaf/cellar/branches/cellar-2.2.x/manual/src/main/webapp/overview.conf
    karaf/cellar/branches/cellar-2.2.x/manual/src/main/webapp/user-guide/groups.conf
    karaf/cellar/branches/cellar-2.2.x/pom.xml

Propchange: karaf/cellar/branches/cellar-2.2.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Dec  3 19:15:18 2011
@@ -1 +1 @@
-/karaf/cellar/trunk:1101991,1102000,1103447,1103456,1125012,1125040,1131478,1142446,1149693,1150108,1160898,1161074,1161494,1161515,1161766,1162249,1162252,1162321,1162327,1162356-1162357,1162390,1162397,1162399,1164077,1164523,1164989,1164994,1166403,1166434,1181287,1186085,1202090,1202105,1202108,1202111,1203975,1204173,1204184,1204209,1205187,1209264,1209753,1209755,1209757,1209964,1209966,1209969,1209971
+/karaf/cellar/trunk:1101991,1102000,1103447,1103456,1125012,1125040,1131478,1142446,1149693,1150108,1160898,1161074,1161494,1161515,1161766,1162249,1162252,1162321,1162327,1162356-1162357,1162390,1162397,1162399,1164077,1164523,1164989,1164994,1166403,1166434,1181287,1186085,1202090,1202105,1202108,1202111,1203975,1204173,1204184,1204209,1205187,1209264,1209753,1209755,1209757,1209964,1209966,1209969,1209971,1209976

Modified: karaf/cellar/branches/cellar-2.2.x/README
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/README?rev=1209984&r1=1209983&r2=1209984&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/README (original)
+++ karaf/cellar/branches/cellar-2.2.x/README Sat Dec  3 19:15:18 2011
@@ -27,7 +27,7 @@ Here is a short list of features:
       instances and join the cluster. There is no configuration required to join the cluster, the discovery is made
       behind the scene. You can use multicast or unicast for discovery.
     * Cluster group: a Karaf node could be part of one or more cluster group. In Cellar, you can define cluster group
-      depending of your requirements. The resources will be sync between members of the same group.
+      depending of your requirements. The resources will be sync between nodes of the same group.
     * Distributed Configuration Admin: Cellar distributes the configuration data. The distribution is event driven and
       filtered by group. You can tune the configuration replication using blacklist/whitelist on the configuration
       ID (PID).

Modified: karaf/cellar/branches/cellar-2.2.x/assembly/src/main/resources/instance.cfg
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/assembly/src/main/resources/instance.cfg?rev=1209984&r1=1209983&r2=1209984&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/assembly/src/main/resources/instance.cfg (original)
+++ karaf/cellar/branches/cellar-2.2.x/assembly/src/main/resources/instance.cfg Sat Dec  3 19:15:18 2011
@@ -7,7 +7,7 @@ multicastPort=54327
 multicastTimeoutSeconds=2
 
 tcpIpEnabled=true
-tcpIpMembers=
+tcpIpMembers= MERGABLE[]
 
 #DO NOT EDIT THIS PROPERTY USE tcpIpMembers INSTEAD
-discoveredMembers=
\ No newline at end of file
+discoveredMembers= MERGABLE[]
\ No newline at end of file

Modified: karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/Group.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/Group.java?rev=1209984&r1=1209983&r2=1209984&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/Group.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/Group.java Sat Dec  3 19:15:18 2011
@@ -20,10 +20,10 @@ import java.util.Set;
 /**
  * Cellar group.
  */
-public class Group implements Serializable {
+public class Group implements MultiNode {
 
     private String name;
-    private Set<Node> members = new HashSet<Node>();
+    private Set<Node> nodes = new HashSet<Node>();
 
     /**
      * Constructor
@@ -42,12 +42,12 @@ public class Group implements Serializab
         this.name = name;
     }
 
-    public Set<Node> getMembers() {
-        return members;
+    public Set<Node> getNodes() {
+        return nodes;
     }
 
-    public void setMembers(Set<Node> members) {
-        this.members = members;
+    public void setNodes(Set<Node> nodes) {
+        this.nodes = nodes;
     }
 
     @Override

Modified: karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/control/ManageGroupCommandHandler.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/control/ManageGroupCommandHandler.java?rev=1209984&r1=1209983&r2=1209984&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/control/ManageGroupCommandHandler.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/control/ManageGroupCommandHandler.java Sat Dec  3 19:15:18 2011
@@ -87,14 +87,15 @@ public class ManageGroupCommandHandler e
      * @param targetGroupName
      */
     public void joinGroup(String targetGroupName) {
+        LOGGER.info("CELLAR GROUP: Joining group {}.",targetGroupName);
         Node node = clusterManager.getNode();
         Map<String, Group> groups = groupManager.listGroups();
         if (groups != null && !groups.isEmpty()) {
             Group targetGroup = groups.get(targetGroupName);
             if (targetGroup == null) {
                 groupManager.registerGroup(targetGroupName);
-            } else if (!targetGroup.getMembers().contains(node)) {
-                targetGroup.getMembers().add(node);
+            } else if (!targetGroup.getNodes().contains(node)) {
+                targetGroup.getNodes().add(node);
                 groupManager.listGroups().put(targetGroupName, targetGroup);
                 groupManager.registerGroup(targetGroup);
             }
@@ -107,12 +108,13 @@ public class ManageGroupCommandHandler e
      * @param targetGroupName
      */
     public void quitGroup(String targetGroupName) {
+        LOGGER.info("CELLAR GROUP: Quiting group {}.",targetGroupName);
         Node node = clusterManager.getNode();
         Map<String, Group> groups = groupManager.listGroups();
         if (groups != null && !groups.isEmpty()) {
             Group targetGroup = groups.get(targetGroupName);
-            if (targetGroup.getMembers().contains(node)) {
-                targetGroup.getMembers().remove(node);
+            if (targetGroup.getNodes().contains(node)) {
+                targetGroup.getNodes().remove(node);
                 groupManager.unRegisterGroup(targetGroup);
             }
         }
@@ -123,6 +125,7 @@ public class ManageGroupCommandHandler e
      * Removes {@link Node} from ALL {@link Group}s.
      */
     public void purgeGroups() {
+        LOGGER.info("CELLAR GROUP: Purging all groups from node.");
         Node node = clusterManager.getNode();
         Set<String> groupNames = groupManager.listGroupNames(node);
         if (groupNames != null && !groupNames.isEmpty()) {

Modified: karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/discovery/DiscoveryTask.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/discovery/DiscoveryTask.java?rev=1209984&r1=1209983&r2=1209984&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/discovery/DiscoveryTask.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/discovery/DiscoveryTask.java Sat Dec  3 19:15:18 2011
@@ -22,6 +22,7 @@ import java.util.Set;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
+import org.apache.karaf.cellar.core.utils.CellarUtils;
 import org.osgi.service.cm.Configuration;
 import org.osgi.service.cm.ConfigurationAdmin;
 import org.slf4j.Logger;
@@ -58,7 +59,7 @@ public class DiscoveryTask implements Ru
             try {
                 Configuration configuration = configurationAdmin.getConfiguration(Discovery.PID);
                 Dictionary properties = configuration.getProperties();
-                String newMemberText = buildMemberList(members);
+                String newMemberText = CellarUtils.createStringFromSet(members,true);
                 String memberText = (String) properties.get(Discovery.MEMBERS_PROPERTY_NAME);
                 if (newMemberText != null && newMemberText.length() > 0 && !newMemberText.equals(memberText)) {
                     properties.put(Discovery.DISCOVERED_MEMBERS_PROPERTY_NAME, newMemberText);
@@ -71,24 +72,6 @@ public class DiscoveryTask implements Ru
         }
     }
 
-    /**
-     * Creates a comma delimited list of members.
-     *
-     * @param members
-     * @return
-     */
-    private String buildMemberList(Set<String> members) {
-        StringBuilder builder = new StringBuilder();
-        Iterator<String> memberIterator = members.iterator();
-        while (memberIterator.hasNext()) {
-            builder.append(memberIterator.next());
-            if (memberIterator.hasNext()) {
-                builder.append(",");
-            }
-        }
-        return builder.toString();
-    }
-
     public List<DiscoveryService> getDiscoveryServices() {
         return discoveryServices;
     }

Modified: karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/shell/completer/LocalGroupsCompleter.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/shell/completer/LocalGroupsCompleter.java?rev=1209984&r1=1209983&r2=1209984&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/shell/completer/LocalGroupsCompleter.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/shell/completer/LocalGroupsCompleter.java Sat Dec  3 19:15:18 2011
@@ -24,7 +24,7 @@ public class LocalGroupsCompleter extend
     @Override
     protected boolean acceptsGroup(Group group) {
         Node node = groupManager.getNode();
-        if (group.getMembers().contains(node))
+        if (group.getNodes().contains(node))
             return true;
         else return false;
     }

Modified: karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/shell/completer/OtherGroupsCompleter.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/shell/completer/OtherGroupsCompleter.java?rev=1209984&r1=1209983&r2=1209984&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/shell/completer/OtherGroupsCompleter.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/core/src/main/java/org/apache/karaf/cellar/core/shell/completer/OtherGroupsCompleter.java Sat Dec  3 19:15:18 2011
@@ -24,7 +24,7 @@ public class OtherGroupsCompleter extend
     @Override
     protected boolean acceptsGroup(Group group) {
         Node node = groupManager.getNode();
-        if (group.getMembers().contains(node))
+        if (group.getNodes().contains(node))
             return false;
         else return true;
     }

Modified: karaf/cellar/branches/cellar-2.2.x/core/src/test/java/org/apache/karaf/cellar/core/CellarSupportTest.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/core/src/test/java/org/apache/karaf/cellar/core/CellarSupportTest.java?rev=1209984&r1=1209983&r2=1209984&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/core/src/test/java/org/apache/karaf/cellar/core/CellarSupportTest.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/core/src/test/java/org/apache/karaf/cellar/core/CellarSupportTest.java Sat Dec  3 19:15:18 2011
@@ -53,7 +53,15 @@ public class CellarSupportTest {
         assertEquals("Shell should not be allowed",expectedResult,result);
 
         expectedResult = true;
-        result = support.isAllowed(defaultGroup,"config","org.apache.karaf.myshell", EventType.INBOUND);
-        assertEquals("MyShell should be allowed",expectedResult,result);
+        result = support.isAllowed(defaultGroup,"config","org.apache.karaf.cellar.group", EventType.INBOUND);
+        assertEquals("Group config should be allowed",expectedResult,result);
+
+        expectedResult = false;
+        result = support.isAllowed(defaultGroup,"config","org.apache.karaf.cellar.node", EventType.INBOUND);
+        assertEquals("Node config should be allowed",expectedResult,result);
+
+        expectedResult = false;
+        result = support.isAllowed(defaultGroup,"config","org.apache.karaf.cellar.instance", EventType.INBOUND);
+        assertEquals("Instance config should be allowed",expectedResult,result);
     }
 }

Modified: karaf/cellar/branches/cellar-2.2.x/hazelcast/src/test/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastConfigurationManagerTest.java
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/hazelcast/src/test/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastConfigurationManagerTest.java?rev=1209984&r1=1209983&r2=1209984&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/hazelcast/src/test/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastConfigurationManagerTest.java (original)
+++ karaf/cellar/branches/cellar-2.2.x/hazelcast/src/test/java/org/apache/karaf/cellar/hazelcast/factory/HazelcastConfigurationManagerTest.java Sat Dec  3 19:15:18 2011
@@ -15,30 +15,7 @@ import org.junit.runners.JUnit4;
 @RunWith(JUnit4.class)
 public class HazelcastConfigurationManagerTest {
 
-    @Test
-    public void testCollectionEquals() {
-        HazelcastConfigurationManager cm = new HazelcastConfigurationManager();
-        //Lists
-        Assert.assertTrue(cm.collectionEquals(null,null));
-        Assert.assertTrue(cm.collectionEquals(new LinkedList(),new LinkedList()));
-        Assert.assertTrue(cm.collectionEquals(new LinkedList(),new ArrayList()));
-
-        Assert.assertTrue(cm.collectionEquals(Arrays.asList(""),Arrays.asList("")));
-        Assert.assertTrue(cm.collectionEquals(Arrays.asList("1"),Arrays.asList("1")));
-        Assert.assertFalse(cm.collectionEquals(Arrays.asList("1"), Arrays.asList("2")));
-        Assert.assertTrue(cm.collectionEquals(Arrays.asList("1","2"),Arrays.asList("2","1")));
-        Assert.assertFalse(cm.collectionEquals(Arrays.asList("1", "2"), Arrays.asList("2", "1", "3")));
 
-        //Sets
-        Assert.assertTrue(cm.collectionEquals(new LinkedHashSet(),new LinkedHashSet()));
-        Set<String> s1 = new LinkedHashSet<String>();
-        Set<String> s2 = new LinkedHashSet<String>();
-
-        s1.add("");
-        s2.add("");
-        Assert.assertTrue(cm.collectionEquals(s1,s2));
-        System.out.println(String.format("%s %s",s1,s2));
-    }
 
     @Test
     public void testIsUpdatedWithNoProperties()  {

Modified: karaf/cellar/branches/cellar-2.2.x/manual/src/main/webapp/architecture-guide/overview.conf
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/manual/src/main/webapp/architecture-guide/overview.conf?rev=1209984&r1=1209983&r2=1209984&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/manual/src/main/webapp/architecture-guide/overview.conf (original)
+++ karaf/cellar/branches/cellar-2.2.x/manual/src/main/webapp/architecture-guide/overview.conf Sat Dec  3 19:15:18 2011
@@ -2,7 +2,7 @@ h1. Architecture Overview
 
 The core concept behind Karaf Cellar is that each node can be a part of one or more groups that
 provide the node distributed memory for keeping data (e.g. configuration, features information, other)
-and a topic which is used to exchange events with the rest group members.
+and a topic which is used to exchange events with the rest of the group nodes.
 
 !/images/architecture.png!
 

Modified: karaf/cellar/branches/cellar-2.2.x/manual/src/main/webapp/architecture-guide/supported_events.conf
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/manual/src/main/webapp/architecture-guide/supported_events.conf?rev=1209984&r1=1209983&r2=1209984&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/manual/src/main/webapp/architecture-guide/supported_events.conf (original)
+++ karaf/cellar/branches/cellar-2.2.x/manual/src/main/webapp/architecture-guide/supported_events.conf Sat Dec  3 19:15:18 2011
@@ -11,7 +11,7 @@ a whitelist/blacklist of specific event 
 
 For instance, the default group is configured to allow synchronization of configuration. This means that
 whenever a change occurs via the config admin to a specific PID, the change will pass to the distributed
-memory of the default group and will also be broadcasted to all other default group members using the topic.
+memory of the default group and will also be broadcasted to all other default group nodes using the topic.
 
 This happens for all PIDs but not for org.apache.karaf.cellar.node which is marked as blacklisted
 and will never be written or read from the distributed memory, nor will be broardcasted via the topic.

Modified: karaf/cellar/branches/cellar-2.2.x/manual/src/main/webapp/overview.conf
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/manual/src/main/webapp/overview.conf?rev=1209984&r1=1209983&r2=1209984&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/manual/src/main/webapp/overview.conf (original)
+++ karaf/cellar/branches/cellar-2.2.x/manual/src/main/webapp/overview.conf Sat Dec  3 19:15:18 2011
@@ -7,7 +7,7 @@ Cellar allows you to manage a cluster of
 Here is a short list of Cellar features:
 
 * *Discovery*: when you install Cellar into a Karaf instance, it automatically tries to join the cluster of other Cellar -running Karaf instances it discovers. There is no configuration required to join the cluster, the discovery is made behind the scenes, which multicast or unicast used for discovery.
-* *Cluster Group*: a Karaf node can be part of one or more cluster groups. In Cellar, you can define cluster groups per your requirements. Resources will be sync'ed between members of the same group.
+* *Cluster Group*: a Karaf node can be part of one or more cluster groups. In Cellar, you can define cluster groups per your requirements. Resources will be sync'ed between nodes of the same group.
 * *Distributed Configuration Admin*: Cellar distributes configuration data, both of Cellar-specific and Karaf etc/*.cfg configuration files. The distribution is event driven and filtered by group. You can tune the configuration replication using blacklists/whitelists on the configuration ID (PID).
 * *Distributed Features Service*: Cellar distributes the features and features repository information, also an event-driven process.
 * *Provisioning*: Cellar provides shell commands for basic provisioning. It can also use an OBR backend or another provisioning tool such as Apache ACE.

Modified: karaf/cellar/branches/cellar-2.2.x/manual/src/main/webapp/user-guide/groups.conf
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/manual/src/main/webapp/user-guide/groups.conf?rev=1209984&r1=1209983&r2=1209984&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/manual/src/main/webapp/user-guide/groups.conf (original)
+++ karaf/cellar/branches/cellar-2.2.x/manual/src/main/webapp/user-guide/groups.conf Sat Dec  3 19:15:18 2011
@@ -26,7 +26,7 @@ Members              []
 
 {code}
 
-For now, the test group hasn't any members:
+For now, the test group hasn't any nodes:
 
 {code}
 kaaf@root> cluster:group-list
@@ -85,7 +85,7 @@ Key                                     
 name                                     value
 {code}
 
-h2. Group members
+h2. Group nodes
 
 You can define a node member of one of more group:
 
@@ -99,7 +99,7 @@ karaf@root> cluster:group-join test node
 
 The node can be local or remote.
 
-Now, the members of a given group will inherit of all configuration defined in the group. This means that
+Now, the nodes of a given group will inherit of all configuration defined in the group. This means that
 node1 now knows the tstcfg configuration because it's a member of the test group:
 
 {code}

Modified: karaf/cellar/branches/cellar-2.2.x/pom.xml
URL: http://svn.apache.org/viewvc/karaf/cellar/branches/cellar-2.2.x/pom.xml?rev=1209984&r1=1209983&r2=1209984&view=diff
==============================================================================
--- karaf/cellar/branches/cellar-2.2.x/pom.xml (original)
+++ karaf/cellar/branches/cellar-2.2.x/pom.xml Sat Dec  3 19:15:18 2011
@@ -72,9 +72,9 @@
     </modules>
 
     <scm>
-        <connection>scm:svn:http://svn.apache.org/repos/asf/karaf/cellar/branches/cellar-2.2.x</connection>
-        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/karaf/cellar/branches/cellar-2.2.x</developerConnection>
-        <url>http://svn.apache.org/repos/asf/karaf/cellar/branches/cellar-2.2.x</url>
+        <connection>scm:svn:http://svn.apache.org/repos/asf/karaf/cellar/trunk</connection>
+        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/karaf/cellar/trunk</developerConnection>
+        <url>http://svn.apache.org/repos/asf/karaf/cellar/trunk</url>
     </scm>
 
     <issueManagement>
@@ -435,8 +435,8 @@
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
                 <configuration>
-                    <source>1.5</source>
-                    <target>1.5</target>
+                    <source>1.6</source>
+                    <target>1.6</target>
                 </configuration>
             </plugin>
             <plugin>
@@ -451,10 +451,10 @@
                         <configuration>
                             <rules>
                                 <requireMavenVersion>
-                                    <version>[2.2.1,4)</version>
+                                    <version>3.0.2</version>
                                 </requireMavenVersion>
                                 <requireJavaVersion>
-                                    <version>[1.5,1.7]</version>
+                                    <version>1.6.0</version>
                                 </requireJavaVersion>
                             </rules>
                         </configuration>
@@ -508,10 +508,12 @@
                         <Bundle-Activator>${osgi.bundle.activator}</Bundle-Activator>
                         <Export-Package>${osgi.export}</Export-Package>
                         <Import-Package>${osgi.import}</Import-Package>
+                        <Ignore-Package>${osgi.ignore}</Ignore-Package>
                         <DynamicImport-Package>${osgi.dynamic.import}</DynamicImport-Package>
                         <Private-Package>${osgi.private}</Private-Package>
                         <Require-Bundle>${osgi.bundles}</Require-Bundle>
                         <Export-Service>${osgi.export.service}</Export-Service>
+                        <Fragment-Host>${osgi.fragment.host}</Fragment-Host>
                     </instructions>
                     <supportedProjectTypes>
                         <supportedProjectType>jar</supportedProjectType>
@@ -574,10 +576,10 @@
                                 <configuration>
                                     <rules>
                                         <requireMavenVersion>
-                                            <version>[3,4)</version>
+                                            <version>[2.2.1,3)</version>
                                         </requireMavenVersion>
                                         <requireJavaVersion>
-                                            <version>1.5</version>
+                                            <version>1.6</version>
                                         </requireJavaVersion>
                                     </rules>
                                 </configuration>