Author: rhauch
Date: 2009-04-23 17:51:50 -0400 (Thu, 23 Apr 2009)
New Revision: 856
Modified:
trunk/dna-repository/src/main/java/org/jboss/dna/repository/DnaConfiguration.java
trunk/dna-repository/src/test/java/org/jboss/dna/repository/DnaConfigurationTest.java
Log:
DNA-58 Create repository configuration and component
Minor change to allow the configuration to have more than one PathExpression in any
sequencer.
Modified:
trunk/dna-repository/src/main/java/org/jboss/dna/repository/DnaConfiguration.java
===================================================================
---
trunk/dna-repository/src/main/java/org/jboss/dna/repository/DnaConfiguration.java 2009-04-23
20:35:30 UTC (rev 855)
+++
trunk/dna-repository/src/main/java/org/jboss/dna/repository/DnaConfiguration.java 2009-04-23
21:51:50 UTC (rev 856)
@@ -21,8 +21,10 @@
*/
package org.jboss.dna.repository;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import net.jcip.annotations.Immutable;
import org.jboss.dna.common.component.ClassLoaderFactory;
@@ -737,6 +739,7 @@
protected class GraphSequencerDetails implements SequencerDetails {
private final Path path;
+ private final List<String> compiledExpressions = new
ArrayList<String>();
protected GraphSequencerDetails( Path path ) {
assert path != null;
@@ -780,7 +783,9 @@
*/
public SequencerDetails sequencingFrom( PathExpression expression ) {
CheckArg.isNotNull(expression, "expression");
-
configuration().set(DnaLexicon.PATH_EXPRESSIONS).on(path).to(expression.getExpression());
+ String compiledExpression = expression.getExpression();
+ if (!compiledExpressions.contains(compiledExpression))
compiledExpressions.add(compiledExpression);
+
configuration().set(DnaLexicon.PATH_EXPRESSIONS).on(path).to(compiledExpressions);
return this;
}
Modified:
trunk/dna-repository/src/test/java/org/jboss/dna/repository/DnaConfigurationTest.java
===================================================================
---
trunk/dna-repository/src/test/java/org/jboss/dna/repository/DnaConfigurationTest.java 2009-04-23
20:35:30 UTC (rev 855)
+++
trunk/dna-repository/src/test/java/org/jboss/dna/repository/DnaConfigurationTest.java 2009-04-23
21:51:50 UTC (rev 856)
@@ -253,8 +253,8 @@
.usingClass(MockSequencerA.class)
.named("The (Main) Sequencer")
.describedAs("Mock Sequencer A")
- // .sequencingFrom("/foo/source")
- // .andOutputtingTo("/foo/target")
+ .sequencingFrom("/foo/source")
+ .andOutputtingTo("/foo/target")
.sequencingFrom("/bar/source")
.andOutputtingTo("/bar/target")
.and()
@@ -276,7 +276,7 @@
MockSequencerA.class.getName()));
System.out.println(subgraph.getNode("/dna:sequencers/sequencerA").getProperty(DnaLexicon.PATH_EXPRESSIONS));
assertThat(subgraph.getNode("/dna:sequencers/sequencerA"),
hasProperty(DnaLexicon.PATH_EXPRESSIONS,
- // "/foo/source => /foo/target",
+
"/foo/source => /foo/target",
"/bar/source => /bar/target"));
}
@@ -286,6 +286,14 @@
configuration.addMimeTypeDetector("detector")
.usingClass(ExtensionBasedMimeTypeDetector.class)
.describedAs("default detector");
+ configuration.addSequencer("sequencerA")
+ .usingClass(MockSequencerA.class)
+ .named("The (Main) Sequencer")
+ .describedAs("Mock Sequencer A")
+ .sequencingFrom("/foo/source")
+ .andOutputtingTo("/foo/target")
+ .sequencingFrom("/bar/source")
+ .andOutputtingTo("/bar/target");
configuration.save();
// Verify that the graph has been updated correctly ...
@@ -302,5 +310,15 @@
assertThat(subgraph.getNode("/dna:mimeTypeDetectors/detector"),
hasProperty(DnaLexicon.DESCRIPTION, "default detector"));
assertThat(subgraph.getNode("/dna:mimeTypeDetectors/detector"),
hasProperty(DnaLexicon.CLASSNAME,
ExtensionBasedMimeTypeDetector.class.getName()));
+ assertThat(subgraph.getNode("/dna:sequencers").getChildren(),
hasChild(segment("sequencerA")));
+ assertThat(subgraph.getNode("/dna:sequencers/sequencerA"),
is(notNullValue()));
+ assertThat(subgraph.getNode("/dna:sequencers/sequencerA"),
hasProperty(DnaLexicon.READABLE_NAME, "The (Main) Sequencer"));
+ assertThat(subgraph.getNode("/dna:sequencers/sequencerA"),
hasProperty(DnaLexicon.DESCRIPTION, "Mock Sequencer A"));
+ assertThat(subgraph.getNode("/dna:sequencers/sequencerA"),
hasProperty(DnaLexicon.CLASSNAME,
+
MockSequencerA.class.getName()));
+
System.out.println(subgraph.getNode("/dna:sequencers/sequencerA").getProperty(DnaLexicon.PATH_EXPRESSIONS));
+ assertThat(subgraph.getNode("/dna:sequencers/sequencerA"),
hasProperty(DnaLexicon.PATH_EXPRESSIONS,
+
"/foo/source => /foo/target",
+
"/bar/source => /bar/target"));
}
}
Show replies by date