[dna-commits] DNA SVN: r536 - in trunk: extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/strategy and 1 other directory.

dna-commits at lists.jboss.org dna-commits at lists.jboss.org
Thu Sep 18 15:21:28 EDT 2008


Author: rhauch
Date: 2008-09-18 15:21:28 -0400 (Thu, 18 Sep 2008)
New Revision: 536

Modified:
   trunk/docs/examples/gettingstarted/repositories/src/main/java/org/jboss/example/dna/repository/RepositoryClient.java
   trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/strategy/SimpleMergeStrategy.java
Log:
DNA-222 - Create Getting Started example application for repositories
http://jira.jboss.com/jira/browse/DNA-222

Minor change to correct how indexes are shown (or left off) with JCR.  Also, minor change to the federated connector to correctly look for duplicate children.

Modified: trunk/docs/examples/gettingstarted/repositories/src/main/java/org/jboss/example/dna/repository/RepositoryClient.java
===================================================================
--- trunk/docs/examples/gettingstarted/repositories/src/main/java/org/jboss/example/dna/repository/RepositoryClient.java	2008-09-18 18:12:00 UTC (rev 535)
+++ trunk/docs/examples/gettingstarted/repositories/src/main/java/org/jboss/example/dna/repository/RepositoryClient.java	2008-09-18 19:21:28 UTC (rev 536)
@@ -24,8 +24,10 @@
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.TimeUnit;
 import javax.jcr.Credentials;
 import javax.jcr.Node;
@@ -270,6 +272,7 @@
                         for (PropertyIterator iter = node.getProperties(); iter.hasNext();) {
                             javax.jcr.Property property = iter.nextProperty();
                             Object[] values = null;
+                            // Must call either 'getValue()' or 'getValues()' depending upon # of values
                             if (property.getDefinition().isMultiple()) {
                                 Value[] jcrValues = property.getValues();
                                 values = new String[jcrValues.length];
@@ -283,10 +286,18 @@
                         }
                     }
                     if (children != null) {
+                        // Figure out which children need same-name sibling indexes ...
+                        Set<String> sameNameSiblings = new HashSet<String>();
                         for (NodeIterator iter = node.getNodes(); iter.hasNext();) {
                             javax.jcr.Node child = iter.nextNode();
-                            children.add(child.getName());
+                            if (child.getIndex() > 1) sameNameSiblings.add(child.getName());
                         }
+                        for (NodeIterator iter = node.getNodes(); iter.hasNext();) {
+                            javax.jcr.Node child = iter.nextNode();
+                            String name = child.getName();
+                            if (sameNameSiblings.contains(name)) name = name + "[" + child.getIndex() + "]";
+                            children.add(name);
+                        }
                     }
                 } catch (javax.jcr.PathNotFoundException e) {
                     return false;

Modified: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/strategy/SimpleMergeStrategy.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/strategy/SimpleMergeStrategy.java	2008-09-18 18:12:00 UTC (rev 535)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/strategy/SimpleMergeStrategy.java	2008-09-18 19:21:28 UTC (rev 536)
@@ -100,7 +100,7 @@
                 Iterator<Segment> childIterator = contribution.getChildren();
                 while (childIterator.hasNext()) {
                     Segment child = childIterator.next();
-                    if (!childNames.containsKey(child)) {
+                    if (!childNames.containsKey(child.getName())) {
                         childNames.put(child.getName(), 1);
                         children.add(pathFactory.createSegment(child.getName()));
                     }




More information about the dna-commits mailing list