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()));
}