[dna-commits] DNA SVN: r856 - in trunk/dna-repository/src: test/java/org/jboss/dna/repository and 1 other directory.
dna-commits at lists.jboss.org
dna-commits at lists.jboss.org
Thu Apr 23 17:51:50 EDT 2009
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"));
}
}
More information about the dna-commits
mailing list