[dna-commits] DNA SVN: r555 - in tags: dna-0.2 and 25 other directories.

dna-commits at lists.jboss.org dna-commits at lists.jboss.org
Fri Sep 26 17:12:44 EDT 2008


Author: rhauch
Date: 2008-09-26 17:12:43 -0400 (Fri, 26 Sep 2008)
New Revision: 555

Added:
   tags/dna-0.2/
   tags/dna-0.2/dna-common/pom.xml
   tags/dna-0.2/dna-graph/pom.xml
   tags/dna-0.2/dna-integration-tests/pom.xml
   tags/dna-0.2/dna-jcr/pom.xml
   tags/dna-0.2/dna-repository/pom.xml
   tags/dna-0.2/docs/examples/gettingstarted/pom.xml
   tags/dna-0.2/docs/examples/gettingstarted/repositories/pom.xml
   tags/dna-0.2/docs/examples/gettingstarted/sequencers/pom.xml
   tags/dna-0.2/docs/gettingstarted/pom.xml
   tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/downloading_and_running.xml
   tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/future.xml
   tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/introduction.xml
   tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/legal_notice.xml
   tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/understanding_dna.xml
   tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/using_dna_repositories.xml
   tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/master.xml
   tags/dna-0.2/docs/pom.xml
   tags/dna-0.2/docs/reference/pom.xml
   tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/development_tools.xml
   tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/future.xml
   tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/introduction.xml
   tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/legal_notice.xml
   tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/sequencing.xml
   tags/dna-0.2/extensions/dna-classloader-maven/pom.xml
   tags/dna-0.2/extensions/dna-connector-federation/pom.xml
   tags/dna-0.2/extensions/dna-connector-inmemory/pom.xml
   tags/dna-0.2/extensions/dna-connector-jbosscache/pom.xml
   tags/dna-0.2/extensions/dna-mimetype-detector-aperture/pom.xml
   tags/dna-0.2/extensions/dna-sequencer-cnd/pom.xml
   tags/dna-0.2/extensions/dna-sequencer-images/pom.xml
   tags/dna-0.2/extensions/dna-sequencer-java/pom.xml
   tags/dna-0.2/extensions/dna-sequencer-mp3/pom.xml
   tags/dna-0.2/extensions/dna-sequencer-msoffice/pom.xml
   tags/dna-0.2/extensions/dna-sequencer-zip/pom.xml
   tags/dna-0.2/pom.xml
Removed:
   tags/dna-0.2/dna-common/pom.xml
   tags/dna-0.2/dna-graph/pom.xml
   tags/dna-0.2/dna-integration-tests/pom.xml
   tags/dna-0.2/dna-jcr/pom.xml
   tags/dna-0.2/dna-repository/pom.xml
   tags/dna-0.2/docs/examples/gettingstarted/pom.xml
   tags/dna-0.2/docs/examples/gettingstarted/repositories/pom.xml
   tags/dna-0.2/docs/examples/gettingstarted/sequencers/pom.xml
   tags/dna-0.2/docs/gettingstarted/pom.xml
   tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/downloading_and_running.xml
   tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/future.xml
   tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/introduction.xml
   tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/legal_notice.xml
   tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/understanding_dna.xml
   tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/using_dna_repositories.xml
   tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/master.xml
   tags/dna-0.2/docs/pom.xml
   tags/dna-0.2/docs/reference/pom.xml
   tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/development_tools.xml
   tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/future.xml
   tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/introduction.xml
   tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/legal_notice.xml
   tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/sequencing.xml
   tags/dna-0.2/extensions/dna-classloader-maven/pom.xml
   tags/dna-0.2/extensions/dna-connector-federation/pom.xml
   tags/dna-0.2/extensions/dna-connector-inmemory/pom.xml
   tags/dna-0.2/extensions/dna-connector-jbosscache/pom.xml
   tags/dna-0.2/extensions/dna-mimetype-detector-aperture/pom.xml
   tags/dna-0.2/extensions/dna-sequencer-cnd/pom.xml
   tags/dna-0.2/extensions/dna-sequencer-images/pom.xml
   tags/dna-0.2/extensions/dna-sequencer-java/pom.xml
   tags/dna-0.2/extensions/dna-sequencer-mp3/pom.xml
   tags/dna-0.2/extensions/dna-sequencer-msoffice/pom.xml
   tags/dna-0.2/extensions/dna-sequencer-zip/pom.xml
   tags/dna-0.2/pom.xml
Log:
[maven-release-plugin]  copy for tag dna-0.2

Copied: tags/dna-0.2 (from rev 547, trunk)

Deleted: tags/dna-0.2/dna-common/pom.xml
===================================================================
--- trunk/dna-common/pom.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/dna-common/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,84 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.jboss.dna</groupId>
-    <artifactId>dna</artifactId>
-    <version>0.2-SNAPSHOT</version>
-  </parent>
-  <!-- The groupId and version values are inherited from parent -->
-  <artifactId>dna-common</artifactId>
-  <packaging>jar</packaging>
-  <name>JBoss DNA Common</name>
-  <description>JBoss DNA Common Library and Utilities</description>
-  <url>http://labs.jboss.org/dna</url>
-  <!--
-  Define the dependencies.  Note that all version and scopes default to those 
-  defined in the dependencyManagement section of the parent pom.
-  -->
-  <dependencies>
-    <!-- 
-    Testing (note the scope)
-    -->
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.hamcrest</groupId>
-      <artifactId>hamcrest-library</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-all</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <!-- 
-    Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
-    -->
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-    </dependency>
-    <!-- 
-    Java Concurrency in Practice annotations
-    -->
-	<dependency>
-	  <groupId>net.jcip</groupId>
-	  <artifactId>jcip-annotations</artifactId>
-	</dependency>
-    <!-- 
-      Java Content Repository API and Apache Jackrabbit for the JCR unit test infrastructure
-    -->
-    <dependency>
-      <groupId>javax.jcr</groupId>
-      <artifactId>jcr</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.jackrabbit</groupId>
-      <artifactId>jackrabbit-api</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.jackrabbit</groupId>
-      <artifactId>jackrabbit-core</artifactId>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-  <reporting>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-report-plugin</artifactId>
-      </plugin>
-    </plugins>
-  </reporting>
-</project>
\ No newline at end of file

Copied: tags/dna-0.2/dna-common/pom.xml (from rev 554, trunk/dna-common/pom.xml)
===================================================================
--- tags/dna-0.2/dna-common/pom.xml	                        (rev 0)
+++ tags/dna-0.2/dna-common/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,84 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.jboss.dna</groupId>
+    <artifactId>dna</artifactId>
+    <version>0.2</version>
+  </parent>
+  <!-- The groupId and version values are inherited from parent -->
+  <artifactId>dna-common</artifactId>
+  <packaging>jar</packaging>
+  <name>JBoss DNA Common</name>
+  <description>JBoss DNA Common Library and Utilities</description>
+  <url>http://labs.jboss.org/dna</url>
+  <!--
+  Define the dependencies.  Note that all version and scopes default to those 
+  defined in the dependencyManagement section of the parent pom.
+  -->
+  <dependencies>
+    <!-- 
+    Testing (note the scope)
+    -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.hamcrest</groupId>
+      <artifactId>hamcrest-library</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-all</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <!-- 
+    Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
+    -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-log4j12</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+    </dependency>
+    <!-- 
+    Java Concurrency in Practice annotations
+    -->
+	<dependency>
+	  <groupId>net.jcip</groupId>
+	  <artifactId>jcip-annotations</artifactId>
+	</dependency>
+    <!-- 
+      Java Content Repository API and Apache Jackrabbit for the JCR unit test infrastructure
+    -->
+    <dependency>
+      <groupId>javax.jcr</groupId>
+      <artifactId>jcr</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jackrabbit</groupId>
+      <artifactId>jackrabbit-api</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jackrabbit</groupId>
+      <artifactId>jackrabbit-core</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-report-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </reporting>
+</project>
\ No newline at end of file

Deleted: tags/dna-0.2/dna-graph/pom.xml
===================================================================
--- trunk/dna-graph/pom.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/dna-graph/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,73 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.jboss.dna</groupId>
-    <artifactId>dna</artifactId>
-    <version>0.2-SNAPSHOT</version>
-  </parent>
-  <!-- The groupId and version values are inherited from parent -->
-  <artifactId>dna-graph</artifactId>
-  <description>The JBoss DNA Graph API and SPI interfaces</description>
-  <packaging>jar</packaging>
-  <name>JBoss DNA Graph</name>
-  <url>http://labs.jboss.org/dna</url>
-  
-  <!--
-  Define the dependencies.  Note that all version and scopes default to those 
-  defined in the dependencyManagement section of the parent pom.
-  -->
-  <dependencies>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-common</artifactId>
-      <version>${pom.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>joda-time</groupId>
-      <artifactId>joda-time</artifactId>
-    </dependency>
-    <!-- 
-    Testing (note the scope)
-    -->
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-all</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <!-- 
-    Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
-    -->
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <!-- 
-    Java Concurrency in Practice annotations
-    -->
-    <dependency>
-      <groupId>net.jcip</groupId>
-      <artifactId>jcip-annotations</artifactId>
-    </dependency>
-  </dependencies>
-</project>
\ No newline at end of file

Copied: tags/dna-0.2/dna-graph/pom.xml (from rev 554, trunk/dna-graph/pom.xml)
===================================================================
--- tags/dna-0.2/dna-graph/pom.xml	                        (rev 0)
+++ tags/dna-0.2/dna-graph/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,73 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.jboss.dna</groupId>
+    <artifactId>dna</artifactId>
+    <version>0.2</version>
+  </parent>
+  <!-- The groupId and version values are inherited from parent -->
+  <artifactId>dna-graph</artifactId>
+  <description>The JBoss DNA Graph API and SPI interfaces</description>
+  <packaging>jar</packaging>
+  <name>JBoss DNA Graph</name>
+  <url>http://labs.jboss.org/dna</url>
+  
+  <!--
+  Define the dependencies.  Note that all version and scopes default to those 
+  defined in the dependencyManagement section of the parent pom.
+  -->
+  <dependencies>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-common</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-common</artifactId>
+      <version>${pom.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>joda-time</groupId>
+      <artifactId>joda-time</artifactId>
+    </dependency>
+    <!-- 
+    Testing (note the scope)
+    -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-all</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <!-- 
+    Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
+    -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-log4j12</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <!-- 
+    Java Concurrency in Practice annotations
+    -->
+    <dependency>
+      <groupId>net.jcip</groupId>
+      <artifactId>jcip-annotations</artifactId>
+    </dependency>
+  </dependencies>
+</project>
\ No newline at end of file

Deleted: tags/dna-0.2/dna-integration-tests/pom.xml
===================================================================
--- trunk/dna-integration-tests/pom.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/dna-integration-tests/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,118 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.jboss.dna</groupId>
-    <artifactId>dna</artifactId>
-    <version>0.2-SNAPSHOT</version>
-  </parent>
-  <!-- The groupId and version values are inherited from parent -->
-  <artifactId>dna-integration-tests</artifactId>
-  <packaging>jar</packaging>
-  <version>0.2-SNAPSHOT</version>
-  <name>JBoss DNA Integration Tests</name>
-  <url>http://labs.jboss.org/dna</url>
-  
-  <!--
-  Define the dependencies.  Note that all version and scopes default to those 
-  defined in the dependencyManagement section of the parent pom.
-  -->
-  <dependencies>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-classloader-maven</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-repository</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-common</artifactId>
-      <version>${pom.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <!-- 
-      Testing (note the scope)
-    -->
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-all</artifactId>
-    </dependency>
-    <!-- 
-      Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
-    -->
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-    </dependency>
-    <!-- 
-      Java Content Repository API 
-    -->
-    <dependency>
-      <groupId>javax.jcr</groupId>
-      <artifactId>jcr</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <!-- 
-      Apache Jackrabbit (JCR Implementation)
-    -->
-    <dependency>
-      <groupId>org.apache.jackrabbit</groupId>
-      <artifactId>jackrabbit-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.jackrabbit</groupId>
-      <artifactId>jackrabbit-core</artifactId>
-    </dependency>
-    <!-- 
-      Databases and JDBC Drivers
-    -->
-    <dependency>
-      <groupId>org.apache.derby</groupId>
-      <artifactId>derby</artifactId>
-    </dependency>
-  </dependencies>
-  <!--
-	Build configuration - run integration tests only in 'integration' phase
-  -->
-  <build>
-	<plugins>
-		<plugin>
-			<artifactId>maven-surefire-plugin</artifactId>
-			<configuration>
-				<skip>true</skip>
-			</configuration>
-            <executions>
-               <execution>
-                  <id>integration-test</id>
-                  <phase>integration-test</phase>
-                  <goals>
-                     <goal>test</goal>
-                  </goals>
-                  <configuration>
-					<skip>false</skip>
-                  </configuration>
-               </execution>
-            </executions>
-		</plugin>
-	</plugins>
-  </build>
-</project>
\ No newline at end of file

Copied: tags/dna-0.2/dna-integration-tests/pom.xml (from rev 554, trunk/dna-integration-tests/pom.xml)
===================================================================
--- tags/dna-0.2/dna-integration-tests/pom.xml	                        (rev 0)
+++ tags/dna-0.2/dna-integration-tests/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,118 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.jboss.dna</groupId>
+    <artifactId>dna</artifactId>
+    <version>0.2</version>
+  </parent>
+  <!-- The groupId and version values are inherited from parent -->
+  <artifactId>dna-integration-tests</artifactId>
+  <packaging>jar</packaging>
+  <version>0.2</version>
+  <name>JBoss DNA Integration Tests</name>
+  <url>http://labs.jboss.org/dna</url>
+  
+  <!--
+  Define the dependencies.  Note that all version and scopes default to those 
+  defined in the dependencyManagement section of the parent pom.
+  -->
+  <dependencies>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-common</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-classloader-maven</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-repository</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-common</artifactId>
+      <version>${pom.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <!-- 
+      Testing (note the scope)
+    -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-all</artifactId>
+    </dependency>
+    <!-- 
+      Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
+    -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-log4j12</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+    </dependency>
+    <!-- 
+      Java Content Repository API 
+    -->
+    <dependency>
+      <groupId>javax.jcr</groupId>
+      <artifactId>jcr</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <!-- 
+      Apache Jackrabbit (JCR Implementation)
+    -->
+    <dependency>
+      <groupId>org.apache.jackrabbit</groupId>
+      <artifactId>jackrabbit-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jackrabbit</groupId>
+      <artifactId>jackrabbit-core</artifactId>
+    </dependency>
+    <!-- 
+      Databases and JDBC Drivers
+    -->
+    <dependency>
+      <groupId>org.apache.derby</groupId>
+      <artifactId>derby</artifactId>
+    </dependency>
+  </dependencies>
+  <!--
+	Build configuration - run integration tests only in 'integration' phase
+  -->
+  <build>
+	<plugins>
+		<plugin>
+			<artifactId>maven-surefire-plugin</artifactId>
+			<configuration>
+				<skip>true</skip>
+			</configuration>
+            <executions>
+               <execution>
+                  <id>integration-test</id>
+                  <phase>integration-test</phase>
+                  <goals>
+                     <goal>test</goal>
+                  </goals>
+                  <configuration>
+					<skip>false</skip>
+                  </configuration>
+               </execution>
+            </executions>
+		</plugin>
+	</plugins>
+  </build>
+</project>
\ No newline at end of file

Deleted: tags/dna-0.2/dna-jcr/pom.xml
===================================================================
--- trunk/dna-jcr/pom.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/dna-jcr/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,106 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.jboss.dna</groupId>
-    <artifactId>dna</artifactId>
-    <version>0.2</version>
-  </parent>
-  <!-- The groupId and version values are inherited from parent -->
-  <artifactId>dna-jcr</artifactId>
-  <packaging>jar</packaging>
-  <name>JBoss DNA JCR implementation</name>
-  <description>JBoss DNA implementation of the JCR API</description>
-  <url>http://labs.jboss.org/dna</url>
-  
-  <!--
-  Define the dependencies.  Note that all version and scopes default to those 
-  defined in the dependencyManagement section of the parent pom.
-  -->
-  <dependencies>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-common</artifactId>
-      <version>${pom.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-graph</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-graph</artifactId>
-      <version>${pom.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-repository</artifactId>
-    </dependency>
-    <!-- 
-    Testing (note the scope)
-    -->
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.hamcrest</groupId>
-      <artifactId>hamcrest-library</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-all</artifactId>
-    </dependency>
-    <!-- 
-    Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
-    -->
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <!-- 
-    Java Concurrency in Practice annotations
-    -->
-  <dependency>
-    <groupId>net.jcip</groupId>
-    <artifactId>jcip-annotations</artifactId>
-  </dependency>
-    <!-- 
-      Java Content Repository API 
-    -->
-    <dependency>
-      <groupId>javax.jcr</groupId>
-      <artifactId>jcr</artifactId>
-    </dependency>
-    <!-- 
-      Apache JCR API unit tests (for any JCR implementation), which is a subset of the official TCK
-    -->
-    <dependency>
-      <groupId>org.apache.jackrabbit</groupId>
-      <artifactId>jackrabbit-jcr-tests</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.google.code.google-collections</groupId>
-      <artifactId>google-collect</artifactId>
-      <version>snapshot-20080530</version>
-    </dependency>
-  </dependencies>
-</project>
\ No newline at end of file

Copied: tags/dna-0.2/dna-jcr/pom.xml (from rev 554, trunk/dna-jcr/pom.xml)
===================================================================
--- tags/dna-0.2/dna-jcr/pom.xml	                        (rev 0)
+++ tags/dna-0.2/dna-jcr/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.jboss.dna</groupId>
+    <artifactId>dna</artifactId>
+    <version>0.2</version>
+  </parent>
+  <!-- The groupId and version values are inherited from parent -->
+  <artifactId>dna-jcr</artifactId>
+  <packaging>jar</packaging>
+  <name>JBoss DNA JCR implementation</name>
+  <description>JBoss DNA implementation of the JCR API</description>
+  <url>http://labs.jboss.org/dna</url>
+  
+  <!--
+  Define the dependencies.  Note that all version and scopes default to those 
+  defined in the dependencyManagement section of the parent pom.
+  -->
+  <dependencies>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-common</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-common</artifactId>
+      <version>${pom.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-graph</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-graph</artifactId>
+      <version>${pom.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-repository</artifactId>
+    </dependency>
+    <!-- 
+    Testing (note the scope)
+    -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.hamcrest</groupId>
+      <artifactId>hamcrest-library</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-all</artifactId>
+    </dependency>
+    <!-- 
+    Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
+    -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-log4j12</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <!-- 
+    Java Concurrency in Practice annotations
+    -->
+  <dependency>
+    <groupId>net.jcip</groupId>
+    <artifactId>jcip-annotations</artifactId>
+  </dependency>
+    <!-- 
+      Java Content Repository API 
+    -->
+    <dependency>
+      <groupId>javax.jcr</groupId>
+      <artifactId>jcr</artifactId>
+    </dependency>
+    <!-- 
+      Apache JCR API unit tests (for any JCR implementation), which is a subset of the official TCK
+    -->
+    <dependency>
+      <groupId>org.apache.jackrabbit</groupId>
+      <artifactId>jackrabbit-jcr-tests</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.google.code.google-collections</groupId>
+      <artifactId>google-collect</artifactId>
+      <version>snapshot-20080530</version>
+    </dependency>
+  </dependencies>
+</project>
\ No newline at end of file

Deleted: tags/dna-0.2/dna-repository/pom.xml
===================================================================
--- trunk/dna-repository/pom.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/dna-repository/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,126 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.jboss.dna</groupId>
-    <artifactId>dna</artifactId>
-    <version>0.2</version>
-  </parent>
-  <!-- The groupId and version values are inherited from parent -->
-  <artifactId>dna-repository</artifactId>
-  <packaging>jar</packaging>
-  <name>JBoss DNA Repository</name>
-  <description>JBoss DNA Repository library</description>
-  <url>http://labs.jboss.org/dna</url>
-  
-  <!--
-  Define the dependencies.  Note that all version and scopes default to those 
-  defined in the dependencyManagement section of the parent pom.
-  -->
-  <dependencies>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-common</artifactId>
-      <version>${pom.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-graph</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-graph</artifactId>
-      <version>${pom.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-connector-federation</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-connector-federation</artifactId>
-      <version>${pom.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <!-- 
-    Rules
-    -->
-    <dependency>
-      <groupId>jsr94</groupId>
-      <artifactId>jsr94</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.drools</groupId>
-      <artifactId>drools-jsr94</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.drools</groupId>
-      <artifactId>drools-compiler</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <!-- 
-    Testing (note the scope)
-    -->
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-all</artifactId>
-    </dependency>
-    <!-- 
-    Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
-    -->
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <!-- 
-    Java Concurrency in Practice annotations
-    -->
-	<dependency>
-	  <groupId>net.jcip</groupId>
-	  <artifactId>jcip-annotations</artifactId>
-	</dependency>
-    <!-- 
-      Java Content Repository API 
-    -->
-    <dependency>
-      <groupId>javax.jcr</groupId>
-      <artifactId>jcr</artifactId>
-    </dependency>
-    <!-- 
-      Apache Jackrabbit (JCR Implementation) for testing purposes
-    -->
-    <dependency>
-      <groupId>org.apache.jackrabbit</groupId>
-      <artifactId>jackrabbit-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.jackrabbit</groupId>
-      <artifactId>jackrabbit-core</artifactId>
-    </dependency>
-  </dependencies>
-</project>
\ No newline at end of file

Copied: tags/dna-0.2/dna-repository/pom.xml (from rev 554, trunk/dna-repository/pom.xml)
===================================================================
--- tags/dna-0.2/dna-repository/pom.xml	                        (rev 0)
+++ tags/dna-0.2/dna-repository/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,125 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.jboss.dna</groupId>
+    <artifactId>dna</artifactId>
+    <version>0.2</version>
+  </parent>
+  <!-- The groupId and version values are inherited from parent -->
+  <artifactId>dna-repository</artifactId>
+  <packaging>jar</packaging>
+  <name>JBoss DNA Repository</name>
+  <description>JBoss DNA Repository library</description>
+  <url>http://labs.jboss.org/dna</url>
+  
+  <!--
+  Define the dependencies.  Note that all version and scopes default to those 
+  defined in the dependencyManagement section of the parent pom.
+  -->
+  <dependencies>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-common</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-common</artifactId>
+      <version>${pom.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-graph</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-graph</artifactId>
+      <version>${pom.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-connector-federation</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-connector-federation</artifactId>
+      <version>${pom.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <!-- 
+    Rules
+    -->
+    <dependency>
+      <groupId>jsr94</groupId>
+      <artifactId>jsr94</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.drools</groupId>
+      <artifactId>drools-jsr94</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.drools</groupId>
+      <artifactId>drools-compiler</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <!-- 
+    Testing (note the scope)
+    -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-all</artifactId>
+    </dependency>
+    <!-- 
+    Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
+    -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-log4j12</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <!-- 
+    Java Concurrency in Practice annotations
+    -->
+	<dependency>
+	  <groupId>net.jcip</groupId>
+	  <artifactId>jcip-annotations</artifactId>
+	</dependency>
+    <!-- 
+      Java Content Repository API 
+    -->
+    <dependency>
+      <groupId>javax.jcr</groupId>
+      <artifactId>jcr</artifactId>
+    </dependency>
+    <!-- 
+      Apache Jackrabbit (JCR Implementation) for testing purposes
+    -->
+    <dependency>
+      <groupId>org.apache.jackrabbit</groupId>
+      <artifactId>jackrabbit-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jackrabbit</groupId>
+      <artifactId>jackrabbit-core</artifactId>
+    </dependency>
+  </dependencies>
+</project>
\ No newline at end of file

Deleted: tags/dna-0.2/docs/examples/gettingstarted/pom.xml
===================================================================
--- trunk/docs/examples/gettingstarted/pom.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/docs/examples/gettingstarted/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,161 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.jboss.dna.examples</groupId>
-  <artifactId>getting_started</artifactId>
-  <packaging>pom</packaging>
-  <version>0.2</version>
-  <name>JBoss DNA Getting Started examples</name>
-  <description />
-
-  <modules>
-    <module>sequencers</module>
-    <module>repositories</module>
-  </modules>
-
-  <dependencyManagement>
-    <dependencies>
-      <dependency>
-        <groupId>org.jboss.dna</groupId>
-        <artifactId>dna-common</artifactId>
-        <version>${pom.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.jboss.dna</groupId>
-        <artifactId>dna-graph</artifactId>
-        <version>${pom.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.jboss.dna</groupId>
-        <artifactId>dna-repository</artifactId>
-        <version>${pom.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.jboss.dna</groupId>
-        <artifactId>dna-jcr</artifactId>
-        <version>${pom.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.jboss.dna</groupId>
-        <artifactId>dna-maven-classloader</artifactId>
-        <version>${pom.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.jboss.dna</groupId>
-        <artifactId>dna-sequencer-images</artifactId>
-        <version>${pom.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.jboss.dna</groupId>
-        <artifactId>dna-sequencer-java</artifactId>
-        <version>${pom.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.jboss.dna</groupId>
-        <artifactId>dna-connector-inmemory</artifactId>
-        <version>${pom.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.jboss.dna</groupId>
-        <artifactId>dna-connector-jbosscache</artifactId>
-        <version>${pom.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.jboss.dna</groupId>
-        <artifactId>dna-connector-federation</artifactId>
-        <version>${pom.version}</version>
-        <scope>runtime</scope>
-      </dependency>
-      <!-- Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) -->
-      <dependency>
-		<groupId>org.slf4j</groupId>
-		<artifactId>slf4j-api</artifactId>
-		<version>1.4.3</version>
-      </dependency>
-      <dependency>
-		<groupId>org.slf4j</groupId>
-		<artifactId>slf4j-log4j12</artifactId>
-		<version>1.4.3</version>
-      </dependency>
-	   <dependency>
-		<groupId>log4j</groupId>
-		<artifactId>log4j</artifactId>
-		<version>1.2.14</version>
-      </dependency>
-      <!-- Java Content Repository API -->
-      <dependency>
-        <groupId>javax.jcr</groupId>
-        <artifactId>jcr</artifactId>
-        <version>1.0.1</version>
-        <scope>compile</scope>
-      </dependency>
-      <!-- Apache Jackrabbit (JCR Implementation) -->
-      <dependency>
-        <groupId>org.apache.jackrabbit</groupId>
-        <artifactId>jackrabbit-api</artifactId>
-        <version>1.3.3</version>
-        <scope>compile</scope>
-        <!-- Exclude these since they are included in JDK 1.5 -->
-        <exclusions>
-          <exclusion>
-            <groupId>xml-apis</groupId>
-            <artifactId>xml-apis</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>xerces</groupId>
-            <artifactId>xercesImpl</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.jackrabbit</groupId>
-        <artifactId>jackrabbit-core</artifactId>
-        <version>1.3.3</version>
-        <scope>compile</scope>
-        <!-- Exclude these since they are included in JDK 1.5 -->
-        <exclusions>
-          <exclusion>
-            <groupId>xml-apis</groupId>
-            <artifactId>xml-apis</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>xerces</groupId>
-            <artifactId>xercesImpl</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <!-- Testing (note the scope) -->
-      <dependency>
-        <groupId>junit</groupId>
-        <artifactId>junit</artifactId>
-        <version>4.4</version>
-        <scope>test</scope>
-      </dependency>
-			<dependency>
-				<groupId>org.mockito</groupId>
-				<artifactId>mockito-all</artifactId>
-				<version>1.5</version>
-				<scope>test</scope>
-			</dependency>
-    </dependencies>
-  </dependencyManagement>
-
-  <build>
-    <plugins> 
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>2.0.2</version>
-        <configuration>
-          <source>1.5</source>
-          <target>1.5</target>
-          <debug>true</debug>
-          <showDeprecation>true</showDeprecation>
-          <showWarnings>true</showWarnings>
-          <optimize>true</optimize>
-        </configuration>
-      </plugin>  
-    </plugins>
-  </build>
-
-</project>
\ No newline at end of file

Copied: tags/dna-0.2/docs/examples/gettingstarted/pom.xml (from rev 554, trunk/docs/examples/gettingstarted/pom.xml)
===================================================================
--- tags/dna-0.2/docs/examples/gettingstarted/pom.xml	                        (rev 0)
+++ tags/dna-0.2/docs/examples/gettingstarted/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,161 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.jboss.dna.examples</groupId>
+  <artifactId>getting_started</artifactId>
+  <packaging>pom</packaging>
+  <version>0.2</version>
+  <name>JBoss DNA Getting Started examples</name>
+  <description />
+
+  <modules>
+    <module>sequencers</module>
+    <module>repositories</module>
+  </modules>
+
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>org.jboss.dna</groupId>
+        <artifactId>dna-common</artifactId>
+        <version>${pom.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jboss.dna</groupId>
+        <artifactId>dna-graph</artifactId>
+        <version>${pom.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jboss.dna</groupId>
+        <artifactId>dna-repository</artifactId>
+        <version>${pom.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jboss.dna</groupId>
+        <artifactId>dna-jcr</artifactId>
+        <version>${pom.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jboss.dna</groupId>
+        <artifactId>dna-maven-classloader</artifactId>
+        <version>${pom.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jboss.dna</groupId>
+        <artifactId>dna-sequencer-images</artifactId>
+        <version>${pom.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jboss.dna</groupId>
+        <artifactId>dna-sequencer-java</artifactId>
+        <version>${pom.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jboss.dna</groupId>
+        <artifactId>dna-connector-inmemory</artifactId>
+        <version>${pom.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jboss.dna</groupId>
+        <artifactId>dna-connector-jbosscache</artifactId>
+        <version>${pom.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.jboss.dna</groupId>
+        <artifactId>dna-connector-federation</artifactId>
+        <version>${pom.version}</version>
+        <scope>runtime</scope>
+      </dependency>
+      <!-- Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) -->
+      <dependency>
+		<groupId>org.slf4j</groupId>
+		<artifactId>slf4j-api</artifactId>
+		<version>1.4.3</version>
+      </dependency>
+      <dependency>
+		<groupId>org.slf4j</groupId>
+		<artifactId>slf4j-log4j12</artifactId>
+		<version>1.4.3</version>
+      </dependency>
+	   <dependency>
+		<groupId>log4j</groupId>
+		<artifactId>log4j</artifactId>
+		<version>1.2.14</version>
+      </dependency>
+      <!-- Java Content Repository API -->
+      <dependency>
+        <groupId>javax.jcr</groupId>
+        <artifactId>jcr</artifactId>
+        <version>1.0.1</version>
+        <scope>compile</scope>
+      </dependency>
+      <!-- Apache Jackrabbit (JCR Implementation) -->
+      <dependency>
+        <groupId>org.apache.jackrabbit</groupId>
+        <artifactId>jackrabbit-api</artifactId>
+        <version>1.3.3</version>
+        <scope>compile</scope>
+        <!-- Exclude these since they are included in JDK 1.5 -->
+        <exclusions>
+          <exclusion>
+            <groupId>xml-apis</groupId>
+            <artifactId>xml-apis</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>xerces</groupId>
+            <artifactId>xercesImpl</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.jackrabbit</groupId>
+        <artifactId>jackrabbit-core</artifactId>
+        <version>1.3.3</version>
+        <scope>compile</scope>
+        <!-- Exclude these since they are included in JDK 1.5 -->
+        <exclusions>
+          <exclusion>
+            <groupId>xml-apis</groupId>
+            <artifactId>xml-apis</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>xerces</groupId>
+            <artifactId>xercesImpl</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <!-- Testing (note the scope) -->
+      <dependency>
+        <groupId>junit</groupId>
+        <artifactId>junit</artifactId>
+        <version>4.4</version>
+        <scope>test</scope>
+      </dependency>
+			<dependency>
+				<groupId>org.mockito</groupId>
+				<artifactId>mockito-all</artifactId>
+				<version>1.5</version>
+				<scope>test</scope>
+			</dependency>
+    </dependencies>
+  </dependencyManagement>
+
+  <build>
+    <plugins> 
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>2.0.2</version>
+        <configuration>
+          <source>1.5</source>
+          <target>1.5</target>
+          <debug>true</debug>
+          <showDeprecation>true</showDeprecation>
+          <showWarnings>true</showWarnings>
+          <optimize>true</optimize>
+        </configuration>
+      </plugin>  
+    </plugins>
+  </build>
+
+</project>
\ No newline at end of file

Deleted: tags/dna-0.2/docs/examples/gettingstarted/repositories/pom.xml
===================================================================
--- trunk/docs/examples/gettingstarted/repositories/pom.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/docs/examples/gettingstarted/repositories/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,114 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-  <parent>
-    <groupId>org.jboss.dna.examples</groupId>
-    <artifactId>getting_started</artifactId>
-    <version>0.2</version>
-    <relativePath>..</relativePath>
-  </parent>
-
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.jboss.dna.examples</groupId>
-  <artifactId>dna-example-repositories</artifactId>
-  <version>0.2</version>
-  <packaging>jar</packaging>
-  <name>JBoss DNA Repositories Examples</name>
-  <description>Examples that showcase how to use DNA repositories.</description>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-repository</artifactId>
-      <version>${pom.version}</version>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-jcr</artifactId>
-      <version>${pom.version}</version>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-common</artifactId>
-      <version>${pom.version}</version>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-connector-inmemory</artifactId>
-      <version>${pom.version}</version>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-connector-jbosscache</artifactId>
-      <version>${pom.version}</version>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-connector-federation</artifactId>
-      <version>${pom.version}</version>
-      <scope>runtime</scope>
-    </dependency>
-    <!-- 
-    Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
-    -->
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-    </dependency>
-    <!-- 
-      Java Content Repository API 
-    -->
-    <dependency>
-      <groupId>javax.jcr</groupId>
-      <artifactId>jcr</artifactId>
-    </dependency>
-    <!-- 
-      Test cases use JUnit
-    -->
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-all</artifactId>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <plugins>
-      <plugin>
-        <artifactId>maven-assembly-plugin</artifactId>
-        <configuration>
-          <descriptors>
-            <descriptor>src/main/assembly/basic.xml</descriptor>
-          </descriptors>
-          <finalName>${pom.artifactId}</finalName>
-        </configuration>
-        <executions>
-          <execution>
-            <phase>package</phase>
-            <goals>
-              <goal>directory-inline</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-
-</project>
\ No newline at end of file

Copied: tags/dna-0.2/docs/examples/gettingstarted/repositories/pom.xml (from rev 554, trunk/docs/examples/gettingstarted/repositories/pom.xml)
===================================================================
--- tags/dna-0.2/docs/examples/gettingstarted/repositories/pom.xml	                        (rev 0)
+++ tags/dna-0.2/docs/examples/gettingstarted/repositories/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,114 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+  <parent>
+    <groupId>org.jboss.dna.examples</groupId>
+    <artifactId>getting_started</artifactId>
+    <version>0.2</version>
+    <relativePath>..</relativePath>
+  </parent>
+
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.jboss.dna.examples</groupId>
+  <artifactId>dna-example-repositories</artifactId>
+  <version>0.2</version>
+  <packaging>jar</packaging>
+  <name>JBoss DNA Repositories Examples</name>
+  <description>Examples that showcase how to use DNA repositories.</description>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-repository</artifactId>
+      <version>${pom.version}</version>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-jcr</artifactId>
+      <version>${pom.version}</version>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-common</artifactId>
+      <version>${pom.version}</version>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-connector-inmemory</artifactId>
+      <version>${pom.version}</version>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-connector-jbosscache</artifactId>
+      <version>${pom.version}</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-connector-federation</artifactId>
+      <version>${pom.version}</version>
+      <scope>runtime</scope>
+    </dependency>
+    <!-- 
+    Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
+    -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-log4j12</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+    </dependency>
+    <!-- 
+      Java Content Repository API 
+    -->
+    <dependency>
+      <groupId>javax.jcr</groupId>
+      <artifactId>jcr</artifactId>
+    </dependency>
+    <!-- 
+      Test cases use JUnit
+    -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-all</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <configuration>
+          <descriptors>
+            <descriptor>src/main/assembly/basic.xml</descriptor>
+          </descriptors>
+          <finalName>${pom.artifactId}</finalName>
+        </configuration>
+        <executions>
+          <execution>
+            <phase>package</phase>
+            <goals>
+              <goal>directory-inline</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+
+</project>
\ No newline at end of file

Deleted: tags/dna-0.2/docs/examples/gettingstarted/sequencers/pom.xml
===================================================================
--- trunk/docs/examples/gettingstarted/sequencers/pom.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/docs/examples/gettingstarted/sequencers/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,114 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
-  <parent>
-    <groupId>org.jboss.dna.examples</groupId>
-    <artifactId>getting_started</artifactId>
-    <version>0.2</version>
-    <relativePath>..</relativePath>
-  </parent>
-
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.jboss.dna.examples</groupId>
-  <artifactId>dna-example-sequencers</artifactId>
-  <version>0.2</version>
-  <packaging>jar</packaging>
-  <name>JBoss DNA Sequencer Examples</name>
-  <description>Examples that showcase how to use sequencers with a JCR repository.</description>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-repository</artifactId>
-      <version>${pom.version}</version>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-common</artifactId>
-      <version>${pom.version}</version>
-      <scope>compile</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-sequencer-images</artifactId>
-      <version>${pom.version}</version>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-sequencer-mp3</artifactId>
-      <version>${pom.version}</version>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-sequencer-java</artifactId>
-      <version>${pom.version}</version>
-      <scope>runtime</scope>
-    </dependency>
-    <!-- 
-    Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
-    -->
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-    </dependency>
-    <!-- 
-      Java Content Repository API 
-    -->
-    <dependency>
-      <groupId>javax.jcr</groupId>
-      <artifactId>jcr</artifactId>
-    </dependency>
-    <!-- 
-      Apache Jackrabbit (JCR Implementation) for repository implementation
-    -->
-    <dependency>
-      <groupId>org.apache.jackrabbit</groupId>
-      <artifactId>jackrabbit-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.jackrabbit</groupId>
-      <artifactId>jackrabbit-core</artifactId>
-    </dependency>
-    <!-- 
-      Test cases use JUnit
-    -->
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <plugins>
-      <plugin>
-        <artifactId>maven-assembly-plugin</artifactId>
-        <configuration>
-          <descriptors>
-            <descriptor>src/main/assembly/basic.xml</descriptor>
-          </descriptors>
-          <finalName>${pom.artifactId}</finalName>
-        </configuration>
-        <executions>
-          <execution>
-            <phase>package</phase>
-            <goals>
-              <goal>directory-inline</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-
-</project>
\ No newline at end of file

Copied: tags/dna-0.2/docs/examples/gettingstarted/sequencers/pom.xml (from rev 554, trunk/docs/examples/gettingstarted/sequencers/pom.xml)
===================================================================
--- tags/dna-0.2/docs/examples/gettingstarted/sequencers/pom.xml	                        (rev 0)
+++ tags/dna-0.2/docs/examples/gettingstarted/sequencers/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,114 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+  <parent>
+    <groupId>org.jboss.dna.examples</groupId>
+    <artifactId>getting_started</artifactId>
+    <version>0.2</version>
+    <relativePath>..</relativePath>
+  </parent>
+
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.jboss.dna.examples</groupId>
+  <artifactId>dna-example-sequencers</artifactId>
+  <version>0.2</version>
+  <packaging>jar</packaging>
+  <name>JBoss DNA Sequencer Examples</name>
+  <description>Examples that showcase how to use sequencers with a JCR repository.</description>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-repository</artifactId>
+      <version>${pom.version}</version>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-common</artifactId>
+      <version>${pom.version}</version>
+      <scope>compile</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-sequencer-images</artifactId>
+      <version>${pom.version}</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-sequencer-mp3</artifactId>
+      <version>${pom.version}</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-sequencer-java</artifactId>
+      <version>${pom.version}</version>
+      <scope>runtime</scope>
+    </dependency>
+    <!-- 
+    Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
+    -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-log4j12</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+    </dependency>
+    <!-- 
+      Java Content Repository API 
+    -->
+    <dependency>
+      <groupId>javax.jcr</groupId>
+      <artifactId>jcr</artifactId>
+    </dependency>
+    <!-- 
+      Apache Jackrabbit (JCR Implementation) for repository implementation
+    -->
+    <dependency>
+      <groupId>org.apache.jackrabbit</groupId>
+      <artifactId>jackrabbit-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jackrabbit</groupId>
+      <artifactId>jackrabbit-core</artifactId>
+    </dependency>
+    <!-- 
+      Test cases use JUnit
+    -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <configuration>
+          <descriptors>
+            <descriptor>src/main/assembly/basic.xml</descriptor>
+          </descriptors>
+          <finalName>${pom.artifactId}</finalName>
+        </configuration>
+        <executions>
+          <execution>
+            <phase>package</phase>
+            <goals>
+              <goal>directory-inline</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+
+</project>
\ No newline at end of file

Deleted: tags/dna-0.2/docs/gettingstarted/pom.xml
===================================================================
--- trunk/docs/gettingstarted/pom.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/docs/gettingstarted/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,75 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <!--
-    parent> <groupId>org.jboss</groupId> <artifactId>documentation</artifactId> <version>1.0</version> </parent
-  -->
-  <groupId>org.jboss.dna</groupId>
-  <artifactId>getting-started-en</artifactId>
-  <version>0.2-SNAPSHOT</version>
-  <packaging>jdocbook</packaging>
-  <name>JBoss DNA Getting Started manual</name>
-  <description>The JBoss DNA Getting Started manual</description>
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.jboss.maven.plugins</groupId>
-        <artifactId>maven-jdocbook-plugin</artifactId>
-        <version>2.1.2</version>
-        <extensions>true</extensions>
-        <dependencies>
-          <dependency>
-            <groupId>org.jboss</groupId>
-            <artifactId>jbossorg-docbook-xslt</artifactId>
-            <version>1.1.0.Beta1</version>
-          </dependency>
-          <dependency>
-            <groupId>org.jboss</groupId>
-            <artifactId>jbossorg-jdocbook-style</artifactId>
-            <version>1.1.0.Beta1</version>
-            <type>jdocbook-style</type>
-          </dependency>
-        </dependencies>
-        <configuration>
-          <sourceDocumentName>master.xml</sourceDocumentName>
-                    <imageResource>
-                        <directory>${basedir}/src/main/docbook/en-US/images</directory>
-                        <includes>
-                          <include>*.png</include>
-                        </includes>
-                    </imageResource>
-          <!-- cssResource>
-            <directory>${basedir}/src/main/docbook/css</directory>
-          </cssResource-->
-          <targetDirectory>${basedir}/target/docbook/en-US</targetDirectory>
-          <formats>
-            <format>
-              <formatName>html</formatName>
-              <stylesheetResource>classpath:/xslt/org/jboss/xhtml.xsl</stylesheetResource>
-              <finalName>index.html</finalName>
-            </format>
-          <!--
-            <format>
-              <formatName>html_single</formatName>
-              <stylesheetResource>classpath:/xslt/org/jboss/xhtml-single.xsl</stylesheetResource>
-              <finalName>index.html</finalName>
-            </format>
-            <format>
-              <formatName>pdf</formatName>
-              <stylesheetResource>classpath:/xslt/org/jboss/pdf.xsl</stylesheetResource>
-              <finalName>userguide_en.pdf</finalName>
-            </format>
-          -->
-          </formats>
-          <options>
-            <xincludeSupported>true</xincludeSupported>
-            <xmlTransformerType>saxon</xmlTransformerType>
-            <!-- needed for uri-resolvers; can be ommitted if using 'current' uri scheme -->
-            <!--     could also locate the docbook dependency and inspect its version... -->
-            <docbookVersion>1.72.0</docbookVersion>          
-          </options>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-</project>
\ No newline at end of file

Copied: tags/dna-0.2/docs/gettingstarted/pom.xml (from rev 554, trunk/docs/gettingstarted/pom.xml)
===================================================================
--- tags/dna-0.2/docs/gettingstarted/pom.xml	                        (rev 0)
+++ tags/dna-0.2/docs/gettingstarted/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,73 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <!--
+    parent> <groupId>org.jboss</groupId> <artifactId>documentation</artifactId> <version>1.0</version> </parent -->
+  <groupId>org.jboss.dna</groupId>
+  <artifactId>getting-started-en</artifactId>
+  <version>0.2</version>
+  <packaging>jdocbook</packaging>
+  <name>JBoss DNA Getting Started manual</name>
+  <description>The JBoss DNA Getting Started manual</description>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.jboss.maven.plugins</groupId>
+        <artifactId>maven-jdocbook-plugin</artifactId>
+        <version>2.1.2</version>
+        <extensions>true</extensions>
+        <dependencies>
+          <dependency>
+            <groupId>org.jboss</groupId>
+            <artifactId>jbossorg-docbook-xslt</artifactId>
+            <version>1.1.0.Beta1</version>
+          </dependency>
+          <dependency>
+            <groupId>org.jboss</groupId>
+            <artifactId>jbossorg-jdocbook-style</artifactId>
+            <version>1.1.0.Beta1</version>
+            <type>jdocbook-style</type>
+          </dependency>
+        </dependencies>
+        <configuration>
+          <sourceDocumentName>master.xml</sourceDocumentName>
+                    <imageResource>
+                        <directory>${basedir}/src/main/docbook/en-US/images</directory>
+                        <includes>
+                          <include>*.png</include>
+                        </includes>
+                    </imageResource>
+          <!-- cssResource>
+            <directory>${basedir}/src/main/docbook/css</directory>
+          </cssResource-->
+          <targetDirectory>${basedir}/target/docbook/en-US</targetDirectory>
+          <formats>
+            <format>
+              <formatName>html</formatName>
+              <stylesheetResource>classpath:/xslt/org/jboss/xhtml.xsl</stylesheetResource>
+              <finalName>index.html</finalName>
+            </format>
+          <!--
+            <format>
+              <formatName>html_single</formatName>
+              <stylesheetResource>classpath:/xslt/org/jboss/xhtml-single.xsl</stylesheetResource>
+              <finalName>index.html</finalName>
+            </format>
+            <format>
+              <formatName>pdf</formatName>
+              <stylesheetResource>classpath:/xslt/org/jboss/pdf.xsl</stylesheetResource>
+              <finalName>userguide_en.pdf</finalName>
+            </format>
+          -->
+          </formats>
+          <options>
+            <xincludeSupported>true</xincludeSupported>
+            <xmlTransformerType>saxon</xmlTransformerType>
+            <!-- needed for uri-resolvers; can be ommitted if using 'current' uri scheme -->
+            <!--     could also locate the docbook dependency and inspect its version... -->
+            <docbookVersion>1.72.0</docbookVersion>          
+          </options>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
\ No newline at end of file

Deleted: tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/downloading_and_running.xml
===================================================================
--- trunk/docs/gettingstarted/src/main/docbook/en-US/content/downloading_and_running.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/downloading_and_running.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,393 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ JBoss, Home of Professional Open Source.
-  ~
-  ~ Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
-  ~ indicated by the @author tags or express copyright attribution
-  ~ statements applied by the authors.  All third-party contributions are
-  ~ distributed under license by Red Hat Middleware LLC.
-  ~
-  ~ This copyrighted material is made available to anyone wishing to use, modify,
-  ~ copy, or redistribute it subject to the terms and conditions of the GNU
-  ~ Lesser General Public License, as published by the Free Software Foundation.
-  ~
-  ~ This program is distributed in the hope that it will be useful,
-  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-  ~ or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-  ~ for more details.
-  ~
-  ~ You should have received a copy of the GNU Lesser General Public License
-  ~ along with this distribution; if not, write to:
-  ~ Free Software Foundation, Inc.
-  ~ 51 Franklin Street, Fifth Floor
-  ~ Boston, MA  02110-1301  USA
-  -->
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="downloading_and_running">
-	<title>Running the example applications</title>
-	<para>
-    This chapter provides instructions for downloading and running a sample application that demonstrates how JBoss DNA works
-    with a JCR repository to automatically sequence changing content to extract useful information. So read on to get the simple
-    application running, and then in the <link linkend="using_dna">next chapter</link>
-    we'll dive into the source code for the example and show how to use JBoss DNA in your own applications. </para>
-	<para>JBoss DNA uses Maven 2 for its build system, as is this example. Using Maven 2 has several advantages, including
-    the ability to manage dependencies. If a library is needed, Maven automatically finds and downloads that library, plus
-    everything that library needs. This means that it's very easy to build the examples - or even create a maven project that
-    depends on the JBoss DNA JARs.</para>
-	<note>
-		<para>
-      To use Maven with JBoss DNA, you'll need to have <ulink url="http://java.sun.com/javase/downloads/index_jdk5.jsp">JDK 5 or 6</ulink>
-      and Maven 2.0.7 (or higher).</para>
-		<para>
-      Maven can be downloaded from <ulink url="http://maven.apache.org/">http://maven.apache.org/</ulink>, and is installed by unzipping the
-      <code>maven-2.0.7-bin.zip</code> file to a convenient location on your local disk. Simply add <code>$MAVEN_HOME/bin</code>
-      to your path and add the following profile to your <code>~/.m2/settings.xml</code> file:</para>
-		<programlisting role="XML"><![CDATA[
-<settings>
-  <profiles>
-    <profile>
-      <id>jboss.repository</id>
-      <activation>
-        <property>
-          <name>!jboss.repository.off</name>
-        </property>
-      </activation>
-      <repositories>
-        <repository>
-          <id>snapshots.jboss.org</id>
-          <url>http://snapshots.jboss.org/maven2</url>
-          <snapshots>
-            <enabled>true</enabled>
-          </snapshots>
-        </repository>
-        <repository>
-          <id>repository.jboss.org</id>
-          <url>http://repository.jboss.org/maven2</url>
-          <snapshots>
-            <enabled>false</enabled>
-          </snapshots>
-        </repository>
-      </repositories>
-      <pluginRepositories>
-        <pluginRepository>
-          <id>repository.jboss.org</id>
-          <url>http://repository.jboss.org/maven2</url>
-          <snapshots>
-            <enabled>false</enabled>
-          </snapshots>
-        </pluginRepository>
-        <pluginRepository>
-          <id>snapshots.jboss.org</id>
-          <url>http://snapshots.jboss.org/maven2</url>
-          <snapshots>
-            <enabled>true</enabled>
-          </snapshots>
-        </pluginRepository>
-      </pluginRepositories>
-    </profile>
-  </profiles>
-</settings>
-]]></programlisting>
-		<para>This profile informs Maven of the two JBoss repositories (snapshots and releases) that contain 
-        all of the JARs for JBoss DNA and all dependent libraries.</para>
-	</note>
-	<sect1 id="downloading">
-		<title>Downloading and compiling</title>
-		<para>The next step is to <ulink url="http://www.jboss.org/file-access/default/members/dna/downloads/0.1/jboss-dna-0.1-gettingstarted-examples.zip">download</ulink>
-      the example for this Getting Started guide, and extract the contents to a convenient location on your local disk.
-      You'll find the example contains the following files, which are organized according to the standard Maven directory structure:</para>
-		<programlisting><![CDATA[
-examples/pom.xml
-         sequencers/pom.xml
-                   /src/main/assembly
-                            /config
-                            /java
-                            /resources
-                       /test/java
-                            /resources
-         repository/pom.xml
-                   /src/main/assembly
-                            /config
-                            /java
-                            /resources
-                       /test/java
-                            /resources
-]]></programlisting>
-		<para>There are essentially three Maven projects: a <code>sequencers</code> project, a <code>repository</code> project, 
-		  and a parent project.  All of the source for the sequencing example is located in the <code>sequencers</code> subdirectory,
-		  while all of the source for the federation example is located in the <code>repository</code> subdirectory.  And you may have noticed that none
-      of the JBoss DNA libraries are there.  This is where Maven comes in.  The two <code>pom.xml</code> files tell
-      Maven everything it needs to know about what libraries are required and how to build the example.</para>
-		<para>In a terminal, go to the <code>examples</code> directory and run <emphasis role="strong"><code>mvn install</code></emphasis>.  
-      This command downloads all of the JARs necessary to compile and build the example, including the JBoss DNA libraries,
-      the libraries they depend on, and any missing Maven components.  (These are downloaded from the JBoss repositories
-      only once and saved on your machine.  This means that the next time you run Maven, all the libraries will
-      already be available locally, and the build will run much faster.)  The command then continues by compiling the example's source
-      code (and unit tests) and running the unit tests.  The build is successful if you see the following:</para>
-		<programlisting><![CDATA[
-$ mvn install
-...
-[INFO] ------------------------------------------------------------------------
-[INFO] Reactor Summary:
-[INFO] ------------------------------------------------------------------------
-[INFO] Getting Started examples .............................. SUCCESS [2.106s]
-[INFO] Sequencer Examples .................................... SUCCESS [9.768s]
-[INFO] ------------------------------------------------------------------------
-[INFO] ------------------------------------------------------------------------
-[INFO] BUILD SUCCESSFUL
-[INFO] ------------------------------------------------------------------------
-[INFO] Total time: 12 seconds
-[INFO] Finished at: Wed May 07 12:00:06 CDT 2008
-[INFO] Final Memory: 14M/28M
-[INFO] ------------------------------------------------------------------------
-$ ]]></programlisting>
-		<para>If there are errors, check whether you have the correct version of Maven installed and that you've correctly updated
-      your Maven settings as described above.</para>
-		<para>If you've successfully built the examples, there will be a new <code>examples/sequencers/target/</code> directory that contains
-			all of the generated output for the sequencers example, including a <code>dna-example-sequencers-basic.dir/</code> subdirectory 
-			that contains the following:
-			<itemizedlist>
-				<listitem>
-					<para><emphasis role="strong"><code>run.sh</code></emphasis> is the *nix shell script that will run the sequencer example application.</para>
-				</listitem>
-				<listitem>
-					<para><emphasis role="strong"><code>log4j.properties</code></emphasis>
-			        is the Log4J configuration file.
-			      </para>
-				</listitem>
-				<listitem>
-					<para><emphasis role="strong"><code>jackrabbitConfig.xml</code></emphasis>
-			        is the Jackrabbit configuration file, which is set up to use a transient in-memory repository.
-			      </para>
-				</listitem>
-				<listitem>
-					<para><emphasis role="strong"><code>jackrabbitNodeTypes.cnd</code></emphasis>
-			        defines the additional JCR node types used by this example.
-			      </para>
-				</listitem>
-				<listitem>
-					<para><emphasis role="strong"><code>sample1.mp3</code></emphasis>
-			        is a sample MP3 audio file you'll use later to upload into the repository.
-			      </para>
-				</listitem>
-				<listitem>
-					<para><emphasis role="strong"><code>caution.gif</code></emphasis>, <emphasis role="strong"><code>caution.png</code></emphasis>, and <emphasis role="strong"><code>caution.jpg</code></emphasis>
-			        are images that you'll use later and upload into the repository.
-			      </para>
-				</listitem>
-				<listitem>
-					<para><emphasis role="strong"><code>project1</code></emphasis> subdirectory contains some Java source that can be loaded
-					  into the repository.
-				  </para>
-				</listitem>
-				<listitem>
-					<para><emphasis role="strong"><code>lib</code></emphasis> subdirectory contains the JARs for all of the JBoss DNA artifacts 
-					  as well as those for other libraries required by JBoss DNA and the sequencer example.
-			      </para>
-				</listitem>
-			</itemizedlist>
-		</para>
-    <note>
-			<para>JBoss DNA &versionNumber; and the sequencer example uses <ulink url="http://jackrabbit.apache.org/">Apache Jackrabbit</ulink> version 1.4.5.  
-      	This version is stable and used by a number of other projects and applications.  However, you should be able to use any
-      	version of Jackrabbit, as long as that version uses the same JCR API.</para>
-			<para>Just remember, if the version of Jackrabbit you want to use for these examples is not in the Maven repository,
-      	you'll have to either add it or add it locally.  For more information, see the <ulink url="http://maven.apache.org/">Maven documentation</ulink>.
-      </para>
-		</note>
-		<para>Similarly, the <code>examples/repository/target/</code> directory contains all of the generated output for the repository example, including
-			a <code>dna-example-repository-basic.dir/</code> subdirectory that contains the following:
-			<itemizedlist>
-				<listitem>
-					<para><emphasis role="strong"><code>run.sh</code></emphasis> is the *nix shell script that will run the repository example application.</para>
-				</listitem>
-				<listitem>
-					<para><emphasis role="strong"><code>log4j.properties</code></emphasis> is the Log4J configuration file.</para>
-				</listitem>
-				<listitem>
-					<para><emphasis role="strong"><code>aircraft.xml</code></emphasis> is an XML file containing the information that the
-					  example application imports into its "Aircraft" repository.
-					</para>
-				</listitem>
-				<listitem>
-					<para><emphasis role="strong"><code>cars.xml</code></emphasis> is an XML file containing the information that the
-					  example application imports into its "Cars" repository.
-					</para>
-				</listitem>
-				<listitem>
-					<para><emphasis role="strong"><code>configRepository.xml</code></emphasis> is an XML file containing the information that the
-					  example application imports into its "Configuration" repository and which defines how the application sets up access
-					  to the other example repositories.
-					</para>
-				</listitem>
-				<listitem>
-					<para><emphasis role="strong"><code>lib</code></emphasis> subdirectory contains the JARs for all of the JBoss DNA artifacts
-					  as well as those for other libraries required by JBoss DNA and the repository example.
-			      </para>
-				</listitem>
-			</itemizedlist>
-    </para>
-	</sect1>
-	<sect1 id="running_sequencer_example">
-		<title>Running the sequencing example</title>
-		<para>The sequencing example consists of a client application that sets up an in-memory JCR repository and that allows a user to
-      upload files into that repository. The client also sets up the DNA services with two sequencers so that if any of the
-      uploaded files are PNG, JPEG, GIF, BMP or other images, DNA will automatically extract the image's metadata (e.g., image
-      format, physical size, pixel density, etc.) and store that in the repository.  Alternatively, if the uploaded file 
-      is an MP3 audio file, DNA will extract some of the ID3 metadata (e.g., the author, title, album, year and comment)
-      and store that in the repository.</para>
-		<para>
-      To run the client application, go to the <code>examples/sequencers/target/dna-example-sequencers-basic.dir/</code>
-      directory and type <code>./run.sh</code>. You should see the command-line client and its menus in your terminal:
-      <figure id="xample-sequencer-cli-client">
-				<title>Example client</title>
-				<graphic align="center" scale="100" fileref="example-sequencer-client.png"/>
-			</figure>
-      From this menu, you can upload a file into the repository, search for media in the repository, print sequencing statistics,
-      or quit the application.</para>
-		<para>
-      The first step is to upload one of the example images. If you type 'u' and press return, you'll be prompted to supply the
-      path to the file you want to upload. Since the application is running from within the
-      <code>examples/sequencers/target/dna-example-sequencers-basic.dir/</code> directory, you can specify any of the files 
-			in that directory without specifying the path:
-      <figure id="example-sequencer-upload">
-				<title>Uploading an image using the example client</title>
-				<graphic align="center" scale="100" fileref="example-sequencer-upload.png"/>
-			</figure>
-      You can specify any fully-qualified or relative path. The application will notify you if it cannot find the file you
-      specified. The example client configures JBoss DNA to sequence MP3 audio files, Java source files, or image files with one of
-      the following extensions (technically, nodes that have names ending in the following):
-      <code>jpg</code>, <code>jpeg</code>, <code>gif</code>, <code>bmp</code>, <code>pcx</code>, <code>png</code>,
-      <code>iff</code>, <code>ras</code>, <code>pbm</code>, <code>pgm</code>, <code>ppm</code>, and <code>psd</code>.
- 			Files with other extensions in the repository path will be ignored. For your convenience, the example provides several
-      files that will be sequenced (<code>caution.png</code>, <code>caution.jpg</code>, <code>caution.gif</code>, and
-      <code>sample1.mp3</code>) and one image that will not be sequenced (<code>caution.pict</code>). Feel free to try other files.
-    </para>
-		<para>
-      After you have specified the file you want to upload, the example application asks you where in the repository you'd like to
-      place the file. (If you want to use the suggested location, just press <code>return</code>.) The client application
-      uses the JCR API to upload the file to that location in the repository, creating any nodes (of type <code>nt:folder</code>)
-      for any directories that don't exist, and creating a node (of type <code>nt:file</code>) for the file. And, per the JCR specification, 
-			the application creates a <code>jcr:content</code> node (of type <code>nt:resource</code>) under the file node. 
-			The file contents are placed on this <code>jcr:content</code> node in the <code>jcr:data</code> property. For example, if you specify
-      <code>/a/b/caution.png</code>, the following structure will be created in the repository:</para>
-		<programlisting><![CDATA[
-/a   (nt:folder)
-  /b   (nt:folder)
-    /caution.png   (nt:file)
-                /jcr:content    (nt:resource)
-                            @jcr:data = {contents of the file}
-                            @jcr:mimeType = {mime type of the file}
-                            @jcr:lastModified = {now}
-]]></programlisting>
-    <para>Other kinds of files are treated in a similar way.</para>
-		<para>When the client uploads the file using the JCR API, DNA gets notified of the changes, consults the sequencers to see whether
-    	any of them are interested in the new or updated content, and if so runs those sequencers. The image sequencer processes image
-    	files for metadata, and any metadata found is stored under the <code>/images</code> branch of the repository. The MP3 sequencer 
-			processes MP3 audio files for metadata, and any metadata found is stored under the <code>/mp3s</code>
-    	branch of the repository.  And metadata about Java classes are stored under the <code>/java</code> area of the repository.
-      All of this happens asynchronously, so any DNA activity doesn't impede or slow down the client activities.
-    </para>
-		<para>So, after the file is uploaded, you can search the repository for the image metadata using the "s" menu option:
-    	<figure id="example-sequencer-search">
-				<title>Searching for media using the example client</title>
-				<graphic align="center" scale="100" fileref="example-sequencer-search.png"/>
-			</figure>
-    	Here are the search results after the <code>sample1.mp3</code> audio file has been uploaded (to the <code>/a/b/sample1.mp3</code> location):
-    	<figure id="example-sequencer-search-with-mp3">
-				<title>Searching for media using the example client</title>
-				<graphic align="center" scale="100" fileref="example-sequencer-search-with-mp3.png"/>
-			</figure>
-    	You can also display the sequencing statistics using the "d" menu option:
-    	<figure id="example-sequencer-statistics">
-				<title>Sequencing statistics using the example client</title>
-				<graphic align="center" scale="100" fileref="example-sequencer-statistics.png"/>
-			</figure>
-    	These stats show how many nodes were sequenced, and how many nodes were skipped because they didn't apply to the sequencer's
-    	criteria.
-  	</para>
-		<note>
-			<para>There will probably be more nodes skipped than sequenced, since there are more <code>nt:folder</code> and <code>nt:resource</code>
-      	nodes than there are <code>nt:file</code> nodes with acceptable names.</para>
-		</note>
-		<para>You can repeat this process with other files. Any file that isn't an image or MP3 files (as recognized by the sequencing configurations
-    	that we'll describe later) will not be sequenced.</para>
-	</sect1>
-	<sect1 id="running_repository_example">
-		<title>Running the repository example</title>
-		<para>The repository example consists of a client application that sets up three DNA repositories (named "Cars", "Airplanes", and 
-			"Configuration") as well as a federated repository ("Vehicles") that dynamically federates the information from the three other 
-			repositories and a cache repository (named "Cache") in which the federated content is stored.  
-			The client application allows you to interactively navigate each of these repositories just as you would navigate the
-			directory structure on a file system.</para>
-		<para>This collection of repositories is shown in the following figure:
-	  	<figure id="example-repositories">
-				<title>Repositories used in the example client</title>
-				<graphic align="center" scale="100" fileref="example-repositories.png"/>
-			</figure>
-			Most of the repositories are in-memory repositories (using the In-Memory repository connector), but the federated "Vehicles" repository
-			content is federated from the other repositories and cached into the "Cache" repository.  This is shown in the following figure: 
-	  	<figure id="example-federated-repository">
-				<title>Vehicles repository content is federated from the Cars, Airplanes and Configuration repositories</title>
-				<graphic align="center" scale="100" fileref="example-federated-repository.png"/>
-			</figure>
-	  </para>
-		<para>
-      To run the client application, go to the <code>examples/repository/target/dna-example-repositories-basic.dir/</code>
-      directory and type <code>./run.sh</code>. You should see the command-line client and its menus in your terminal:
-      <figure id="example-repositories-client">
-				<title>Example Client</title>
-				<graphic align="center" scale="100" fileref="example-repositories-client.png"/>
-			</figure>
-      From this menu, you can see the list of repositories, select one, and navigate through that repository in a manner similar
-      to a *nix command-line shell (although the client itself uses the JCR API to interact with the repositories).
-      Here are some of the commands you can use:</para>
-			<table frame='all'>
-				<title>Repository client commands to navigate a repository</title>
-				<tgroup cols='2' align='left' colsep='1' rowsep='1'>
-		      <colspec colname='c1' colwidth="1*"/>
-		      <colspec colname='c2' colwidth="1*"/>
-					<thead>
-						<row><entry>Command</entry><entry>Description</entry></row>
-					</thead>
-					<tbody>
-						<row><entry>pwd</entry><entry>Print the path of the current node (e.g., the "working directory")</entry></row>
-						<row><entry>ls [<emphasis>path</emphasis>]</entry><entry>List the children and properties of the node at the supplied path,
-						     where "<emphasis>path</emphasis>" can be any relative path or absolute path.  If "<emphasis>path</emphasis>" is not supplied,
-						     the current working node's path is used.</entry></row>
-						<row><entry>cd <emphasis>path</emphasis></entry><entry>Change to the specified node, where "<emphasis>path</emphasis>"
-						     can be any relative path or absolute path.  For example, "<code>cd alpha</code>" changes the current node to be a child named
-						     "<code>alpha</code>"; "<code>cd ..</code>" changes the current node to the parent node; "<code>cd /a/b</code>" changes 
-						     the current node to be the "<code>/a/b</code>" node.</entry></row>
-						<row><entry>exit</entry><entry>Exit this repository and return the list of repositories.</entry></row>
-					</tbody>
-				</tgroup>
-			</table>
-			<para>If you were to select the "Cars" repository and use some of the commands, you should see something similar to: 
-	      <figure id="example-repositories-navigating">
-					<title>Navigating the Cars repository</title>
-					<graphic align="center" scale="100" fileref="example-repositories-navigating.png"/>
-				</figure>
-			</para>
-			<para>You can also choose to navigate the "Vehicles" repository, which projects the "Cars" repository content under the
-				<code>/Vehicles/Cars</code> node, the "Airplanes" content under the <code>/Vehicles/Airplanes</code> branch,
-				and the "Configuration" content under <code>/dna:system</code>.
-			</para>
-			<para>Try using the client to walk the different repositories.  And while this is a contrived application, it does demonstrate
-				the use of JBoss DNA to federate repositories and provide access through JCR.</para>
-  </sect1>
-	<sect1 id="downloading_and_running_review">
-		<title>Summarizing what we just did</title>
-		<para>In this chapter you downloaded, installed, and built the two example applicationss.  With the sequencer client, you could upload files into a
-    	JCR repository, while JBoss DNA automatically sequenced the image, MP3, or Java source files you uploaded, extracted the metadata from the
-    	files, and stored that metadata inside the repository.  The repository client allowed you to walk through multiple repositories,
-      including one whose content was federated from multiple other repositories.</para>
-		<para>These example applications were very simplistic.  In fact, running through the examples probably only took you a few minutes.
-    	So while these applications won't win any awards, they hopefully showed you the basics of what JBoss DNA can do.</para>
-		<para>In the next two chapters, we'll venture into the code to get an understanding	of how JBoss DNA actually works.  
-			The <link linkend="using_dna_for_sequencing">next chapter</link> reviews the sequencer application and talks about 
-			how you can use DNA sequencers in your own applications.  Then in the <link linkend="using_dna_repositories">following chapter</link>
-			we'll venture into the repositories example code to show how you can use DNA repositories, including federated repositories,
-			in your own applications.</para>
-	</sect1>
-</chapter>

Copied: tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/downloading_and_running.xml (from rev 553, trunk/docs/gettingstarted/src/main/docbook/en-US/content/downloading_and_running.xml)
===================================================================
--- tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/downloading_and_running.xml	                        (rev 0)
+++ tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/downloading_and_running.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,403 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ JBoss, Home of Professional Open Source.
+  ~
+  ~ Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
+  ~ indicated by the @author tags or express copyright attribution
+  ~ statements applied by the authors.  All third-party contributions are
+  ~ distributed under license by Red Hat Middleware LLC.
+  ~
+  ~ This copyrighted material is made available to anyone wishing to use, modify,
+  ~ copy, or redistribute it subject to the terms and conditions of the GNU
+  ~ Lesser General Public License, as published by the Free Software Foundation.
+  ~
+  ~ This program is distributed in the hope that it will be useful,
+  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+  ~ or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
+  ~ for more details.
+  ~
+  ~ You should have received a copy of the GNU Lesser General Public License
+  ~ along with this distribution; if not, write to:
+  ~ Free Software Foundation, Inc.
+  ~ 51 Franklin Street, Fifth Floor
+  ~ Boston, MA  02110-1301  USA
+  -->
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<chapter id="downloading_and_running">
+	<title>Running the example applications</title>
+	<para>
+    This chapter provides instructions for downloading and running a sample application that demonstrates how JBoss DNA works
+    with a JCR repository to automatically sequence changing content to extract useful information. So read on to get the simple
+    application running, and then in the <link linkend="using_dna">next chapter</link>
+    we'll dive into the source code for the example and show how to use JBoss DNA in your own applications. </para>
+	<para>JBoss DNA uses Maven 2 for its build system, as is this example. Using Maven 2 has several advantages, including
+    the ability to manage dependencies. If a library is needed, Maven automatically finds and downloads that library, plus
+    everything that library needs. This means that it's very easy to build the examples - or even create a maven project that
+    depends on the JBoss DNA JARs.</para>
+	<note>
+		<para>
+      To use Maven with JBoss DNA, you'll need to have <ulink url="http://java.sun.com/javase/downloads/index_jdk5.jsp">JDK 5 or 6</ulink>
+      and Maven 2.0.9 (or higher).</para>
+		<para>
+      Maven can be downloaded from <ulink url="http://maven.apache.org/">http://maven.apache.org/</ulink>, and is installed by unzipping the
+      <code>maven-2.0.9-bin.zip</code> file to a convenient location on your local disk. Simply add <code>$MAVEN_HOME/bin</code>
+      to your path and add the following profile to your <code>~/.m2/settings.xml</code> file:</para>
+		<programlisting role="XML"><![CDATA[
+<settings>
+  <profiles>
+    <profile>
+      <id>jboss.repository</id>
+      <activation>
+        <property>
+          <name>!jboss.repository.off</name>
+        </property>
+      </activation>
+      <repositories>
+        <repository>
+          <id>snapshots.jboss.org</id>
+          <url>http://snapshots.jboss.org/maven2</url>
+          <snapshots>
+            <enabled>true</enabled>
+          </snapshots>
+        </repository>
+        <repository>
+          <id>repository.jboss.org</id>
+          <url>http://repository.jboss.org/maven2</url>
+          <snapshots>
+            <enabled>false</enabled>
+          </snapshots>
+        </repository>
+      </repositories>
+      <pluginRepositories>
+        <pluginRepository>
+          <id>repository.jboss.org</id>
+          <url>http://repository.jboss.org/maven2</url>
+          <snapshots>
+            <enabled>false</enabled>
+          </snapshots>
+        </pluginRepository>
+        <pluginRepository>
+          <id>snapshots.jboss.org</id>
+          <url>http://snapshots.jboss.org/maven2</url>
+          <snapshots>
+            <enabled>true</enabled>
+          </snapshots>
+        </pluginRepository>
+      </pluginRepositories>
+    </profile>
+  </profiles>
+</settings>
+]]></programlisting>
+		<para>This profile informs Maven of the two JBoss repositories (snapshots and releases) that contain 
+        all of the JARs for JBoss DNA and all dependent libraries.</para>
+	</note>
+	<sect1 id="downloading">
+		<title>Downloading and compiling</title>
+		<para>The next step is to <ulink url="http://www.jboss.org/file-access/default/members/dna/downloads/0.2/jboss-dna-0.2-gettingstarted-examples.zip">download</ulink>
+      the example for this Getting Started guide, and extract the contents to a convenient location on your local disk.
+      You'll find the example contains the following files, which are organized according to the standard Maven directory structure:</para>
+		<programlisting><![CDATA[
+examples/pom.xml
+         sequencers/pom.xml
+                   /src/main/assembly
+                            /config
+                            /java
+                            /resources
+                       /test/java
+                            /resources
+         repository/pom.xml
+                   /src/main/assembly
+                            /config
+                            /java
+                            /resources
+                       /test/java
+                            /resources
+]]></programlisting>
+		<para>
+			There are essentially three Maven projects: a <code>sequencers</code> project, a <code>repository</code> project, 
+		  and a parent project.  All of the source for the sequencing example is located in the <code>sequencers</code> subdirectory,
+		  while all of the source for the repository example is located in the <code>repository</code> subdirectory.
+		</para>
+		<para>
+			And you may have noticed that none of the JBoss DNA libraries are there.  This is where Maven comes in.  
+			The two <code>pom.xml</code> files tell Maven everything it needs to know about what libraries are required and 
+			how to build the example.
+		</para>
+		<para>
+			In a terminal, go to the <code>examples</code> directory and run:
+		</para>
+		<programlisting>$ mvn install</programlisting>
+		<para>  
+      This command downloads all of the JARs necessary to compile and build the example, including the JBoss DNA libraries,
+      the libraries they depend on, and any missing Maven components.  (These are downloaded from the JBoss repositories
+      only once and saved on your machine.  This means that the next time you run Maven, all the libraries will
+      already be available locally, and the build will run much faster.)  The command then continues by compiling the example's source
+      code (and unit tests) and running the unit tests.  The build is successful if you see the following:
+		</para>
+		<programlisting><![CDATA[
+$ mvn install
+...
+[INFO] ------------------------------------------------------------------------
+[INFO] Reactor Summary:
+[INFO] ------------------------------------------------------------------------
+[INFO] Getting Started examples .............................. SUCCESS [2.106s]
+[INFO] Sequencer Examples .................................... SUCCESS [9.768s]
+[INFO] ------------------------------------------------------------------------
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESSFUL
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 12 seconds
+[INFO] Finished at: Wed May 07 12:00:06 CDT 2008
+[INFO] Final Memory: 14M/28M
+[INFO] ------------------------------------------------------------------------
+$ ]]></programlisting>
+		<para>If there are errors, check whether you have the correct version of Maven installed and that you've correctly updated
+      your Maven settings as described above.</para>
+		<para>If you've successfully built the examples, there will be a new <code>examples/sequencers/target/</code> directory that contains
+			all of the generated output for the sequencers example, including a <code>dna-example-sequencers-basic.dir/</code> subdirectory 
+			that contains the following:
+			<itemizedlist>
+				<listitem>
+					<para><emphasis role="strong"><code>run.sh</code></emphasis> is the *nix shell script that will run the sequencer example application.</para>
+				</listitem>
+				<listitem>
+					<para><emphasis role="strong"><code>log4j.properties</code></emphasis>
+			        is the Log4J configuration file.
+			      </para>
+				</listitem>
+				<listitem>
+					<para><emphasis role="strong"><code>jackrabbitConfig.xml</code></emphasis>
+			        is the Jackrabbit configuration file, which is set up to use a transient in-memory repository.
+			      </para>
+				</listitem>
+				<listitem>
+					<para><emphasis role="strong"><code>jackrabbitNodeTypes.cnd</code></emphasis>
+			        defines the additional JCR node types used by this example.
+			      </para>
+				</listitem>
+				<listitem>
+					<para><emphasis role="strong"><code>sample1.mp3</code></emphasis>
+			        is a sample MP3 audio file you'll use later to upload into the repository.
+			      </para>
+				</listitem>
+				<listitem>
+					<para><emphasis role="strong"><code>caution.gif</code></emphasis>, <emphasis role="strong"><code>caution.png</code></emphasis>, and <emphasis role="strong"><code>caution.jpg</code></emphasis>
+			        are images that you'll use later and upload into the repository.
+			      </para>
+				</listitem>
+				<listitem>
+					<para><emphasis role="strong"><code>project1</code></emphasis> subdirectory contains some Java source that can be loaded
+					  into the repository.
+				  </para>
+				</listitem>
+				<listitem>
+					<para><emphasis role="strong"><code>lib</code></emphasis> subdirectory contains the JARs for all of the JBoss DNA artifacts 
+					  as well as those for other libraries required by JBoss DNA and the sequencer example.
+			      </para>
+				</listitem>
+			</itemizedlist>
+		</para>
+    <note>
+			<para>JBoss DNA &versionNumber; and the sequencer example uses <ulink url="http://jackrabbit.apache.org/">Apache Jackrabbit</ulink> version 1.4.5.  
+      	This version is stable and used by a number of other projects and applications.  However, you should be able to use any
+      	version of Jackrabbit, as long as that version uses the same JCR API.</para>
+			<para>Just remember, if the version of Jackrabbit you want to use for these examples is not in the Maven repository,
+      	you'll have to either add it or add it locally.  For more information, see the <ulink url="http://maven.apache.org/">Maven documentation</ulink>.
+      </para>
+		</note>
+		<para>Similarly, the <code>examples/repository/target/</code> directory contains all of the generated output for the repository example, including
+			a <code>dna-example-repository-basic.dir/</code> subdirectory that contains the following:
+			<itemizedlist>
+				<listitem>
+					<para><emphasis role="strong"><code>run.sh</code></emphasis> is the *nix shell script that will run the repository example application.</para>
+				</listitem>
+				<listitem>
+					<para><emphasis role="strong"><code>log4j.properties</code></emphasis> is the Log4J configuration file.</para>
+				</listitem>
+				<listitem>
+					<para><emphasis role="strong"><code>aircraft.xml</code></emphasis> is an XML file containing the information that the
+					  example application imports into its "Aircraft" repository.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis role="strong"><code>cars.xml</code></emphasis> is an XML file containing the information that the
+					  example application imports into its "Cars" repository.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis role="strong"><code>configRepository.xml</code></emphasis> is an XML file containing the information that the
+					  example application imports into its "Configuration" repository and which defines how the application sets up access
+					  to the other example repositories.
+					</para>
+				</listitem>
+				<listitem>
+					<para><emphasis role="strong"><code>lib</code></emphasis> subdirectory contains the JARs for all of the JBoss DNA artifacts
+					  as well as those for other libraries required by JBoss DNA and the repository example.
+			      </para>
+				</listitem>
+			</itemizedlist>
+    </para>
+	</sect1>
+	<sect1 id="running_sequencer_example">
+		<title>Running the sequencing example</title>
+		<para>The sequencing example consists of a client application that sets up an in-memory JCR repository and that allows a user to
+      upload files into that repository. The client also sets up the DNA services with two sequencers so that if any of the
+      uploaded files are PNG, JPEG, GIF, BMP or other images, DNA will automatically extract the image's metadata (e.g., image
+      format, physical size, pixel density, etc.) and store that in the repository.  Alternatively, if the uploaded file 
+      is an MP3 audio file, DNA will extract some of the ID3 metadata (e.g., the author, title, album, year and comment)
+      and store that in the repository.</para>
+		<para>
+      To run the client application, go to the <code>examples/sequencers/target/dna-example-sequencers-basic.dir/</code>
+      directory and type <code>./run.sh</code>. You should see the command-line client and its menus in your terminal:
+      <figure id="xample-sequencer-cli-client">
+				<title>Example client</title>
+				<graphic align="center" scale="100" fileref="example-sequencer-client.png"/>
+			</figure>
+      From this menu, you can upload a file into the repository, search for media in the repository, print sequencing statistics,
+      or quit the application.</para>
+		<para>
+      The first step is to upload one of the example images. If you type 'u' and press return, you'll be prompted to supply the
+      path to the file you want to upload. Since the application is running from within the
+      <code>examples/sequencers/target/dna-example-sequencers-basic.dir/</code> directory, you can specify any of the files 
+			in that directory without specifying the path:
+      <figure id="example-sequencer-upload">
+				<title>Uploading an image using the example client</title>
+				<graphic align="center" scale="100" fileref="example-sequencer-upload.png"/>
+			</figure>
+      You can specify any fully-qualified or relative path. The application will notify you if it cannot find the file you
+      specified. The example client configures JBoss DNA to sequence MP3 audio files, Java source files, or image files with one of
+      the following extensions (technically, nodes that have names ending in the following):
+      <code>jpg</code>, <code>jpeg</code>, <code>gif</code>, <code>bmp</code>, <code>pcx</code>, <code>png</code>,
+      <code>iff</code>, <code>ras</code>, <code>pbm</code>, <code>pgm</code>, <code>ppm</code>, and <code>psd</code>.
+ 			Files with other extensions in the repository path will be ignored. For your convenience, the example provides several
+      files that will be sequenced (<code>caution.png</code>, <code>caution.jpg</code>, <code>caution.gif</code>, and
+      <code>sample1.mp3</code>) and one image that will not be sequenced (<code>caution.pict</code>). Feel free to try other files.
+    </para>
+		<para>
+      After you have specified the file you want to upload, the example application asks you where in the repository you'd like to
+      place the file. (If you want to use the suggested location, just press <code>return</code>.) The client application
+      uses the JCR API to upload the file to that location in the repository, creating any nodes (of type <code>nt:folder</code>)
+      for any directories that don't exist, and creating a node (of type <code>nt:file</code>) for the file. And, per the JCR specification, 
+			the application creates a <code>jcr:content</code> node (of type <code>nt:resource</code>) under the file node. 
+			The file contents are placed on this <code>jcr:content</code> node in the <code>jcr:data</code> property. For example, if you specify
+      <code>/a/b/caution.png</code>, the following structure will be created in the repository:</para>
+		<programlisting><![CDATA[
+/a   (nt:folder)
+  /b   (nt:folder)
+    /caution.png   (nt:file)
+                /jcr:content    (nt:resource)
+                            @jcr:data = {contents of the file}
+                            @jcr:mimeType = {mime type of the file}
+                            @jcr:lastModified = {now}
+]]></programlisting>
+    <para>Other kinds of files are treated in a similar way.</para>
+		<para>When the client uploads the file using the JCR API, DNA gets notified of the changes, consults the sequencers to see whether
+    	any of them are interested in the new or updated content, and if so runs those sequencers. The image sequencer processes image
+    	files for metadata, and any metadata found is stored under the <code>/images</code> branch of the repository. The MP3 sequencer 
+			processes MP3 audio files for metadata, and any metadata found is stored under the <code>/mp3s</code>
+    	branch of the repository.  And metadata about Java classes are stored under the <code>/java</code> area of the repository.
+      All of this happens asynchronously, so any DNA activity doesn't impede or slow down the client activities.
+    </para>
+		<para>So, after the file is uploaded, you can search the repository for the image metadata using the "s" menu option:
+    	<figure id="example-sequencer-search">
+				<title>Searching for media using the example client</title>
+				<graphic align="center" scale="100" fileref="example-sequencer-search.png"/>
+			</figure>
+    	Here are the search results after the <code>sample1.mp3</code> audio file has been uploaded (to the <code>/a/b/sample1.mp3</code> location):
+    	<figure id="example-sequencer-search-with-mp3">
+				<title>Searching for media using the example client</title>
+				<graphic align="center" scale="100" fileref="example-sequencer-search-with-mp3.png"/>
+			</figure>
+    	You can also display the sequencing statistics using the "d" menu option:
+    	<figure id="example-sequencer-statistics">
+				<title>Sequencing statistics using the example client</title>
+				<graphic align="center" scale="100" fileref="example-sequencer-statistics.png"/>
+			</figure>
+    	These stats show how many nodes were sequenced, and how many nodes were skipped because they didn't apply to the sequencer's
+    	criteria.
+  	</para>
+		<note>
+			<para>There will probably be more nodes skipped than sequenced, since there are more <code>nt:folder</code> and <code>nt:resource</code>
+      	nodes than there are <code>nt:file</code> nodes with acceptable names.</para>
+		</note>
+		<para>You can repeat this process with other files. Any file that isn't an image or MP3 files (as recognized by the sequencing configurations
+    	that we'll describe later) will not be sequenced.</para>
+	</sect1>
+	<sect1 id="running_repository_example">
+		<title>Running the repository example</title>
+		<para>The repository example consists of a client application that sets up three DNA repositories (named "Cars", "Airplanes", and 
+			"Configuration") as well as a federated repository ("Vehicles") that dynamically federates the information from the three other 
+			repositories and a cache repository (named "Cache") in which the federated content is stored.  
+			The client application allows you to interactively navigate each of these repositories just as you would navigate the
+			directory structure on a file system.</para>
+		<para>This collection of repositories is shown in the following figure:
+	  	<figure id="example-repositories">
+				<title>Repositories used in the example client</title>
+				<graphic align="center" scale="100" fileref="example-repositories.png"/>
+			</figure>
+			Most of the repositories are in-memory repositories (using the In-Memory repository connector), but the federated "Vehicles" repository
+			content is federated from the other repositories and cached into the "Cache" repository.  This is shown in the following figure: 
+	  	<figure id="example-federated-repository">
+				<title>Vehicles repository content is federated from the Cars, Airplanes and Configuration repositories</title>
+				<graphic align="center" scale="100" fileref="example-federated-repository.png"/>
+			</figure>
+	  </para>
+		<para>
+      To run the client application, go to the <code>examples/repository/target/dna-example-repositories-basic.dir/</code>
+      directory and type <code>./run.sh</code>. You should see the command-line client and its menus in your terminal:
+      <figure id="example-repositories-client">
+				<title>Example Client</title>
+				<graphic align="center" scale="100" fileref="example-repositories-client.png"/>
+			</figure>
+      From this menu, you can see the list of repositories, select one, and navigate through that repository in a manner similar
+      to a *nix command-line shell (although the client itself uses the JCR API to interact with the repositories).
+      Here are some of the commands you can use:</para>
+			<table frame='all'>
+				<title>Repository client commands to navigate a repository</title>
+				<tgroup cols='2' align='left' colsep='1' rowsep='1'>
+		      <colspec colname='c1' colwidth="1*"/>
+		      <colspec colname='c2' colwidth="1*"/>
+					<thead>
+						<row><entry>Command</entry><entry>Description</entry></row>
+					</thead>
+					<tbody>
+						<row><entry>pwd</entry><entry>Print the path of the current node (e.g., the "working directory")</entry></row>
+						<row><entry>ls [<emphasis>path</emphasis>]</entry><entry>List the children and properties of the node at the supplied path,
+						     where "<emphasis>path</emphasis>" can be any relative path or absolute path.  If "<emphasis>path</emphasis>" is not supplied,
+						     the current working node's path is used.</entry></row>
+						<row><entry>cd <emphasis>path</emphasis></entry><entry>Change to the specified node, where "<emphasis>path</emphasis>"
+						     can be any relative path or absolute path.  For example, "<code>cd alpha</code>" changes the current node to be a child named
+						     "<code>alpha</code>"; "<code>cd ..</code>" changes the current node to the parent node; "<code>cd /a/b</code>" changes 
+						     the current node to be the "<code>/a/b</code>" node.</entry></row>
+						<row><entry>exit</entry><entry>Exit this repository and return the list of repositories.</entry></row>
+					</tbody>
+				</tgroup>
+			</table>
+			<para>If you were to select the "Cars" repository and use some of the commands, you should see something similar to: 
+	      <figure id="example-repositories-navigating">
+					<title>Navigating the Cars repository</title>
+					<graphic align="center" scale="100" fileref="example-repositories-navigating.png"/>
+				</figure>
+			</para>
+			<para>You can also choose to navigate the "Vehicles" repository, which projects the "Cars" repository content under the
+				<code>/Vehicles/Cars</code> node, the "Airplanes" content under the <code>/Vehicles/Airplanes</code> branch,
+				and the "Configuration" content under <code>/dna:system</code>.
+			</para>
+			<para>Try using the client to walk the different repositories.  And while this is a contrived application, it does demonstrate
+				the use of JBoss DNA to federate repositories and provide access through JCR.</para>
+  </sect1>
+	<sect1 id="downloading_and_running_review">
+		<title>Summarizing what we just did</title>
+		<para>In this chapter you downloaded, installed, and built the two example applicationss.  With the sequencer client, you could upload files into a
+    	JCR repository, while JBoss DNA automatically sequenced the image, MP3, or Java source files you uploaded, extracted the metadata from the
+    	files, and stored that metadata inside the repository.  The repository client allowed you to walk through multiple repositories,
+      including one whose content was federated from multiple other repositories.</para>
+		<para>These example applications were very simplistic.  In fact, running through the examples probably only took you a few minutes.
+    	So while these applications won't win any awards, they hopefully showed you the basics of what JBoss DNA can do.</para>
+		<para>In the next two chapters, we'll venture into the code to get an understanding	of how JBoss DNA actually works.  
+			The <link linkend="using_dna_for_sequencing">next chapter</link> reviews the sequencer application and talks about 
+			how you can use DNA sequencers in your own applications.  Then in the <link linkend="using_dna_repositories">following chapter</link>
+			we'll venture into the repositories example code to show how you can use DNA repositories, including federated repositories,
+			in your own applications.</para>
+	</sect1>
+</chapter>

Deleted: tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/future.xml
===================================================================
--- trunk/docs/gettingstarted/src/main/docbook/en-US/content/future.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/future.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ JBoss, Home of Professional Open Source.
-  ~
-  ~ Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
-  ~ indicated by the @author tags or express copyright attribution
-  ~ statements applied by the authors.  All third-party contributions are
-  ~ distributed under license by Red Hat Middleware LLC.
-  ~
-  ~ This copyrighted material is made available to anyone wishing to use, modify,
-  ~ copy, or redistribute it subject to the terms and conditions of the GNU
-  ~ Lesser General Public License, as published by the Free Software Foundation.
-  ~
-  ~ This program is distributed in the hope that it will be useful,
-  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-  ~ or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-  ~ for more details.
-  ~
-  ~ You should have received a copy of the GNU Lesser General Public License
-  ~ along with this distribution; if not, write to:
-  ~ Free Software Foundation, Inc.
-  ~ 51 Franklin Street, Fifth Floor
-  ~ Boston, MA  02110-1301  USA
-  -->
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="future">
-	<title>Looking to the future</title>
-	<para>What's next for JBoss DNA?  Well, the sequencing system is just the beginning.  With this release, the sequencing system
-	  is stable enough so that more <link linkend="sequencers">sequencers</link> can be developed and used within your own applications.
-	  If you're interested in getting involved with the JBoss DNA project, consider picking up one of the sequencers on our
-	  <ulink url="http://jira.jboss.org/jira/browse/DNA?report=com.atlassian.jira.plugin.system.project:roadmap-panel">roadmap</ulink>.
-	  Or, check out <ulink url="http://jira.jboss.org/jira/secure/IssueNavigator.jspa?reset=true&amp;mode=hide&amp;pid=12310520&amp;sorter/order=DESC&amp;sorter/field=priority&amp;resolution=-1&amp;component=12311436">JIRA</ulink>
-	  for the list of sequencers we've thought of.  If you think of one that's not there, please add it to JIRA! </para>
-	<para>Other components on our roadmap include a web user interface, a REST-ful server, and a view system that allows domain-specific
-	  views of information in the repository.  These components are farther out on our roadmap, and at this time have not been
-	  targeted to a particular release.  If any of these are of interest to you, please <link linkend="preface">get involved</link>
-		in the community.</para>
-</chapter>

Copied: tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/future.xml (from rev 553, trunk/docs/gettingstarted/src/main/docbook/en-US/content/future.xml)
===================================================================
--- tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/future.xml	                        (rev 0)
+++ tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/future.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ JBoss, Home of Professional Open Source.
+  ~
+  ~ Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
+  ~ indicated by the @author tags or express copyright attribution
+  ~ statements applied by the authors.  All third-party contributions are
+  ~ distributed under license by Red Hat Middleware LLC.
+  ~
+  ~ This copyrighted material is made available to anyone wishing to use, modify,
+  ~ copy, or redistribute it subject to the terms and conditions of the GNU
+  ~ Lesser General Public License, as published by the Free Software Foundation.
+  ~
+  ~ This program is distributed in the hope that it will be useful,
+  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+  ~ or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
+  ~ for more details.
+  ~
+  ~ You should have received a copy of the GNU Lesser General Public License
+  ~ along with this distribution; if not, write to:
+  ~ Free Software Foundation, Inc.
+  ~ 51 Franklin Street, Fifth Floor
+  ~ Boston, MA  02110-1301  USA
+  -->
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<chapter id="future">
+	<title>Looking to the future</title>
+	<para>What's next for JBoss DNA?  Well, the sequencing system is just the beginning.  With this release, the sequencing system
+	  is stable enough so that more <link linkend="sequencers">sequencers</link> can be developed and used within your own applications.
+		We've also established the foundation for JBoss DNA repositories, including a number of <link linkend="repository-connectors">connectors</link>.
+		We'll continue to expand our library of sequencers and connectors, as well as expand our support of JCR.
+		Other components on our roadmap include a web user interface, a REST-ful server, and a view system that allows domain-specific
+		views of information in the repository.  These components are farther out on our roadmap, and at this time have not been
+		targeted to a particular release.
+	</para>
+	<para>
+	  If you're interested in getting involved with the JBoss DNA project, consider picking up one of the sequencers on our
+	  <ulink url="http://jira.jboss.org/jira/browse/DNA?report=com.atlassian.jira.plugin.system.project:roadmap-panel">roadmap</ulink>.
+	  Or, check out <ulink url="http://jira.jboss.org/jira/secure/IssueNavigator.jspa?reset=true&amp;mode=hide&amp;pid=12310520&amp;sorter/order=DESC&amp;sorter/field=priority&amp;resolution=-1&amp;component=12311436">JIRA</ulink>
+	  for the list of sequencers we've thought of.  If you think of one that's not there, please add it to JIRA! </para>
+</chapter>

Deleted: tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/introduction.xml
===================================================================
--- trunk/docs/gettingstarted/src/main/docbook/en-US/content/introduction.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/introduction.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,119 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ JBoss, Home of Professional Open Source.
-  ~
-  ~ Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
-  ~ indicated by the @author tags or express copyright attribution
-  ~ statements applied by the authors.  All third-party contributions are
-  ~ distributed under license by Red Hat Middleware LLC.
-  ~
-  ~ This copyrighted material is made available to anyone wishing to use, modify,
-  ~ copy, or redistribute it subject to the terms and conditions of the GNU
-  ~ Lesser General Public License, as published by the Free Software Foundation.
-  ~
-  ~ This program is distributed in the hope that it will be useful,
-  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-  ~ or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-  ~ for more details.
-  ~
-  ~ You should have received a copy of the GNU Lesser General Public License
-  ~ along with this distribution; if not, write to:
-  ~ Free Software Foundation, Inc.
-  ~ 51 Franklin Street, Fifth Floor
-  ~ Boston, MA  02110-1301  USA
-  -->
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="introduction">
-  <title>Introduction</title>
-  <para>There are a lot of choices for how applications can store information persistently so that it can be accessed at a
-    later time and by other processes. The challenge developers face is how to use an approach that most closely matches the
-    needs of their application. This choice becomes more important as developers choose to focus their efforts on
-    application-specific logic, delegating much of the responsibilities for persistence to libraries and frameworks.</para>
-  <para>
-    Perhaps one of the easiest techniques is to simply store information in
-    <emphasis>files</emphasis>
-    . The Java language makes working with files relatively easy, but Java really doesn't provide many bells and whistles. So
-    using files is an easy choice when the information is either not complicated (for example property files), or when users may
-    need to read or change the information outside of the application (for example log files or configuration files). But using
-    files to persist information becomes more difficult as the information becomes more complex, as the volume of it increases,
-    or if it needs to be accessed by multiple processes. For these situations, other techniques often offer better choices.
-  </para>
-  <para>
-    Another technique built into the Java language is
-    <emphasis>Java serialization</emphasis>
-    , which is capable of persisting the state of an object graph so that it can be read back in at a later time. However, Java
-    serialization can quickly become tricky if the classes are changed, and so it's beneficial usually when the information is
-    persisted for a very short period of time. For example, serialization is sometimes used to send an object graph from one
-    process to another.
-  </para>
-  <para>
-    One of the more popular persistence technologies is the
-    <emphasis>relational database</emphasis>
-    . Relational database management systems have been around for decades and are very capable. The Java Database Connectivity
-    (JDBC) API provides a standard interface for connecting to and interacting with relational databases. However, it is a
-    low-level API that requires a lot of code to use correctly, and it still doesn't abstract away the DBMS-specific SQL
-    grammar. Also, working with relational data in an object-oriented language can feel somewhat unnatural, so many developers
-    map this data to classes that fit much more cleanly into their application. The problem is that manually creating this
-    mapping layer requires a lot of repetitive and non-trivial JDBC code.
-  </para>
-  <para>
-    <emphasis>Object-relational mapping</emphasis>
-    libraries automate the creation of this mapping layer and result in far less code that is much more maintainable with
-    performance that is often as good as (if not better than) handwritten JDBC code. The new
-    <ulink url="http://java.sun.com/developer/technicalArticles/J2EE/jpa/">Java Persistence API (JPA)</ulink>
-    provide a standard mechanism for defining the mappings (through annotations) and working with these entity objects. Several
-    commercial and open-source libraries implement JPA, and some even offer additional capabilities and features that go beyond
-    JPA. For example,
-    <ulink url="http://www.hibernate.org">Hibernate</ulink>
-    is one of the most feature-rich JPA implementations and offers object caching, statement caching, extra association
-    mappings, and other features that help to improve performance and usefulness.
-  </para>
-  <para>
-    While relational databases and JPA are solutions that work for many applications, they become more limited in cases when the
-    information structure is highly flexible, is not known
-    <emphasis>a priori</emphasis>
-    , or is subject to frequent change and customization. In these situations,
-    <emphasis>content repositories</emphasis>
-    may offer a better choice for persistence. Content repositories are almost a hybrid between relational databases and file
-    systems, and typically provide other capabilities as well, including versioning, indexing, search, access control,
-    transactions, and observation. Because of this, content repositories are used by content management systems (CMS), document
-    management systems (DMS), and other applications that manage electronic files (e.g., documents, images, multi-media, web
-    content, etc.) and metadata associated with them (e.g., author, date, status, security information, etc.). The
-    <ulink url="http://www.jcp.org/en/jsr/detail?id=170">Content Repository for Java technology API</ulink>
-    provides a standard Java API for working with content repositories. Abbreviated "JCR", this API was developed as part of the
-    Java Community Process under
-    <ulink url="http://www.jcp.org/en/jsr/detail?id=170">JSR-170</ulink>
-    and is being revised under
-    <ulink url="http://www.jcp.org/en/jsr/detail?id=283">JSR-283</ulink>
-    .
-  </para>
-  <para>
-    The
-    <emphasis>JBoss DNA project</emphasis>
-    is building the tools and services that surround content repositories. Nearly all of these capabilities are to be hidden
-    below the JCR API and involve automated processing of the information in the repository. Thus, JBoss DNA can add value to
-    existing repository implementations. For example, JCR repositories offer the ability to upload files into the repository and
-    have the file content indexed for search purposes. JBoss DNA also defines a library for "sequencing" content - to extract
-    meaningful information from that content and store it in the repository, where it can then be searched, accessed, and
-    analyzed using the JCR API.
-  </para>
-  <para> JBoss DNA is building other features as well. One goal of JBoss DNA is to create federated repositories that
-    dynamically merge the information from multiple databases, services, applications, and other JCR repositories. Another is to
-    create customized views based upon the type of data and the role of the user that is accessing the data. And yet another is
-    to create a REST-ful API to allow the JCR content to be accessed easily by other applications written in other languages.
-  </para>
-  <para>
-    The
-    <link linkend="understanding_dna">next chapter</link>
-    in this book goes into more detail about JBoss DNA and its architecture, the different components, what's available now, and
-    what's coming in future releases.
-    <link linkend="downloading_and_running">Chapter 3</link>
-    then provides instructions for downloading and running the sequencer examples for the current release.
-    <link linkend="using_dna">Chapter 4</link>
-    walks through how to use JBoss DNA in your applications, while
-    <link linkend="custom_sequencers">Chapter 5</link>
-    goes over how to create custom sequencers. Finally,
-    <link linkend="future">Chapter 6</link>
-    wraps things up with a discussion about the future of JBoss DNA.
-  </para>
-</chapter>

Copied: tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/introduction.xml (from rev 553, trunk/docs/gettingstarted/src/main/docbook/en-US/content/introduction.xml)
===================================================================
--- tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/introduction.xml	                        (rev 0)
+++ tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/introduction.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ JBoss, Home of Professional Open Source.
+  ~
+  ~ Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
+  ~ indicated by the @author tags or express copyright attribution
+  ~ statements applied by the authors.  All third-party contributions are
+  ~ distributed under license by Red Hat Middleware LLC.
+  ~
+  ~ This copyrighted material is made available to anyone wishing to use, modify,
+  ~ copy, or redistribute it subject to the terms and conditions of the GNU
+  ~ Lesser General Public License, as published by the Free Software Foundation.
+  ~
+  ~ This program is distributed in the hope that it will be useful,
+  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+  ~ or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
+  ~ for more details.
+  ~
+  ~ You should have received a copy of the GNU Lesser General Public License
+  ~ along with this distribution; if not, write to:
+  ~ Free Software Foundation, Inc.
+  ~ 51 Franklin Street, Fifth Floor
+  ~ Boston, MA  02110-1301  USA
+  -->
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<chapter id="introduction">
+  <title>Introduction</title>
+  <para>There are a lot of ways for applications to store information persistently so that it can be accessed at a
+    later time and by other processes. The challenge developers face is how to use an approach that most closely matches the
+    needs of their application. This choice becomes more important as developers choose to focus their efforts on
+    application-specific logic, delegating much of the responsibilities for persistence to libraries and frameworks.</para>
+  <para>
+    Perhaps one of the easiest techniques is to simply store information in
+    <emphasis>files</emphasis>
+    . The Java language makes working with files relatively easy, but Java really doesn't provide many bells and whistles. So
+    using files is an easy choice when the information is either not complicated (for example property files), or when users may
+    need to read or change the information outside of the application (for example log files or configuration files). But using
+    files to persist information becomes more difficult as the information becomes more complex, as the volume of it increases,
+    or if it needs to be accessed by multiple processes. For these situations, other techniques often have more benefits.
+  </para>
+  <para>
+    Another technique built into the Java language is
+    <emphasis>Java serialization</emphasis>
+    , which is capable of persisting the state of an object graph so that it can be read back in at a later time. However, Java
+    serialization can quickly become tricky if the classes are changed, and so it's beneficial usually when the information is
+    persisted for a very short period of time. For example, serialization is sometimes used to send an object graph from one
+    process to another.  Using serialization for longer-term storage of information is more risky.
+  </para>
+  <para>
+    One of the more popular and widely-used persistence technologies is the <emphasis>relational database</emphasis>. 
+		Relational database management systems have been around for decades and are very capable. The Java Database Connectivity
+    (JDBC) API provides a standard interface for connecting to and interacting with relational databases. However, it is a
+    low-level API that requires a lot of code to use correctly, and it still doesn't abstract away the DBMS-specific SQL
+    grammar. Also, working with relational data in an object-oriented language can feel somewhat unnatural, so many developers
+    map this data to classes that fit much more cleanly into their application. The problem is that manually creating this
+    mapping layer requires a lot of repetitive and non-trivial JDBC code.
+  </para>
+  <para>
+    <emphasis>Object-relational mapping</emphasis>
+    libraries automate the creation of this mapping layer and result in far less code that is much more maintainable with
+    performance that is often as good as (if not better than) handwritten JDBC code. The new
+    <ulink url="http://java.sun.com/developer/technicalArticles/J2EE/jpa/">Java Persistence API (JPA)</ulink>
+    provide a standard mechanism for defining the mappings (through annotations) and working with these entity objects. Several
+    commercial and open-source libraries implement JPA, and some even offer additional capabilities and features that go beyond
+    JPA. For example, <ulink url="http://www.hibernate.org">Hibernate</ulink> is one of the most feature-rich JPA implementations
+		and offers object caching, statement caching, extra association
+    mappings, and other features that help to improve performance and usefulness.  Plus, Hibernate is open-source (with support
+		offered by <ulink url="http://www.jboss.com">JBoss</ulink>).
+  </para>
+  <para>
+    While relational databases and JPA are solutions that work well for many applications, they are more limited in cases when the
+    information structure is highly flexible, the structure is not known <emphasis>a priori</emphasis>, or that structure is
+ 		subject to frequent change and customization. In these situations, <emphasis>content repositories</emphasis>
+    may offer a better choice for persistence. Content repositories are almost a hybrid with the storage capabilities of
+ 		relational databases and the flexibility offered by other systems, such as using files.  Content repositories also
+    typically provide other capabilities as well, including versioning, indexing, search, access control,
+    transactions, and observation. Because of this, content repositories are used by content management systems (CMS), document
+    management systems (DMS), and other applications that manage electronic files (e.g., documents, images, multi-media, web
+    content, etc.) and metadata associated with them (e.g., author, date, status, security information, etc.). The
+    <ulink url="http://www.jcp.org/en/jsr/detail?id=170">Content Repository for Java technology API</ulink>
+    provides a standard Java API for working with content repositories. Abbreviated "JCR", this API was developed as part of the
+    Java Community Process under <ulink url="http://www.jcp.org/en/jsr/detail?id=170">JSR-170</ulink>
+    and is being revised under <ulink url="http://www.jcp.org/en/jsr/detail?id=283">JSR-283</ulink>.
+  </para>
+  <para>
+    The <emphasis>JBoss DNA project</emphasis>
+    is building unified metadata repository system that is compliant with JCR.  Nearly all of these capabilities are to be hidden
+    below the JCR API and involve automated processing of the information in the repository. Thus, JBoss DNA can add value to
+    existing repository implementations. For example, JCR repositories offer the ability to upload files into the repository and
+    have the file content indexed for search purposes. JBoss DNA also defines a library for "sequencing" content - to extract
+    meaningful information from that content and store it in the repository, where it can then be searched, accessed, and
+    analyzed using the JCR API.
+  </para>
+  <para> JBoss DNA has other features as well.  You can create federated repositories that dynamically merge the information 
+	  from multiple databases, services, applications, and other JCR repositories.  JBoss DNA also will allow you to 
+    create customized views based upon the type of data and the role of the user that is accessing the data. And yet another is
+    to create a REST-ful API to allow the JCR content to be accessed easily by other applications written in other languages.
+  </para>
+  <para>
+    The <link linkend="understanding_dna">next chapter</link> in this book goes into more detail about JBoss DNA and its architecture, 
+		the different components, what's available now, and what's coming in future releases.
+    <link linkend="downloading_and_running">Chapter 3</link> then provides instructions for downloading and running the sequencer 
+		examples for the current release. <link linkend="using_dna">Chapter 4</link> walks through how to use JBoss DNA sequencers 
+		in your applications, while <link linkend="custom_sequencers">Chapter 5</link> shows how to use JBoss DNA repositories.
+		<link linkend="custom_sequencers">Chapter 6</link> goes over how to create custom sequencers, and finally,
+    <link linkend="future">Chapter 7</link> wraps things up with a discussion about the future of JBoss DNA.
+  </para>
+</chapter>

Deleted: tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/legal_notice.xml
===================================================================
--- trunk/docs/gettingstarted/src/main/docbook/en-US/content/legal_notice.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/legal_notice.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ JBoss, Home of Professional Open Source.
-  ~
-  ~ Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
-  ~ indicated by the @author tags or express copyright attribution
-  ~ statements applied by the authors.  All third-party contributions are
-  ~ distributed under license by Red Hat Middleware LLC.
-  ~
-  ~ This copyrighted material is made available to anyone wishing to use, modify,
-  ~ copy, or redistribute it subject to the terms and conditions of the GNU
-  ~ Lesser General Public License, as published by the Free Software Foundation.
-  ~
-  ~ This program is distributed in the hope that it will be useful,
-  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-  ~ or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-  ~ for more details.
-  ~
-  ~ You should have received a copy of the GNU Lesser General Public License
-  ~ along with this distribution; if not, write to:
-  ~ Free Software Foundation, Inc.
-  ~ 51 Franklin Street, Fifth Floor
-  ~ Boston, MA  02110-1301  USA
-  -->
-<!DOCTYPE legalnotice PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-
-<legalnotice id="Legal_Notice">
-    <title>Legal Notice</title>
-    <para>
-        <address>
-            <street>1801 Varsity Drive</street>
-            <city>Raleigh</city>, <state>NC</state><postcode>27606-2072</postcode><country>USA</country>
-            <phone>Phone: +1 919 754 3700</phone>
-            <phone>Phone: 888 733 4281</phone>
-            <fax>Fax: +1 919 754 3701</fax>
-            <pob>PO Box 13588</pob><city>Research Triangle Park</city>, <state>NC</state><postcode>27709</postcode><country>USA</country>
-        </address>
-    </para>
-    <para>
-        Copyright <trademark class="copyright"/> 2007 by Red Hat, Inc.  This copyrighted material is made available to
-        anyone wishing to use, modify, copy, or redistribute it subject to the terms and conditions of the
-        GNU <ulink url="http://www.gnu.org/licenses/lgpl-2.1.html">Lesser General Public License</ulink>, as published
-        by the Free Software Foundation.
-    </para>
-    <para>
-        Red Hat and the Red Hat "Shadow Man" logo are registered trademarks of Red Hat, Inc. in the United States and other countries.
-    </para>
-    <para>
-        All other trademarks referenced herein are the property of their respective owners.
-    </para>
-    <para>
-        The GPG fingerprint of the security at redhat.com key is:
-    </para>
-    <para>
-        CA 20 86 86 2B D6 9D FC 65 F6 EC C4 21 91 80 CD DB 42 A6 0E
-    </para>
-</legalnotice>

Copied: tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/legal_notice.xml (from rev 553, trunk/docs/gettingstarted/src/main/docbook/en-US/content/legal_notice.xml)
===================================================================
--- tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/legal_notice.xml	                        (rev 0)
+++ tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/legal_notice.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ JBoss, Home of Professional Open Source.
+  ~
+  ~ Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
+  ~ indicated by the @author tags or express copyright attribution
+  ~ statements applied by the authors.  All third-party contributions are
+  ~ distributed under license by Red Hat Middleware LLC.
+  ~
+  ~ This copyrighted material is made available to anyone wishing to use, modify,
+  ~ copy, or redistribute it subject to the terms and conditions of the GNU
+  ~ Lesser General Public License, as published by the Free Software Foundation.
+  ~
+  ~ This program is distributed in the hope that it will be useful,
+  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+  ~ or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
+  ~ for more details.
+  ~
+  ~ You should have received a copy of the GNU Lesser General Public License
+  ~ along with this distribution; if not, write to:
+  ~ Free Software Foundation, Inc.
+  ~ 51 Franklin Street, Fifth Floor
+  ~ Boston, MA  02110-1301  USA
+  -->
+<!DOCTYPE legalnotice PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+
+<legalnotice id="Legal_Notice">
+    <title>Legal Notice</title>
+    <para>
+        <address>
+            <street>1801 Varsity Drive</street>
+            <city>Raleigh</city>, <state>NC</state><postcode>27606-2072</postcode><country>USA</country>
+            <phone>Phone: +1 919 754 3700</phone>
+            <phone>Phone: 888 733 4281</phone>
+            <fax>Fax: +1 919 754 3701</fax>
+            <pob>PO Box 13588</pob><city>Research Triangle Park</city>, <state>NC</state><postcode>27709</postcode><country>USA</country>
+        </address>
+    </para>
+    <para>
+        Copyright <trademark class="copyright"/> 2008 by Red Hat, Inc.  This copyrighted material is made available to
+        anyone wishing to use, modify, copy, or redistribute it subject to the terms and conditions of the
+        GNU <ulink url="http://www.gnu.org/licenses/lgpl-2.1.html">Lesser General Public License</ulink>, as published
+        by the Free Software Foundation.
+    </para>
+    <para>
+        Red Hat and the Red Hat "Shadow Man" logo are registered trademarks of Red Hat, Inc. in the United States and other countries.
+    </para>
+    <para>
+        All other trademarks referenced herein are the property of their respective owners.
+    </para>
+    <para>
+        The GPG fingerprint of the security at redhat.com key is:
+    </para>
+    <para>
+        CA 20 86 86 2B D6 9D FC 65 F6 EC C4 21 91 80 CD DB 42 A6 0E
+    </para>
+</legalnotice>

Deleted: tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/understanding_dna.xml
===================================================================
--- trunk/docs/gettingstarted/src/main/docbook/en-US/content/understanding_dna.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/understanding_dna.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,541 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ JBoss, Home of Professional Open Source.
-  ~
-  ~ Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
-  ~ indicated by the @author tags or express copyright attribution
-  ~ statements applied by the authors.  All third-party contributions are
-  ~ distributed under license by Red Hat Middleware LLC.
-  ~
-  ~ This copyrighted material is made available to anyone wishing to use, modify,
-  ~ copy, or redistribute it subject to the terms and conditions of the GNU
-  ~ Lesser General Public License, as published by the Free Software Foundation.
-  ~
-  ~ This program is distributed in the hope that it will be useful,
-  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-  ~ or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-  ~ for more details.
-  ~
-  ~ You should have received a copy of the GNU Lesser General Public License
-  ~ along with this distribution; if not, write to:
-  ~ Free Software Foundation, Inc.
-  ~ 51 Franklin Street, Fifth Floor
-  ~ Boston, MA  02110-1301  USA
-  -->
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="understanding_dna">
-  <title>Understanding JBoss DNA</title>
-  <sect1 id="jboss_dna_overview">
-    <title>Overview</title>
-    <para>JBoss DNA is a repository and set of tools that make it easy to capture, version, analyze, and understand the
-      fundamental building blocks of information. As models, service and process definitions, schemas, source code, and other
-      artifacts are added to the repository, JBoss DNA "sequences" the makeup of these components and extracts their structure
-      and interdependencies. The JBoss DNA web application allows end users to access, visualize, and edit this information in
-      the terminology and structure they are familiar with. Such domain-specific solutions can be easily created with little or
-      no programming.</para>
-    <para> JBoss DNA supports the Java Content Repository (JCR) standard and is able to provide a single integrated view of
-      multiple repositories, external databases, services, and applications, ensuring that JBoss DNA has access to the latest
-      and most reliable master data. For instance, DNA could provide in a single view valuable insight into the business
-      processes and process-level services impacted by a change to in an intermediary web server operation defined via WSDL.
-      Similarly, a user could quickly view and navigate the dependencies between the data source models and transformation
-      information stored within a content repository, the code base stored within a version control system, and the database
-      schemas used by an application.</para>
-  </sect1>
-  <sect1 id="architecture">
-    <title>Architecture</title>
-    <para>The architecture for JBoss DNA consists of several major components that will be built on top of standard APIs,
-      including JCR, JDBC, JNDI and HTTP. The goal is to allow these components to be assembled as needed and add value on top
-      of other DNA components or third-party systems that support these standard APIs.</para>
-    <mediaobject>
-      <imageobject role="fo">
-        <imagedata align="center" fileref="images/dna-architecture.png" />
-      </imageobject>
-      <imageobject role="html">
-        <imagedata align="center" fileref="images/dna-architecture.png" />
-      </imageobject>
-    </mediaobject>
-    <para>
-      As shown in the diagram above, the major components are (starting at the top):
-      <itemizedlist>
-        <listitem>
-          <para>
-            <emphasis role="strong">DNA Eclipse Plugins</emphasis>
-            enable Eclipse users to access the contents of a JBoss DNA repository.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">DNA JDBC Driver</emphasis>
-            provides a driver implementation, allowing JDBC-aware applications to connect to and use a JBoss DNA repository.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">DNA Remote JCR</emphasis>
-            is a client-side component for accessing remote JCR repositories.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">DNA Web Application</emphasis>
-            is used by end users and domain experts to visualize, search, edit, change and tag the repository content. The web
-            application uses views to define how different types of information are to be presented and edited in
-            domain-specific ways. The goal is that this web application is easily customized and branded for inclusion into
-            other solutions and application systems. The DNA Web Application operates upon any JCR-compliant repository,
-            although it does rely upon the DNA analysis and templating services.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">DNA Publishing Server</emphasis>
-            allows content to be downloaded, uploaded, and edited using the Atom Publishing Protocol. With the DNA Publishing
-            Server, the content of the repository can easily be created, read, edited, and deleted using the standard HTTP
-            operations of POST, GET, PUT, and DELETE (respectively). More and more tools are being created that support working
-            with Atom Publishing servers. The DNA Publishing Server operates upon any JCR-compliant repository.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">DNA WebDAV Server</emphasis>
-            allows clients such as Microsoft Windows and Apple OS X to connect to, read, and edit the content in the repository
-            using the WebDAV standard. Since WebDAV is an extension of HTTP, web browsers are able to read (but not modify) the
-            content served by a WebDAV compliant server. The DNA WebDAV Server operates upon any JCR-compliant repository.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">DNA Sequencers</emphasis>
-            are pluggable components that make it possible for content to be uploaded to the repository and automatically
-            processed to extract meaningful structure and place that structure in the repository. Once this information is in
-            the repository, it can be viewed, edited, analyzed, searched, and related to other content. DNA defines a Java
-            interface that sequencers must implement. DNA sequencers operate upon any JCR-compliant repository.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">DNA Analyses</emphasis>
-            are pluggable components that analyze content and the relationships between content to generate reports or to answer
-            queries. DNA will include some standard analyzers, like dependency analysis and similarity analysis, that are
-            commonly needed by many different solutions. DNA analyzers operate upon any JCR-compliant repository.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">DNA Views</emphasis>
-            are definitions of how types of information are to be presented in a user interface to allow for creation, reading,
-            editing, and deletion of information. DNA view definitions consist of data stored in a JCR repository, and as such
-            views can be easily added, changed or removed entirely by using the DNA Web Application, requiring no programming.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">DNA Federation</emphasis>
-            is an implementation of the JCR API that builds the content within the repository by accessing and integrating
-            information from multiple sources. DNA Federation allows the integration of external systems, like other JCR
-            repositories, databases, applications, and services.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">DNA Connectors</emphasis>
-            are used to communicate with these external sources of information. In the federation engine, each source is able to
-            contribute node structure and node properties to any part of the federated graph, although typically many connectors
-            will contribute most of their information to isolated subgraphs. The result is that integration from a wide range of
-            systems can be integrated and accessed through the DNA Web Application, DNA Publishing Server, and DNA WebDAV
-            Server. Connectors also may optionally participate in distributed transactions by exposing an XAResource.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">DNA Maven</emphasis>
-            is a classloader library compatible with Maven 2 project dependencies. This allows the creation of Java ClassLoader
-            instances using Maven 2 style paths, and all dependencies are transitively managed and included.
-          </para>
-        </listitem>
-      </itemizedlist>
-    </para>
-    <para>
-      Continue reading the rest of this chapter for more detail about the
-      <link linkend="sequencers">sequencing framework</link>
-      available in this release, or the
-      <link linkend="federation">federation engine</link>
-      and
-      <link linkend="federation_connectors">connectors</link>
-      that will be the focus of the next release. Or, skip to the
-      <link linkend="downloading_and_running">examples</link>
-      to see how to start using JBoss DNA &versionNumber;
-      today. 
-    </para>
-  </sect1>
-  <sect1 id="sequencers">
-    <title>Sequencing content</title>
-    <para> The current JBoss DNA release contains a sequencing framework that is designed to sequence data (typically files)
-      stored in a JCR repository to automatically extract meaningful and useful information. This additional information is then
-      saved back into the repository, where it can be accessed and used.</para>
-    <para> In other words, you can just upload various kinds of files into a JCR repository, and DNA automatically processes
-      those files to extract meaningful structured information. For example, load DDL files into the repository, and let
-      sequencers extract the structure and metadata for the database schema. Load Hibernate configuration files into the
-      repository, and let sequencers extract the schema and mapping information. Load Java source into the repository, and let
-      sequencers extract the class structure, JavaDoc, and annotations. Load a PNG, JPEG, or other image into the repository,
-      and let sequencers extract the metadata from the image and save it in the repository. The same with XSDs, WSDL, WS
-      policies, UML, MetaMatrix models, etc.</para>
-    <para>
-      JBoss DNA sequencers sit on top of existing JCR repositories (including federated repositories) - they basically extract
-      more useful information from what's already stored in the repository. And they use the existing JCR versioning system. Each
-      sequencer typically processes a single kind of file format or a single kind of content. </para>
-    <para>The following sequencers are included in JBoss DNA:
-      <itemizedlist>
-        <listitem>
-          <para>
-            <emphasis role="strong">Image sequencer</emphasis>
-            - A sequencer that processes the binary content of an image file, extracts the metadata for the image, and then
-            writes that image metadata to the repository. It gets the file format, image resolution, number of bits per pixel
-            (and optionally number of images), comments and physical resolution from JPEG, GIF, BMP, PCX, PNG, IFF, RAS, PBM,
-            PGM, PPM, and PSD files. (This sequencer may be improved in the future to also extract EXIF metadata from JPEG
-            files; see
-            <ulink url="http://jira.jboss.org/jira/browse/DNA-26">DNA-26</ulink>
-            .)
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">MP3 sequencer</emphasis>
-            - A sequencer that processes the contents of an MP3 audio file, extracts the metadata for the file, and then
-            writes that image metadata to the repository. It gets the title, author, album, year, and comment.  
-            (This sequencer may be improved in the future to also extract other ID3 metadata from other audio file formats; see
-            <ulink url="http://jira.jboss.org/jira/browse/DNA-66">DNA-26</ulink>
-            .)
-          </para>
-        </listitem>
-      </itemizedlist>
-    </para>
-    <para>
-      As the community develops additional sequencers, they will also be included in JBoss DNA. Some of those that have been
-      identified as being useful include:
-      <itemizedlist>
-        <listitem>
-          <para>
-            <emphasis role="strong">XML Schema Document (XSD) Sequencer</emphasis>
-            - Process XSD files and extract the various elements, attributes, complex types, simple types, groups, and other
-            information. (See
-            <ulink url="http://jira.jboss.org/jira/browse/DNA-32">DNA-32</ulink>
-            )
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">Web Service Definition Language (WSDL) Sequencer</emphasis>
-            - Process WSDL files and extract the services, bindings, ports, operations, parameters, and other information. (See
-            <ulink url="http://jira.jboss.org/jira/browse/DNA-33">DNA-33</ulink>
-            )
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">Hibernate File Sequencer</emphasis>
-            - Process Hibernate configuration (cfg.xml) and mapping (hbm.xml) files to extract the configuration and mapping
-            information. (See
-            <ulink url="http://jira.jboss.org/jira/browse/DNA-61">DNA-61</ulink>
-            )
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">XML Metadata Interchange (XMI) Sequencer</emphasis>
-            - Process XMI documents that contain UML models or models using another metamodel, extracting the model structure
-            into the repository. (See
-            <ulink url="http://jira.jboss.org/jira/browse/DNA-31">DNA-31</ulink>
-            )
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">ZIP Archive Sequencer</emphasis>
-            - Process ZIP archive files to extract (explode) the contents into the repository. (See
-            <ulink url="http://jira.jboss.org/jira/browse/DNA-63">DNA-63</ulink>
-            )
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">Java Archive (JAR) Sequencer</emphasis>
-            - Process JAR files to extract (explode) the contents into the classes and file resources. (See
-            <ulink url="http://jira.jboss.org/jira/browse/DNA-64">DNA-64</ulink>
-            )
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">Java Class File Sequencer</emphasis>
-            - Process Java class files (bytecode) to extract the class structure (including annotations) into the repository.
-            (See
-            <ulink url="http://jira.jboss.org/jira/browse/DNA-62">DNA-62</ulink>
-            )
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">Java Source File Sequencer</emphasis>
-            - Process Java source files to extract the class structure (including annotations) into the repository. (See
-            <ulink url="http://jira.jboss.org/jira/browse/DNA-51">DNA-51</ulink>
-            )
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">PDF Sequencer</emphasis>
-            - Process PDF files to extract the document metadata, including table of contents. (See
-            <ulink url="http://jira.jboss.org/jira/browse/DNA-50">DNA-50</ulink>
-            )
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">Maven 2 POM Sequencer</emphasis>
-            - Process Maven 2 Project Object Model (POM) files to extract the project information, dependencies, plugins, and
-            other content. (See
-            <ulink url="http://jira.jboss.org/jira/browse/DNA-24">DNA-24</ulink>
-            )
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">Data Definition Language (DDL) Sequencer</emphasis>
-            - Process various dialects of DDL, including that from Oracle, SQL Server, MySQL, PostgreSQL, and others. May need
-            to be split up into a different sequencer for each dialect. (See
-            <ulink url="http://jira.jboss.org/jira/browse/DNA-26">DNA-26</ulink>
-            )
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">MP3 and MP4 Sequencer</emphasis>
-            - Process MP3 and MP4 audio files to extract the name of the song, artist, album, track number, and other metadata.
-            (See
-            <ulink url="http://jira.jboss.org/jira/browse/DNA-30">DNA-30</ulink>
-            )
-          </para>
-        </listitem>
-      </itemizedlist>
-    </para>
-    <para>
-      The
-      <link linkend="using_dna">examples</link>
-      in this book go into more detail about how sequencers are managed and used, and
-      <link linkend="custom_sequencers">Chapter 5</link>
-      goes into detail about how to write custom sequencers.
-    </para>
-  </sect1>
-  <sect1 id="federation">
-    <title>Federating content</title>
-    <para>There is a lot of information stored in many of different places: databases, repositories, SCM systems,
-      registries, file systems, services, etc. The purpose of the federation engine is to allow applications to use the JCR API
-      to access that information as if it were all stored in a single JCR repository, but to really leave the information where
-      it is.</para>
-    <para>Why not just copy or move the information into a JCR repository?  Moving it is probably pretty difficult, since most 
-			likely there are existing applications that rely upon that information being where it is.  All of those applications
-			would break or have to change.  And copying the information means that we'd have to continually synchronize the changes.
-			This not only is a lot of work, but it often creates issues with knowing which information is accurate.
-		</para>
-    <para>The JBoss DNA allows lets us leave the information where it is, yet provide access to that information through
-			the JCR API.  The first benefit is that any existing applications that already use that information can keep using it.
-			Plus, if the underlying information changes, all the client applications see the correct information.  JCR clients
-			even get the benefit of using JCR observation to be notified of the changes.  And if a JBoss DNA repository is
-      configured to allow updates, client applications can change the information in the repository and JBoss DNA will propagate
-      those changes down to the original source.</para>
-    <sect2 id="federation_connectors">
-      <title>Connecting to information sources</title>
-      <para>
-        JBoss DNA uses connectors to interact with different information sources to get at the content
-        in those systems. Some ideas for connectors include:</para>
-      <itemizedlist>
-        <listitem>
-          <para>
-            <emphasis role="strong">In-Memory Connector</emphasis>
-            - Creates a transient, in-memory repository.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">JBoss Cache Connector</emphasis>
-            - Uses a JBoss Cache instance as a repository.  JBoss Cache is a powerful cache capable of persisting the information
- 						and being clustered for concurrent use by multiple processes.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">Federation Connector</emphasis>
-            - Creates a single repository by accessing and federating the information in multiple other repository sources.
-						This is a powerful connector that is discussed in more detail in the <link linkend="federated_repositories">next section</link>.
-          </para>
-        </listitem>
-			</itemizedlist>
-			<para>There are also a number of connectors that are planned:</para>
-      <itemizedlist>
-        <listitem>
-          <para>
-            <emphasis role="strong">JCR Repository Connector</emphasis>
-            - Connect to and interact with other JCR repositories.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">File System Connector</emphasis>
-            - Expose the files and directories on a file system through JCR.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">Maven 2 Repository Connector</emphasis>
-            - Access and expose the contents of a Maven 2 repository (either on the local file system or via HTTP) through
-            JCR.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">JDBC Metadata Connector</emphasis>
-            - Connect to relational databases via JDBC and expose their schema as content in a repository.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">UDDI Connector</emphasis>
-            - Interact with UDDI registries to integrate their content into a repository.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">SVN Connector</emphasis>
-            - Interact with Subversion software configuration management (SCM) repositories to expose the managed resources
-            through JCR. Consider using the
-            <ulink url="http://svnkit.com/">SVNkit</ulink>
-            (dual license) library for an API into Subversion.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">CVS Connector</emphasis>
-            - Interact with CVS software configuration management (SCM) repositories to expose the managed resources through
-            JCR.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">JDBC Storage Connector</emphasis>
-            - Store and access information in a relational database. Also useful for persisting information in the federated
-            repository not stored elsewhere.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">Distributed Database Connector</emphasis>
-            - Store and access information in a
-            <ulink url="http://www.hypertable.org/">Hypertable</ulink>
-            or
-            <ulink url="http://hadoop.apache.org/hbase/">HBase</ulink>
-            distributed databases. Also useful for persisting information in the federated repository not stored elsewhere.
-          </para>
-        </listitem>
-      </itemizedlist>
-      <para>
-        If the connectors allow the information they contribute to be updated, they must provide an
-        <code>XAResource</code>
-        implementation that can be used with a Java Transaction Service. Connectors that provide read-only access need not
-        provide an implementation.
-      </para>
-      <para>
-        Also, connectors talk to
-        <emphasis>sources</emphasis>
-        of information, and it's quite likely that the same connector is used to talk to different sources. Each source contains
-        the configuration details (e.g., connection information, location, properties, options, etc.) for working with that
-        particular source, as well as a reference to the connector that should be used to establish connections to the source.
-        And of course, sources can be added or removed without having to stop and restart the federated repository.
-      </para>
-    </sect2>
-    <sect2 id="federated_repositories">
-      <title>Federated repositories</title>
-      <para> The federation connector works by effectively building up a single graph by querying each source and merging or
-        unifying the responses. This information is cached, which improves performance, reduces the number of (potentially
-        expensive) remote calls, reduces the load on the sources, and helps mitigate problems with source availability. As
-        clients interact with the repository, this cache is consulted first. When the requested portion of the graph (or
-        "subgraph") is contained completely in the cache, it is retuned immediately. However, if any part of the requested
-        subgraph is not in the cache, each source is consulted for their contributions to that subgraph, and any results are
-        cached.</para>
-      <para> This basic flow makes it possible for the federated repository to build up a local cache of the integrated graph
-        (or at least the portions that are used by clients). In fact, the federated repository caches information in a manner
-        that is similar to that of the Domain Name System (DNS). As sources are consulted for their contributions, the source
-        also specifies whether it is the authoritative source for this information (some sources that are themselves federated
-        may not be the information's authority), whether the information may be modified, the time-to-live (TTL) value (the time
-        after which the cached information should be refreshed), and the expiration time (the time after which the cached
-        information is no longer valid). In effect, the source has complete control over how the information it contributes is
-        cached and used.</para>
-      <para>
-        The federated repository also needs to incorporate
-        <emphasis>negative caching</emphasis>
-        , which is storage of the knowledge that something does not exist. Sources can be configured to contribute information
-        only below certain paths (e.g.,
-        <code>/A/B/C</code>
-        ), and the federation engine can take advantage of this by never consulting that source for contributions to information
-        on other paths. However, below that path, any negative responses must also be cached (with appropriate TTL and expiry
-        parameters) to prevent the exclusion of that source (in case the source has information to contribute at a later time)
-        or the frequent checking with the source.
-      </para>
-    </sect2>
-    <sect2 id="federation_queries">
-      <title>Searching and querying</title>
-      <para> The JBoss DNA federated repository will support queries against the integrated and unified graph. In some
-        situations the query can be determined to apply to a single source, but in most situations the query must be planned
-        (and possibly rewritten) such that it can be pushed down to all the appropriate sources. Also, the cached results must
-        be consulted prior to returning the query results, as the results from one source might have contributions from another
-        source.</para>
-      <note>
-        <para> It is hoped that the MetaMatrix query engine can be used for this purpose after it is open-sourced. This engine
-          implements sophisticated query planning and optimization techniques for working efficiently with multiple sources.
-        </para>
-      </note>
-      <para>Searching the whole federated repository is also important. This allows users to simply supply a handful of
-        search terms, and to get results that are ranked based upon how close each result is to the search terms. (Searching is
-        very different from querying, which involves specifying the exact semantics of what is to be searched and how the
-        information is to be compared.) JBoss DNA will incorporate a search engine (e.g., likely to be Lucene) and will populate
-        the engine's indexes using the federated content and the cached information. Notifications of changing information will
-        be reflected in the indexes, but some sources may want to explicitly allow or disallow periodic crawling of their
-        content.</para>
-    </sect2>
-    <sect2 id="federation_updates">
-      <title>Updating content</title>
-      <para>
-        The JBoss DNA federated repositories also make it possible for client applications to make changes to the unified graph
-        within the context of distributed transactions. According to the JCR API, client applications use the Java Transaction
-        API (JTA) to control the boundaries of their transactions. Meanwhile, the federated repository uses a
-        <ulink url="http://www.jboss.org/jbosstm/">distributed transaction service</ulink>
-        to coordinate the XA resources provided by the connectors.
-      </para>
-      <para> It is quite possible that clients add properties to nodes in the unified graph, and that this information cannot be
-        handled by the same underlying source that contributed to the node. In this case, the federated repository can be
-        configured with a fallback source that will be used used to store this "extra" information.</para>
-      <para>
-        It is a goal that non-XA sources (i.e., sources that use connectors without XA resources) can participate in distributed
-        transactions through the use of
-        <emphasis>compensating transactions</emphasis>
-        . Because the JBoss DNA federation engine implements the JCR observation system, it is capable of recording all of the
-        changes made to the distributed graph (and those changes sent to each updatable source). Therefore, if a non-XA source
-        is involved in a distributed transaction that must be rolled back, any changes made to non-XA sources can be undone. (Of
-        course, this does not make the underlying source transactional: non-transactional sources still may expose the interim
-        changes to other clients.)
-      </para>
-    </sect2>
-    <sect2 id="federation_events">
-      <title>Observing changes</title>
-      <para> The JCR API supports observing a repository to receive notifications of additions, changes and deletions of nodes
-        and properties. The JBoss DNA federated repository will support this API through two primary means.</para>
-      <para> When the changes are made through the federated repository, the JBoss DNA federation engine is well aware of the
-        set of changes that have been (or are being) made to the unified graph. These events are directly propagated to
-        listeners.</para>
-      <para> Sources have the ability to publish events, making it possible for the JBoss DNA federation engine and clients that
-        have registered listeners to be notified of changes in the information managed by that source. These events are first
-        processed by the federation engine and possibly altered based upon contributions from other sources. (The federation
-        engine also uses these events to update or purge information in the cache, which may add to the event set.) The
-        resulting (and possibly altered) event set is then sent to all client listeners.</para>
-    </sect2>
-  </sect1>
-</chapter>

Copied: tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/understanding_dna.xml (from rev 553, trunk/docs/gettingstarted/src/main/docbook/en-US/content/understanding_dna.xml)
===================================================================
--- tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/understanding_dna.xml	                        (rev 0)
+++ tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/understanding_dna.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,548 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ JBoss, Home of Professional Open Source.
+  ~
+  ~ Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
+  ~ indicated by the @author tags or express copyright attribution
+  ~ statements applied by the authors.  All third-party contributions are
+  ~ distributed under license by Red Hat Middleware LLC.
+  ~
+  ~ This copyrighted material is made available to anyone wishing to use, modify,
+  ~ copy, or redistribute it subject to the terms and conditions of the GNU
+  ~ Lesser General Public License, as published by the Free Software Foundation.
+  ~
+  ~ This program is distributed in the hope that it will be useful,
+  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+  ~ or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
+  ~ for more details.
+  ~
+  ~ You should have received a copy of the GNU Lesser General Public License
+  ~ along with this distribution; if not, write to:
+  ~ Free Software Foundation, Inc.
+  ~ 51 Franklin Street, Fifth Floor
+  ~ Boston, MA  02110-1301  USA
+  -->
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<chapter id="understanding_dna">
+  <title>Understanding JBoss DNA</title>
+  <sect1 id="jboss_dna_overview">
+    <title>Overview</title>
+    <para>JBoss DNA is a repository and set of tools that make it easy to capture, version, analyze, and understand the
+      fundamental building blocks of information. As models, service and process definitions, schemas, source code, and other
+      artifacts are added to the repository, JBoss DNA "sequences" the makeup of these components and extracts their structure
+      and interdependencies. The JBoss DNA web application allows end users to access, visualize, and edit this information in
+      the terminology and structure they are familiar with. Such domain-specific solutions can be easily created with little or
+      no programming.</para>
+    <para> JBoss DNA supports the Java Content Repository (JCR) standard and is able to provide a single integrated view of
+      multiple repositories, external databases, services, and applications, ensuring that JBoss DNA has access to the latest
+      and most reliable master data. For instance, DNA could provide in a single view valuable insight into the business
+      processes and process-level services impacted by a change to in an intermediary web server operation defined via WSDL.
+      Similarly, a user could quickly view and navigate the dependencies between the data source models and transformation
+      information stored within a content repository, the code base stored within a version control system, and the database
+      schemas used by an application.</para>
+  </sect1>
+  <sect1 id="architecture">
+    <title>Architecture</title>
+    <para>The architecture for JBoss DNA consists of several major components that will be built on top of standard APIs,
+      including JCR, JDBC, JNDI and HTTP. The goal is to allow these components to be assembled as needed and add value on top
+      of other DNA components or third-party systems that support these standard APIs.</para>
+    <mediaobject>
+      <imageobject role="fo">
+        <imagedata align="center" fileref="images/dna-architecture.png" />
+      </imageobject>
+      <imageobject role="html">
+        <imagedata align="center" fileref="images/dna-architecture.png" />
+      </imageobject>
+    </mediaobject>
+    <para>
+      As shown in the diagram above, the major components are (starting at the top):
+      <itemizedlist>
+        <listitem>
+          <para>
+            <emphasis role="strong">DNA Eclipse Plugins</emphasis>
+            enable Eclipse users to access the contents of a JBoss DNA repository.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">DNA JDBC Driver</emphasis>
+            provides a driver implementation, allowing JDBC-aware applications to connect to and use a JBoss DNA repository.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">DNA Remote JCR</emphasis>
+            is a client-side component for accessing remote JCR repositories.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">DNA Web Application</emphasis>
+            is used by end users and domain experts to visualize, search, edit, change and tag the repository content. The web
+            application uses views to define how different types of information are to be presented and edited in
+            domain-specific ways. The goal is that this web application is easily customized and branded for inclusion into
+            other solutions and application systems. The DNA Web Application operates upon any JCR-compliant repository,
+            although it does rely upon the DNA analysis and templating services.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">DNA Publishing Server</emphasis>
+            allows content to be downloaded, uploaded, and edited using the Atom Publishing Protocol. With the DNA Publishing
+            Server, the content of the repository can easily be created, read, edited, and deleted using the standard HTTP
+            operations of POST, GET, PUT, and DELETE (respectively). More and more tools are being created that support working
+            with Atom Publishing servers. The DNA Publishing Server operates upon any JCR-compliant repository.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">DNA WebDAV Server</emphasis>
+            allows clients such as Microsoft Windows and Apple OS X to connect to, read, and edit the content in the repository
+            using the WebDAV standard. Since WebDAV is an extension of HTTP, web browsers are able to read (but not modify) the
+            content served by a WebDAV compliant server. The DNA WebDAV Server operates upon any JCR-compliant repository.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">DNA Sequencers</emphasis>
+            are pluggable components that make it possible for content to be uploaded to the repository and automatically
+            processed to extract meaningful structure and place that structure in the repository. Once this information is in
+            the repository, it can be viewed, edited, analyzed, searched, and related to other content. DNA defines a Java
+            interface that sequencers must implement. DNA sequencers operate upon any JCR-compliant repository.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">DNA Analyses</emphasis>
+            are pluggable components that analyze content and the relationships between content to generate reports or to answer
+            queries. DNA will include some standard analyzers, like dependency analysis and similarity analysis, that are
+            commonly needed by many different solutions. DNA analyzers operate upon any JCR-compliant repository.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">DNA Views</emphasis>
+            are definitions of how types of information are to be presented in a user interface to allow for creation, reading,
+            editing, and deletion of information. DNA view definitions consist of data stored in a JCR repository, and as such
+            views can be easily added, changed or removed entirely by using the DNA Web Application, requiring no programming.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">DNA Repositories</emphasis>
+            is an implementation of the JCR API that builds the content within the repository by accessing and integrating
+            information from one or more sources. 
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">DNA Federation</emphasis>
+            is a special repository connector that accesses information from multiple sources and makes it accessible 
+						as if it were a single repository. DNA Federation allows the integration of external systems, like other JCR
+            repositories, databases, applications, and services.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">DNA Connectors</emphasis>
+            are used to communicate with these external sources of information. In the federation engine, each source is able to
+            contribute node structure and node properties to any part of the federated graph, although typically many connectors
+            will contribute most of their information to isolated subgraphs. The result is that integration from a wide range of
+            systems can be integrated and accessed through the DNA Web Application, DNA Publishing Server, and DNA WebDAV
+            Server. Connectors also may optionally participate in distributed transactions by exposing an XAResource.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">DNA Maven</emphasis>
+            is a classloader library compatible with Maven 2 project dependencies. This allows the creation of Java ClassLoader
+            instances using Maven 2 style paths, and all dependencies are transitively managed and included.
+          </para>
+        </listitem>
+      </itemizedlist>
+    </para>
+    <para>
+      Continue reading the rest of this chapter for more detail about the
+      <link linkend="sequencers">sequencing framework</link>
+      available in this release, or the
+      <link linkend="federation">federation engine</link>
+      and
+      <link linkend="federation_connectors">connectors</link>
+      that will be the focus of the next release. Or, skip to the
+      <link linkend="downloading_and_running">examples</link>
+      to see how to start using JBoss DNA &versionNumber;
+      today. 
+    </para>
+  </sect1>
+  <sect1 id="sequencers">
+    <title>Sequencing content</title>
+    <para> The current JBoss DNA release contains a sequencing framework that is designed to sequence data (typically files)
+      stored in a JCR repository to automatically extract meaningful and useful information. This additional information is then
+      saved back into the repository, where it can be accessed and used.</para>
+    <para> In other words, you can just upload various kinds of files into a JCR repository, and DNA automatically processes
+      those files to extract meaningful structured information. For example, load DDL files into the repository, and let
+      sequencers extract the structure and metadata for the database schema. Load Hibernate configuration files into the
+      repository, and let sequencers extract the schema and mapping information. Load Java source into the repository, and let
+      sequencers extract the class structure, JavaDoc, and annotations. Load a PNG, JPEG, or other image into the repository,
+      and let sequencers extract the metadata from the image and save it in the repository. The same with XSDs, WSDL, WS
+      policies, UML, MetaMatrix models, etc.</para>
+    <para>
+      JBoss DNA sequencers sit on top of existing JCR repositories (including federated repositories) - they basically extract
+      more useful information from what's already stored in the repository. And they use the existing JCR versioning system. Each
+      sequencer typically processes a single kind of file format or a single kind of content. </para>
+    <para>The following sequencers are included in JBoss DNA:
+      <itemizedlist>
+        <listitem>
+          <para>
+            <emphasis role="strong">Image sequencer</emphasis>
+            - A sequencer that processes the binary content of an image file, extracts the metadata for the image, and then
+            writes that image metadata to the repository. It gets the file format, image resolution, number of bits per pixel
+            (and optionally number of images), comments and physical resolution from JPEG, GIF, BMP, PCX, PNG, IFF, RAS, PBM,
+            PGM, PPM, and PSD files. (This sequencer may be improved in the future to also extract EXIF metadata from JPEG
+            files; see
+            <ulink url="http://jira.jboss.org/jira/browse/DNA-26">DNA-26</ulink>
+            .)
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">MP3 sequencer</emphasis>
+            - A sequencer that processes the contents of an MP3 audio file, extracts the metadata for the file, and then
+            writes that image metadata to the repository. It gets the title, author, album, year, and comment.  
+            (This sequencer may be improved in the future to also extract other ID3 metadata from other audio file formats; see
+            <ulink url="http://jira.jboss.org/jira/browse/DNA-66">DNA-26</ulink>
+            .)
+          </para>
+        </listitem>
+      </itemizedlist>
+    </para>
+    <para>
+      As the community develops additional sequencers, they will also be included in JBoss DNA. Some of those that have been
+      identified as being useful include:
+      <itemizedlist>
+        <listitem>
+          <para>
+            <emphasis role="strong">XML Schema Document (XSD) Sequencer</emphasis>
+            - Process XSD files and extract the various elements, attributes, complex types, simple types, groups, and other
+            information. (See
+            <ulink url="http://jira.jboss.org/jira/browse/DNA-32">DNA-32</ulink>
+            )
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">Web Service Definition Language (WSDL) Sequencer</emphasis>
+            - Process WSDL files and extract the services, bindings, ports, operations, parameters, and other information. (See
+            <ulink url="http://jira.jboss.org/jira/browse/DNA-33">DNA-33</ulink>
+            )
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">Hibernate File Sequencer</emphasis>
+            - Process Hibernate configuration (cfg.xml) and mapping (hbm.xml) files to extract the configuration and mapping
+            information. (See
+            <ulink url="http://jira.jboss.org/jira/browse/DNA-61">DNA-61</ulink>
+            )
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">XML Metadata Interchange (XMI) Sequencer</emphasis>
+            - Process XMI documents that contain UML models or models using another metamodel, extracting the model structure
+            into the repository. (See
+            <ulink url="http://jira.jboss.org/jira/browse/DNA-31">DNA-31</ulink>
+            )
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">ZIP Archive Sequencer</emphasis>
+            - Process ZIP archive files to extract (explode) the contents into the repository. (See
+            <ulink url="http://jira.jboss.org/jira/browse/DNA-63">DNA-63</ulink>
+            )
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">Java Archive (JAR) Sequencer</emphasis>
+            - Process JAR files to extract (explode) the contents into the classes and file resources. (See
+            <ulink url="http://jira.jboss.org/jira/browse/DNA-64">DNA-64</ulink>
+            )
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">Java Class File Sequencer</emphasis>
+            - Process Java class files (bytecode) to extract the class structure (including annotations) into the repository.
+            (See
+            <ulink url="http://jira.jboss.org/jira/browse/DNA-62">DNA-62</ulink>
+            )
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">Java Source File Sequencer</emphasis>
+            - Process Java source files to extract the class structure (including annotations) into the repository. (See
+            <ulink url="http://jira.jboss.org/jira/browse/DNA-51">DNA-51</ulink>
+            )
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">PDF Sequencer</emphasis>
+            - Process PDF files to extract the document metadata, including table of contents. (See
+            <ulink url="http://jira.jboss.org/jira/browse/DNA-50">DNA-50</ulink>
+            )
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">Maven 2 POM Sequencer</emphasis>
+            - Process Maven 2 Project Object Model (POM) files to extract the project information, dependencies, plugins, and
+            other content. (See
+            <ulink url="http://jira.jboss.org/jira/browse/DNA-24">DNA-24</ulink>
+            )
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">Data Definition Language (DDL) Sequencer</emphasis>
+            - Process various dialects of DDL, including that from Oracle, SQL Server, MySQL, PostgreSQL, and others. May need
+            to be split up into a different sequencer for each dialect. (See
+            <ulink url="http://jira.jboss.org/jira/browse/DNA-26">DNA-26</ulink>
+            )
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">MP3 and MP4 Sequencer</emphasis>
+            - Process MP3 and MP4 audio files to extract the name of the song, artist, album, track number, and other metadata.
+            (See
+            <ulink url="http://jira.jboss.org/jira/browse/DNA-30">DNA-30</ulink>
+            )
+          </para>
+        </listitem>
+      </itemizedlist>
+    </para>
+    <para>
+      The
+      <link linkend="using_dna">examples</link>
+      in this book go into more detail about how sequencers are managed and used, and
+      <link linkend="custom_sequencers">Chapter 5</link>
+      goes into detail about how to write custom sequencers.
+    </para>
+  </sect1>
+  <sect1 id="federation">
+    <title>JCR and federated repositories</title>
+    <para>There is a lot of information stored in many of different places: databases, repositories, SCM systems,
+      registries, file systems, services, etc. The purpose of the federation engine is to allow applications to use the JCR API
+      to access that information as if it were all stored in a single JCR repository, but to really leave the information where
+      it is.</para>
+    <para>Why not just copy or move the information into a JCR repository?  Moving it is probably pretty difficult, since most 
+			likely there are existing applications that rely upon that information being where it is.  All of those applications
+			would break or have to change.  And copying the information means that we'd have to continually synchronize the changes.
+			This not only is a lot of work, but it often creates issues with knowing which information is accurate.
+		</para>
+    <para>The JBoss DNA allows lets us leave the information where it is, yet provide access to that information through
+			the JCR API.  The first benefit is that any existing applications that already use that information can keep using it.
+			Plus, if the underlying information changes, all the client applications see the correct information.  JCR clients
+			even get the benefit of using JCR observation to be notified of the changes.  And if a JBoss DNA repository is
+      configured to allow updates, client applications can change the information in the repository and JBoss DNA will propagate
+      those changes down to the original source.</para>
+    <sect2 id="repository-connectors">
+      <title>Connecting to information sources</title>
+      <para>
+        JBoss DNA uses connectors to interact with different information sources to get at the content
+        in those systems. Some ideas for connectors include:</para>
+      <itemizedlist>
+        <listitem>
+          <para>
+            <emphasis role="strong">In-Memory Connector</emphasis>
+            - Creates a transient, in-memory repository.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">JBoss Cache Connector</emphasis>
+            - Uses a JBoss Cache instance as a repository.  JBoss Cache is a powerful cache capable of persisting the information
+ 						and being clustered for concurrent use by multiple processes.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">Federation Connector</emphasis>
+            - Creates a single repository by accessing and federating the information in multiple other repository sources.
+						This is a powerful connector that is discussed in more detail in the <link linkend="federated_repositories">next section</link>.
+          </para>
+        </listitem>
+			</itemizedlist>
+			<para>There are also a number of connectors that are planned:</para>
+      <itemizedlist>
+        <listitem>
+          <para>
+            <emphasis role="strong">JCR Repository Connector</emphasis>
+            - Connect to and interact with other JCR repositories.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">File System Connector</emphasis>
+            - Expose the files and directories on a file system through JCR.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">Maven 2 Repository Connector</emphasis>
+            - Access and expose the contents of a Maven 2 repository (either on the local file system or via HTTP) through
+            JCR.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">JDBC Metadata Connector</emphasis>
+            - Connect to relational databases via JDBC and expose their schema as content in a repository.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">UDDI Connector</emphasis>
+            - Interact with UDDI registries to integrate their content into a repository.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">SVN Connector</emphasis>
+            - Interact with Subversion software configuration management (SCM) repositories to expose the managed resources
+            through JCR. Consider using the
+            <ulink url="http://svnkit.com/">SVNkit</ulink>
+            (dual license) library for an API into Subversion.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">CVS Connector</emphasis>
+            - Interact with CVS software configuration management (SCM) repositories to expose the managed resources through
+            JCR.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">JDBC Storage Connector</emphasis>
+            - Store and access information in a relational database. Also useful for persisting information in the federated
+            repository not stored elsewhere.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">Distributed Database Connector</emphasis>
+            - Store and access information in a
+            <ulink url="http://www.hypertable.org/">Hypertable</ulink>
+            or
+            <ulink url="http://hadoop.apache.org/hbase/">HBase</ulink>
+            distributed databases. Also useful for persisting information in the federated repository not stored elsewhere.
+          </para>
+        </listitem>
+      </itemizedlist>
+      <para>
+        If the connectors allow the information they contribute to be updated, they must provide an
+        <code>XAResource</code>
+        implementation that can be used with a Java Transaction Service. Connectors that provide read-only access need not
+        provide an implementation.
+      </para>
+      <para>
+        Also, connectors talk to
+        <emphasis>sources</emphasis>
+        of information, and it's quite likely that the same connector is used to talk to different sources. Each source contains
+        the configuration details (e.g., connection information, location, properties, options, etc.) for working with that
+        particular source, as well as a reference to the connector that should be used to establish connections to the source.
+        And of course, sources can be added or removed without having to stop and restart the federated repository.
+      </para>
+    </sect2>
+    <sect2 id="federated_repositories">
+      <title>Federated repositories</title>
+      <para> The federation connector works by effectively building up a single graph by querying each source and merging or
+        unifying the responses. This information is cached, which improves performance, reduces the number of (potentially
+        expensive) remote calls, reduces the load on the sources, and helps mitigate problems with source availability. As
+        clients interact with the repository, this cache is consulted first. When the requested portion of the graph (or
+        "subgraph") is contained completely in the cache, it is retuned immediately. However, if any part of the requested
+        subgraph is not in the cache, each source is consulted for their contributions to that subgraph, and any results are
+        cached.</para>
+      <para> This basic flow makes it possible for the federated repository to build up a local cache of the integrated graph
+        (or at least the portions that are used by clients). In fact, the federated repository caches information in a manner
+        that is similar to that of the Domain Name System (DNS). As sources are consulted for their contributions, the source
+        also specifies whether it is the authoritative source for this information (some sources that are themselves federated
+        may not be the information's authority), whether the information may be modified, the time-to-live (TTL) value (the time
+        after which the cached information should be refreshed), and the expiration time (the time after which the cached
+        information is no longer valid). In effect, the source has complete control over how the information it contributes is
+        cached and used.</para>
+      <para>
+        The federated repository also needs to incorporate
+        <emphasis>negative caching</emphasis>
+        , which is storage of the knowledge that something does not exist. Sources can be configured to contribute information
+        only below certain paths (e.g.,
+        <code>/A/B/C</code>
+        ), and the federation engine can take advantage of this by never consulting that source for contributions to information
+        on other paths. However, below that path, any negative responses must also be cached (with appropriate TTL and expiry
+        parameters) to prevent the exclusion of that source (in case the source has information to contribute at a later time)
+        or the frequent checking with the source.
+      </para>
+    </sect2>
+    <sect2 id="federation_queries">
+      <title>Searching and querying</title>
+      <para> The JBoss DNA federated repository will support queries against the integrated and unified graph. In some
+        situations the query can be determined to apply to a single source, but in most situations the query must be planned
+        (and possibly rewritten) such that it can be pushed down to all the appropriate sources. Also, the cached results must
+        be consulted prior to returning the query results, as the results from one source might have contributions from another
+        source.</para>
+      <note>
+        <para> It is hoped that the MetaMatrix query engine can be used for this purpose after it is open-sourced. This engine
+          implements sophisticated query planning and optimization techniques for working efficiently with multiple sources.
+        </para>
+      </note>
+      <para>Searching the whole federated repository is also important. This allows users to simply supply a handful of
+        search terms, and to get results that are ranked based upon how close each result is to the search terms. (Searching is
+        very different from querying, which involves specifying the exact semantics of what is to be searched and how the
+        information is to be compared.) JBoss DNA will incorporate a search engine (e.g., likely to be Lucene) and will populate
+        the engine's indexes using the federated content and the cached information. Notifications of changing information will
+        be reflected in the indexes, but some sources may want to explicitly allow or disallow periodic crawling of their
+        content.</para>
+    </sect2>
+    <sect2 id="federation_updates">
+      <title>Updating content</title>
+      <para>
+        The JBoss DNA federated repositories also make it possible for client applications to make changes to the unified graph
+        within the context of distributed transactions. According to the JCR API, client applications use the Java Transaction
+        API (JTA) to control the boundaries of their transactions. Meanwhile, the federated repository uses a
+        <ulink url="http://www.jboss.org/jbosstm/">distributed transaction service</ulink>
+        to coordinate the XA resources provided by the connectors.
+      </para>
+      <para> It is quite possible that clients add properties to nodes in the unified graph, and that this information cannot be
+        handled by the same underlying source that contributed to the node. In this case, the federated repository can be
+        configured with a fallback source that will be used used to store this "extra" information.</para>
+      <para>
+        It is a goal that non-XA sources (i.e., sources that use connectors without XA resources) can participate in distributed
+        transactions through the use of
+        <emphasis>compensating transactions</emphasis>
+        . Because the JBoss DNA federation engine implements the JCR observation system, it is capable of recording all of the
+        changes made to the distributed graph (and those changes sent to each updatable source). Therefore, if a non-XA source
+        is involved in a distributed transaction that must be rolled back, any changes made to non-XA sources can be undone. (Of
+        course, this does not make the underlying source transactional: non-transactional sources still may expose the interim
+        changes to other clients.)
+      </para>
+    </sect2>
+    <sect2 id="federation_events">
+      <title>Observing changes</title>
+      <para> The JCR API supports observing a repository to receive notifications of additions, changes and deletions of nodes
+        and properties. The JBoss DNA federated repository will support this API through two primary means.</para>
+      <para> When the changes are made through the federated repository, the JBoss DNA federation engine is well aware of the
+        set of changes that have been (or are being) made to the unified graph. These events are directly propagated to
+        listeners.</para>
+      <para> Sources have the ability to publish events, making it possible for the JBoss DNA federation engine and clients that
+        have registered listeners to be notified of changes in the information managed by that source. These events are first
+        processed by the federation engine and possibly altered based upon contributions from other sources. (The federation
+        engine also uses these events to update or purge information in the cache, which may add to the event set.) The
+        resulting (and possibly altered) event set is then sent to all client listeners.</para>
+    </sect2>
+  </sect1>
+</chapter>

Deleted: tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/using_dna_repositories.xml
===================================================================
--- trunk/docs/gettingstarted/src/main/docbook/en-US/content/using_dna_repositories.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/using_dna_repositories.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,267 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ JBoss, Home of Professional Open Source.
-  ~
-  ~ Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
-  ~ indicated by the @author tags or express copyright attribution
-  ~ statements applied by the authors.  All third-party contributions are
-  ~ distributed under license by Red Hat Middleware LLC.
-  ~
-  ~ This copyrighted material is made available to anyone wishing to use, modify,
-  ~ copy, or redistribute it subject to the terms and conditions of the GNU
-  ~ Lesser General Public License, as published by the Free Software Foundation.
-  ~
-  ~ This program is distributed in the hope that it will be useful,
-  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-  ~ or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-  ~ for more details.
-  ~
-  ~ You should have received a copy of the GNU Lesser General Public License
-  ~ along with this distribution; if not, write to:
-  ~ Free Software Foundation, Inc.
-  ~ 51 Franklin Street, Fifth Floor
-  ~ Boston, MA  02110-1301  USA
-  -->
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="using_dna_repositories">
-	<title>Using JBoss DNA Repositories</title>
-	<para>As we've mentioned before, one of the capabilities of JBoss DNA is to provide access through 
-		<ulink url="http://www.jcp.org/en/jsr/detail?id=170">JCR</ulink> to different kinds of repositories and storage systems.
-		Your applications work with the JCR API, but through JBoss DNA are able to accesses the content from where the information
-		exists - not just a single purpose-built repository.  This is fundamentally what makes JBoss DNA different.</para>
-	<para>How does JBoss DNA do this?  At the heart of JBoss DNA and it's JCR implementation is a simple graph-based connector
-		system.  Essentially, the JBoss DNA JCR implementation makes use of a single repository source, from which all the
-		content is accessed.  
-		<figure id="dnajcr-and-connector">
-			<title>JBoss DNA's JCR implementation delegates to a repository source</title>
-			<graphic align="center" scale="100" fileref="dnajcr-and-connector.png"/>
-		</figure>
-		That single repository source could be an in-memory repository, a JBoss Cache instance, or a federated repository.
-		<figure id="dna-connectors-0.2">
-			<title>JBoss DNA can put JCR on top of multiple kinds of systems</title>
-			<graphic align="center" scale="100" fileref="dna-connectors-0.2.png"/>
-		</figure>
-  	And the JBoss DNA project has plans to create other connectors, too.  For instance, we're going to build a connector 
-    to other JCR repositories.  And another to a file system, so that the files and directories on an area of the file system
-    can be accessed through JCR.  Of course, if we don't have a connector to suit your needs, you can write your own.
-		<figure id="dna-connectors-future">
-			<title>Future JBoss DNA connectors</title>
-			<graphic align="center" scale="100" fileref="dna-connectors-future.png"/>
-		</figure>
-	</para>
-	<note>
-		<para>You might be thinking that these connectors are interesting, but what do they really provide?  Is it really useful
-		  to use JCR to access a relational database rather than JDBC?  Or, why access the files on a file system when there 
-		  are already mechanisms to do that?</para>
-	  <para>While putting JCR on top of a single system (like a JDBC database) probably isn't that interesting, what
-		  <emphasis>is</emphasis> interesting is accessing the information in multiple systems <emphasis>as if all that information were
-		  in a single JCR repository</emphasis>.  That's what the federated repository source is all about.</para>
-		<para>Think of it this way: use JCR to get to the schemas of multiple relational databases <emphasis>and</emphasis> the schemas
-		  defined by DDL files in your SVN repository <emphasis>and</emphasis> the schemas defined by logical models stored on your file system.
-		</para>
-	</note>
-	<para>So with this very high-level summary, let's dive a little deeper and look at how to configure and use JBoss DNA and JCR.</para>
-	<sect1 id="repository_service">
-		<title>Configuring the Repository Service</title>
-		<para>The JBoss DNA <emphasis>repository service</emphasis> is the component that manages the <emphasis>repositories</emphasis>
-		  and connections to them.  The service reads its configuration from a <code>RepositorySource</code> instance (i.e., the
-		  "configuration repository") and automatically sets up the repositories given the <code>RepositorySource</code> instances
-		  found in the configuration repository.</para>
-		<note>
-			<para>Configuring JBoss DNA services is a bit more manual than is ideal. As you'll see, JBoss DNA uses dependency
-	      injection to allow a great deal of flexibility in how it can be configured and customized. But this flexibility
-	      makes it more difficult for you to use.  We understand this, and will soon provide a much easier way to set up 
-				and manage JBoss DNA.  Current plans are to use the <ulink url="http://www.jboss.org/jbossmc">JBoss Microcontainer</ulink>
-				along with a configuration repository.</para>
-		</note>
-		<para>To set up the repository service, we need to first set up a few other objects:
-			<itemizedlist>
-				<listitem>
-					<para>A <emphasis>factory for execution contexts</emphasis>.  Execution contexts define the context (or environment) 
-					    in which the service runs and in which operations against repositories are performed.  <code>ExecutionContext</code>
-					    instances can be created using JAAS application contexts, meaning that they contain the information about the subject
-					    that the software represents.  Execution contexts also provide access to the all of the factories and utilities
-					    used throughout the services and components, and it is through this mechanism that you can inject your own behavior.
-							For example, if your application already had a notion of namespaces, you could override the execution context's
-							<code>NamespaceRegistry</code> to use the namespaces defined in your application.</para>
-				</listitem>
-				<listitem>
-					<para>A <emphasis>repository library</emphasis> that manages the list of <code>RepositorySource</code> instances.
-					    The library makes sure to inject the environments into each repository source, and it provides for each source
-					    a configurable pool of connections.</para>
-				</listitem>
-				<listitem>
-					<para>A <emphasis>configuration repository</emphasis> that contains descriptions of all of the repository sources
-					    as well as any information those sources need.  Because this is a regular repository, this could be a simple 
-					    repository with content loaded from an XML file (as in this example).  Or it could be a shared
-					    central repository with information about all of the JBoss DNA processes across your company.</para>
-				</listitem>
-			</itemizedlist>
-			With these components in place, we can then instantiate the <code>RepositoryService</code> and start it (using its
-			<code>ServiceAdministrator</code>).  During startup, the service reads the configuration repository and loads any
-			defined <code>RepositorySource</code> instances into the repository library, using the class loader factory 
-			(available in the <code>ExecutionContext</code>) to obtain.
-    </para>
-		<para>Here's sample code that shows how to set up and start the repository service.  You can see something similar
-			in the example application in the <code>startRepositories()</code> method of the <code>org.jboss.example.dna.repository.RepositoryClient</code> class.</para>
-    <programlisting role="JAVA"><![CDATA[
-  // Create the factory for execution contexts.
-  ExecutionContextFactory contextFactory = new BasicExecutionContextFactory();
-
-  // Create the execution context that we'll use for the services. If we'd want to use JAAS, we'd 
-  // create the context by supplying LoginContext, AccessControlContext, or even Subject with 
-  // CallbackHandlers. But this example doesn't use JAAS in this example.
-  ExecutionContext context = contextFactory.create();
-
-  // Create the library for the RepositorySource instances ...
-  RepositoryLibrary sources = new RepositoryLibrary(contextFactory);
-
-  // Load into the source manager the repository source for the configuration repository ...
-  InMemoryRepositorySource configSource = new InMemoryRepositorySource();
-  configSource.setName("Configuration");
-  sources.addSource(configSource);
-
-  // Now instantiate the Repository Service ...
-  RepositoryService service = new RepositoryService(sources, configSource.getName(), context);
-  service.getAdministrator().start();
- ]]></programlisting>
-		<para>After startup completes, the repositories are ready to be used.  The client application obtains the list of repositories
-			and presents them to the user.  When the user selects one, the client application starts navigating that repository
-			starting at its root node (e.g., the "/" path).  As you type a command to list the contents of the current node or to
-			"change directories" to a different node, the client application obtains the information for the node using a simple
-			procedure:
-			<orderedlist>
-				<listitem>
-					<para>Get a connection to the repository.</para>
-				</listitem>
-				<listitem>
-					<para>Using the connection, find the current node and read its properties and children, putting the information
-						into a simple Java plain old Java object (POJO).</para>
-				</listitem>
-				<listitem>
-					<para>Close the connection to the repository (in a finally block to ensure it always happens).</para>
-				</listitem>
-			</orderedlist>
-		</para>
-		<sect2 id="using_jcr_with_dna">
-			<title>Using JCR to read repository</title>
-			<para>If we want to perform these steps using JCR, a JCR <code>Session</code> represents our connection.
-			  So after we create a <code>JcrRepository</code> instance pointing to our repository library, we can 
-			  then login to obtain a JCR session:</para>
-      <programlisting role="JAVA"><![CDATA[
-	JcrRepository jcrRepository = new JcrRepository(contextFactory, sources);
-	Session session = jcrRepository.login(sourceName);
- ]]></programlisting>
-			<para>Now, the above code doesn't do any authentication; it essentially trusts the caller has the appropriate privileges.
-				Normally, your application will need to authenticate the user, so let's look at how that's done.</para>
-			<para>JBoss DNA uses the <ulink url="http://java.sun.com/j2se/1.5.0/docs/guide/security/jaas/tutorials/GeneralAcnOnly.html">Java 
-				Authentication and Authorization Service (JAAS)</ulink>, making it possible to use any existing JAAS security provider.</para>
-			<note>
-				<para>There are numerous JAAS providers, but one of the best open-source implementations is 
-					<ulink url="http://www.jboss.org/jbosssecurity/">JBoss Security</ulink>, which can authenticate using LDAP, certificates,
-					the operating system, and federated SSO (among others).</para>
-			</note>
-			<para>The JCR API defines a <code>Credentials</code> marker interface, an instance of which can be passed to the
-			  <code>Session.login(...)</code> method.  Rather than provide a concrete implementation of this interface, JBoss DNA
-			  allows you to pass any implementation of <code>Credentials</code> that also has one of the following methods:
-			  <itemizedlist>
-				  <listitem>
-						<para><code>getLoginContext()</code> that returns a <code>javax.security.auth.login.LoginContext</code> instance.</para>
-					</listitem>
-				  <listitem>
-						<para><code>getAccessControlContext()</code> that returns a <code>java.security.AccessControlContext</code> instance.</para>
-					</listitem>
-				</itemizedlist>
-				This way, your application can obtain the JAAS <code>LoginContext</code> or <code>AccessControlContext</code> however it wants,
-				and then merely passes that into DNA through the JCR <code>Credentials</code>.  No interfaces or classes specific to JBoss DNA are required.
-			</para>
-			<para>The following code shows how this is done, using an anonymous inner class for the <code>Credentials</code> implementation.</para>
-      <programlisting role="JAVA"><![CDATA[
-  CallbackHandler callbackHandler = // as needed by your app, according to JAAS
-  final LoginContext loginContext = new LoginContext("MyAppContextName",callbackHandler);
-  Credentials credentials = new Credentials() {
-			public LoginContext getLoginContext() { return loginContext; }
-  };
-  JcrRepository jcrRepository = new JcrRepository(contextFactory, sources);
-  Session session = jcrRepository.login(credentials, sourceName);
- ]]></programlisting>
-			<para>Once you have a JCR session, you can then use it to find the node of interest and access the necessary information. All of this
-				code will use only the JCR API - there's nothing specific to JBoss DNA's implementation.  And remember, when you're finished with
-				the session, be sure to logout (usually in a <code>finally</code> block):</para>
- <programlisting role="JAVA"><![CDATA[
-  if (session != null) session.logout();
- ]]></programlisting>
-			<para>Like many people recommend with JCR, you can create either long-lived or short-lived JCR <code>Session</code>s.  The
-			  JBoss DNA implementation of JCR was designed to efficiently do either.</para>
-		</sect2>	
-		<sect2 id="using_dna_repositories_with_dna_api">
-			<title>Using JBoss DNA's API to read repository</title>
-			<para>Although we recommend using JCR, JBoss DNA has an internal command-based API that completely side-steps JCR and provides
-				very simple graph-based operations.  For more information, see the <code>RepositoryClient</code> class in the example.</para>
-			<note>
-				<para>This API is likely to undergo changes in the next few releases, and using it at this time is not suggested.</para>
-			</note>
-		</sect2>
-	</sect1>
-	<sect1 id="shutting_down_repository_service">
-		<title>Shutting down the Repository Service</title>
-		<para>In the first part of this chapter, we saw how to instantiate, configure, and start the <code>RepositoryService</code>.
-		  We then saw how to use JCR to access the repository service by creating JCR <code>Session</code>s, and how to log out of those
-		  sessions when no longer needed.</para>
-		<para>In this short section we'll see how to shut down the <code>RepositoryService</code> and <code>RepositoryLibrary</code>
-		  when you're finished with all of the repositories.  It's a simple but important step, since this closes all outstanding 
-		  connections that may be sitting unused in the library's connection pools.</para>
-		<para>Shutting down these components is very straightforward: get the <code>ServiceAdministrator</code> on each, and call <code>shutdown()</code>.</para>
-		<programlisting role="JAVA"><![CDATA[
-  // Shut down the repository service ...
-  repositoryService.getAdministrator().shutdown();
-
-  // Shut down the manager of the RepositorySource instances, waiting until all connections are closed
-  sources.getAdministrator().shutdown();
-  sources.getAdministrator().awaitTermination(1, TimeUnit.SECONDS);
- ]]></programlisting>
-		<para>The <code>shutdown()</code> method attempts to close all open and unused resources (such as open and unused connections in the pool).
-		  No more connections can be created, and any connections that are currently in use are not closed but allowed to be used and closed normally.
-		  When the last connection is used, the service then transitions to a <emphasis>terminated</emphasis> state, which you can wait for using
-		  the <code>awaitTermination(int,TimeUnit)</code> method.</para>
-		<para>If you want to shutdown the services immediately, then you could call <code>shutdownNow()</code>, which blocks while it attempts to immediately
-		  close all connections - <emphasis>even those currently in use</emphasis>.  So, while you generally want to use <code>shutdown()</code>,
-		  it is good to be aware that this <code>shutdownNow()</code> method does exist.</para>
-	</sect1>
-	<sect1 id="example_repository_application_review">
-		<title>Reviewing the example repository application</title>
-		<para>Recall that the example repository application consists of a client application that sets up a repository service and the
-			repositories defined in a configuration repository, allowing the user to pick a repository and interactively navigate
-			the selected repository.  Several repositories are set up, including several in-memory repositories and one federated repository
-			that dynamically federates the content from the other repositories.</para>
-		<para>
-      The example is comprised of 2 classes and 1 interface, located in the <code>src/main/java</code> directory:</para>
-    <programlisting><![CDATA[
-  org/jboss/example/dna/repositories/ConsoleInput.java
-                                    /RepositoryClient.java
-                                    /UserInterface.java
-  ]]></programlisting>
-		<para><code>RepositoryClient</code> is the class that contains the main application. It uses an instance of the
-      <code>UserInterface</code> interface to  methods that will be called at runtime to obtain information about the
-      files that are imported into the in-memory repositories and the JAAS <code>CallbackHandler</code> implementation
-      that will be used by JAAS to prompt the user for authentication information.  Finally, the <code>ConsoleInput</code>
-			is an implementation of this that creates a text user interface,	allowing the user to operate the client from the command-line.  
-			We can easily create a graphical implementation of <code>UserInterface</code> at a later date, or we can also create a mock 
-			implementation for testing purposes that simulates a user entering data. This allows us to check the behavior of the client 
-			automatically using conventional JUnit test cases, as demonstrated by the code in the <code>src/test/java</code> directory:</para>
-    <programlisting><![CDATA[
-  org/jboss/example/dna/sequencers/RepositoryClientTest.java
-                                  /RepositoryClientUsingJcrTest.java
-  ]]></programlisting>
-		<para>The code we presented earlier in this chapter represent the bulk of the JBoss DNA and JCR-specific code used in the
-			<code>RepositoryClient</code>, so we won't cover it in more detail here.  If you want to see that detail, please refer
-			to the sample client code.</para>
-	</sect1>
-	<sect1 id="using_dna_repositories_review">
-		<title>Summarizing what we just did</title>
-		<para>In this chapter we covered the different JBoss DNA components used for accessing repositories through JCR, including
-			repositories that federate their content from the content of other repositories.  Specifically, we described how the
-			<code>RepositoryService</code> and <code>JcrRepository</code> can be configured and used.</para>
-	</sect1>
-</chapter>
-	

Copied: tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/using_dna_repositories.xml (from rev 553, trunk/docs/gettingstarted/src/main/docbook/en-US/content/using_dna_repositories.xml)
===================================================================
--- tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/using_dna_repositories.xml	                        (rev 0)
+++ tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/content/using_dna_repositories.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,274 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ JBoss, Home of Professional Open Source.
+  ~
+  ~ Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
+  ~ indicated by the @author tags or express copyright attribution
+  ~ statements applied by the authors.  All third-party contributions are
+  ~ distributed under license by Red Hat Middleware LLC.
+  ~
+  ~ This copyrighted material is made available to anyone wishing to use, modify,
+  ~ copy, or redistribute it subject to the terms and conditions of the GNU
+  ~ Lesser General Public License, as published by the Free Software Foundation.
+  ~
+  ~ This program is distributed in the hope that it will be useful,
+  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+  ~ or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
+  ~ for more details.
+  ~
+  ~ You should have received a copy of the GNU Lesser General Public License
+  ~ along with this distribution; if not, write to:
+  ~ Free Software Foundation, Inc.
+  ~ 51 Franklin Street, Fifth Floor
+  ~ Boston, MA  02110-1301  USA
+  -->
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<chapter id="using_dna_repositories">
+	<title>Using JBoss DNA Repositories</title>
+	<para>One of the capabilities of JBoss DNA is to provide access through 
+		<ulink url="http://www.jcp.org/en/jsr/detail?id=170">JCR</ulink> to different kinds of repositories and storage systems.
+		Your applications work with the JCR API, but through JBoss DNA you're able to accesses the content from where the information
+		exists - not just a single purpose-built repository.  This is fundamentally what makes JBoss DNA different.</para>
+	<para>How does JBoss DNA do this?  At the heart of JBoss DNA and it's JCR implementation is a simple connector
+		system that is designed around creating and accessing graphs.  The JBoss DNA JCR implementation actually just sits on
+		top of a single repository source, which it uses to access of the repositories content.
+		<figure id="dnajcr-and-connector">
+			<title>JBoss DNA's JCR implementation delegates to a repository source</title>
+			<graphic align="center" scale="100" fileref="dnajcr-and-connector.png"/>
+		</figure>
+		That single repository source could be an in-memory repository, a JBoss Cache instance, or a federated repository.
+		<figure id="dna-connectors-0.2">
+			<title>JBoss DNA can put JCR on top of multiple kinds of systems</title>
+			<graphic align="center" scale="100" fileref="dna-connectors-0.2.png"/>
+		</figure>
+  	And the JBoss DNA project has plans to create other connectors, too.  For instance, we're going to build a connector 
+    to other JCR repositories.  And another to a file system, so that the files and directories on an area of the file system
+    can be accessed through JCR.  Of course, if we don't have a connector to suit your needs, you can write your own.
+		<figure id="dna-connectors-future">
+			<title>Future JBoss DNA connectors</title>
+			<graphic align="center" scale="100" fileref="dna-connectors-future.png"/>
+		</figure>
+	</para>
+	<note>
+		<para>You might be thinking that these connectors are interesting, but what do they really provide?  Is it really useful
+		  to use JCR to access a relational database rather than JDBC?  Or, why access the files on a file system when there 
+		  are already mechanisms to do that?</para>
+	  <para>Maybe putting JCR on top of a single system (like a JDBC database) isn't that interesting. What
+		  <emphasis>is</emphasis> interesting, though, is accessing the information in multiple systems <emphasis>as if all that information were
+		  in a single JCR repository</emphasis>.  That's what the federated repository source is all about.  The JBoss DNA connector
+			system just makes it possible to interact with all these systems in the same way.</para>
+		<para>Think of it this way: with JBoss DNA, you can use JCR to get to the schemas of multiple relational databases <emphasis>and</emphasis> the schemas
+		  defined by DDL files in your SVN repository <emphasis>and</emphasis> the schemas defined by logical models stored on your file system.
+		</para>
+	</note>
+	<para>So with this very high-level summary, let's dive a little deeper and look at how to configure and use JBoss DNA and JCR.</para>
+	<sect1 id="repository_service">
+		<title>Configuring the Repository Service</title>
+		<para>The JBoss DNA <emphasis>repository service</emphasis> is the component that manages the <emphasis>repositories</emphasis>
+		  and connections to them.  The service reads its configuration from a <code>RepositorySource</code> instance (i.e., the
+		  "configuration repository") and automatically sets up the repositories given the <code>RepositorySource</code> instances
+		  found in the configuration repository.</para>
+		<note>
+			<para>Configuring JBoss DNA services is more manual and complex than we want. As you'll see, JBoss DNA uses dependency
+	      injection to allow a great deal of flexibility in how it can be configured and customized. But this flexibility
+	      makes it more difficult for you to use.  We understand this, and will soon provide a much easier way to set up 
+				and manage JBoss DNA.  Current plans are to use the <ulink url="http://www.jboss.org/jbossmc">JBoss Microcontainer</ulink>
+				along with a configuration repository that makes it very easy to set up and manage JBoss DNA, whether it's used in
+				a simple application or a cluster of processes.</para>
+		</note>
+		<para>To set up the repository service, we need to first set up a few other objects:
+			<itemizedlist>
+				<listitem>
+					<para>A <emphasis>factory for execution contexts</emphasis>.  Execution contexts define the context (or environment) 
+					    in which the service runs and in which operations against repositories are performed.  <code>ExecutionContext</code>
+					    instances can be created using JAAS application contexts, meaning that they contain the information about the subject
+					    that the software represents.  Execution contexts also provide access to the all of the factories and utilities
+					    used throughout the services and components, and it is through this mechanism that you can inject your own behavior.
+							For example, if your application already had a notion of namespaces, you could override the execution context's
+							<code>NamespaceRegistry</code> to use the namespaces defined in your application.</para>
+				</listitem>
+				<listitem>
+					<para>A <emphasis>repository library</emphasis> that manages the list of <code>RepositorySource</code> instances.
+					    The library makes sure to inject the environments into each repository source, and it provides for each source
+					    a configurable pool of connections.</para>
+				</listitem>
+				<listitem>
+					<para>A <emphasis>configuration repository</emphasis> that contains descriptions of all of the repository sources
+					    as well as any information those sources need.  Because this is a regular repository, this could be a simple 
+					    repository with content loaded from an XML file (as in this example).  Or it could be a shared
+					    central repository with information about all of the JBoss DNA processes across your company.</para>
+				</listitem>
+			</itemizedlist>
+			With these components in place, we can then instantiate the <code>RepositoryService</code> and start it (using its
+			<code>ServiceAdministrator</code>).  During startup, the service reads the configuration repository and loads any
+			defined <code>RepositorySource</code> instances into the repository library, using the class loader factory 
+			(available in the <code>ExecutionContext</code>) to obtain.
+    </para>
+		<para>Here's sample code that shows how to set up and start the repository service.  You can see something similar
+			in the example application in the <code>startRepositories()</code> method of the <code>org.jboss.example.dna.repository.RepositoryClient</code> class.</para>
+    <programlisting role="JAVA"><![CDATA[
+  // Create the factory for execution contexts.
+  ExecutionContextFactory contextFactory = new BasicExecutionContextFactory();
+
+  // Create the execution context that we'll use for the services. If we'd want to use JAAS, we'd 
+  // create the context by supplying LoginContext, AccessControlContext, or even Subject with 
+  // CallbackHandlers. But this example doesn't use JAAS in this example.
+  ExecutionContext context = contextFactory.create();
+
+  // Create the library for the RepositorySource instances ...
+  RepositoryLibrary sources = new RepositoryLibrary(contextFactory);
+
+  // Load into the source manager the repository source for the configuration repository ...
+  InMemoryRepositorySource configSource = new InMemoryRepositorySource();
+  configSource.setName("Configuration");
+  sources.addSource(configSource);
+
+  // Now instantiate the Repository Service ...
+  RepositoryService service = new RepositoryService(sources, configSource.getName(), context);
+  service.getAdministrator().start();
+ ]]></programlisting>
+		<para>After startup completes, the repositories are ready to be used.  The client application obtains the list of repositories
+			and presents them to the user.  When the user selects one, the client application starts navigating that repository
+			starting at its root node (e.g., the "/" path).  As you type a command to list the contents of the current node or to
+			"change directories" to a different node, the client application obtains the information for the node using a simple
+			procedure:
+			<orderedlist>
+				<listitem>
+					<para>Get a connection to the repository.</para>
+				</listitem>
+				<listitem>
+					<para>Using the connection, find the current node and read its properties and children, putting the information
+						into a simple Java plain old Java object (POJO).</para>
+				</listitem>
+				<listitem>
+					<para>Close the connection to the repository (in a finally block to ensure it always happens).</para>
+				</listitem>
+			</orderedlist>
+		</para>
+		<sect2 id="using_jcr_with_dna">
+			<title>Using JCR to read repository</title>
+			<para>If we want to perform these steps using JCR, a JCR <code>Session</code> represents our connection.
+			  So after we create a <code>JcrRepository</code> instance pointing to our repository library, we can 
+			  then login to obtain a JCR session:</para>
+      <programlisting role="JAVA"><![CDATA[
+	JcrRepository jcrRepository = new JcrRepository(contextFactory, sources);
+	Session session = jcrRepository.login(sourceName);
+ ]]></programlisting>
+			<para>Now, the above code doesn't do any authentication; it essentially trusts the caller has the appropriate privileges.
+				Normally, your application will need to authenticate the user, so let's look at how that's done.</para>
+			<para>JBoss DNA uses the <ulink url="http://java.sun.com/j2se/1.5.0/docs/guide/security/jaas/tutorials/GeneralAcnOnly.html">Java 
+				Authentication and Authorization Service (JAAS)</ulink>, making it possible to use any existing JAAS security provider.
+				There are numerous JAAS providers, but one of the best open-source implementations is 
+				<ulink url="http://www.jboss.org/jbosssecurity/">JBoss Security</ulink>, which can authenticate using LDAP, certificates,
+				the operating system, and federated single-sign-on (among others).
+			</para>
+			<para>
+				The JCR API defines a <code>Credentials</code> marker interface, an instance of which can be passed to the
+			  <code>Session.login(...)</code> method.  Rather than provide a concrete implementation of this interface, JBoss DNA
+			  allows you to pass any implementation of <code>Credentials</code> that also has one of the following methods:
+			  <itemizedlist>
+				  <listitem>
+						<para><code>getLoginContext()</code> that returns a <code>javax.security.auth.login.LoginContext</code> instance.</para>
+					</listitem>
+				  <listitem>
+						<para><code>getAccessControlContext()</code> that returns a <code>java.security.AccessControlContext</code> instance.</para>
+					</listitem>
+				</itemizedlist>
+				This way, your application can obtain the JAAS <code>LoginContext</code> or <code>AccessControlContext</code> however it wants,
+				and then merely passes that into DNA through the JCR <code>Credentials</code>.  No interfaces or classes specific to JBoss DNA are required.
+			</para>
+			<para>The following code shows how this is done, using an anonymous inner class for the <code>Credentials</code> implementation.</para>
+      <programlisting role="JAVA"><![CDATA[
+  CallbackHandler callbackHandler = // as needed by your app, according to JAAS
+  final LoginContext loginContext = new LoginContext("MyAppContextName",callbackHandler);
+  Credentials credentials = new Credentials() {
+			public LoginContext getLoginContext() { return loginContext; }
+  };
+  JcrRepository jcrRepository = new JcrRepository(contextFactory, sources);
+  Session session = jcrRepository.login(credentials, sourceName);
+ ]]></programlisting>
+			<para>Once you have a JCR session, you can then use it to find the node of interest and access the necessary information. All of this
+				code will use only the JCR API - there's nothing specific to JBoss DNA's implementation.  And remember, when you're finished with
+				the session, be sure to logout (usually in a <code>finally</code> block):</para>
+ <programlisting role="JAVA"><![CDATA[
+  if (session != null) session.logout();
+ ]]></programlisting>
+			<para>Like many people recommend with JCR, you can create either long-lived or short-lived JCR <code>Session</code>s.  The
+			  JBoss DNA implementation of JCR was designed to efficiently do either.</para>
+		</sect2>	
+		<!--
+		<sect2 id="using_dna_repositories_with_dna_api">
+			<title>Using JBoss DNA's API to read repository</title>
+			<para>Although we recommend using JCR, JBoss DNA has an internal command-based API that completely side-steps JCR and provides
+				very simple graph-based operations.  For more information, see the <code>RepositoryClient</code> class in the example.</para>
+			<note>
+				<para>This API is likely to undergo changes in the next few releases, and using it at this time is not suggested.</para>
+			</note>
+		</sect2>
+		-->
+	</sect1>
+	<sect1 id="shutting_down_repository_service">
+		<title>Shutting down the Repository Service</title>
+		<para>In the first part of this chapter, we saw how to instantiate, configure, and start the <code>RepositoryService</code>.
+		  We then saw how to use JCR to access the repository service by creating JCR <code>Session</code>s, and how to log out of those
+		  sessions when no longer needed.</para>
+		<para>In this short section we'll see how to shut down the <code>RepositoryService</code> and <code>RepositoryLibrary</code>
+		  when you're finished with all of the repositories.  It's a simple but important step, since this closes all outstanding 
+		  connections that may be sitting unused in the library's connection pools.</para>
+		<para>Shutting down these components is very straightforward: get the <code>ServiceAdministrator</code> on each, and call <code>shutdown()</code>.</para>
+		<programlisting role="JAVA"><![CDATA[
+  // Shut down the repository service ...
+  repositoryService.getAdministrator().shutdown();
+
+  // Shut down the manager of the RepositorySource instances, waiting until all connections are closed
+  sources.getAdministrator().shutdown();
+  sources.getAdministrator().awaitTermination(1, TimeUnit.SECONDS);
+ ]]></programlisting>
+		<para>The <code>shutdown()</code> method attempts to close all open and unused resources (such as open and unused connections in the pool).
+		  No more connections can be created, and any connections that are currently in use are not closed but allowed to be used and closed normally.
+		  When the last connection is used, the service then transitions to a <emphasis>terminated</emphasis> state, which you can wait for using
+		  the <code>awaitTermination(int,TimeUnit)</code> method.</para>
+		<para>If you want to shutdown the services immediately, then you could call <code>shutdownNow()</code>, which blocks while it attempts to immediately
+		  close all connections - <emphasis>even those currently in use</emphasis>.  So, while you generally want to use <code>shutdown()</code>,
+		  it is good to be aware that this <code>shutdownNow()</code> method does exist.</para>
+	</sect1>
+	<sect1 id="example_repository_application_review">
+		<title>Reviewing the example repository application</title>
+		<para>Recall that the example repository application consists of a client application that sets up a repository service and the
+			repositories defined in a configuration repository, allowing the user to pick a repository and interactively navigate
+			the selected repository.  Several repositories are set up, including several in-memory repositories and one federated repository
+			that dynamically federates the content from the other repositories.</para>
+		<para>
+      The example is comprised of 2 classes and 1 interface, located in the <code>src/main/java</code> directory:</para>
+    <programlisting><![CDATA[
+  org/jboss/example/dna/repositories/ConsoleInput.java
+                                    /RepositoryClient.java
+                                    /UserInterface.java
+  ]]></programlisting>
+		<para><code>RepositoryClient</code> is the class that contains the main application. It uses an instance of the
+      <code>UserInterface</code> interface to  methods that will be called at runtime to obtain information about the
+      files that are imported into the in-memory repositories and the JAAS <code>CallbackHandler</code> implementation
+      that will be used by JAAS to prompt the user for authentication information.  Finally, the <code>ConsoleInput</code>
+			is an implementation of this that creates a text user interface,	allowing the user to operate the client from the command-line.  
+			We can easily create a graphical implementation of <code>UserInterface</code> at a later date, or we can also create a mock 
+			implementation for testing purposes that simulates a user entering data. This allows us to check the behavior of the client 
+			automatically using conventional JUnit test cases, as demonstrated by the code in the <code>src/test/java</code> directory:</para>
+    <programlisting><![CDATA[
+  org/jboss/example/dna/sequencers/RepositoryClientTest.java
+                                  /RepositoryClientUsingJcrTest.java
+  ]]></programlisting>
+		<para>
+			The code we presented earlier in this chapter represent the bulk of the JBoss DNA and JCR-specific code used in the
+			<code>RepositoryClient</code>, so we won't cover it in any more detail here.  Please refer to the sample client code
+			if you want to see more.
+		</para>
+	</sect1>
+	<sect1 id="using_dna_repositories_review">
+		<title>Summarizing what we just did</title>
+		<para>In this chapter we covered the different JBoss DNA components used for accessing repositories through JCR, including
+			repositories that federate their content from the content of other repositories.  Specifically, we described how the
+			<code>RepositoryService</code> and <code>JcrRepository</code> can be configured and used.
+		</para>
+	</sect1>
+</chapter>
+	

Deleted: tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/master.xml
===================================================================
--- trunk/docs/gettingstarted/src/main/docbook/en-US/master.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/master.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ JBoss, Home of Professional Open Source.
-  ~
-  ~ Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
-  ~ indicated by the @author tags or express copyright attribution
-  ~ statements applied by the authors.  All third-party contributions are
-  ~ distributed under license by Red Hat Middleware LLC.
-  ~
-  ~ This copyrighted material is made available to anyone wishing to use, modify,
-  ~ copy, or redistribute it subject to the terms and conditions of the GNU
-  ~ Lesser General Public License, as published by the Free Software Foundation.
-  ~
-  ~ This program is distributed in the hope that it will be useful,
-  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-  ~ or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-  ~ for more details.
-  ~
-  ~ You should have received a copy of the GNU Lesser General Public License
-  ~ along with this distribution; if not, write to:
-  ~ Free Software Foundation, Inc.
-  ~ 51 Franklin Street, Fifth Floor
-  ~ Boston, MA  02110-1301  USA
-  -->
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY versionNumber "0.3">
-<!ENTITY copyrightYear "2008">
-<!ENTITY copyrightHolder "Red Hat Middleware, LLC.">
-]>
-<book lang="en">
-	<bookinfo>
-		<title>JBoss DNA</title>
-		<subtitle>Getting Started Guide</subtitle>
-		<releaseinfo>&versionNumber;</releaseinfo>
-		<productnumber>&versionNumber;</productnumber>
-		<issuenum>1</issuenum>
-		<mediaobject>
-			<imageobject role="fo">
-				<imagedata fileref="dna-logo.png" align="center"/>
-			</imageobject>
-			<imageobject role="html">
-				<imagedata fileref="dna-logo.png" depth="3cm"/>
-			</imageobject>
-		</mediaobject>
-		<copyright>
-			<year>&copyrightYear;</year>
-			<holder>&copyrightHolder;</holder>
-		</copyright>
-		<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/author_group.xml"/>
-		<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/legal_notice.xml"/>
-	</bookinfo>
-	<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/preface.xml"/>
-	<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/introduction.xml"/>
-	<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/understanding_dna.xml"/>
-	<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/downloading_and_running.xml"/>
-	<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/using_dna_for_sequencing.xml"/>
-	<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/using_dna_repositories.xml"/>
-	<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/custom_sequencers.xml"/>
-	<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/future.xml"/>
-</book>

Copied: tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/master.xml (from rev 553, trunk/docs/gettingstarted/src/main/docbook/en-US/master.xml)
===================================================================
--- tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/master.xml	                        (rev 0)
+++ tags/dna-0.2/docs/gettingstarted/src/main/docbook/en-US/master.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ JBoss, Home of Professional Open Source.
+  ~
+  ~ Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
+  ~ indicated by the @author tags or express copyright attribution
+  ~ statements applied by the authors.  All third-party contributions are
+  ~ distributed under license by Red Hat Middleware LLC.
+  ~
+  ~ This copyrighted material is made available to anyone wishing to use, modify,
+  ~ copy, or redistribute it subject to the terms and conditions of the GNU
+  ~ Lesser General Public License, as published by the Free Software Foundation.
+  ~
+  ~ This program is distributed in the hope that it will be useful,
+  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+  ~ or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
+  ~ for more details.
+  ~
+  ~ You should have received a copy of the GNU Lesser General Public License
+  ~ along with this distribution; if not, write to:
+  ~ Free Software Foundation, Inc.
+  ~ 51 Franklin Street, Fifth Floor
+  ~ Boston, MA  02110-1301  USA
+  -->
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY versionNumber "0.2">
+<!ENTITY copyrightYear "2008">
+<!ENTITY copyrightHolder "Red Hat Middleware, LLC.">
+]>
+<book lang="en">
+	<bookinfo>
+		<title>JBoss DNA</title>
+		<subtitle>Getting Started Guide</subtitle>
+		<releaseinfo>&versionNumber;</releaseinfo>
+		<productnumber>&versionNumber;</productnumber>
+		<issuenum>1</issuenum>
+		<mediaobject>
+			<imageobject role="fo">
+				<imagedata fileref="dna-logo.png" align="center"/>
+			</imageobject>
+			<imageobject role="html">
+				<imagedata fileref="dna-logo.png" depth="3cm"/>
+			</imageobject>
+		</mediaobject>
+		<copyright>
+			<year>&copyrightYear;</year>
+			<holder>&copyrightHolder;</holder>
+		</copyright>
+		<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/author_group.xml"/>
+		<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/legal_notice.xml"/>
+	</bookinfo>
+	<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/preface.xml"/>
+	<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/introduction.xml"/>
+	<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/understanding_dna.xml"/>
+	<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/downloading_and_running.xml"/>
+	<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/using_dna_for_sequencing.xml"/>
+	<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/using_dna_repositories.xml"/>
+	<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/custom_sequencers.xml"/>
+	<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/future.xml"/>
+</book>

Deleted: tags/dna-0.2/docs/pom.xml
===================================================================
--- trunk/docs/pom.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/docs/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,18 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <parent>
-    <groupId>org.jboss.dna</groupId>
-    <artifactId>dna</artifactId>
-    <version>0.2-SNAPSHOT</version>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.jboss.dna.docs</groupId>
-  <artifactId>dna-docs</artifactId>
-  <packaging>pom</packaging>
-  <name>JBoss DNA Documents</name>
-  <url>http://www.jboss.org/dna</url>
-  <description>JBoss DNA Documentation</description>
-  <modules>
-    <module>gettingstarted</module>
-    <module>reference</module>
-  </modules>
-</project>
\ No newline at end of file

Copied: tags/dna-0.2/docs/pom.xml (from rev 554, trunk/docs/pom.xml)
===================================================================
--- tags/dna-0.2/docs/pom.xml	                        (rev 0)
+++ tags/dna-0.2/docs/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,18 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <parent>
+    <groupId>org.jboss.dna</groupId>
+    <artifactId>dna</artifactId>
+    <version>0.2</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.jboss.dna.docs</groupId>
+  <artifactId>dna-docs</artifactId>
+  <packaging>pom</packaging>
+  <name>JBoss DNA Documents</name>
+  <url>http://www.jboss.org/dna</url>
+  <description>JBoss DNA Documentation</description>
+  <modules>
+    <module>gettingstarted</module>
+    <module>reference</module>
+  </modules>
+</project>
\ No newline at end of file

Deleted: tags/dna-0.2/docs/reference/pom.xml
===================================================================
--- trunk/docs/reference/pom.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/docs/reference/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,75 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <!--
-    parent> <groupId>org.jboss</groupId> <artifactId>documentation</artifactId> <version>1.0</version> </parent
-  -->
-  <groupId>org.jboss.dna</groupId>
-  <artifactId>reference-guide-en</artifactId>
-  <version>0.2-SNAPSHOT</version>
-  <packaging>jdocbook</packaging>
-  <name>JBoss DNA Reference Guide</name>
-  <description>The reference guide for JBoss DNA developers and advanced users</description>
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.jboss.maven.plugins</groupId>
-        <artifactId>maven-jdocbook-plugin</artifactId>
-        <version>2.1.2</version>
-        <extensions>true</extensions>
-        <dependencies>
-          <dependency>
-            <groupId>org.jboss</groupId>
-            <artifactId>jbossorg-docbook-xslt</artifactId>
-            <version>1.1.0.Beta1</version>
-          </dependency>
-          <dependency>
-            <groupId>org.jboss</groupId>
-            <artifactId>jbossorg-jdocbook-style</artifactId>
-            <version>1.1.0.Beta1</version>
-            <type>jdocbook-style</type>
-          </dependency>
-        </dependencies>
-        <configuration>
-          <sourceDocumentName>master.xml</sourceDocumentName>
-                    <imageResource>
-                        <directory>${basedir}/src/main/docbook/en-US/images</directory>
-                        <includes>
-                          <include>*.png</include>
-                        </includes>
-                    </imageResource>
-          <!-- cssResource>
-            <directory>${basedir}/src/main/docbook/css</directory>
-          </cssResource-->
-          <targetDirectory>${basedir}/target/docbook/en-US</targetDirectory>
-          <formats>
-            <format>
-              <formatName>html</formatName>
-              <stylesheetResource>classpath:/xslt/org/jboss/xhtml.xsl</stylesheetResource>
-              <finalName>index.html</finalName>
-            </format>
-          <!--
-            <format>
-              <formatName>html_single</formatName>
-              <stylesheetResource>classpath:/xslt/org/jboss/xhtml-single.xsl</stylesheetResource>
-              <finalName>index.html</finalName>
-            </format>
-            -->
-            <format>
-              <formatName>pdf</formatName>
-              <stylesheetResource>classpath:/xslt/org/jboss/pdf.xsl</stylesheetResource>
-              <finalName>userguide_en.pdf</finalName>
-            </format>
-          </formats>
-          <options>
-            <xincludeSupported>true</xincludeSupported>
-            <xmlTransformerType>saxon</xmlTransformerType>
-            <!-- needed for uri-resolvers; can be ommitted if using 'current' uri scheme -->
-            <!--     could also locate the docbook dependency and inspect its version... -->
-            <docbookVersion>1.72.0</docbookVersion>          
-          </options>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-</project>
\ No newline at end of file

Copied: tags/dna-0.2/docs/reference/pom.xml (from rev 554, trunk/docs/reference/pom.xml)
===================================================================
--- tags/dna-0.2/docs/reference/pom.xml	                        (rev 0)
+++ tags/dna-0.2/docs/reference/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,73 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <!--
+    parent> <groupId>org.jboss</groupId> <artifactId>documentation</artifactId> <version>1.0</version> </parent -->
+  <groupId>org.jboss.dna</groupId>
+  <artifactId>reference-guide-en</artifactId>
+  <version>0.2</version>
+  <packaging>jdocbook</packaging>
+  <name>JBoss DNA Reference Guide</name>
+  <description>The reference guide for JBoss DNA developers and advanced users</description>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.jboss.maven.plugins</groupId>
+        <artifactId>maven-jdocbook-plugin</artifactId>
+        <version>2.1.2</version>
+        <extensions>true</extensions>
+        <dependencies>
+          <dependency>
+            <groupId>org.jboss</groupId>
+            <artifactId>jbossorg-docbook-xslt</artifactId>
+            <version>1.1.0.Beta1</version>
+          </dependency>
+          <dependency>
+            <groupId>org.jboss</groupId>
+            <artifactId>jbossorg-jdocbook-style</artifactId>
+            <version>1.1.0.Beta1</version>
+            <type>jdocbook-style</type>
+          </dependency>
+        </dependencies>
+        <configuration>
+          <sourceDocumentName>master.xml</sourceDocumentName>
+                    <imageResource>
+                        <directory>${basedir}/src/main/docbook/en-US/images</directory>
+                        <includes>
+                          <include>*.png</include>
+                        </includes>
+                    </imageResource>
+          <!-- cssResource>
+            <directory>${basedir}/src/main/docbook/css</directory>
+          </cssResource-->
+          <targetDirectory>${basedir}/target/docbook/en-US</targetDirectory>
+          <formats>
+            <format>
+              <formatName>html</formatName>
+              <stylesheetResource>classpath:/xslt/org/jboss/xhtml.xsl</stylesheetResource>
+              <finalName>index.html</finalName>
+            </format>
+          <!--
+            <format>
+              <formatName>html_single</formatName>
+              <stylesheetResource>classpath:/xslt/org/jboss/xhtml-single.xsl</stylesheetResource>
+              <finalName>index.html</finalName>
+            </format>
+            -->
+            <format>
+              <formatName>pdf</formatName>
+              <stylesheetResource>classpath:/xslt/org/jboss/pdf.xsl</stylesheetResource>
+              <finalName>userguide_en.pdf</finalName>
+            </format>
+          </formats>
+          <options>
+            <xincludeSupported>true</xincludeSupported>
+            <xmlTransformerType>saxon</xmlTransformerType>
+            <!-- needed for uri-resolvers; can be ommitted if using 'current' uri scheme -->
+            <!--     could also locate the docbook dependency and inspect its version... -->
+            <docbookVersion>1.72.0</docbookVersion>          
+          </options>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
\ No newline at end of file

Deleted: tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/development_tools.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/content/development_tools.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/development_tools.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,401 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ JBoss, Home of Professional Open Source.
-  ~
-  ~ Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
-  ~ indicated by the @author tags or express copyright attribution
-  ~ statements applied by the authors.  All third-party contributions are
-  ~ distributed under license by Red Hat Middleware LLC.
-  ~
-  ~ This copyrighted material is made available to anyone wishing to use, modify,
-  ~ copy, or redistribute it subject to the terms and conditions of the GNU
-  ~ Lesser General Public License, as published by the Free Software Foundation.
-  ~
-  ~ This program is distributed in the hope that it will be useful,
-  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-  ~ or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-  ~ for more details.
-  ~
-  ~ You should have received a copy of the GNU Lesser General Public License
-  ~ along with this distribution; if not, write to:
-  ~ Free Software Foundation, Inc.
-  ~ 51 Franklin Street, Fifth Floor
-  ~ Boston, MA  02110-1301  USA
-  -->
-<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"	[
-<!ENTITY % CustomDTD SYSTEM "../custom.dtd">
-%CustomDTD;
-]>
-<chapter id="development-tools">
-  <title>Developer tools</title>
-  <para>
-		The JBoss DNA project uses <link linkend="maven">Maven</link> as its primary build tool, <link linkend="svn">Subversion</link>
-		for its source code repository, <link linkend="jira">JIRA</link> for the issue management and bug tracking system,
-		and <link linkend="hudson">Hudson</link> for the continuous integration system.  We do not stipulate a specific integrated
-		development environment (IDE), although most of us use <link linkend="eclipse">Eclipse</link> and rely upon the code formatting
-		and compile preferences to ensure no warnings or errors.
-  </para>
-	<para>
-		The rest of this chapter talks in more detail about these different tools and how to set them up.
-	</para>
-	<sect1 id="jdk">
-		<title>JDK</title>
-		<para>
-			Currently, JBoss DNA is developed and built using <ulink url="http://java.sun.com/javase/downloads/index_jdk5.jsp">JDK 5</ulink>,
-			so if you're a contributor, you should have that installed and should use it before committing any changes.  Note that you
-			should be able to use the <ulink url="http://java.sun.com/javase/downloads/index.jsp">latest JDK</ulink> (which is currently
-			JDK 6). 
-		</para>
-		<para>
-			Why do we build using JDK 5 and not 6? The main reason is that if we were to use JDK 6, then JBoss DNA couldn't really be used in any
-			applications or projects that still used JDK 5.  Plus, anybody using JDK 6 can still use JBoss DNA.
-			However, considering that the end-of-life for Java 5 is 
-			<ulink url="http://java.sun.com/products/archive/eol.policy.html">October 2009</ulink>, we may be switching to 
-			Java 6 in the coming months.
-		</para>
-		<para>
-			When installing, simply follow the procedure for your particular platform.  On most platforms, this should set the
-			<code>JAVA_HOME</code> environment variable.  But if you run into any problems, first check that this environment
-			variable was set to the correct location, and then check that you're running the version you expect by running
-			the following command:
-		</para>
-		<programlisting role="XML"><![CDATA[ java -version ]]></programlisting>
-		<para>
-			If you don't see the correct version, double-check your installation.
-		</para>
-	</sect1>
-	<sect1 id="svn">
-		<title>Subversion</title>
-		<para>JBoss DNA uses Subversion as its source code management system, and specifically the instance at 
-			<ulink url="http://www.jboss.org">JBoss.org</ulink>.  Although you can view the
-			<ulink url="&Subversion;trunk/">trunk</ulink> of the Subversion repository
-			(or using <ulink url="&Fisheye;trunk">FishEye</ulink>) through your browser,
-			it order to get more than just a few files of the latest version of the source code, you probably want
-		 	to have an SVN client installed.  Several IDE's have SVN support included (or available as plugins),
-			but having the command-line SVN client is recommended.  See 
-			<ulink url="http://subversion.tigris.org/">http://subversion.tigris.org/</ulink> for downloads and instructions for your
-			particular platform.
-		</para>
-		<para>
-			Here are some useful URLs for the JBoss DNA Subversion:
-		</para>
-		<table frame='all'>
-			<title>SVN URLs for JBoss DNA</title>
-			<tgroup cols='2' align='left' colsep='1' rowsep='1'>
-	      <colspec colname='c1' colwidth="1*"/>
-	      <colspec colname='c2' colwidth="1*"/>
-				<thead>
-					<row>
-			  		<entry>Repository</entry>
-			  		<entry>URL</entry>
-					</row>
-				</thead>
-				<tbody>
-					<row>
-						<entry>Anonymous Access URL</entry>
-						<entry><ulink url="&Subversion;trunk/">&Subversion;trunk/</ulink></entry>
-					</row>
-					<row>
-						<entry>Secure Developer Access URL</entry>
-						<entry><ulink url="&Fisheye;trunk/">&Fisheye;trunk/</ulink></entry>
-					</row>
-					<row>
-						<entry>FishEye Code Browser</entry>
-						<entry><ulink url="&SecureSubversion;trunk/">&SecureSubversion;trunk/</ulink></entry>
-					</row>
-				</tbody>
-			</tgroup>
-		</table>
-	</sect1>
-	<sect1 id="maven">
-		<title>Maven</title>
-		<para>JBoss DNA uses Maven 2 for its build system, as is this example. Using Maven 2 has several advantages, including
-	    the ability to manage dependencies. If a library is needed, Maven automatically finds and downloads that library, plus
-	    everything that library needs. This means that it's very easy to build the examples - or even create a maven project that
-	    depends on the JBoss DNA JARs.</para>
-		<para>
-      To use Maven with JBoss DNA, you'll need to have <link linkend="jdk">JDK 5 or 6</link> and Maven 2.0.9 (or higher).</para>
-		<para>
-      Maven can be downloaded from <ulink url="http://maven.apache.org/">http://maven.apache.org/</ulink>, and is installed by unzipping the
-      <code>maven-2.0.7-bin.zip</code> file to a convenient location on your local disk. Simply add <code>$MAVEN_HOME/bin</code>
-      to your path and add the following profile to your <code>~/.m2/settings.xml</code> file:
-		</para>
-		<programlisting role="XML"><![CDATA[
-<settings>
-  <profiles>
-    <profile>
-      <id>jboss.repository</id>
-      <activation>
-        <property>
-          <name>!jboss.repository.off</name>
-        </property>
-      </activation>
-      <repositories>
-        <repository>
-          <id>snapshots.jboss.org</id>
-          <url>http://snapshots.jboss.org/maven2</url>
-          <snapshots>
-            <enabled>true</enabled>
-          </snapshots>
-        </repository>
-        <repository>
-          <id>repository.jboss.org</id>
-          <url>http://repository.jboss.org/maven2</url>
-          <snapshots>
-            <enabled>false</enabled>
-          </snapshots>
-        </repository>
-      </repositories>
-      <pluginRepositories>
-        <pluginRepository>
-          <id>repository.jboss.org</id>
-          <url>http://repository.jboss.org/maven2</url>
-          <snapshots>
-            <enabled>false</enabled>
-          </snapshots>
-        </pluginRepository>
-        <pluginRepository>
-          <id>snapshots.jboss.org</id>
-          <url>http://snapshots.jboss.org/maven2</url>
-          <snapshots>
-            <enabled>true</enabled>
-          </snapshots>
-        </pluginRepository>
-      </pluginRepositories>
-    </profile>
-  </profiles>
-</settings>
-]]></programlisting>
-		<para>This profile informs Maven of the two JBoss repositories (<ulink url="http://repository.jboss.org/maven2">snapshots</ulink> 
-		  and <ulink url="http://snapshots.jboss.org/maven2">releases</ulink>) that contain all of the JARs for JBoss DNA and all dependent libraries.
-		</para>
-		<note>
-			<para>
-		    It is a policy of the project that the <emphasis>source code and JARs</emphasis> for <emphasis>all</emphasis> dependencies 
-		    <emphasis>must</emphasis> be loaded into the JBoss repository.  This is so that the project can always be built
-				and that all source code is always available.
-			</para>
-			<para>
-				For more information about the JBoss Maven repository, see the <ulink url="http://wiki.jboss.org/wiki/Maven">JBoss.org Wiki</ulink>.
-			</para>
-		</note>
-		<para>
-			There are just a few commands that are useful for building JBoss DNA (and it's <link linkend="modules">subprojects</link>).
-			Usually, these are issued while at the top level of the code (usually just below <code>trunk/</code>), although issuing
-			them inside a subproject just applies to that subproject.
-		</para>
-		<table frame='all'>
-			<title>Useful Maven commands</title>
-			<tgroup cols='2' align='left' colsep='1' rowsep='1'>
-	      <colspec colname='c1' colwidth="1*"/>
-	      <colspec colname='c2' colwidth="1*"/>
-				<thead>
-					<row>
-			  		<entry>Command</entry>
-			  		<entry>Description</entry>
-					</row>
-				</thead>
-				<tbody>
-					<row>
-						<entry><code>mvn clean</code></entry>
-						<entry>Clean up all built artifacts (e.g., the <code>target/</code> directory in each project)</entry>
-					</row>
-					<row>
-						<entry><code>mvn clean install</code></entry>
-						<entry>Clean up all built artifacts, then compile, run the unit tests, and install the resulting JAR artifact(s)
-							into your local Maven repository (e.g, usually <code>~/.m2/repository</code>).
-						</entry>
-					</row>
-				</tbody>
-			</tgroup>
-		</table>
-	</sect1>
-	<sect1 id="hudson">
-		<title>Continuous integration with Hudson</title>
-		<para>JBoss DNA's continuous integration is done with several Hudson jobs on <ulink url="http://www.jboss.org">JBoss.org</ulink>.
-		  These jobs run periodically and basically run the Maven build process.  Any build failures or test failures are reported,
-		  as are basic statistics and history for each job.
-		</para>
-		<table frame='all'>
-			<title>Continuous integration jobs</title>
-			<tgroup cols='2' align='left' colsep='1' rowsep='1'>
-	      <colspec colname='c1' colwidth="1*"/>
-	      <colspec colname='c2' colwidth="1*"/>
-				<thead>
-					<row>
-			  		<entry>Job</entry>
-			  		<entry>Description</entry>
-					</row>
-				</thead>
-				<tbody>
-					<row>
-						<entry><ulink url="http://hudson.jboss.org/hudson/job/DNA%20continuous%20on%20JDK1.5/">Continuous on JDK 5</ulink></entry>
-						<entry>Continuous build that runs after changes are committed to SVN.  SVN is polled every 15 minutes.</entry>
-					</row>
-					<row>
-						<entry><ulink url="http://hudson.jboss.org/hudson/job/DNA%20nightly%20integration%20on%20JDK1.5/">Nightly on JDK 5</ulink></entry>
-						<entry>Build that runs every night (about 2 a.m. EDT), regardless of whether changes have been committed to SVN
-							since the previous night.</entry>
-					</row>
-				</tbody>
-			</tgroup>
-		</table>
-	</sect1>
-	<sect1 id="eclipse">
-		<title>Eclipse IDE</title>
-		<para>Many of the JBoss DNA committers use the Eclipse IDE, and all project files required by Eclipse are committed in SVN, making
-			it pretty easy to get an Eclipse workspace running with all of the JBoss DNA projects.
-			Many of the JBoss DNA committers use the Eclipse IDE, and all project files required by Eclipse are committed in SVN, making
-			it pretty easy to get an Eclipse workspace running with all of the JBoss DNA projects.
-		</para>
-		<para>We're using the latest released version of Eclipse (3.4, called "Ganymede"), 
-			available from <ulink url="http://www.eclipse.org/">Eclipse.org</ulink>.  Simply follow the instructions for your platform.
-		</para>
-		<para>
-			After Eclipse is installed, create a new workspace.  Before importing the JBoss DNA projects, import (via "File->Import->Preferences")
-			the subset of the	Eclipse preferences by importing the <code>eclipse-preferences.epf</code> file (located under <code>trunk</code>).
-			Then, open the Eclipse preferences and open the "Java->Code Style-> Formatter" preference page, and press the "Import" button and
-			choose the <code>eclipse-code-formatter-profile.xml</code> file (located under <code>trunk</code>).  This will load the code
-			formatting preferences for the JBoss DNA project.
-		</para>
-		<para>
-			Then install Eclipse plugins for SVN and Maven.  (Remember, you will have to restart Eclipse after installing them.)
-			We use the following plugins:
-		</para>
-		<table frame='all'>
-			<title>Continuous integration jobs</title>
-			<tgroup cols='2' align='left' colsep='1' rowsep='1'>
-	      <colspec colname='c1' colwidth="1*"/>
-	      <colspec colname='c2' colwidth="1*"/>
-				<thead>
-					<row>
-			  		<entry>Eclipse Plugins</entry>
-						<entry>Update Site URLs</entry>
-					</row>
-				</thead>
-				<tbody>
-					<row>
-						<entry>Subversive SVN Client</entry>
-						<entry>
-							<ulink url="http://www.polarion.org/projects/subversive/download/eclipse/2.0/update-site/">http://www.polarion.org/projects/subversive/download/eclipse/2.0/update-site/</ulink>
-						  <ulink url="http://www.polarion.org/projects/subversive/download/integrations/update-site/">http://www.polarion.org/projects/subversive/download/integrations/update-site/</ulink>
-						</entry>
-					</row>
-					<row>
-						<entry>Maven Integration for Eclipse</entry>
-						<entry><ulink url="http://m2eclipse.sonatype.org/update/">http://m2eclipse.sonatype.org/update/</ulink></entry>
-					</row>
-				</tbody>
-			</tgroup>
-		</table>
-		<para>
-			After you check out the JBoss DNA codebase, you can import the JBoss DNA Maven projects into Eclipse as Eclipse projects.
-			To do this, go to "File->Import->Existing Projects", navigate to the <code>trunk/</code> folder in the import wizard,
-			and then check each of the <link linkend="modules">subprojects</link> that you want to have in your workspace.
-		</para>
-	</sect1>
-	<sect1 id="releasing">
-		<title>Releasing</title>
-		<para>
-			This section outlines the basic process of releasing JBoss DNA.  This <emphasis role="strong">must</emphasis> be done
-			either by the project lead or only after communicating with the project lead.
-		</para>
-		<para>
-			Before continuing, your local workspace should contain no changes and should be a perfect reflection of Subversion.
-			You can verify this by getting the latest from Subversion
-		</para>
-		<programlisting>$ svn update</programlisting> 
-		<para>
-			and ensuring that you have no additional changes with
-		</para>
-		<programlisting>$ svn status</programlisting>
-		<para>
-			You may also want to note the revision number for use later on in the process.  The release number is returned by
-			the <code>svn update</code> command, but may also be found using
-		</para>
-		<programlisting>$ svn info</programlisting>
-		<para>
-			At this point, you're ready to verify that everything builds normally.
-		</para>
-		<sect2 id="build-all-artifacts-and-assemblies">
-			<title>Building all artifacts and assemblies</title>
-			<para>
-				By default, the project's Maven build process is does <emphasis>not</emphasis> build the documentation, JavaDocs, or assemblies.
-				These take extra time, and most of our builds don't require them.  So the first step of releasing JBoss DNA
-				is to use Maven to build all of regular artifacts (e.g., JARs) and these extra documents and assemblies.
-			</para>
-			<note>
-				<para>
-					Before running Maven commands to build the releases, increase the memory available to Maven with this command:
-				</para>
-				<programlisting>$ export MAVEN_OPTS=-Xmx256m</programlisting>
-			</note>
-			<para>
-				To perform this complete build, issue the following command while in the <code>target/</code> directory:
-			</para>
-			<programlisting>$ mvn -P assembly clean javadoc:javadoc install</programlisting>
-			<para>
-				This command runs "clean", "javadoc:javadoc", and "install" goals using the "assembly" profile, 
-				which adds the production JavaDocs, the Getting Started document, the Reference Guide document, 
-				the Getting Started examples, and several ZIP archives.  The order of the goals is important,
-				since the "install" goal attempts to include the JavaDoc in the archives. 
-			</para>
-			<para>
-				After completed, verify that the assemblies under <code>target/</code> have actually been created and that
-				they contain the correct information.
-				At this point, we know that the actual Maven build process is building
-				everything we want and will complete without errors.  We can now proceed with preparing for the release.
-			</para>
-		</sect2>
-		<sect2 id="determine-version">
-			<title>Determine the version to be released</title>
-			<para>
-				The version being released should match the &JIRA; road map. Make sure that all issues related to the release are closed. 
-				The project lead should be notified and approve that the release is taking place.
-			</para>
-		</sect2>
-		<sect2 id="release-dry-run">
-			<title>Release dry run</title>
-			<para>
-				The next step is to ensure that all information in the POM is correct and contains all the information required for
-				the release process.  This is called a <emphasis>dry run</emphasis>, and is done with the Maven "release" plugin:
-			</para>
-			<programlisting>$ mvn release:prepare -DdryRun=true</programlisting>
-			<para>This may download a lot of Maven plugins if they already haven't been downloaded.  It should then it should prompt you for
-				the release version of each of the projects, the tag name for the release, and the next development version.
-				The default values are probably acceptable; if not, then check that the "SNAPSHOT" version in each of the POM files is correct.
-		</sect2>
-		<sect2 id="release">
-			<title>Release</title>
-			<para>
-				
-			</para>
-		</sect2>
-		<sect2 id="tagging">
-			<title>Building Releases</title>
-			<para>
-				Finally, the code can be tagged with the new release, using the following Subversion command.
-				Just remember to use the correct <code>&lt;releaseNumber&lt;</code>:
-			</para>
-			<programlisting>
-$ svn copy https://svn.jboss.org/repos/dna/trunk \
-           https://svn.jboss.org/repos/dna/tags/dna-<emphasis>&lt;releaseNumber&lt;</emphasis> \
-      -m "Releasing JBoss DNA &lt;releaseNumber&lt;"
-	</programlisting>
-			<para>
-				Of course, this will copy of <code>HEAD</code>.  To copy a particular revision in <code>trunk/</code>, use
-				the <code>-r</code> argument with the correct SVN revision number:
-			</para>
-			<programlisting>
-$ svn copy https://svn.jboss.org/repos/dna/trunk -r<emphasis>&lt;revisionNumber&lt;</emphasis> \
-           https://svn.jboss.org/repos/dna/tags/dna-<emphasis>&lt;releaseNumber&lt;</emphasis> \
-      -m "Releasing JBoss DNA &lt;releaseNumber&lt;"
-</programlisting>
-			<note>
-				<para>
-					You can obtain the latest revision number using the <code>$ svn info</code> command.
-				</para>
-			</note>
-		</sect2>
-	</sect1>
-</chapter>

Copied: tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/development_tools.xml (from rev 553, trunk/docs/reference/src/main/docbook/en-US/content/development_tools.xml)
===================================================================
--- tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/development_tools.xml	                        (rev 0)
+++ tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/development_tools.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,444 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ JBoss, Home of Professional Open Source.
+  ~
+  ~ Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
+  ~ indicated by the @author tags or express copyright attribution
+  ~ statements applied by the authors.  All third-party contributions are
+  ~ distributed under license by Red Hat Middleware LLC.
+  ~
+  ~ This copyrighted material is made available to anyone wishing to use, modify,
+  ~ copy, or redistribute it subject to the terms and conditions of the GNU
+  ~ Lesser General Public License, as published by the Free Software Foundation.
+  ~
+  ~ This program is distributed in the hope that it will be useful,
+  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+  ~ or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
+  ~ for more details.
+  ~
+  ~ You should have received a copy of the GNU Lesser General Public License
+  ~ along with this distribution; if not, write to:
+  ~ Free Software Foundation, Inc.
+  ~ 51 Franklin Street, Fifth Floor
+  ~ Boston, MA  02110-1301  USA
+  -->
+<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"	[
+<!ENTITY % CustomDTD SYSTEM "../custom.dtd">
+%CustomDTD;
+]>
+<chapter id="development-tools">
+  <title>Developer tools</title>
+  <para>
+		The JBoss DNA project uses <link linkend="maven">Maven</link> as its primary build tool, <link linkend="svn">Subversion</link>
+		for its source code repository, <link linkend="jira">JIRA</link> for the issue management and bug tracking system,
+		and <link linkend="hudson">Hudson</link> for the continuous integration system.  We do not stipulate a specific integrated
+		development environment (IDE), although most of us use <link linkend="eclipse">Eclipse</link> and rely upon the code formatting
+		and compile preferences to ensure no warnings or errors.
+  </para>
+	<para>
+		The rest of this chapter talks in more detail about these different tools and how to set them up.
+	</para>
+	<sect1 id="jdk">
+		<title>JDK</title>
+		<para>
+			Currently, JBoss DNA is developed and built using <ulink url="http://java.sun.com/javase/downloads/index_jdk5.jsp">JDK 5</ulink>.
+			So if you're trying to get JBoss DNA to compile locally, you should make sure you have the JDK 5 installed and are using it.
+			If you're a contributor, you should make sure that you're using JDK 5 before committing any changes.  
+		</para>
+		<note>
+			<para>
+				You should be able to use the <ulink url="http://java.sun.com/javase/downloads/index.jsp">latest JDK</ulink>,
+				which is currently JDK 6.  We periodically try to build JBoss DNA using JDK 6, but it's not our official JDK (yet).
+			</para>
+		</note>
+		<para>
+			Why do we build using JDK 5 and not 6? The main reason is that if we were to use JDK 6, then JBoss DNA couldn't really be used in any
+			applications or projects that still used JDK 5.  Plus, anybody using JDK 6 can still use JBoss DNA.
+			However, considering that the end-of-life for Java 5 is 
+			<ulink url="http://java.sun.com/products/archive/eol.policy.html">October 2009</ulink>, we may be switching to 
+			Java 6 in the coming months.
+		</para>
+		<para>
+			When installing a JDK, simply follow the procedure for your particular platform.  On most platforms, this should set the
+			<code>JAVA_HOME</code> environment variable.  But if you run into any problems, first check that this environment
+			variable was set to the correct location, and then check that you're running the version you expect by running
+			the following command:
+		</para>
+		<programlisting>$ java -version</programlisting>
+		<para>
+			If you don't see the correct version, double-check your JDK installation.
+		</para>
+	</sect1>
+	<sect1 id="svn">
+		<title>Subversion</title>
+		<para>JBoss DNA uses Subversion as its source code management system, and specifically the instance at 
+			<ulink url="http://www.jboss.org">JBoss.org</ulink>.  Although you can view the
+			<ulink url="&Subversion;trunk/">trunk</ulink> of the Subversion repository directly
+			(or using <ulink url="&Fisheye;trunk">FishEye</ulink>) through your browser,
+			it order to get more than just a few files of the latest version of the source code, you probably want
+		 	to have an SVN client installed.  Several IDE's have SVN support included (or available as plugins),
+			but having the command-line SVN client is recommended.  See 
+			<ulink url="http://subversion.tigris.org/">http://subversion.tigris.org/</ulink> for downloads and instructions for your
+			particular platform.
+		</para>
+		<para>
+			Here are some useful URLs for the JBoss DNA Subversion:
+		</para>
+		<table frame='all'>
+			<title>SVN URLs for JBoss DNA</title>
+			<tgroup cols='2' align='left' colsep='1' rowsep='1'>
+	      <colspec colname='c1' colwidth="1*"/>
+	      <colspec colname='c2' colwidth="1*"/>
+				<thead>
+					<row>
+			  		<entry>Repository</entry>
+			  		<entry>URL</entry>
+					</row>
+				</thead>
+				<tbody>
+					<row>
+						<entry>Anonymous Access URL</entry>
+						<entry><ulink url="&Subversion;trunk/">&Subversion;trunk/</ulink></entry>
+					</row>
+					<row>
+						<entry>Secure Developer Access URL</entry>
+						<entry><ulink url="&Fisheye;trunk/">&Fisheye;trunk/</ulink></entry>
+					</row>
+					<row>
+						<entry>FishEye Code Browser</entry>
+						<entry><ulink url="&SecureSubversion;trunk/">&SecureSubversion;trunk/</ulink></entry>
+					</row>
+				</tbody>
+			</tgroup>
+		</table>
+	</sect1>
+	<sect1 id="maven">
+		<title>Maven</title>
+		<para>JBoss DNA uses Maven 2 for its build system, as is this example. Using Maven 2 has several advantages, including
+	    the ability to manage dependencies. If a library is needed, Maven automatically finds and downloads that library, plus
+	    everything that library needs. This means that it's very easy to build the examples - or even create a maven project that
+	    depends on the JBoss DNA JARs.</para>
+		<para>
+      To use Maven with JBoss DNA, you'll need to have <link linkend="jdk">JDK 5 or 6</link> and Maven 2.0.9 (or higher).</para>
+		<para>
+      Maven can be downloaded from <ulink url="http://maven.apache.org/">http://maven.apache.org/</ulink>, and is installed by unzipping the
+      <code>maven-2.0.7-bin.zip</code> file to a convenient location on your local disk. Simply add <code>$MAVEN_HOME/bin</code>
+      to your path and add the following profile to your <code>~/.m2/settings.xml</code> file:
+		</para>
+		<programlisting role="XML"><![CDATA[
+<settings>
+  <profiles>
+    <profile>
+      <id>jboss.repository</id>
+      <activation>
+        <property>
+          <name>!jboss.repository.off</name>
+        </property>
+      </activation>
+      <repositories>
+        <repository>
+          <id>snapshots.jboss.org</id>
+          <url>http://snapshots.jboss.org/maven2</url>
+          <snapshots>
+            <enabled>true</enabled>
+          </snapshots>
+        </repository>
+        <repository>
+          <id>repository.jboss.org</id>
+          <url>http://repository.jboss.org/maven2</url>
+          <snapshots>
+            <enabled>false</enabled>
+          </snapshots>
+        </repository>
+      </repositories>
+      <pluginRepositories>
+        <pluginRepository>
+          <id>repository.jboss.org</id>
+          <url>http://repository.jboss.org/maven2</url>
+          <snapshots>
+            <enabled>false</enabled>
+          </snapshots>
+        </pluginRepository>
+        <pluginRepository>
+          <id>snapshots.jboss.org</id>
+          <url>http://snapshots.jboss.org/maven2</url>
+          <snapshots>
+            <enabled>true</enabled>
+          </snapshots>
+        </pluginRepository>
+      </pluginRepositories>
+    </profile>
+  </profiles>
+</settings>
+]]></programlisting>
+		<para>This profile informs Maven of the two JBoss repositories (<ulink url="http://repository.jboss.org/maven2">snapshots</ulink> 
+		  and <ulink url="http://snapshots.jboss.org/maven2">releases</ulink>) that contain all of the JARs for JBoss DNA and all dependent libraries.
+		</para>
+		<note>
+			<para>
+		    It is a policy of the project that the <emphasis>source code and JARs</emphasis> for <emphasis>all</emphasis> dependencies 
+		    <emphasis>must</emphasis> be loaded into the JBoss repository.  This is so that the project can always be built
+				and that all source code is always available.
+			</para>
+			<para>
+				For more information about the JBoss Maven repository, see the <ulink url="http://wiki.jboss.org/wiki/Maven">JBoss.org Wiki</ulink>.
+			</para>
+		</note>
+		<para>
+			There are just a few commands that are useful for building JBoss DNA (and it's <link linkend="modules">subprojects</link>).
+			Usually, these are issued while at the top level of the code (usually just below <code>trunk/</code>), although issuing
+			them inside a subproject just applies to that subproject.
+		</para>
+		<table frame='all'>
+			<title>Useful Maven commands</title>
+			<tgroup cols='2' align='left' colsep='1' rowsep='1'>
+	      <colspec colname='c1' colwidth="1*"/>
+	      <colspec colname='c2' colwidth="1*"/>
+				<thead>
+					<row>
+			  		<entry>Command</entry>
+			  		<entry>Description</entry>
+					</row>
+				</thead>
+				<tbody>
+					<row>
+						<entry><code>mvn clean</code></entry>
+						<entry>Clean up all built artifacts (e.g., the <code>target/</code> directory in each project)</entry>
+					</row>
+					<row>
+						<entry><code>mvn clean install</code></entry>
+						<entry>Clean up all built artifacts, then compile, run the unit tests, and install the resulting JAR artifact(s)
+							into your local Maven repository (e.g, usually <code>~/.m2/repository</code>).
+						</entry>
+					</row>
+				</tbody>
+			</tgroup>
+		</table>
+	</sect1>
+	<sect1 id="hudson">
+		<title>Continuous integration with Hudson</title>
+		<para>JBoss DNA's continuous integration is done with several Hudson jobs on <ulink url="http://www.jboss.org">JBoss.org</ulink>.
+		  These jobs run periodically and basically run the Maven build process.  Any build failures or test failures are reported,
+		  as are basic statistics and history for each job.
+		</para>
+		<table frame='all'>
+			<title>Continuous integration jobs</title>
+			<tgroup cols='2' align='left' colsep='1' rowsep='1'>
+	      <colspec colname='c1' colwidth="1*"/>
+	      <colspec colname='c2' colwidth="1*"/>
+				<thead>
+					<row>
+			  		<entry>Job</entry>
+			  		<entry>Description</entry>
+					</row>
+				</thead>
+				<tbody>
+					<row>
+						<entry><ulink url="http://hudson.jboss.org/hudson/job/DNA%20continuous%20on%20JDK1.5/">Continuous on JDK 5</ulink></entry>
+						<entry>Continuous build that runs after changes are committed to SVN.  SVN is polled every 15 minutes.</entry>
+					</row>
+					<row>
+						<entry><ulink url="http://hudson.jboss.org/hudson/job/DNA%20nightly%20integration%20on%20JDK1.5/">Nightly on JDK 5</ulink></entry>
+						<entry>Build that runs every night (usually around 2 a.m. EDT), regardless of whether changes have been committed to SVN
+							since the previous night.</entry>
+					</row>
+				</tbody>
+			</tgroup>
+		</table>
+	</sect1>
+	<sect1 id="eclipse">
+		<title>Eclipse IDE</title>
+		<para>Many of the JBoss DNA committers use the Eclipse IDE, and all project files required by Eclipse are committed in SVN, making
+			it pretty easy to get an Eclipse workspace running with all of the JBoss DNA projects.
+			Many of the JBoss DNA committers use the Eclipse IDE, and all project files required by Eclipse are committed in SVN, making
+			it pretty easy to get an Eclipse workspace running with all of the JBoss DNA projects.
+		</para>
+		<para>We're using the latest released version of Eclipse (3.4, called "Ganymede"), 
+			available from <ulink url="http://www.eclipse.org/">Eclipse.org</ulink>.  Simply follow the instructions for your platform.
+		</para>
+		<para>
+			After Eclipse is installed, create a new workspace.  Before importing the JBoss DNA projects, import (via "File->Import->Preferences")
+			the subset of the	Eclipse preferences by importing the <code>eclipse-preferences.epf</code> file (located under <code>trunk</code>).
+			Then, open the Eclipse preferences and open the "Java->Code Style-> Formatter" preference page, and press the "Import" button and
+			choose the <code>eclipse-code-formatter-profile.xml</code> file (located under <code>trunk</code>).  This will load the code
+			formatting preferences for the JBoss DNA project.
+		</para>
+		<para>
+			Then install Eclipse plugins for SVN and Maven.  (Remember, you will have to restart Eclipse after installing them.)
+			We use the following plugins:
+		</para>
+		<table frame='all'>
+			<title>Continuous integration jobs</title>
+			<tgroup cols='2' align='left' colsep='1' rowsep='1'>
+	      <colspec colname='c1' colwidth="1*"/>
+	      <colspec colname='c2' colwidth="1*"/>
+				<thead>
+					<row>
+			  		<entry>Eclipse Plugins</entry>
+						<entry>Update Site URLs</entry>
+					</row>
+				</thead>
+				<tbody>
+					<row>
+						<entry>Subversive SVN Client</entry>
+						<entry>
+							<ulink url="http://www.polarion.org/projects/subversive/download/eclipse/2.0/update-site/">http://www.polarion.org/projects/subversive/download/eclipse/2.0/update-site/</ulink>
+						  <ulink url="http://www.polarion.org/projects/subversive/download/integrations/update-site/">http://www.polarion.org/projects/subversive/download/integrations/update-site/</ulink>
+						</entry>
+					</row>
+					<row>
+						<entry>Maven Integration for Eclipse</entry>
+						<entry><ulink url="http://m2eclipse.sonatype.org/update/">http://m2eclipse.sonatype.org/update/</ulink></entry>
+					</row>
+				</tbody>
+			</tgroup>
+		</table>
+		<para>
+			After you check out the JBoss DNA codebase, you can import the JBoss DNA Maven projects into Eclipse as Eclipse projects.
+			To do this, go to "File->Import->Existing Projects", navigate to the <code>trunk/</code> folder in the import wizard,
+			and then check each of the <link linkend="modules">subprojects</link> that you want to have in your workspace.
+			Don't forget about the projects under <code>extensions/</code> or <code>docs/</code>.
+		</para>
+	</sect1>
+	<sect1 id="releasing">
+		<title>Releasing</title>
+		<para>
+			This section outlines the basic process of releasing JBoss DNA.  This <emphasis role="strong">must</emphasis> be done
+			either by the project lead or only after communicating with the project lead.
+		</para>
+		<para>
+			Before continuing, your local workspace should contain no changes and should be a perfect reflection of Subversion.
+			You can verify this by getting the latest from Subversion
+		</para>
+		<programlisting>$ svn update</programlisting> 
+		<para>
+			and ensuring that you have no additional changes with
+		</para>
+		<programlisting>$ svn status</programlisting>
+		<para>
+			You may also want to note the revision number for use later on in the process.  The release number is returned by
+			the <code>svn update</code> command, but may also be found using
+		</para>
+		<programlisting>$ svn info</programlisting>
+		<para>
+			At this point, you're ready to verify that everything builds normally.
+		</para>
+		<sect2 id="build-all-artifacts-and-assemblies">
+			<title>Building all artifacts and assemblies</title>
+			<para>
+				By default, the project's Maven build process is does <emphasis>not</emphasis> build the documentation, JavaDocs, or assemblies.
+				These take extra time, and most of our builds don't require them.  So the first step of releasing JBoss DNA
+				is to use Maven to build all of regular artifacts (e.g., JARs) and these extra documents and assemblies.
+			</para>
+			<note>
+				<para>
+					Before running Maven commands to build the releases, increase the memory available to Maven with this command:
+					<code>$ export MAVEN_OPTS=-Xmx256m</code>
+				</para>
+			</note>
+			<para>
+				To perform this complete build, issue the following command while in the <code>target/</code> directory:
+			</para>
+			<programlisting>$ mvn -P assembly clean javadoc:javadoc install</programlisting>
+			<para>
+				This command runs the "clean", "javadoc:javadoc", and "install" goals using the "assembly" profile, 
+				which adds the production of JavaDocs, the Getting Started document, the Reference Guide document, 
+				the Getting Started examples, and several ZIP archives.  The order of the goals is important,
+				since the "install" goal attempts to include the JavaDoc in the archives. 
+			</para>
+			<para>
+				After this build has completed, verify that the assemblies under <code>target/</code> have actually been created and that
+				they contain the correct information.
+				At this point, we know that the actual Maven build process is building
+				everything we want and will complete without errors.  We can now proceed with preparing for the release.
+			</para>
+		</sect2>
+		<sect2 id="determine-version">
+			<title>Determine the version to be released</title>
+			<para>
+				The version being released should match the <ulink url="&JIRA;">JIRA</ulink> road map. Make sure that all issues related to the release are closed. 
+				The project lead should be notified and approve that the release is taking place.
+			</para>
+		</sect2>
+		<sect2 id="release-dry-run">
+			<title>Release dry run</title>
+			<para>
+				The next step is to ensure that all information in the POM is correct and contains all the information required for
+				the release process.  This is called a <emphasis>dry run</emphasis>, and is done with the Maven "release" plugin:
+			</para>
+			<programlisting>$ mvn -Passembly release:prepare -DdryRun=true</programlisting>
+			<para>
+				This may download a lot of Maven plugins if they already haven't been downloaded, but it will eventually prompt you for
+				the release version of each of the Maven projects, the tag name for the release, and the next development versions
+				(again for each of the Maven projects).  The default values are probably acceptable; if not, then check that the 
+				"<code>&lt;version&gt;</code>" tags in each of the POM files is correct and end with "-SNAPSHOT".
+			</para>
+			<para>
+				After the dry run completes you should clean up the files that the release plugin created in the dry run:
+			</para>
+			<programlisting>$ mvn -Passembly release:clean</programlisting>
+		</sect2>
+		<sect2 id="prepare-release">
+			<title>Prepare for the release</title>
+			<para>
+				Run the prepare step (without the <code>dryRun</code> option):
+			</para>
+			<programlisting>$ mvn -Passembly release:prepare</programlisting>
+			<para>
+				You will again be prompted for the release versions and tag name. These should be the same as what was used during the dry run. 
+				This will run the same steps as the dry run, with the additional step of tagging the release in SVN.
+			</para>
+			<para>
+				If there are any problems during this step, you should go back and try the dry run option.
+			</para>
+		</sect2>
+		<sect2 id="release">
+			<title>Perform the release</title>
+			<para>
+				Next run the perform step which will checkout the files from the tag, do a build, and deploy the generated artifacts.
+			</para>
+			<programlisting>$ mvn -Passembly release:perform</programlisting>
+			<para>
+				The deployment is done to the local file system (a local checkout of the JBoss Maven2 repository), so you will need to 
+				commit the new files after they are deployed.  For more information, see the 
+				<ulink url="http://wiki.jboss.org/wiki/Maven">JBoss wiki</ulink>.
+			</para>
+			<para>
+				Note that the release process updates your project's <code>pom.xml</code> files to change the "&lt;version&gt;" values
+				to the next version.  These will then need to be committed onto the trunk of SVN.
+			</para>
+			<para>
+				At this point, the software has been released and tagged, so now the only thing left is to publish the release onto
+				the project's <ulink url="&Downloads;">downloads</ulink> and <ulink url="&Home;/docs">documentation</ulink> pages.
+			</para>
+		</sect2>
+		<!--
+		<sect2 id="tagging">
+			<title>Building Releases</title>
+			<para>
+				Finally, the code can be tagged with the new release, using the following Subversion command.
+				Just remember to use the correct <code>&lt;releaseNumber&lt;</code>:
+			</para>
+			<programlisting>
+$ svn copy https://svn.jboss.org/repos/dna/trunk \
+           https://svn.jboss.org/repos/dna/tags/dna-<emphasis>&lt;releaseNumber&lt;</emphasis> \
+      -m "Releasing JBoss DNA &lt;releaseNumber&lt;"
+	</programlisting>
+			<para>
+				Of course, this will copy of <code>HEAD</code>.  To copy a particular revision in <code>trunk/</code>, use
+				the <code>-r</code> argument with the correct SVN revision number:
+			</para>
+			<programlisting>
+$ svn copy https://svn.jboss.org/repos/dna/trunk -r<emphasis>&lt;revisionNumber&lt;</emphasis> \
+           https://svn.jboss.org/repos/dna/tags/dna-<emphasis>&lt;releaseNumber&lt;</emphasis> \
+      -m "Releasing JBoss DNA &lt;releaseNumber&lt;"
+</programlisting>
+			<note>
+				<para>
+					You can obtain the latest revision number using the <code>$ svn info</code> command.
+				</para>
+			</note>
+		</sect2>
+	-->
+	</sect1>
+</chapter>

Deleted: tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/future.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/content/future.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/future.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ JBoss, Home of Professional Open Source.
-  ~
-  ~ Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
-  ~ indicated by the @author tags or express copyright attribution
-  ~ statements applied by the authors.  All third-party contributions are
-  ~ distributed under license by Red Hat Middleware LLC.
-  ~
-  ~ This copyrighted material is made available to anyone wishing to use, modify,
-  ~ copy, or redistribute it subject to the terms and conditions of the GNU
-  ~ Lesser General Public License, as published by the Free Software Foundation.
-  ~
-  ~ This program is distributed in the hope that it will be useful,
-  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-  ~ or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-  ~ for more details.
-  ~
-  ~ You should have received a copy of the GNU Lesser General Public License
-  ~ along with this distribution; if not, write to:
-  ~ Free Software Foundation, Inc.
-  ~ 51 Franklin Street, Fifth Floor
-  ~ Boston, MA  02110-1301  USA
-  -->
-<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"	[
-<!ENTITY % CustomDTD SYSTEM "../custom.dtd">
-%CustomDTD;
-]>
-<chapter id="future">
-	<title>Looking to the future</title>
-	<para>What's next for JBoss DNA?  Well, the sequencing system is just the beginning.  With this release, the sequencing system
-	  is stable enough so that more <link linkend="sequencers">sequencers</link> can be developed and used within your own applications.
-	  If you're interested in getting involved with the JBoss DNA project, consider picking up one of the sequencers on our
-	  <ulink url="&JIRA;?report=com.atlassian.jira.plugin.system.project:roadmap-panel">roadmap</ulink>.
-	  Or, check out <ulink url="http://jira.jboss.org/jira/secure/IssueNavigator.jspa?reset=true&amp;mode=hide&amp;pid=12310520&amp;sorter/order=DESC&amp;sorter/field=priority&amp;resolution=-1&amp;component=12311436">JIRA</ulink>
-	  for the list of sequencers we've thought of.  If you think of one that's not there, please add it to JIRA! </para>
-	<para>Other components on our roadmap include a web user interface, a REST-ful server, and a view system that allows domain-specific
-	  views of information in the repository.  These components are farther out on our roadmap, and at this time have not been
-	  targeted to a particular release.  If any of these are of interest to you, please <link linkend="preface">get involved</link>
-		in the community.</para>
-</chapter>

Copied: tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/future.xml (from rev 553, trunk/docs/reference/src/main/docbook/en-US/content/future.xml)
===================================================================
--- tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/future.xml	                        (rev 0)
+++ tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/future.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ JBoss, Home of Professional Open Source.
+  ~
+  ~ Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
+  ~ indicated by the @author tags or express copyright attribution
+  ~ statements applied by the authors.  All third-party contributions are
+  ~ distributed under license by Red Hat Middleware LLC.
+  ~
+  ~ This copyrighted material is made available to anyone wishing to use, modify,
+  ~ copy, or redistribute it subject to the terms and conditions of the GNU
+  ~ Lesser General Public License, as published by the Free Software Foundation.
+  ~
+  ~ This program is distributed in the hope that it will be useful,
+  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+  ~ or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
+  ~ for more details.
+  ~
+  ~ You should have received a copy of the GNU Lesser General Public License
+  ~ along with this distribution; if not, write to:
+  ~ Free Software Foundation, Inc.
+  ~ 51 Franklin Street, Fifth Floor
+  ~ Boston, MA  02110-1301  USA
+  -->
+<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"	[
+<!ENTITY % CustomDTD SYSTEM "../custom.dtd">
+%CustomDTD;
+]>
+<chapter id="future">
+	<title>Looking to the future</title>
+	<para>
+		What's next for JBoss DNA?  Well, the sequencing system is just the beginning.  With this release, the sequencing system
+	  is stable enough so that more <link linkend="sequencers">sequencers</link> can be developed and used within your own applications.
+		We've also established the foundation for JBoss DNA repositories, including a number of <link linkend="repository-connectors">connectors</link>.
+		We'll continue to expand our library of sequencers and connectors, as well as expand our support of JCR.
+		Other components on our roadmap include a web user interface, a REST-ful server, and a view system that allows domain-specific
+		views of information in the repository.  These components are farther out on our roadmap, and at this time have not been
+		targeted to a particular release.
+	</para>
+	<para>
+	  If you're interested in getting involved with the JBoss DNA project, consider picking up one of the sequencers on our
+	  <ulink url="http://jira.jboss.org/jira/browse/DNA?report=com.atlassian.jira.plugin.system.project:roadmap-panel">roadmap</ulink>.
+	  Or, check out <ulink url="http://jira.jboss.org/jira/secure/IssueNavigator.jspa?reset=true&amp;mode=hide&amp;pid=12310520&amp;sorter/order=DESC&amp;sorter/field=priority&amp;resolution=-1&amp;component=12311436">JIRA</ulink>
+	  for the list of sequencers we've thought of.  If you think of one that's not there, please add it to JIRA!
+	</para>
+</chapter>

Deleted: tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/introduction.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/content/introduction.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/introduction.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,437 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ JBoss, Home of Professional Open Source.
-  ~
-  ~ Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
-  ~ indicated by the @author tags or express copyright attribution
-  ~ statements applied by the authors.  All third-party contributions are
-  ~ distributed under license by Red Hat Middleware LLC.
-  ~
-  ~ This copyrighted material is made available to anyone wishing to use, modify,
-  ~ copy, or redistribute it subject to the terms and conditions of the GNU
-  ~ Lesser General Public License, as published by the Free Software Foundation.
-  ~
-  ~ This program is distributed in the hope that it will be useful,
-  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-  ~ or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-  ~ for more details.
-  ~
-  ~ You should have received a copy of the GNU Lesser General Public License
-  ~ along with this distribution; if not, write to:
-  ~ Free Software Foundation, Inc.
-  ~ 51 Franklin Street, Fifth Floor
-  ~ Boston, MA  02110-1301  USA
-  -->
-<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"	[
-<!ENTITY % CustomDTD SYSTEM "../custom.dtd">
-%CustomDTD;
-]>
-<chapter id="introduction">
-  <title>Introduction to JBoss DNA</title>
-	<para>
-		The JBoss DNA project is building a unified metadata repository system that is <link linkend="jcr_intro">JCR-compliant</link>
-		and capable of federating information from a variety of back-end systems.  To client applications, JBoss DNA looks and behaves like a 
-		regular JCR repository that they search, navigate, version, and listen for changes.  But under the covers, JBoss DNA
-		gets its content by federating multiple back-end systems (like databases, services, other repositories, etc.),
-		allowing those systems to continue "owning" the information but ensuring the unified repository stays up-to-date
-		and in sync.  JBoss DNA also analyzes the content you put into the repository and turns it into information you can use more effectively.
-	</para>
-	<para>
-		This document goes into detail about JBoss DNA and its capabilities, features, architecture, components, extension points,
-		security, configuration, and testing.  So whether your a developer on the project or trying to learn the intricate details of
-		how JBoss DNA works, this document hopefully serves a good reference for developers on the project.
-	</para>
-	<sect1 id="use_cases">
-		<title>Use cases for JBoss DNA</title>
-		<para>
-			JBoss DNA repositories can be used in a variety of applications.  One of the most obvious ones 
-			is in provisioning and management, where it's critical to understand and keep track of the metadata for models, database, services, 
-			components, applications, clusters, machines, and other systems used in an enterprise.  Governance takes that a step 
-			farther, by tracking with those	entities the policies dictating expectations and against which performance can be verified.
-			But, a JBoss DNA repository doesn't have to be large and complex - it could just manage configuration information
-			for an application. Or, provide a JCR interface on top of a couple of non-JCR systems.  In truth, there
-			are a lot of ways that you could use JBoss DNA.
-		</para>
-	</sect1>
-	<sect1 id="what_is_metadata">
-		<title>What is metadata?</title>
-		<para>
-		Before we dive into more detail about JBoss DNA and metadata repositories, it's probably useful to explain what we
-		mean by the term "metadata."  Simply put, <emphasis>metadata</emphasis> is the information you need to manage something.  
-		It's the information needed to configure an operating system, or the description of the information in an LDAP tree, 
-		or the topology of your network. It's the configuration of an application server or enterprise service bus.
-		It's the steps involved in validating an application before it can go into production. It's the description of your 
-		database schemas, or of your services, or of the messages going in and coming out of a service. JBoss DNA is 
-		designed to be a repository for all this (and more).
-		</para>
-		<para>
-		There are a couple of important things to understand about this metadata.  First, the majority of this metadata is
-		managed by other systems: databases, applications, file systems, source code management systems, services, and
-		content management systems, and even other repositories. We can't pull the information out and duplicate it, because
-		we then risk having multiple copies that are out-of-sync.  But we do want to access it through a homogenous API,
-		since that will make our lives significantly easier.  The answer to this apparent dichotomy is 
-		<emphasis><link linkend="dna-connector-federation">federation</link></emphasis>.
-		We can connect to these back-end systems to dynamically access the content and project it into a single, unified
-		repository.  We can also cache it for faster access, as long as the cache can be invalidated based upon time or event.
-		But we also need to maintain a clear picture of where all the bits come from, so users can be sure they're looking
-		at the right information.  And we need to make it as easy as possible to write new connectors, since there are
-		a lot of systems out there that have information we want to federate.
-		</para>
-		<para>
-		The second important characteristic of the metadata is that a lot of it is represented as files, and there are
-		a lot of different file formats.  These include source code, configuration files, web pages, database schemas,
-		XML schemas, service definitions, policies, documents, spreadsheets, presentations, images, audio files, workflow
-		definitions, business rules, and on and on.  And so even though information is added to the repository through files
-		like these, the repository should be able to automatically extract the most useful content from these files.
-		This process of extracting content and storing it in the repository is what JBoss DNA calls 
-		<emphasis><link linkend="sequencing">sequencing</link></emphasis>,
-		and it's an important part of a metadata repository since more information is now available for searching,
-		navigating, relating, and analyzing.
-		</para>
-		<para>
-		The third important characteristic of metadata is that it rarely stays the same.  Different consumers of the
-		information need to see different views of it.  Metadata about two similar systems is not always the same.
-		The metadata often needs to be tagged or annotated with additional information.  And the things being
-		described often change over time, meaning the metadata has to change, too.  As a result, the way in which
-		we store and manage the metadata has to be flexible and able to adapt, and the object model
-		we use to interact with the repository must accommodate these needs.  The graph-based nature of the JCR API provides this 
-		flexibility while also giving us the ability to constrain information when it needs to be constrained.
-		</para>
-	</sect1>
-  <sect1 id="jcr_intro">
-    <title>What is JCR?</title>
-	  <para>There are a lot of choices for how applications can store information persistently so that it can be accessed at a
-	    later time and by other processes. The challenge developers face is how to use an approach that most closely matches the
-	    needs of their application. This choice becomes more important as developers choose to focus their efforts on
-	    application-specific logic, delegating much of the responsibilities for persistence to libraries and frameworks.</para>
-	  <para>
-	    Perhaps one of the easiest techniques is to simply store information in
-	    <emphasis>files</emphasis>
-	    . The Java language makes working with files relatively easy, but Java really doesn't provide many bells and whistles. So
-	    using files is an easy choice when the information is either not complicated (for example property files), or when users may
-	    need to read or change the information outside of the application (for example log files or configuration files). But using
-	    files to persist information becomes more difficult as the information becomes more complex, as the volume of it increases,
-	    or if it needs to be accessed by multiple processes. For these situations, other techniques often offer better choices.
-	  </para>
-	  <para>
-	    Another technique built into the Java language is
-	    <emphasis>Java serialization</emphasis>
-	    , which is capable of persisting the state of an object graph so that it can be read back in at a later time. However, Java
-	    serialization can quickly become tricky if the classes are changed, and so it's beneficial usually when the information is
-	    persisted for a very short period of time. For example, serialization is sometimes used to send an object graph from one
-	    process to another.
-	  </para>
-	  <para>
-	    One of the more popular persistence technologies is the
-	    <emphasis>relational database</emphasis>
-	    . Relational database management systems have been around for decades and are very capable. The Java Database Connectivity
-	    (JDBC) API provides a standard interface for connecting to and interacting with relational databases. However, it is a
-	    low-level API that requires a lot of code to use correctly, and it still doesn't abstract away the DBMS-specific SQL
-	    grammar. Also, working with relational data in an object-oriented language can feel somewhat unnatural, so many developers
-	    map this data to classes that fit much more cleanly into their application. The problem is that manually creating this
-	    mapping layer requires a lot of repetitive and non-trivial JDBC code.
-	  </para>
-	  <para>
-	    <emphasis>Object-relational mapping</emphasis>
-	    libraries automate the creation of this mapping layer and result in far less code that is much more maintainable with
-	    performance that is often as good as (if not better than) handwritten JDBC code. The new
-	    <ulink url="http://java.sun.com/developer/technicalArticles/J2EE/jpa/">Java Persistence API (JPA)</ulink>
-	    provide a standard mechanism for defining the mappings (through annotations) and working with these entity objects. Several
-	    commercial and open-source libraries implement JPA, and some even offer additional capabilities and features that go beyond
-	    JPA. For example,
-	    <ulink url="http://www.hibernate.org">Hibernate</ulink>
-	    is one of the most feature-rich JPA implementations and offers object caching, statement caching, extra association
-	    mappings, and other features that help to improve performance and usefulness.
-	  </para>
-	  <para>
-	    While relational databases and JPA are solutions that work for many applications, they become more limited in cases when the
-	    information structure is highly flexible, is not known
-	    <emphasis>a priori</emphasis>
-	    , or is subject to frequent change and customization. In these situations,
-	    <emphasis>content repositories</emphasis>
-	    may offer a better choice for persistence. Content repositories are almost a hybrid between relational databases and file
-	    systems, and typically provide other capabilities as well, including versioning, indexing, search, access control,
-	    transactions, and observation. Because of this, content repositories are used by content management systems (CMS), document
-	    management systems (DMS), and other applications that manage electronic files (e.g., documents, images, multi-media, web
-	    content, etc.) and metadata associated with them (e.g., author, date, status, security information, etc.). The
-	    <ulink url="&JSR170;">Content Repository for Java technology API</ulink>
-	    provides a standard Java API for working with content repositories. Abbreviated "JCR", this API was developed as part of the
-	    Java Community Process under
-	    <ulink url="&JSR170;">JSR-170</ulink>
-	    and is being revised under
-	    <ulink url="&JSR283;">JSR-283</ulink>
-	    .
-	  </para>
-	  <para>
-	    The
-	    <emphasis>JBoss DNA project</emphasis>
-	    is building unified metadata repository system that is compliant with JCR.  Nearly all of these capabilities are to be hidden
-	    below the JCR API and involve automated processing of the information in the repository. Thus, JBoss DNA can add value to
-	    existing repository implementations. For example, JCR repositories offer the ability to upload files into the repository and
-	    have the file content indexed for search purposes. JBoss DNA also defines a library for "sequencing" content - to extract
-	    meaningful information from that content and store it in the repository, where it can then be searched, accessed, and
-	    analyzed using the JCR API.
-	  </para>
-	  <para> JBoss DNA has other features as well.  You can create federated repositories that dynamically merge the information 
-		  from multiple databases, services, applications, and other JCR repositories.  JBoss DNA also will allow you to 
-	    create customized views based upon the type of data and the role of the user that is accessing the data. And yet another is
-	    to create a REST-ful API to allow the JCR content to be accessed easily by other applications written in other languages.
-	  </para>
-	</sect1>
-  <sect1 id="roadmap">
-    <title>Project roadmap</title>
-    <para>
-      The roadmap for JBoss DNA is managed in the project's
-      <ulink url="&JIRA;">JIRA instance</ulink>
-      . The roadmap shows the different tasks, requirements, issues and other activities that have been targeted to each of the
-      upcoming releases. (The
-      <ulink url="&JIRA;?report=com.atlassian.jira.plugin.system.project:roadmap-panel">roadmap report</ulink>
-      always shows the next three releases.)
-    </para>
-    <para>
-      By convention, JIRA issues not immediately targeted to a release will be reviewed periodically to determine the
-      appropriate release where they can be targeted. Any issue that is reviewed and that does not fit in a known release will
-      be targeted to the
-      <ulink url="&JIRA;?report=com.atlassian.jira.plugin.system.project:roadmap-panel">Future Releases</ulink>
-      bucket.
-		</para>
-		<para>
-			At the start of a release, the project team reviews the roadmap, identifies the goals for the release, and targets (or retargets)
-			the issues appropriately.
-    </para>
-  </sect1>
-  <sect1 id="methodology">
-    <title>Development methodology</title>
-    <para>
-      The JBoss DNA project doesn't use a formal methodology, but instead incorporates techniques, activities, and processes from
-			several methodologies.  In fact, the committers are given a lot of freedom for how they develop the components and features
-			they work on.
-		</para>
-		<para>
-			Nevertheless, we encourage familiarity with several major techniques, including:
-			<itemizedlist>
-				<listitem>
-					<para>
-						<emphasis role="strong"><ulink url="&Wikipedia;Agile_software_development">Agile software development</ulink></emphasis>
-					  includes those software methodologies (e.g., Scrum) that promote development iterations and open collaboration.  While the
-						JBoss DNA project doesn't follow these closely, we do emphasize the importance of always having running software
-						and using running software as a measure of progress.  The JBoss DNA project also wants to move to more frequent
-						releases (on the order of 4-6 weeks)
-					</para>
-				</listitem>
-				<listitem>
-					<para>
-						<emphasis role="strong"><ulink url="&Wikipedia;Test-driven_development">Test-driven development (TDD)</ulink></emphasis>
-						techniques encourage first writing test cases for new features and functionality, then changing the code to add the
-						new features and functionality, and finally the code is refactored to clean-up and address any duplication or inconsistencies.
-					</para>
-				</listitem>
-				<listitem>
-					<para>
-						<emphasis role="strong"><ulink url="http://behaviour-driven.org/">Behavior-driven development (BDD)</ulink></emphasis>
-						is an evolution of TDD, where developers specify the desired behaviors first (rather than writing "tests").
-						In reality, this BDD adopts the language of the user so that tests are written using words that are meaningful
-						to users.  With recent test frameworks (like JUnit 4.4), we're able to write our unit tests to express
-						the desired behavior.  For example, a test class for sequencer implementation might have a test method
-						<code>shouldNotThrowAnErrorWhenStreamIsNull()</code>, which is very easy to understand the intent.
-						The result appears to be a larger number of finer-grained test methods, but which are more easily understood
-						and easier to write.  In fact, many advocates of BDD argue that one of the biggest challenges of TDD is knowing what
-						tests to write in the beginning, whereas with BDD the shift in focus and terminology make it easier for more
-						developers to enumerate the tests they need.
-					</para>
-				</listitem>
-				<listitem>
-					<para>
-						<emphasis role="strong"><ulink url="&Wikipedia;Lean_software_development">Lean software development</ulink></emphasis>
-						is an adaptation of <ulink url="&Wikipedia;Lean_manufacturing">lean manufacturing techniques</ulink>,
-						where emphasis is placed on eliminating waste (e.g., defects, unnecessary complexity, unnecessary code/functionality/features), 
-						delivering as fast as possible, deferring irrevocable decisions as much as possible,
-						continuous learning (continuously adapting and improving the process), empowering the team (or community, in our case),
-						and several other guidelines.  Lean software development can be thought of as an evolution of agile techniques
-						in the same way that behavior-driven development is an evolution of test-driven development.  Lean techniques
-						help the developer to recognize and understand how and why features, bugs, and even their processes impact the development
-						of software.
-					</para>
-				</listitem>
-			</itemizedlist>
-    </para>
-  </sect1>
-  <sect1 id="modules">
-    <title>JBoss DNA modules</title>
-    <para>
-      JBoss DNA consists of the following modules:
-      <itemizedlist>
-        <listitem>
-          <para>
-            <emphasis role="strong">dna-common</emphasis>
-            is a low-level library of common utilities and frameworks, including logging, progress monitoring,
-            internationalization/localization, text translators, component management, and class loader factories.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">dna-graph</emphasis>
-            defines the graph Application Programming Interface (API) and Service Provider Interface (SPI) for DNA, 
-						including the repository connectors, sequencers, graph interfaces, and MIME type detectors.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">dna-repository</emphasis>
-            is the main module and provides the repository-oriented services, including the Repository Service, Sequencing
-            Service, Observation Service, and Rules Service.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">dna-jcr</emphasis>
-            provides the JBoss DNA implementation of the JCR API, which relies upon a repository connector, such as the
-            Federation Connector (see
-            <code>dna-connector-federation</code>
-            ).
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">dna-integration-tests</emphasis>
-            provides a home for all of the integration tests that involve more components that just unit tests. Integration
-            tests are often more complicated, take longer, and involve testing the integration and functionality of many
-            components (whereas unit tests focus on testing a single class or component and may use stubs or mock objects for
-            other components).
-          </para>
-        </listitem>
-      </itemizedlist>
-      The following modules are optional extensions that may be used selectively and as needed (and are located in the source
-      under the
-      <code>extensions/</code>
-      directory):
-      <itemizedlist>
-        <listitem>
-          <para>
-            <emphasis role="strong">dna-maven-classloader</emphasis>
-            is a small library that provides a
-            <code>ClassLoaderFactory</code>
-            implementation that can create
-            <code>java.lang.ClassLoader</code>
-            instances capable of loading classes given a Maven Repository and a list of Maven coordinates. The Maven Repository
-            can be managed within a JCR repository.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">dna-connector-federation</emphasis>
-            is a DNA repository connector that federates, integrates and caches information from multiple sources (via other
-            repository connectors).
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">dna-connector-inmemory</emphasis>
-            is a simple DNA repository connector that manages content within memory. This can be used as a simple cache or as a
-            transient repository.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">dna-connector-jbosscache</emphasis>
-            is a DNA repository connector that manages content within a
-            <ulink url="http://www.jboss.org/jbosscache/">JBoss Cache</ulink>
-            instance. JBoss Cache is a powerful cache implementation that can serve as a distributed cache and that can persist
-            information. The cache instance can be found via JNDI or created and managed by the connector.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">dna-sequencer-zip</emphasis>
-            is a DNA sequencer that extracts from ZIP archives the files (with content) and folders.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">dna-sequencer-images</emphasis>
-            is a DNA sequencer that extracts the image metadata (e.g., size, date, etc.) from PNG, JPEG, GIF, BMP, PCS, IFF,
-            RAS, PBM, PGM, and PPM image files.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">dna-sequencer-mp3</emphasis>
-            is a DNA sequencer that extracts metadata (e.g., author, album name, etc.) from MP3 audio files.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">dna-sequencer-java</emphasis>
-            is a DNA sequencer that extracts the package, class/type, member, documentation, annotations, and other information
-            from Java source files.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">dna-sequencer-msoffice</emphasis>
-            is a DNA sequencer that extracts metadata and summary information from
-            <ulink url="http://office.microsoft.com/en-us/">Microsoft Office</ulink>
-            documents. For example, the sequencer extracts from a PowerPoint presentation the outline as well as thumbnails of
-            each slide. Microsoft Word and Excel files are also supported.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">dna-sequencer-cnd</emphasis>
-            is a DNA sequencer that extracts JCR node definitions from JCR Compact Node Definition (CND) files.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">dna-mimetype-detector-aperture</emphasis>
-            is a DNA MIME type detector that uses the
-            <ulink url="http://aperture.sourceforge.net/">Aperture</ulink>
-            library to determine the best MIME type from the filename and file contents.
-          </para>
-        </listitem>
-      </itemizedlist>
-      There are also documentation modules (located in the source under the
-      <code>docs/</code>
-      directory):
-      <itemizedlist>
-        <listitem>
-          <para>
-            <emphasis role="strong">docs-getting-started</emphasis>
-            is the project with the
-            <ulink url="http://www.docbook.org/">DocBook</ulink>
-            source for the JBoss DNA Getting Started document.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">docs-getting-started-examples</emphasis>
-            is the project with the Java source for the example application used in the JBoss DNA Getting Started document.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <emphasis role="strong">docs-reference-guide</emphasis>
-            is the project with the
-            <ulink url="http://www.docbook.org/">DocBook</ulink>
-            source for this document, the JBoss DNA Reference Guide document.
-          </para>
-        </listitem>
-      </itemizedlist>
-      Finally, there is a module that represents the whole JBoss DNA project:
-      <itemizedlist>
-        <listitem>
-          <para>
-            <emphasis role="strong">dna</emphasis>
-            is the parent project that aggregates all of the other projects and that contains some asset files to create the
-            necessary Maven artifacts during a build.
-          </para>
-        </listitem>
-      </itemizedlist>
-      Each of these modules is a Maven project with a group ID of
-      <code>org.jboss.dna</code>
-      . All of these projects correspond to artifacts in the
-      <ulink url="&JBossMaven;">JBoss Maven 2 Repository</ulink>
-      .
-    </para>
-  </sect1>
-</chapter>

Copied: tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/introduction.xml (from rev 553, trunk/docs/reference/src/main/docbook/en-US/content/introduction.xml)
===================================================================
--- tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/introduction.xml	                        (rev 0)
+++ tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/introduction.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,433 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ JBoss, Home of Professional Open Source.
+  ~
+  ~ Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
+  ~ indicated by the @author tags or express copyright attribution
+  ~ statements applied by the authors.  All third-party contributions are
+  ~ distributed under license by Red Hat Middleware LLC.
+  ~
+  ~ This copyrighted material is made available to anyone wishing to use, modify,
+  ~ copy, or redistribute it subject to the terms and conditions of the GNU
+  ~ Lesser General Public License, as published by the Free Software Foundation.
+  ~
+  ~ This program is distributed in the hope that it will be useful,
+  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+  ~ or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
+  ~ for more details.
+  ~
+  ~ You should have received a copy of the GNU Lesser General Public License
+  ~ along with this distribution; if not, write to:
+  ~ Free Software Foundation, Inc.
+  ~ 51 Franklin Street, Fifth Floor
+  ~ Boston, MA  02110-1301  USA
+  -->
+<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"	[
+<!ENTITY % CustomDTD SYSTEM "../custom.dtd">
+%CustomDTD;
+]>
+<chapter id="introduction">
+  <title>Introduction to JBoss DNA</title>
+	<para>
+		The JBoss DNA project is building a unified metadata repository system that is <link linkend="jcr_intro">JCR-compliant</link>
+		and capable of federating information from a variety of back-end systems.  To client applications, JBoss DNA looks and behaves like a 
+		regular JCR repository that they search, navigate, version, and listen for changes.  But under the covers, JBoss DNA
+		gets its content by federating multiple back-end systems (like databases, services, other repositories, etc.),
+		allowing those systems to continue "owning" the information while ensuring the unified repository stays up-to-date
+		and in sync.  JBoss DNA also analyzes the content you put into the repository and turns it into information you can use more effectively.
+	</para>
+	<para>
+		This document goes into detail about JBoss DNA and its capabilities, features, architecture, components, extension points,
+		security, configuration, and testing.  So whether your a developer on the project, or you're trying to learn the intricate details of
+		how JBoss DNA works, this document hopefully serves a good reference for developers on the project.
+	</para>
+	<sect1 id="use_cases">
+		<title>Use cases for JBoss DNA</title>
+		<para>
+			JBoss DNA repositories can be used in a variety of applications.  One of the most obvious ones 
+			is in provisioning and management, where it's critical to understand and keep track of the metadata for models, database, services, 
+			components, applications, clusters, machines, and other systems used in an enterprise.  Governance takes that a step 
+			farther, by also tracking the policies and expectations against which performance can be verified.
+			In these cases, a repository is an excellent mechanism for managing this complex and highly-varied information. 
+			But a JBoss DNA repository doesn't have to be large and complex: it could just manage configuration information
+			for an application, or it could just provide a JCR interface on top of a couple of non-JCR systems.  
+		</para>
+	</sect1>
+	<sect1 id="what_is_metadata">
+		<title>What is metadata?</title>
+		<para>
+		Before we dive into more detail about JBoss DNA and metadata repositories, it's probably useful to explain what we
+		mean by the term "metadata."  Simply put, <emphasis>metadata</emphasis> is the information you need to manage something.  
+		For example, it's the information needed to configure an operating system, or the description of the information in an LDAP tree, 
+		or the topology of your network. It's the configuration of an application server or enterprise service bus.
+		It's the steps involved in validating an application before it can go into production. It's the description of your 
+		database schemas, or of your services, or of the messages going in and coming out of a service. JBoss DNA is 
+		designed to be a repository for all this (and more).
+		</para>
+		<para>
+		There are a couple of important things to understand about metadata.  First, the majority of metadata is either found in or
+		managed by other systems: databases, applications, file systems, source code management systems, services, and
+		content management systems, and even other repositories. We can't pull the information out and duplicate it, because
+		then we risk having multiple copies that are out-of-sync.  But we do want to access it through a homogenous API,
+		since that will make our lives significantly easier.  
+		</para>
+		<para>
+		The answer to this apparent dichotomy is <emphasis><link linkend="dna-connector-federation">federation</link></emphasis>.
+		We can connect to these back-end systems to dynamically access the content and project it into a single, unified
+		repository.  We can also cache it for faster access, as long as the cache can be invalidated based upon time or event.
+		But we also need to maintain a clear picture of where all the bits come from, so users can be sure they're looking
+		at the right information.  And we need to make it as easy as possible to write new connectors, since there are
+		a lot of systems out there that have information we want to federate.
+		</para>
+		<para>
+		The second important characteristic of the metadata is that a lot of it is represented as files, and there are
+		a lot of different file formats.  These include source code, configuration files, web pages, database schemas,
+		XML schemas, service definitions, policies, documents, spreadsheets, presentations, images, audio files, workflow
+		definitions, business rules, and on and on.  And so even though information is added to the repository through files
+		like these, the repository should be able to automatically extract the most useful content and place it in
+		the repository where it can be much more easily used, searched, related, and analyzed.
+		This process of extracting content and storing it in the repository is what JBoss DNA calls 
+		<emphasis><link linkend="sequencing">sequencing</link></emphasis>,
+		and it's an important part of a metadata repository.
+		</para>
+		<para>
+		The third important characteristic of metadata is that it rarely stays the same.  Different consumers of the
+		information need to see different views of it.  Metadata about two similar systems is not always the same.
+		The metadata often needs to be tagged or annotated with additional information.  And the things being
+		described often change over time, meaning the metadata has to change, too.  As a result, the way in which
+		we store and manage the metadata has to be flexible and able to adapt, and the object model
+		we use to interact with the repository must accommodate these needs.  The graph-based nature of the JCR API provides this 
+		flexibility while also giving us the ability to constrain information when it needs to be constrained.
+		</para>
+	</sect1>
+  <sect1 id="jcr_intro">
+    <title>What is JCR?</title>
+	  <para>There are a lot of choices for how applications can store information persistently so that it can be accessed at a
+	    later time and by other processes. The challenge developers face is how to use an approach that most closely matches the
+	    needs of their application. This choice becomes more important as developers choose to focus their efforts on
+	    application-specific logic, delegating much of the responsibilities for persistence to libraries and frameworks.</para>
+	  <para>
+	    Perhaps one of the easiest techniques is to simply store information in
+	    <emphasis>files</emphasis>
+	    . The Java language makes working with files relatively easy, but Java really doesn't provide many bells and whistles. So
+	    using files is an easy choice when the information is either not complicated (for example property files), or when users may
+	    need to read or change the information outside of the application (for example log files or configuration files). But using
+	    files to persist information becomes more difficult as the information becomes more complex, as the volume of it increases,
+	    or if it needs to be accessed by multiple processes. For these situations, other techniques often have more benefits.
+	  </para>
+	  <para>
+	    Another technique built into the Java language is
+	    <emphasis>Java serialization</emphasis>
+	    , which is capable of persisting the state of an object graph so that it can be read back in at a later time. However, Java
+	    serialization can quickly become tricky if the classes are changed, and so it's beneficial usually when the information is
+	    persisted for a very short period of time. For example, serialization is sometimes used to send an object graph from one
+	    process to another.  Using serialization for longer-term storage of information is more risky.
+	  </para>
+	  <para>
+	    One of the more popular and widely-used persistence technologies is the <emphasis>relational database</emphasis>. 
+			Relational database management systems have been around for decades and are very capable. The Java Database Connectivity
+	    (JDBC) API provides a standard interface for connecting to and interacting with relational databases. However, it is a
+	    low-level API that requires a lot of code to use correctly, and it still doesn't abstract away the DBMS-specific SQL
+	    grammar. Also, working with relational data in an object-oriented language can feel somewhat unnatural, so many developers
+	    map this data to classes that fit much more cleanly into their application. The problem is that manually creating this
+	    mapping layer requires a lot of repetitive and non-trivial JDBC code.
+	  </para>
+	  <para>
+	    <emphasis>Object-relational mapping</emphasis>
+	    libraries automate the creation of this mapping layer and result in far less code that is much more maintainable with
+	    performance that is often as good as (if not better than) handwritten JDBC code. The new
+	    <ulink url="http://java.sun.com/developer/technicalArticles/J2EE/jpa/">Java Persistence API (JPA)</ulink>
+	    provide a standard mechanism for defining the mappings (through annotations) and working with these entity objects. Several
+	    commercial and open-source libraries implement JPA, and some even offer additional capabilities and features that go beyond
+	    JPA. For example, <ulink url="http://www.hibernate.org">Hibernate</ulink> is one of the most feature-rich JPA implementations
+			and offers object caching, statement caching, extra association
+	    mappings, and other features that help to improve performance and usefulness.  Plus, Hibernate is open-source (with support
+			offered by <ulink url="http://www.jboss.com">JBoss</ulink>).
+	  </para>
+	  <para>
+	    While relational databases and JPA are solutions that work well for many applications, they are more limited in cases when the
+	    information structure is highly flexible, the structure is not known <emphasis>a priori</emphasis>, or that structure is
+	 		subject to frequent change and customization. In these situations, <emphasis>content repositories</emphasis>
+	    may offer a better choice for persistence. Content repositories are almost a hybrid with the storage capabilities of
+	 		relational databases and the flexibility offered by other systems, such as using files.  Content repositories also
+	    typically provide other capabilities as well, including versioning, indexing, search, access control,
+	    transactions, and observation. Because of this, content repositories are used by content management systems (CMS), document
+	    management systems (DMS), and other applications that manage electronic files (e.g., documents, images, multi-media, web
+	    content, etc.) and metadata associated with them (e.g., author, date, status, security information, etc.). The
+	    <ulink url="http://www.jcp.org/en/jsr/detail?id=170">Content Repository for Java technology API</ulink>
+	    provides a standard Java API for working with content repositories. Abbreviated "JCR", this API was developed as part of the
+	    Java Community Process under <ulink url="http://www.jcp.org/en/jsr/detail?id=170">JSR-170</ulink>
+	    and is being revised under <ulink url="http://www.jcp.org/en/jsr/detail?id=283">JSR-283</ulink>.
+	  </para>
+	  <para>
+	    The <emphasis>JBoss DNA project</emphasis>
+	    is building unified metadata repository system that is compliant with JCR.  Nearly all of these capabilities are to be hidden
+	    below the JCR API and involve automated processing of the information in the repository. Thus, JBoss DNA can add value to
+	    existing repository implementations. For example, JCR repositories offer the ability to upload files into the repository and
+	    have the file content indexed for search purposes. JBoss DNA also defines a library for "sequencing" content - to extract
+	    meaningful information from that content and store it in the repository, where it can then be searched, accessed, and
+	    analyzed using the JCR API.
+	  </para>
+	  <para> JBoss DNA has other features as well.  You can create federated repositories that dynamically merge the information 
+		  from multiple databases, services, applications, and other JCR repositories.  JBoss DNA also will allow you to 
+	    create customized views based upon the type of data and the role of the user that is accessing the data. And yet another is
+	    to create a REST-ful API to allow the JCR content to be accessed easily by other applications written in other languages.
+	  </para>
+	</sect1>
+  <sect1 id="roadmap">
+    <title>Project roadmap</title>
+    <para>
+      The roadmap for JBoss DNA is managed in the project's
+      <ulink url="&JIRA;">JIRA instance</ulink>
+      . The roadmap shows the different tasks, requirements, issues and other activities that have been targeted to each of the
+      upcoming releases. (The
+      <ulink url="&JIRA;?report=com.atlassian.jira.plugin.system.project:roadmap-panel">roadmap report</ulink>
+      always shows the next three releases.)
+    </para>
+    <para>
+      By convention, JIRA issues not immediately targeted to a release will be reviewed periodically to determine the
+      appropriate release where they can be targeted. Any issue that is reviewed and that does not fit in a known release will
+      be targeted to the
+      <ulink url="&JIRA;?report=com.atlassian.jira.plugin.system.project:roadmap-panel">Future Releases</ulink>
+      bucket.
+		</para>
+		<para>
+			At the start of a release, the project team reviews the roadmap, identifies the goals for the release, and targets (or retargets)
+			the issues appropriately.
+    </para>
+  </sect1>
+  <sect1 id="methodology">
+    <title>Development methodology</title>
+    <para>
+			Rather than use a single formal development methodology, the JBoss DNA project incorporates those techniques, activities, and 
+			processes that are practical and work for the project. In fact, the committers are given a lot of freedom for how they develop 
+			the components and features they work on.
+		</para>
+		<para>
+			Nevertheless, we do encourage familiarity with several major techniques, including:
+			<itemizedlist>
+				<listitem>
+					<para>
+						<emphasis role="strong"><ulink url="&Wikipedia;Agile_software_development">Agile software development</ulink></emphasis>
+					  includes those software methodologies (e.g., Scrum) that promote development iterations and open collaboration.  While the
+						JBoss DNA project doesn't follow these closely, we do emphasize the importance of always having running software
+						and using running software as a measure of progress.  The JBoss DNA project also wants to move to more frequent
+						releases (on the order of 4-6 weeks)
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<emphasis role="strong"><ulink url="&Wikipedia;Test-driven_development">Test-driven development (TDD)</ulink></emphasis>
+						techniques encourage first writing test cases for new features and functionality, then changing the code to add the
+						new features and functionality, and finally the code is refactored to clean-up and address any duplication or inconsistencies.
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<emphasis role="strong"><ulink url="http://behaviour-driven.org/">Behavior-driven development (BDD)</ulink></emphasis>
+						is an evolution of TDD, where developers specify the desired behaviors first (rather than writing "tests").
+						In reality, this BDD adopts the language of the user so that tests are written using words that are meaningful
+						to users.  With recent test frameworks (like JUnit 4.4), we're able to write our unit tests to express
+						the desired behavior.  For example, a test class for sequencer implementation might have a test method
+						<code>shouldNotThrowAnErrorWhenStreamIsNull()</code>, which is very easy to understand the intent.
+						The result appears to be a larger number of finer-grained test methods, but which are more easily understood
+						and easier to write.  In fact, many advocates of BDD argue that one of the biggest challenges of TDD is knowing what
+						tests to write in the beginning, whereas with BDD the shift in focus and terminology make it easier for more
+						developers to enumerate the tests they need.
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<emphasis role="strong"><ulink url="&Wikipedia;Lean_software_development">Lean software development</ulink></emphasis>
+						is an adaptation of <ulink url="&Wikipedia;Lean_manufacturing">lean manufacturing techniques</ulink>,
+						where emphasis is placed on eliminating waste (e.g., defects, unnecessary complexity, unnecessary code/functionality/features), 
+						delivering as fast as possible, deferring irrevocable decisions as much as possible,
+						continuous learning (continuously adapting and improving the process), empowering the team (or community, in our case),
+						and several other guidelines.  Lean software development can be thought of as an evolution of agile techniques
+						in the same way that behavior-driven development is an evolution of test-driven development.  Lean techniques
+						help the developer to recognize and understand how and why features, bugs, and even their processes impact the development
+						of software.
+					</para>
+				</listitem>
+			</itemizedlist>
+    </para>
+  </sect1>
+  <sect1 id="modules">
+    <title>JBoss DNA modules</title>
+    <para>
+      JBoss DNA consists of the following modules:
+      <itemizedlist>
+        <listitem>
+          <para>
+            <emphasis role="strong">dna-common</emphasis>
+            is a low-level library of common utilities and frameworks, including logging, progress monitoring,
+            internationalization/localization, text translators, component management, and class loader factories.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">dna-graph</emphasis>
+            defines the graph Application Programming Interface (API) and Service Provider Interface (SPI) for DNA, 
+						including the repository connectors, sequencers, graph interfaces, and MIME type detectors.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">dna-repository</emphasis>
+            is the main module and provides the repository-oriented services, including the Repository Service, Sequencing
+            Service, Observation Service, and Rules Service.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">dna-jcr</emphasis>
+            provides the JBoss DNA implementation of the JCR API, which relies upon a repository connector, such as the
+            Federation Connector (see
+            <code>dna-connector-federation</code>
+            ).
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">dna-integration-tests</emphasis>
+            provides a home for all of the integration tests that involve more components that just unit tests. Integration
+            tests are often more complicated, take longer, and involve testing the integration and functionality of many
+            components (whereas unit tests focus on testing a single class or component and may use stubs or mock objects for
+            other components).
+          </para>
+        </listitem>
+      </itemizedlist>
+      The following modules are optional extensions that may be used selectively and as needed (and are located in the source
+      under the
+      <code>extensions/</code>
+      directory):
+      <itemizedlist>
+        <listitem>
+          <para>
+            <emphasis role="strong">dna-maven-classloader</emphasis>
+            is a small library that provides a
+            <code>ClassLoaderFactory</code>
+            implementation that can create
+            <code>java.lang.ClassLoader</code>
+            instances capable of loading classes given a Maven Repository and a list of Maven coordinates. The Maven Repository
+            can be managed within a JCR repository.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">dna-connector-federation</emphasis>
+            is a DNA repository connector that federates, integrates and caches information from multiple sources (via other
+            repository connectors).
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">dna-connector-inmemory</emphasis>
+            is a simple DNA repository connector that manages content within memory. This can be used as a simple cache or as a
+            transient repository.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">dna-connector-jbosscache</emphasis>
+            is a DNA repository connector that manages content within a
+            <ulink url="http://www.jboss.org/jbosscache/">JBoss Cache</ulink>
+            instance. JBoss Cache is a powerful cache implementation that can serve as a distributed cache and that can persist
+            information. The cache instance can be found via JNDI or created and managed by the connector.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">dna-sequencer-zip</emphasis>
+            is a DNA sequencer that extracts from ZIP archives the files (with content) and folders.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">dna-sequencer-images</emphasis>
+            is a DNA sequencer that extracts the image metadata (e.g., size, date, etc.) from PNG, JPEG, GIF, BMP, PCS, IFF,
+            RAS, PBM, PGM, and PPM image files.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">dna-sequencer-mp3</emphasis>
+            is a DNA sequencer that extracts metadata (e.g., author, album name, etc.) from MP3 audio files.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">dna-sequencer-java</emphasis>
+            is a DNA sequencer that extracts the package, class/type, member, documentation, annotations, and other information
+            from Java source files.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">dna-sequencer-msoffice</emphasis>
+            is a DNA sequencer that extracts metadata and summary information from
+            <ulink url="http://office.microsoft.com/en-us/">Microsoft Office</ulink>
+            documents. For example, the sequencer extracts from a PowerPoint presentation the outline as well as thumbnails of
+            each slide. Microsoft Word and Excel files are also supported.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">dna-sequencer-cnd</emphasis>
+            is a DNA sequencer that extracts JCR node definitions from JCR Compact Node Definition (CND) files.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">dna-mimetype-detector-aperture</emphasis>
+            is a DNA MIME type detector that uses the
+            <ulink url="http://aperture.sourceforge.net/">Aperture</ulink>
+            library to determine the best MIME type from the filename and file contents.
+          </para>
+        </listitem>
+      </itemizedlist>
+      There are also documentation modules (located in the source under the
+      <code>docs/</code>
+      directory):
+      <itemizedlist>
+        <listitem>
+          <para>
+            <emphasis role="strong">docs-getting-started</emphasis>
+            is the project with the
+            <ulink url="http://www.docbook.org/">DocBook</ulink>
+            source for the JBoss DNA Getting Started document.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">docs-getting-started-examples</emphasis>
+            is the project with the Java source for the example application used in the JBoss DNA Getting Started document.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            <emphasis role="strong">docs-reference-guide</emphasis>
+            is the project with the
+            <ulink url="http://www.docbook.org/">DocBook</ulink>
+            source for this document, the JBoss DNA Reference Guide document.
+          </para>
+        </listitem>
+      </itemizedlist>
+      Finally, there is a module that represents the whole JBoss DNA project:
+      <itemizedlist>
+        <listitem>
+          <para>
+            <emphasis role="strong">dna</emphasis>
+            is the parent project that aggregates all of the other projects and that contains some asset files to create the
+            necessary Maven artifacts during a build.
+          </para>
+        </listitem>
+      </itemizedlist>
+      Each of these modules is a Maven project with a group ID of
+      <code>org.jboss.dna</code>
+      . All of these projects correspond to artifacts in the
+      <ulink url="&JBossMaven;">JBoss Maven 2 Repository</ulink>
+      .
+    </para>
+  </sect1>
+</chapter>

Deleted: tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/legal_notice.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/content/legal_notice.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/legal_notice.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ JBoss, Home of Professional Open Source.
-  ~
-  ~ Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
-  ~ indicated by the @author tags or express copyright attribution
-  ~ statements applied by the authors.  All third-party contributions are
-  ~ distributed under license by Red Hat Middleware LLC.
-  ~
-  ~ This copyrighted material is made available to anyone wishing to use, modify,
-  ~ copy, or redistribute it subject to the terms and conditions of the GNU
-  ~ Lesser General Public License, as published by the Free Software Foundation.
-  ~
-  ~ This program is distributed in the hope that it will be useful,
-  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-  ~ or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-  ~ for more details.
-  ~
-  ~ You should have received a copy of the GNU Lesser General Public License
-  ~ along with this distribution; if not, write to:
-  ~ Free Software Foundation, Inc.
-  ~ 51 Franklin Street, Fifth Floor
-  ~ Boston, MA  02110-1301  USA
-  -->
-<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"	[
-<!ENTITY % CustomDTD SYSTEM "../custom.dtd">
-%CustomDTD;
-]>
-<legalnotice id="Legal_Notice">
-    <title>Legal Notice</title>
-    <para>
-        <address>
-            <street>1801 Varsity Drive</street>
-            <city>Raleigh</city>, <state>NC</state><postcode>27606-2072</postcode><country>USA</country>
-            <phone>Phone: +1 919 754 3700</phone>
-            <phone>Phone: 888 733 4281</phone>
-            <fax>Fax: +1 919 754 3701</fax>
-            <pob>PO Box 13588</pob><city>Research Triangle Park</city>, <state>NC</state><postcode>27709</postcode><country>USA</country>
-        </address>
-    </para>
-    <para>
-        Copyright <trademark class="copyright"/> 2007 by Red Hat, Inc.  This copyrighted material is made available to
-        anyone wishing to use, modify, copy, or redistribute it subject to the terms and conditions of the
-        GNU <ulink url="http://www.gnu.org/licenses/lgpl-2.1.html">Lesser General Public License</ulink>, as published
-        by the Free Software Foundation.
-    </para>
-    <para>
-        Red Hat and the Red Hat "Shadow Man" logo are registered trademarks of Red Hat, Inc. in the United States and other countries.
-    </para>
-    <para>
-        All other trademarks referenced herein are the property of their respective owners.
-    </para>
-    <para>
-        The GPG fingerprint of the security at redhat.com key is:
-    </para>
-    <para>
-        CA 20 86 86 2B D6 9D FC 65 F6 EC C4 21 91 80 CD DB 42 A6 0E
-    </para>
-</legalnotice>

Copied: tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/legal_notice.xml (from rev 553, trunk/docs/reference/src/main/docbook/en-US/content/legal_notice.xml)
===================================================================
--- tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/legal_notice.xml	                        (rev 0)
+++ tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/legal_notice.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ JBoss, Home of Professional Open Source.
+  ~
+  ~ Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
+  ~ indicated by the @author tags or express copyright attribution
+  ~ statements applied by the authors.  All third-party contributions are
+  ~ distributed under license by Red Hat Middleware LLC.
+  ~
+  ~ This copyrighted material is made available to anyone wishing to use, modify,
+  ~ copy, or redistribute it subject to the terms and conditions of the GNU
+  ~ Lesser General Public License, as published by the Free Software Foundation.
+  ~
+  ~ This program is distributed in the hope that it will be useful,
+  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+  ~ or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
+  ~ for more details.
+  ~
+  ~ You should have received a copy of the GNU Lesser General Public License
+  ~ along with this distribution; if not, write to:
+  ~ Free Software Foundation, Inc.
+  ~ 51 Franklin Street, Fifth Floor
+  ~ Boston, MA  02110-1301  USA
+  -->
+<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"	[
+<!ENTITY % CustomDTD SYSTEM "../custom.dtd">
+%CustomDTD;
+]>
+<legalnotice id="Legal_Notice">
+    <title>Legal Notice</title>
+    <para>
+        <address>
+            <street>1801 Varsity Drive</street>
+            <city>Raleigh</city>, <state>NC</state><postcode>27606-2072</postcode><country>USA</country>
+            <phone>Phone: +1 919 754 3700</phone>
+            <phone>Phone: 888 733 4281</phone>
+            <fax>Fax: +1 919 754 3701</fax>
+            <pob>PO Box 13588</pob><city>Research Triangle Park</city>, <state>NC</state><postcode>27709</postcode><country>USA</country>
+        </address>
+    </para>
+    <para>
+        Copyright <trademark class="copyright"/> &copyrightYear; by Red Hat, Inc.  This copyrighted material is made available to
+        anyone wishing to use, modify, copy, or redistribute it subject to the terms and conditions of the
+        GNU <ulink url="http://www.gnu.org/licenses/lgpl-2.1.html">Lesser General Public License</ulink>, as published
+        by the Free Software Foundation.
+    </para>
+    <para>
+        Red Hat and the Red Hat "Shadow Man" logo are registered trademarks of Red Hat, Inc. in the United States and other countries.
+    </para>
+    <para>
+        All other trademarks referenced herein are the property of their respective owners.
+    </para>
+    <para>
+        The GPG fingerprint of the security at redhat.com key is:
+    </para>
+    <para>
+        CA 20 86 86 2B D6 9D FC 65 F6 EC C4 21 91 80 CD DB 42 A6 0E
+    </para>
+</legalnotice>

Deleted: tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/sequencing.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/content/sequencing.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/sequencing.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,821 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ JBoss, Home of Professional Open Source.
-  ~
-  ~ Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
-  ~ indicated by the @author tags or express copyright attribution
-  ~ statements applied by the authors.  All third-party contributions are
-  ~ distributed under license by Red Hat Middleware LLC.
-  ~
-  ~ This copyrighted material is made available to anyone wishing to use, modify,
-  ~ copy, or redistribute it subject to the terms and conditions of the GNU
-  ~ Lesser General Public License, as published by the Free Software Foundation.
-  ~
-  ~ This program is distributed in the hope that it will be useful,
-  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-  ~ or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
-  ~ for more details.
-  ~
-  ~ You should have received a copy of the GNU Lesser General Public License
-  ~ along with this distribution; if not, write to:
-  ~ Free Software Foundation, Inc.
-  ~ 51 Franklin Street, Fifth Floor
-  ~ Boston, MA  02110-1301  USA
-  -->
-<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"	[
-<!ENTITY % CustomDTD SYSTEM "../custom.dtd">
-%CustomDTD;
-]>
-<chapter id="sequencing">
-  <title>Sequencing content</title>
-	<para>As we've mentioned before, JBoss DNA is able to work with existing JCR repositories.  Your client applications
-  	make changes to the information in those repositories, and JBoss DNA automatically uses its sequencers to extract
-  	additional information from the uploaded files.</para>
-	<para>
-		This chapter discusses the sequencing features of JBoss DNA and the components that are involved.
-	</para>
-  <sect1 id="sequencing-service">
-    <title>Sequencing Service</title>
-		<para>The JBoss DNA <emphasis>sequencing service</emphasis> is the component that manages the <emphasis>sequencers</emphasis>, 
-			reacting to changes in JCR repositories and then running the appropriate sequencers.
-      This involves processing the changes on a node, determining which (if any) sequencers should be run on that node,
-      and for each sequencer constructing the execution environment, calling the sequencer, and saving the information
-      generated by the sequencer.</para>
-		<note>
-			<para>Configuring JBoss DNA services is a bit more manual than is ideal. As you'll see, JBoss DNA uses dependency
-	      injection to allow a great deal of flexibility in how it can be configured and customized. But this flexibility
-	      makes it more difficult for you to use.  We understand this, and will soon provide a much easier way to set up 
-				and manage JBoss DNA.  Current plans are to use the <ulink url="http://www.jboss.org/jbossmc">JBoss Microcontainer</ulink>
-				along with a configuration repository.</para>
-		</note>
-		<para>To set up the sequencing service, an instance is created, and dependent components are injected into
-      the object.  This includes among other things:
-			<itemizedlist>
-				<listitem>
-					<para>An <emphasis>execution context</emphasis> that defines the context in which the service runs, including
-			        a factory for JCR sessions given names of the repository and workspace.  This factory must be configured,
-			        and is how JBoss DNA knows about your JCR repositories and how to connect to them.  More on this a bit later.</para>
-				</listitem>
-				<listitem>
-					<para>An optional <emphasis>factory for class loaders</emphasis> used to load sequencers.  If no factory is supplied,
-			        the service uses the current thread's context class loader (or if that is null, the class loader that loaded the
-			        sequencing service class).</para>
-				</listitem>
-				<listitem>
-					<para>An &ExecutorService; used to execute the sequencing activites.  If none
-			        is supplied, a new single-threaded executor is created by calling <code>Executors.newSingleThreadExecutor()</code>.
-			        (This can easily be changed by subclassing and overriding the <code>SequencerService.createDefaultExecutorService()</code> method.)</para>
-				</listitem>
-				<listitem>
-					<para>Filters for sequencers and events.  By default, all sequencers are considered for "node added", "property added"
-			        and "property changed" events.</para>
-				</listitem>
-			</itemizedlist>
-    </para>
-		<para>As mentioned above, the &ExecutionContext; provides access to a &SessionFactory; that is used
-      by JBoss DNA to establish sessions to your JCR repositories.  Two implementations are available:
-			<itemizedlist>
-				<listitem>
-					<para>The &JndiSessionFactory;> looks up JCR &Repository; instances in JNDI using
-			          names that are supplied when creating sessions.  This implementation also has methods to set the
-			          JCR &Credentials; for a given workspace name.</para>
-				</listitem>
-				<listitem>
-					<para>The &SimpleSessionFactory; has methods to register the JCR &Repository; instances
-			          with names, as well as methods to set the JCR &Credentials; for a given workspace name.</para>
-				</listitem>
-			</itemizedlist>
-      You can use the &BasicJcrExecutionContext; implementation of &JcrExecutionContext; and supply
-      a &SessionFactory; instance, or you can provide your own implementation.</para>
-		<para>Here's an example of how to instantiate and configure the &SequencingService;:</para>
-    <programlisting>
-&SimpleSessionFactory; sessionFactory = new &SimpleSessionFactory;();
-sessionFactory.registerRepository("Main Repository", this.repository);
-&Credentials; credentials = new &SimpleCredentials;("jsmith", "secret".toCharArray());
-sessionFactory.registerCredentials("Main Repository/Workspace1", credentials);
-ExecutionContext executionContext = new &BasicJcrExecutionContext;(sessionFactory);
-
-// Create the sequencing service, passing in the execution context ...
-&SequencingService; sequencingService = new &SequencingService;();
-sequencingService.setExecutionContext(executionContext);
-</programlisting>
-		<para>After the sequencing service is created and configured, it must be started.  The &SequencingService;
-      has an <emphasis>administration object</emphasis> (that is an instance of &ServiceAdministrator;)
-      with <code>start()</code>, <code>pause()</code>, and <code>shutdown()</code> methods.  The latter method will 
-      close the queue for sequencing, but will allow sequencing operations already running to complete normally.
-      To wait until all sequencing operations have completed, simply call the <code>awaitTermination</code> method
-      and pass it the maximum amount of time you want to wait.</para>
-		<programlisting>
-sequencingService.getAdministrator().start();
-</programlisting>
-		<para>The JBoss DNA services are utilizing resources and threads that must be released before your application is ready to shut down.
-    	The safe way to do this is to simply obtain the &ServiceAdministrator; for each service (via the <code>getServiceAdministrator()</code> method)
-    	and call <code>shutdown()</code>.  As previously mentioned, the shutdown method will simply prevent new work from being processed
-    	and will not wait for existing work to be completed.  If you want to wait until the service completes all its work, you must wait
-    	until the service terminates.  Here's an example that shows how this is done:</para>
-    <programlisting>
-// Shut down the service and wait until it's all shut down ...
-sequencingService.getAdministrator().shutdown();
-sequencingService.getAdministrator().awaitTermination(5, TimeUnit.SECONDS);
-
-// Shut down the observation service ...
-observationService.getAdministrator().shutdown();
-observationService.getAdministrator().awaitTermination(5, TimeUnit.SECONDS);
-</programlisting>
-  </sect1>
-  <sect1 id="sequencer-configuration">
-    <title>Sequencer Configurations</title>
-		<para>The sequencing service must also be configured with the sequencers that it will use.  This is done using the
-      <code>addSequencer(SequencerConfig)</code> method and passing a &SequencerConfig; instance that
-      you create.  Here's the code that defines 3 sequencer configurations: 1 that places image metadata into
-      "<code><![CDATA[/images/<filename>]]></code>", another that places MP3 metadata into "<code><![CDATA[/mp3s/<filename>]]></code>",
-      and a third that places a structure that represents the classes, methods, and attributes found within Java source into 
-      "<code><![CDATA[/java/<filename>]]></code>".</para>
-    <programlisting>
-String name = "Image Sequencer";
-String desc = "Sequences image files to extract the characteristics of the image";
-String classname = "org.jboss.dna.sequencer.images.ImageMetadataSequencer";
-String[] classpath = null; // Use the current classpath
-String[] pathExpressions = {"//(*.(jpg|jpeg|gif|bmp|pcx|png)[*])/jcr:content[@jcr:data] => /images/$1"};
-&SequencerConfig; imageSequencerConfig = new &SequencerConfig;(name, desc, classname, 
-                                                           classpath, pathExpressions);
-sequencingService.addSequencer(imageSequencerConfig);
-
-name = "MP3 Sequencer";
-desc = "Sequences MP3 files to extract the ID3 tags from the audio file";
-classname = "org.jboss.dna.sequencer.mp3.Mp3MetadataSequencer";
-pathExpressions = {"//(*.mp3[*])/jcr:content[@jcr:data] =&gt; /mp3s/$1"};
-&SequencerConfig; mp3SequencerConfig = new &SequencerConfig;(name, desc, classname, 
-                                                         classpath, pathExpressions);
-sequencingService.addSequencer(mp3SequencerConfig);
-
-name = "Java Sequencer";
-desc = "Sequences java files to extract the characteristics of the Java source";
-classname = "org.jboss.dna.sequencer.java.JavaMetadataSequencer";
-pathExpressions = {"//(*.java[*])/jcr:content[@jcr:data] => /java/$1"};
-&SequencerConfig; javaSequencerConfig = new &SequencerConfig;(name, desc, classname, 
-                                                          classpath, pathExpressions);
-this.sequencingService.addSequencer(javaSequencerConfig);
-</programlisting>
-    <para>Each configuration defines several things, including the name, description, and sequencer implementation class.
-	    The configuration also defines the classpath information, which can be passed to the &ClassLoaderFactory; to get
-	    a Java &ClassLoader; with which the sequencer class can be loaded.  (If no classpath information is provided, as is done
-	    in the code above, the application class loader is used.)  The configuration also specifies the path expressions that
-	    identify the nodes that should be sequenced with the sequencer and where to store the output generated by the sequencer.
-	    Path expressions are pretty straightforward but are quite powerful, so before we go any further with the example,
-	    let's dive into path expressions in more detail.</para>
-		<sect2 id="path_expressions">
-			<title>Path Expressions</title>
-			<para>Path expressions consist of two parts: a selection criteria (or an input path) and an output path:</para>
-	    <programlisting><![CDATA[  inputPath => outputPath ]]></programlisting>
-			<para>The <emphasis>inputPath</emphasis> part defines an expression for the path of a node that is to be sequenced.
-			  Input paths consist of '<code>/</code>' separated segments, where each segment represents a pattern for a single node's
-			  name (including the same-name-sibling indexes) and '<code>@</code>' signifies a property name.</para>
-			<para>Let's first look at some simple examples:</para>
-			<table frame='all'>
-				<title>Simple Input Path Examples</title>
-				<tgroup cols='2' align='left' colsep='1' rowsep='1'>
-		      <colspec colname='c1' colwidth="1*"/>
-		      <colspec colname='c2' colwidth="1*"/>
-					<thead>
-						<row>
-				  		<entry>Input Path</entry>
-				  		<entry>Description</entry>
-						</row>
-					</thead>
-					<tbody>
-						<row><entry>/a/b</entry><entry>Match node "<code>b</code>" that is a child of the top level node "<code>a</code>". Neither node
-						     may have any same-name-sibilings.</entry></row>
-						<row><entry>/a/*</entry><entry>Match any child node of the top level node "<code>a</code>".</entry></row>
-						<row><entry>/a/*.txt</entry><entry>Match any child node of the top level node "<code>a</code>" that also has a name ending in "<code>.txt</code>".</entry></row>
-						<row><entry>/a/*.txt</entry><entry>Match any child node of the top level node "<code>a</code>" that also has a name ending in "<code>.txt</code>".</entry></row>
-						<row><entry>/a/b at c</entry><entry>Match the property "<code>c</code>" of node "<code>/a/b</code>".</entry></row>
-						<row><entry>/a/b[2]</entry><entry>The second child named "<code>b</code>" below the top level node "<code>a</code>".</entry></row>
-						<row><entry>/a/b[2,3,4]</entry><entry>The second, third or fourth child named "<code>b</code>" below the top level node "<code>a</code>".</entry></row>
-						<row><entry>/a/b[*]</entry><entry>Any (and every) child named "<code>b</code>" below the top level node "<code>a</code>".</entry></row>
-						<row><entry>//a/b</entry><entry>Any node named "<code>b</code>" that exists below a node named "<code>a</code>", regardless 
-						     of where node "<code>a</code>" occurs.  Again, neither node may have any same-name-sibilings.</entry></row>
-					</tbody>
-				</tgroup>
-			</table>
-			<para>With these simple examples, you can probably discern the most important rules.  First, the '<code>*</code>' is a wildcard character
-			  that matches any character or sequence of characters in a node's name (or index if appearing in between square brackets), and
-			  can be used in conjunction with other characters (e.g., "<code>*.txt</code>").</para>
-			<para>Second, square brackets (i.e., '<code>[</code>' and '<code>]</code>') are used to match a node's same-name-sibiling index.
-			  You can put a single non-negative number or a comma-separated list of non-negative numbers.  Use '0' to match a node that has no
-			  same-name-sibilings, or any positive number to match the specific same-name-sibling.</para>
-			<para>Third, combining two delimiters (e.g., "<code>//</code>") matches any sequence of nodes, regardless of what their names are 
-			  or how many nodes.  Often used with other patterns to identify nodes at any level matching other patterns. 
-				Three or more sequential slash characters are treated as two.</para>
-			<para>Many input paths can be created using just these simple rules.  However, input paths can be more complicated.  Here are some
-				more examples:</para>
-			<table frame='all'>
-				<title>More Complex Input Path Examples</title>
-				<tgroup cols='2' align='left' colsep='1' rowsep='1'>
-		      <colspec colname='c1' colwidth="1*"/>
-		      <colspec colname='c2' colwidth="1*"/>
-					<thead>
-						<row>
-				  		<entry>Input Path</entry>
-				  		<entry>Description</entry>
-						</row>
-					</thead>
-					<tbody>
-						<row><entry>/a/(b|c|d)</entry><entry>Match children of the top level node "<code>a</code>" that are named "<code>a</code>", 
-								 "<code>b</code>" or "<code>c</code>". None of the nodes may have same-name-sibling indexes.</entry></row>
-						<row><entry>/a/b[c/d]</entry><entry>Match node "<code>b</code>" child of the top level node "<code>a</code>", when node
-						     "<code>b</code>" has a child named "<code>c</code>", and "<code>c</code>" has a child named "<code>d</code>".
-								 Node "<code>b</code>" is the selected node, while nodes "<code>b</code>" and "<code>b</code>" are used as criteria but are not
-								 selected.</entry></row>
-						<row><entry>/a(/(b|c|d|)/e)[f/g/@something]</entry><entry>Match node "<code>/a/b/e</code>", "<code>/a/c/e</code>", "<code>/a/d/e</code>",
-						     or "<code>/a/e</code>" when they also have a child "<code>f</code>" that itself has a child "<code>g</code>" with property
-						     "<code>something</code>". None of the nodes may have same-name-sibling indexes.</entry></row>
-					</tbody>
-				</tgroup>
-			</table>
-			<para>These examples show a few more advanced rules.  Parentheses (i.e., '<code>(</code>' and '<code>)</code>') can be used
-			  to define a set of options for names, as shown in the first and third rules.  Whatever part of the selected node's path
-			  appears between the parentheses is captured for use within the output path.  Thus, the first input path in the previous table
-			  would match node "<code>/a/b</code>", and "b" would be captured and could be used within the output path using "<code>$1</code>",
-			  where the number used in the output path identifies the parentheses.</para>
-			<para>Square brackets can also be used to specify criteria on a node's properties or children.  Whatever appears in between the square
-				brackets does not appear in the selected node.</para>
-		  <para>Let's go back to the previous code fragment and look at the first path expression:</para>
-		  <programlisting><![CDATA[  //(*.(jpg|jpeg|gif|bmp|pcx|png)[*])/jcr:content[@jcr:data] => /images/$1 ]]></programlisting>
-		  <para>This matches a node named "<code>jcr:content</code>" with property "<code>jcr:data</code>" but no siblings with the same name,
-		    and that is a child of a node whose name ends with "<code>.jpg</code>", "<code>.jpeg</code>", "<code>.gif</code>", "<code>.bmp</code>", "<code>.pcx</code>", 
-		    or  "<code>.png</code>" that may have any same-name-sibling index.  These nodes can appear at any level in the repository.
-			  Note how the input path capture the filename (the segment containing the file extension), including any same-name-sibling index.
-			  This filename is then used in the output path, which is where the sequenced content is placed.</para>
-		</sect2>
-  </sect1>
-  <sect1 id="sequencers">
-    <title>JBoss DNA Sequencers</title>
-    <para>
-    	JBoss DNA includes a number of sequencers "out of the box".  These sequencers can be used within your application to sequence
-			a variety of common file formats.  To use them, the only thing you have to do is define the appropriate sequencer configurations
-			and include the appropriate JAR files.
-    </para>
-    <sect2 id="dna-sequencer-images">
-      <title>Image sequencer</title>
-      <para>
-				A sequencer that extracts metadata from JPEG, GIF, BMP, PCX, PNG, IFF, RAS, PBM, PGM, PPM and PSD image files.
-				This sequencer extracts the file format, image resolution, number of bits per pixel and optionally number of images, comments 
-				and physical resolution, and then writes this information into the repository using the following structure:
-			</para>
-			<itemizedlist>
-				<listitem>
-					<para>
-						<emphasis role="strong">image:metadata</emphasis> node of type <code>image:metadata</code>
-					</para>
-				</listitem>
-				<listitem>
-					<itemizedlist>
-						<listitem>
-							<para><emphasis role="strong">jcr:mimeType</emphasis> - optional string property for the mime type of the image</para>
-						</listitem>
-						<listitem>
-							<para><emphasis role="strong">jcr:encoding</emphasis> - optional string property for the encoding of the image</para>
-						</listitem>
-						<listitem>
-							<para><emphasis role="strong">image:formatName</emphasis> - string property for the name of the format</para>
-						</listitem>
-						<listitem>
-							<para><emphasis role="strong">image:width</emphasis> - optional integer property for the image's width in pixels</para>
-						</listitem>
-						<listitem>
-							<para><emphasis role="strong">image:height</emphasis> - optional integer property for the image's height in pixles</para>
-						</listitem>
-						<listitem>
-							<para><emphasis role="strong">image:bitsPerPixel</emphasis> - optional integer property for the number of bits per pixel</para>
-						</listitem>
-						<listitem>
-							<para><emphasis role="strong">image:progressive</emphasis> - optional boolean property specifying whether the image is stored in a progressive
-									(i.e., interlaced) form</para>
-						</listitem>
-						<listitem>
-							<para><emphasis role="strong">image:numberOfImages</emphasis> - optional integer property for the number of images stored in the file; defaults
-									to 1</para>
-						</listitem>
-						<listitem>
-							<para><emphasis role="strong">image:physicalWidthDpi</emphasis> - optional integer property for the physical width of the image in dots per inch</para>
-						</listitem>
-						<listitem>
-							<para><emphasis role="strong">image:physicalHeightDpi</emphasis> - optional integer property for the physical height of the image in dots per
-									inch</para>
-						</listitem>
-						<listitem>
-							<para><emphasis role="strong">image:physicalWidthInches</emphasis> - optional double property for the physical width of the image in inches</para>
-						</listitem>
-						<listitem>
-							<para><emphasis role="strong">image:physicalHeightInches</emphasis> - optional double property for the physical height of the image in inches</para>
-						</listitem>
-					</itemizedlist>
-				</listitem>
-			</itemizedlist>
-			<para>
-				This structure could be extended in the future to add EXIF and IPTC metadata as child nodes. For example, EXIF metadata is
-				structured as tags in directories, where the directories form something like namespaces, and which are used by different camera
-				vendors to store custom metadata. This structure could be mapped with each directory (e.g. "EXIF" or "Nikon Makernote" or
-				"IPTC") as the name of a child node, with the EXIF tags values stored as either properties or child nodes.
-      </para>
-			<para>
-				To use this sequencer, simply include the <code>dna-sequencer-images</code> JAR
-				in your application and configure	the Sequencing Service to use this sequencer using something similar to:
-      </para>
-	    <programlisting>
-String name = "Image Sequencer";
-String desc = "Sequences image files to extract the characteristics of the image";
-String classname = "org.jboss.dna.sequencer.images.ImageMetadataSequencer";
-String[] classpath = null; // Use the current classpath
-String[] pathExpressions = {"//(*.(jpg|jpeg|gif|bmp|pcx|png|iff|ras|pbm|pgm|ppm|psd)[*])/jcr:content[@jcr:data] =&gt; /images/$1"};
-&SequencerConfig; sequencerConfig = new &SequencerConfig;(name, desc, classname, 
-                                                      classpath, pathExpressions);
-sequencingService.addSequencer(sequencerConfig);
-</programlisting>
-    </sect2>
-    <sect2 id="dna-sequencer-msoffice">
-      <title>Microsoft Office document sequencer</title>
-      <para>
-      	This sequencer is included in JBoss DNA and processes Microsoft Office documents, including Excel spreadsheets
-				and PowerPoint presentations.  With presentations, the sequencer extracts the slides, titles, text and slide thumbnails.
-				With spreadsheets, the sequencer extracts the names of the sheets.  And, the sequencer extracts for all the files the
-				general file information, including the name of the author, title, keywords, subject, comments, and various dates.
-      </para>
-			<note>
-				<para>
-					Currently, Word documents are not supported.  For more information and the latest status, see
-					<ulink url="&JIRA;-153">DNA-153</ulink>.
-				</para>
-			</note>
-			<para>
-				To use this sequencer, simply include the <code>dna-sequencer-msoffice</code> JAR and all of the
-				<ulink url="http://poi.apache.org/">POI</ulink> JARs
-				in your application and configure	the Sequencing Service to use this sequencer using something similar to:
-      </para>
-	    <programlisting>
-String name = "Microsoft Office Document Sequencer";
-String desc = "Sequences MS Office documents, including spreadsheets and presentations";
-String classname = "org.jboss.dna.sequencer.msoffice.MSOfficeMetadataSequencer";
-String[] classpath = null; // Use the current classpath
-String[] pathExpressions = {"//(*.(doc|docx|ppt|pps|xls)[*])/jcr:content[@jcr:data] =&gt; /msoffice/$1"};
-&SequencerConfig; sequencerConfig = new &SequencerConfig;(name, desc, classname, 
-                                                      classpath, pathExpressions);
-sequencingService.addSequencer(sequencerConfig);
-</programlisting>
-    </sect2>
-    <sect2 id="dna-sequencer-zip">
-      <title>ZIP archive sequencer</title>
-      <para>
-      	The ZIP file sequencer is included in JBoss DNA and extracts the files and folders contained in the ZIP archive file,
-				extracting the files and folders into the repository using JCR's <code>nt:file</code> and <code>nt:folder</code> node types.
-      </para>
-			<para>
-				To use this sequencer, simply include the <code>dna-sequencer-zip</code> JAR
-				in your application and configure	the Sequencing Service to use this sequencer using something similar to:
-      </para>
-	    <programlisting>
-String name = "ZIP Sequencer";
-String desc = "Sequences ZIP archives to extract the files and folders";
-String classname = "org.jboss.dna.sequencer.zip.ZipSequencer";
-String[] pathExpressions = {"//(*.zip[*])/jcr:content[@jcr:data] =&gt; /zips/$1"};
-&SequencerConfig; sequencerConfig = new &SequencerConfig;(name, desc, classname, 
-                                                      classpath, pathExpressions);
-this.sequencingService.addSequencer(sequencerConfig);
-</programlisting>
-    </sect2>
-    <sect2 id="dna-sequencer-java">
-      <title>Java source sequencer</title>
-      <para>
-				One of the sequencers that included in JBoss DNA is the <emphasis role="strong">dna-sequencer-java</emphasis> subproject.
-				This sequencer parses Java source code added to the repository and extracts the basic structure of the classes and enumerations 
-				defined in the code.
-				This structure includes: the package structures, class declarations, class and member attribute declarations,
-				class and member method declarations with signature (but not implementation logic), enumerations with each enumeration literal value,
-				annotations, and JavaDoc information for all of the above. 
-				After extracting this information from the source code, the sequencer then writes this structure into the repository,
-				where it can be further processed, analyzed, searched, navigated, or referenced.
-			</para>
-			<para>
-				To use this sequencer, simply include the <code>dna-sequencer-java</code> JAR (plus all of the JARs that it is dependent upon)
-				in your application and configure	the Sequencing Service to use this sequencer using something similar to:
-      </para>
-	    <programlisting>
-String name = "Java Sequencer";
-String desc = "Sequences java files to extract the characteristics of the Java source";
-String classname = "org.jboss.dna.sequencer.java.JavaMetadataSequencer";
-String[] classpath = null; // Use the current classpath
-String[] pathExpressions = {"//(*.java[*])/jcr:content[@jcr:data] =&gt; /java/$1"};
-&SequencerConfig; sequencerConfig = new &SequencerConfig;(name, desc, classname, 
-                                                      classpath, pathExpressions);
-this.sequencingService.addSequencer(sequencerConfig);
-</programlisting>
-    </sect2>
-    <sect2 id="dna-sequencer-mp3">
-      <title>MP3 audio file sequencer</title>
-      <para>
-      	Another sequencer that is included in JBoss DNA is the <emphasis role="strong">dna-sequencer-mp3</emphasis> sequencer project.
-				This sequencer processes MP3 audio files added to a repository and extracts the <ulink url="http://www.id3.org/">ID3</ulink>
-			 	metadata for the file, including the track's title, author, album name, year, and comment.
-				After extracting this information from the audio files, the sequencer then writes this structure into the repository,
-				where it can be further processed, analyzed, searched, navigated, or referenced.
-      </para>
-			<para>
-				To use this sequencer, simply include the <code>dna-sequencer-mp3</code> JAR and the <ulink url="http://www.jthink.net/jaudiotagger/">JAudioTagger</ulink>
-				library in your application and configure	the Sequencing Service to use this sequencer using something similar to:
-      </para>
-	    <programlisting>
-String name = "MP3 Sequencer";
-String desc = "Sequences MP3 files to extract the ID3 tags of the audio file";
-String classname = "org.jboss.dna.sequencer.mp3.Mp3MetadataSequencer";
-String[] pathExpressions = {"//(*.mp3[*])/jcr:content[@jcr:data] =&gt; /mp3s/$1"};
-&SequencerConfig; sequencerConfig = new &SequencerConfig;(name, desc, classname, 
-                                                      classpath, pathExpressions);
-this.sequencingService.addSequencer(sequencerConfig);
-</programlisting>
-    </sect2>
-    <sect2 id="dna-sequencer-cnd">
-      <title>JCR Compact Node Definition (CND) file sequencer</title>
-      <para>
-      	This sequencer is incomplete and is not currently usable.  The purpose is to sequence JCR Compact Node Definition (CND) files
-				to extract the node definitions with their property definitions, and inserting these into the repository using JCR standard notation.
-      </para>
-    </sect2>
-  </sect1>
-  <sect1 id="custom-sequencers">
-	  <title>Creating custom sequencers</title>
-	  <para>The current release of JBoss DNA comes with six sequencers.  However, it's very easy to create your own
-	  sequencers and to then configure JBoss DNA to use them in your own application.
-	  </para>
-	  <para>
-	  Creating a custom sequencer involves the following steps:
-	  <itemizedlist>
-	    <listitem>
-	      <para>Create a Maven 2 project for your sequencer;</para>
-	    </listitem>
-	    <listitem>
-	      <para>Implement the &StreamSequencer; interface with your own implementation, and create unit tests to verify
-	      the functionality and expected behavior;</para>
-	    </listitem>
-	    <listitem>
-	      <para>Add the sequencer configuration to the JBoss DNA &SequencingService; in your application
-	      as described in the <link linkend="using_dna">previous chapter</link>; and</para>
-	    </listitem>
-	    <listitem>
-	      <para>Deploy the JAR file with your implementation (as well as any dependencies), and make them available to JBoss DNA
-	      in your application.</para>
-	    </listitem>
-	  </itemizedlist>
-	  It's that simple.
-	  </para>
-	  <sect2 id="custom_sequencer_project">
-	    <title>Creating the Maven 2 project</title>
-	    <para>The first step is to create the Maven 2 project that you can use to compile your code and build the JARs.
-	    Maven 2 automates a lot of the work, and since you're already <link linkend="maven">set up to use Maven</link>,
-	    using Maven for your project will save you a lot of time and effort.  Of course, you don't have to use Maven 2, but then you'll
-	    have to get the required libraries and manage the compiling and building process yourself.</para>
-	    <note>
-	      <para>JBoss DNA may provide in the future a Maven archetype for creating sequencer projects.  If you'd find this useful
-	        and would like to help create it, please <link linkend="preface">join the community</link>.</para>
-	    </note>
-	  <note>
-	    <para>The <emphasis role="strong">dna-sequencer-images</emphasis> project is a small, self-contained sequencer implementation that
-	    has only the minimal dependencies.  Starting with this project's source and modifying it to suit your needs may be the easiest way to get started.
-	    See the subversion repository: <ulink url="&Subversion;trunk/extensions/dna-sequencer-images/">&Subversion;trunk/sequencers/dna-sequencer-images/</ulink>
-	    </para>
-	  </note>
-	    <para>You can create your Maven project any way you'd like.  For examples, see the <ulink url="http://maven.apache.org/guides/getting-started/index.html#How_do_I_make_my_first_Maven_project">Maven 2 documentation</ulink>.  
-	    Once you've done that, just add the dependencies in your project's <code>pom.xml</code> dependencies section:</para>
-	  	<programlisting role="XML"><![CDATA[
-<dependency>
-  <groupId>org.jboss.dna</groupId>
-  <artifactId>dna-common</artifactId>
-  <version>0.1</version>
-</dependency>
-<dependency>
-  <groupId>org.jboss.dna</groupId>
-  <artifactId>dna-graph</artifactId>
-  <version>0.1</version>
-</dependency>
-<dependency>
-  <groupId>org.slf4j</groupId>
-  <artifactId>slf4j-api</artifactId>
-</dependency>
-	 ]]></programlisting>
-			<para>These are minimum dependencies required for compiling a sequencer.  Of course, you'll have to add
-	  		other dependencies that your sequencer needs.</para>
-	  	<para>As for testing, you probably will want to add more dependencies, such as those listed here:</para>
-			<programlisting role="XML"><![CDATA[
-<dependency>
-  <groupId>junit</groupId>
-  <artifactId>junit</artifactId>
-  <version>4.4</version>
-  <scope>test</scope>
-</dependency>
-<dependency>
-  <groupId>org.hamcrest</groupId>
-  <artifactId>hamcrest-library</artifactId>
-  <version>1.1</version>
-  <scope>test</scope>
-</dependency>
-<!-- Logging with Log4J -->
-<dependency>
-  <groupId>org.slf4j</groupId>
-  <artifactId>slf4j-log4j12</artifactId>
-  <version>1.4.3</version>
-  <scope>test</scope>
-</dependency>
-<dependency>
-  <groupId>log4j</groupId>
-  <artifactId>log4j</artifactId>
-  <version>1.2.14</version>
-  <scope>test</scope>
-</dependency>
-	 ]]></programlisting>
-	  	<para>Testing JBoss DNA sequencers does not require a JCR repository or the JBoss DNA services.  (For more detail,
-	  		see the <link linkend="testing_custom_sequencers">testing section</link>.)  However, if you want to do
-	  		integration testing with a JCR repository and the JBoss DNA services, you'll need additional dependencies for these libraries.</para>
-			<programlisting role="XML"><![CDATA[
-<dependency>
-  <groupId>org.jboss.dna</groupId>
-  <artifactId>dna-repository</artifactId>
-  <version>0.1</version>
-  <scope>test</scope>
-</dependency>
-<!-- Java Content Repository API -->
-<dependency>
-  <groupId>javax.jcr</groupId>
-  <artifactId>jcr</artifactId>
-  <version>1.0.1</version>
-  <scope>test</scope>
-</dependency>
-<!-- Apache Jackrabbit (JCR Implementation) -->
-<dependency>
-  <groupId>org.apache.jackrabbit</groupId>
-  <artifactId>jackrabbit-api</artifactId>
-  <version>1.3.3</version>
-  <scope>test</scope>
-  <!-- Exclude these since they are included in JDK 1.5 -->
-  <exclusions>
-    <exclusion>
-      <groupId>xml-apis</groupId>
-      <artifactId>xml-apis</artifactId>
-    </exclusion>
-    <exclusion>
-      <groupId>xerces</groupId>
-      <artifactId>xercesImpl</artifactId>
-    </exclusion>
-  </exclusions>
-</dependency>
-<dependency>
-  <groupId>org.apache.jackrabbit</groupId>
-  <artifactId>jackrabbit-core</artifactId>
-  <version>1.3.3</version>
-  <scope>test</scope>
-  <!-- Exclude these since they are included in JDK 1.5 -->
-  <exclusions>
-    <exclusion>
-      <groupId>xml-apis</groupId>
-      <artifactId>xml-apis</artifactId>
-    </exclusion>
-    <exclusion>
-      <groupId>xerces</groupId>
-      <artifactId>xercesImpl</artifactId>
-    </exclusion>
-  </exclusions>
-</dependency>
-	 ]]></programlisting>
-	  <para>At this point, your project should be set up correctly, and you're ready to move on to 
-	  	<link linkend="custom_sequencer_implementation">writing the Java implementation</link> for your sequencer.</para>
-	  </sect2>
-	  <sect2 id="custom_sequencer_implementation">
-	    <title>Implementing the StreamSequencer interface</title>
-	    <para>After creating the project and setting up the dependencies, the next step is to create a Java class that implements
-	    	the &StreamSequencer; interface.  This interface is very straightforward and involves a single method:</para>
-	    <programlisting>
-public interface &StreamSequencer; {
-
-    /**
-     * Sequence the data found in the supplied stream, placing the output 
-     * information into the supplied map.
-     *
-     * @param stream the stream with the data to be sequenced; never null
-     * @param output the output from the sequencing operation; never null
-     * @param progressMonitor the progress monitor that should be kept 
-     *   updated with the sequencer's progress and that should be
-     *   frequently consulted as to whether this operation has been cancelled.
-     */
-    void sequence( &InputStream; stream, &SequencerOutput; output, &ProgressMonitor; progressMonitor );
-</programlisting>
-	    <para>The job of a stream sequencer is to process the data in the supplied stream, and place into the &SequencerOutput;
-	    any information that is to go into the JCR repository.  JBoss DNA figures out when your sequencer should be called
-	    (of course, using the sequencing configuration you'll add in a bit), and then makes sure the generated information
-	    is saved in the correct place in the repository.  
-	    </para>
-	    <para>The &SequencerOutput; class is fairly easy to use.  There are basically two methods you need to call.
-	    One method sets the property values, while the other sets references to other nodes in the repository.  Use these
-	    methods to describe the properties of the nodes you want to create, using relative paths for the nodes and
-	    valid JCR property names for properties and references.  JBoss DNA will ensure that nodes are created or updated
-	    whenever they're needed.</para>
-	    <programlisting>
-public interface &SequencerOutput; {
-
-  /**
-   * Set the supplied property on the supplied node.  The allowable
-   * values are any of the following:
-   *   - primitives (which will be autoboxed)
-   *   - String instances
-   *   - String arrays
-   *   - byte arrays
-   *   - InputStream instances
-   *   - Calendar instances
-   *
-   * @param nodePath the path to the node containing the property; 
-   * may not be null
-   * @param property the name of the property to be set
-   * @param values the value(s) for the property; may be empty if 
-   * any existing property is to be removed
-   */
-  void setProperty( String nodePath, String property, Object... values );
-
-  /**
-   * Set the supplied reference on the supplied node.
-   *
-   * @param nodePath the path to the node containing the property; 
-   * may not be null
-   * @param property the name of the property to be set
-   * @param paths the paths to the referenced property, which may be
-   * absolute paths or relative to the sequencer output node;
-   * may be empty if any existing property is to be removed
-   */
-  void setReference( String nodePath, String property, String... paths );
-}
-</programlisting>
-	    <para>JBoss DNA will create nodes of type <code>nt:unstructured</code> unless you specify the value for the
-	      <code>jcr:primaryType</code> property.  You can also specify the values for the <code>jcr:mixinTypes</code> property
-	      if you want to add mixins to any node.</para>
-	    <para>For a complete example of a sequencer, let's look at the &ImageMetadataSequencer; 
-				implementation:</para>
-	    <programlisting>
-public class &ImageMetadataSequencer; implements &StreamSequencer; {
-
-    public static final String METADATA_NODE = "image:metadata";
-    public static final String IMAGE_PRIMARY_TYPE = "jcr:primaryType";
-    public static final String IMAGE_MIXINS = "jcr:mixinTypes";
-    public static final String IMAGE_MIME_TYPE = "jcr:mimeType";
-    public static final String IMAGE_ENCODING = "jcr:encoding";
-    public static final String IMAGE_FORMAT_NAME = "image:formatName";
-    public static final String IMAGE_WIDTH = "image:width";
-    public static final String IMAGE_HEIGHT = "image:height";
-    public static final String IMAGE_BITS_PER_PIXEL = "image:bitsPerPixel";
-    public static final String IMAGE_PROGRESSIVE = "image:progressive";
-    public static final String IMAGE_NUMBER_OF_IMAGES = "image:numberOfImages";
-    public static final String IMAGE_PHYSICAL_WIDTH_DPI = "image:physicalWidthDpi";
-    public static final String IMAGE_PHYSICAL_HEIGHT_DPI = "image:physicalHeightDpi";
-    public static final String IMAGE_PHYSICAL_WIDTH_INCHES = "image:physicalWidthInches";
-    public static final String IMAGE_PHYSICAL_HEIGHT_INCHES = "image:physicalHeightInches";
-
-    /**
-     * {@inheritDoc}
-     */
-    public void sequence( &InputStream; stream, &SequencerOutput; output, 
-                          &ProgressMonitor; progressMonitor ) {
-        progressMonitor.beginTask(10, &ImageSequencerI18n;.sequencerTaskName);
-
-        &ImageMetadata; metadata = new &ImageMetadata;();
-        metadata.setInput(stream);
-        metadata.setDetermineImageNumber(true);
-        metadata.setCollectComments(true);
-
-        // Process the image stream and extract the metadata ...
-        if (!metadata.check()) {
-            metadata = null;
-        }
-        progressMonitor.worked(5);
-        if (progressMonitor.isCancelled()) return;
-
-        // Generate the output graph if we found useful metadata ...
-        if (metadata != null) {
-            // Place the image metadata into the output map ...
-            output.setProperty(METADATA_NODE, IMAGE_PRIMARY_TYPE, "image:metadata");
-            // output.psetProperty(METADATA_NODE, IMAGE_MIXINS, "");
-            output.setProperty(METADATA_NODE, IMAGE_MIME_TYPE, metadata.getMimeType());
-            // output.setProperty(METADATA_NODE, IMAGE_ENCODING, "");
-            output.setProperty(METADATA_NODE, IMAGE_FORMAT_NAME, metadata.getFormatName());
-            output.setProperty(METADATA_NODE, IMAGE_WIDTH, metadata.getWidth());
-            output.setProperty(METADATA_NODE, IMAGE_HEIGHT, metadata.getHeight());
-            output.setProperty(METADATA_NODE, IMAGE_BITS_PER_PIXEL, metadata.getBitsPerPixel());
-            output.setProperty(METADATA_NODE, IMAGE_PROGRESSIVE, metadata.isProgressive());
-            output.setProperty(METADATA_NODE, IMAGE_NUMBER_OF_IMAGES, metadata.getNumberOfImages());
-            output.setProperty(METADATA_NODE, IMAGE_PHYSICAL_WIDTH_DPI, metadata.getPhysicalWidthDpi());
-            output.setProperty(METADATA_NODE, IMAGE_PHYSICAL_HEIGHT_DPI, metadata.getPhysicalHeightDpi());
-            output.setProperty(METADATA_NODE, IMAGE_PHYSICAL_WIDTH_INCHES, metadata.getPhysicalWidthInch());
-            output.setProperty(METADATA_NODE, IMAGE_PHYSICAL_HEIGHT_INCHES, metadata.getPhysicalHeightInch());
-        }
-
-        progressMonitor.done();
-    }
-}
-</programlisting>
-	    <para>
-	    Notice how the image metadata is extracted and the output graph is generated.  A single node is created with the name <code>image:metadata</code>
-	    and with the <code>image:metadata</code> node type.  No mixins are defined for the node, but several properties are set on the node
-	    using the values obtained from the image metadata.  After this method returns, the constructed graph will be saved to the repository
-	    in all of the places defined by its configuration.  (This is why only relative paths are used in the sequencer.)
-	    </para>
-	    <para>Also note how the progress monitor is used.  Reporting progress through the supplied &ProgressMonitor;> is very easy, and it ensures that JBoss DNA
-	     can accurately monitor and report the status of sequencing activities to the users.  At the beginning of the operation, call
-	     <code>beginTask(...)</code> with a meaningful message describing
-	     the operation and a total for the amount of work that will be done by this sequencer. Then perform the sequencing work,
-	     periodically reporting work by specifying the incremental amount of work with the <code>worked(double)</code> method, or
-	     by creating a subtask with the <code>createSubtask(double)</code> method and reporting work against that subtask
-	     monitor.
-	     </para>
-	     <para>Your method should periodically use the &ProgressMonitor;'s <code>isCancelled()</code> method to check whether the operation has been
-	     cancelled.. If this method returns true, the implementation should abort all work as
-	     soon as possible and close any resources that were acquired or opened.
-	     </para>
-	     <para>
-	     Finally, when your sequencing operation is completed, it should call <code>done()</code> on the progress monitor.
-	     </para>
-	  </sect2>
-	  <sect2 id="testing_custom_sequencers">
-	    <title>Testing custom sequencers</title>
-	    <para>The sequencing framework was designed to make testing sequencers much easier.  In particular, the
-	    &StreamSequencer; interface does not make use of the JCR API.  So instead of requiring a fully-configured
-	    JCR repository and JBoss DNA system, unit tests for a sequencer can focus on testing that the content is
-	    processed correctly and the desired output graph is generated.</para>
-	    <note>
-	      <para>For a complete example of a sequencer unit test, see the <code>ImageMetadataSequencerTest</code> unit test
-	      in the <code>org.jboss.dna.sequencer.images</code> package of the <code>dna-sequencers-image</code> project.
-	      </para>
-	    </note>
-	    <para>The following code fragment shows one way of testing a sequencer, using JUnit 4.4 assertions and 
-	      some of the classes made available by JBoss DNA.  Of course,
-	      this example code does not do any error handling and does not make all the assertions a real test would.</para>
-	    <programlisting>
-&StreamSequencer; sequencer = new &ImageMetadataSequencer;();
-MockSequencerOutput output = new MockSequencerOutput();
-&ProgressMonitor; progress = new &SimpleProgressMonitor;("Test activity");
-&InputStream; stream = null;
-try {
-    stream = this.getClass().getClassLoader().getResource("caution.gif").openStream();
-    sequencer.sequence(stream,output,progress);   // writes to 'output'
-    assertThat(output.getPropertyValues("image:metadata", "jcr:primaryType"), 
-               is(new Object[] {"image:metadata"}));
-    assertThat(output.getPropertyValues("image:metadata", "jcr:mimeType"), 
-               is(new Object[] {"image/gif"}));
-    // ... make more assertions here
-    assertThat(output.hasReferences(), is(false));
-} finally {
-    stream.close();
-}
-</programlisting>
-	  <para>It's also useful to test that a sequencer produces no output for something it should not understand:</para>
-	    <programlisting>
-&Sequencer; sequencer = new &ImageMetadataSequencer;();
-MockSequencerOutput output = new MockSequencerOutput();
-&ProgressMonitor; progress = new &SimpleProgressMonitor;("Test activity");
-&InputStream; stream = null;
-try {
-    stream = this.getClass().getClassLoader().getResource("caution.pict").openStream();
-    sequencer.sequence(stream,output,progress);   // writes to 'output'
-    assertThat(output.hasProperties(), is(false));
-    assertThat(output.hasReferences(), is(false));
-} finally {
-    stream.close();
-}
-</programlisting>
-	    <para>These are just two simple tests that show ways of testing a sequencer.  Some tests may get quite involved,
-	    especially if a lot of output data is produced.  
-	    </para>
-	    <para>It may also be useful to create some integration tests
-	    that <link linkend="using_dna">configure JBoss DNA</link> to use a custom sequencer, and to then upload
-	    content using the JCR API, verifying that the custom sequencer did run.  However, remember that JBoss DNA
-	    runs sequencers asynchronously in the background, and you must synchronize your tests to ensure that the
-	    sequencers have a chance to run before checking the results.  (One way of doing this (although, granted, not always reliable) is to wait for a second
-	    after uploading your content, shutdown the &SequencingService; and await its termination,
-	    and then check that the sequencer output has been saved to the JCR repository.  For an example of this technique,
-	    see the <code>SequencingClientTest</code> unit test in the example application.)
-	    </para>  
-	  </sect2>
-	  <sect2 id="deploying_custom_sequencers">
-	    <title>Deploying custom sequencers</title>
-	    <para>The first step of deploying a sequencer consists of adding/changing the sequencer configuration (e.g., &SequencerConfig;)
-	    in the &SequencingService;.  This was covered in the <link linkend="sequencing_service">previous chapter</link>.
-	    </para>
-	    <para>
-	    The second step is to make the sequencer implementation available to JBoss DNA.  At this time, the JAR containing 
-	    your new sequencer, as well as any JARs that your sequencer depends on, should be placed on your application classpath.</para>
-	    <note>
-	      <para>A future goal of JBoss DNA is to allow sequencers, connectors, and other extensions to be easily deployed into
-	        a runtime repository.  This process will not only be much simpler, but it will also provide JBoss DNA 
-	        with the information necessary to update configurations and create the appropriate class loaders for each extension.
-	        Having separate class loaders for each extension helps prevent the pollution of the common classpath, 
-	        facilitates an isolated runtime environment to eliminate any dependency conflicts, and may potentially
-	        enable hot redeployment of newer extension versions.
-	      </para>
-	    </note>
-	  </sect2>
-  </sect1>
-</chapter>

Copied: tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/sequencing.xml (from rev 553, trunk/docs/reference/src/main/docbook/en-US/content/sequencing.xml)
===================================================================
--- tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/sequencing.xml	                        (rev 0)
+++ tags/dna-0.2/docs/reference/src/main/docbook/en-US/content/sequencing.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,821 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ JBoss, Home of Professional Open Source.
+  ~
+  ~ Copyright (c) 2008, Red Hat Middleware LLC or third-party contributors as
+  ~ indicated by the @author tags or express copyright attribution
+  ~ statements applied by the authors.  All third-party contributions are
+  ~ distributed under license by Red Hat Middleware LLC.
+  ~
+  ~ This copyrighted material is made available to anyone wishing to use, modify,
+  ~ copy, or redistribute it subject to the terms and conditions of the GNU
+  ~ Lesser General Public License, as published by the Free Software Foundation.
+  ~
+  ~ This program is distributed in the hope that it will be useful,
+  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+  ~ or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
+  ~ for more details.
+  ~
+  ~ You should have received a copy of the GNU Lesser General Public License
+  ~ along with this distribution; if not, write to:
+  ~ Free Software Foundation, Inc.
+  ~ 51 Franklin Street, Fifth Floor
+  ~ Boston, MA  02110-1301  USA
+  -->
+<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"	[
+<!ENTITY % CustomDTD SYSTEM "../custom.dtd">
+%CustomDTD;
+]>
+<chapter id="sequencing">
+  <title>Sequencing content</title>
+	<para>As we've mentioned before, JBoss DNA is able to work with existing JCR repositories.  Your client applications
+  	make changes to the information in those repositories, and JBoss DNA automatically uses its sequencers to extract
+  	additional information from the uploaded files.</para>
+	<para>
+		This chapter discusses the sequencing features of JBoss DNA and the components that are involved.
+	</para>
+  <sect1 id="sequencing-service">
+    <title>Sequencing Service</title>
+		<para>The JBoss DNA <emphasis>sequencing service</emphasis> is the component that manages the <emphasis>sequencers</emphasis>, 
+			reacting to changes in JCR repositories and then running the appropriate sequencers.
+      This involves processing the changes on a node, determining which (if any) sequencers should be run on that node,
+      and for each sequencer constructing the execution environment, calling the sequencer, and saving the information
+      generated by the sequencer.</para>
+		<note>
+			<para>Configuring JBoss DNA services is a bit more manual than is ideal. As you'll see, JBoss DNA uses dependency
+	      injection to allow a great deal of flexibility in how it can be configured and customized. But this flexibility
+	      makes it more difficult for you to use.  We understand this, and will soon provide a much easier way to set up 
+				and manage JBoss DNA.  Current plans are to use the <ulink url="http://www.jboss.org/jbossmc">JBoss Microcontainer</ulink>
+				along with a configuration repository.</para>
+		</note>
+		<para>To set up the sequencing service, an instance is created, and dependent components are injected into
+      the object.  This includes among other things:
+			<itemizedlist>
+				<listitem>
+					<para>An <emphasis>execution context</emphasis> that defines the context in which the service runs, including
+			        a factory for JCR sessions given names of the repository and workspace.  This factory must be configured,
+			        and is how JBoss DNA knows about your JCR repositories and how to connect to them.  More on this a bit later.</para>
+				</listitem>
+				<listitem>
+					<para>An optional <emphasis>factory for class loaders</emphasis> used to load sequencers.  If no factory is supplied,
+			        the service uses the current thread's context class loader (or if that is null, the class loader that loaded the
+			        sequencing service class).</para>
+				</listitem>
+				<listitem>
+					<para>An &ExecutorService; used to execute the sequencing activites.  If none
+			        is supplied, a new single-threaded executor is created by calling <code>Executors.newSingleThreadExecutor()</code>.
+			        (This can easily be changed by subclassing and overriding the <code>SequencerService.createDefaultExecutorService()</code> method.)</para>
+				</listitem>
+				<listitem>
+					<para>Filters for sequencers and events.  By default, all sequencers are considered for "node added", "property added"
+			        and "property changed" events.</para>
+				</listitem>
+			</itemizedlist>
+    </para>
+		<para>As mentioned above, the &ExecutionContext; provides access to a &SessionFactory; that is used
+      by JBoss DNA to establish sessions to your JCR repositories.  Two implementations are available:
+			<itemizedlist>
+				<listitem>
+					<para>The &JndiSessionFactory;> looks up JCR &Repository; instances in JNDI using
+			          names that are supplied when creating sessions.  This implementation also has methods to set the
+			          JCR &Credentials; for a given workspace name.</para>
+				</listitem>
+				<listitem>
+					<para>The &SimpleSessionFactory; has methods to register the JCR &Repository; instances
+			          with names, as well as methods to set the JCR &Credentials; for a given workspace name.</para>
+				</listitem>
+			</itemizedlist>
+      You can use the &BasicJcrExecutionContext; implementation of &JcrExecutionContext; and supply
+      a &SessionFactory; instance, or you can provide your own implementation.</para>
+		<para>Here's an example of how to instantiate and configure the &SequencingService;:</para>
+    <programlisting>
+&SimpleSessionFactory; sessionFactory = new &SimpleSessionFactory;();
+sessionFactory.registerRepository("Main Repository", this.repository);
+&Credentials; credentials = new &SimpleCredentials;("jsmith", "secret".toCharArray());
+sessionFactory.registerCredentials("Main Repository/Workspace1", credentials);
+ExecutionContext executionContext = new &BasicJcrExecutionContext;(sessionFactory);
+
+// Create the sequencing service, passing in the execution context ...
+&SequencingService; sequencingService = new &SequencingService;();
+sequencingService.setExecutionContext(executionContext);
+</programlisting>
+		<para>After the sequencing service is created and configured, it must be started.  The &SequencingService;
+      has an <emphasis>administration object</emphasis> (that is an instance of &ServiceAdministrator;)
+      with <code>start()</code>, <code>pause()</code>, and <code>shutdown()</code> methods.  The latter method will 
+      close the queue for sequencing, but will allow sequencing operations already running to complete normally.
+      To wait until all sequencing operations have completed, simply call the <code>awaitTermination</code> method
+      and pass it the maximum amount of time you want to wait.</para>
+		<programlisting>
+sequencingService.getAdministrator().start();
+</programlisting>
+		<para>The JBoss DNA services are utilizing resources and threads that must be released before your application is ready to shut down.
+    	The safe way to do this is to simply obtain the &ServiceAdministrator; for each service (via the <code>getServiceAdministrator()</code> method)
+    	and call <code>shutdown()</code>.  As previously mentioned, the shutdown method will simply prevent new work from being processed
+    	and will not wait for existing work to be completed.  If you want to wait until the service completes all its work, you must wait
+    	until the service terminates.  Here's an example that shows how this is done:</para>
+    <programlisting>
+// Shut down the service and wait until it's all shut down ...
+sequencingService.getAdministrator().shutdown();
+sequencingService.getAdministrator().awaitTermination(5, TimeUnit.SECONDS);
+
+// Shut down the observation service ...
+observationService.getAdministrator().shutdown();
+observationService.getAdministrator().awaitTermination(5, TimeUnit.SECONDS);
+</programlisting>
+  </sect1>
+  <sect1 id="sequencer-configuration">
+    <title>Sequencer Configurations</title>
+		<para>The sequencing service must also be configured with the sequencers that it will use.  This is done using the
+      <code>addSequencer(SequencerConfig)</code> method and passing a &SequencerConfig; instance that
+      you create.  Here's the code that defines 3 sequencer configurations: 1 that places image metadata into
+      "<code><![CDATA[/images/<filename>]]></code>", another that places MP3 metadata into "<code><![CDATA[/mp3s/<filename>]]></code>",
+      and a third that places a structure that represents the classes, methods, and attributes found within Java source into 
+      "<code><![CDATA[/java/<filename>]]></code>".</para>
+    <programlisting>
+String name = "Image Sequencer";
+String desc = "Sequences image files to extract the characteristics of the image";
+String classname = "org.jboss.dna.sequencer.images.ImageMetadataSequencer";
+String[] classpath = null; // Use the current classpath
+String[] pathExpressions = {"//(*.(jpg|jpeg|gif|bmp|pcx|png)[*])/jcr:content[@jcr:data] => /images/$1"};
+&SequencerConfig; imageSequencerConfig = new &SequencerConfig;(name, desc, classname, 
+                                                           classpath, pathExpressions);
+sequencingService.addSequencer(imageSequencerConfig);
+
+name = "MP3 Sequencer";
+desc = "Sequences MP3 files to extract the ID3 tags from the audio file";
+classname = "org.jboss.dna.sequencer.mp3.Mp3MetadataSequencer";
+pathExpressions = {"//(*.mp3[*])/jcr:content[@jcr:data] =&gt; /mp3s/$1"};
+&SequencerConfig; mp3SequencerConfig = new &SequencerConfig;(name, desc, classname, 
+                                                         classpath, pathExpressions);
+sequencingService.addSequencer(mp3SequencerConfig);
+
+name = "Java Sequencer";
+desc = "Sequences java files to extract the characteristics of the Java source";
+classname = "org.jboss.dna.sequencer.java.JavaMetadataSequencer";
+pathExpressions = {"//(*.java[*])/jcr:content[@jcr:data] => /java/$1"};
+&SequencerConfig; javaSequencerConfig = new &SequencerConfig;(name, desc, classname, 
+                                                          classpath, pathExpressions);
+this.sequencingService.addSequencer(javaSequencerConfig);
+</programlisting>
+    <para>Each configuration defines several things, including the name, description, and sequencer implementation class.
+	    The configuration also defines the classpath information, which can be passed to the &ClassLoaderFactory; to get
+	    a Java &ClassLoader; with which the sequencer class can be loaded.  (If no classpath information is provided, as is done
+	    in the code above, the application class loader is used.)  The configuration also specifies the path expressions that
+	    identify the nodes that should be sequenced with the sequencer and where to store the output generated by the sequencer.
+	    Path expressions are pretty straightforward but are quite powerful, so before we go any further with the example,
+	    let's dive into path expressions in more detail.</para>
+		<sect2 id="path_expressions">
+			<title>Path Expressions</title>
+			<para>Path expressions consist of two parts: a selection criteria (or an input path) and an output path:</para>
+	    <programlisting><![CDATA[  inputPath => outputPath ]]></programlisting>
+			<para>The <emphasis>inputPath</emphasis> part defines an expression for the path of a node that is to be sequenced.
+			  Input paths consist of '<code>/</code>' separated segments, where each segment represents a pattern for a single node's
+			  name (including the same-name-sibling indexes) and '<code>@</code>' signifies a property name.</para>
+			<para>Let's first look at some simple examples:</para>
+			<table frame='all'>
+				<title>Simple Input Path Examples</title>
+				<tgroup cols='2' align='left' colsep='1' rowsep='1'>
+		      <colspec colname='c1' colwidth="1*"/>
+		      <colspec colname='c2' colwidth="1*"/>
+					<thead>
+						<row>
+				  		<entry>Input Path</entry>
+				  		<entry>Description</entry>
+						</row>
+					</thead>
+					<tbody>
+						<row><entry>/a/b</entry><entry>Match node "<code>b</code>" that is a child of the top level node "<code>a</code>". Neither node
+						     may have any same-name-sibilings.</entry></row>
+						<row><entry>/a/*</entry><entry>Match any child node of the top level node "<code>a</code>".</entry></row>
+						<row><entry>/a/*.txt</entry><entry>Match any child node of the top level node "<code>a</code>" that also has a name ending in "<code>.txt</code>".</entry></row>
+						<row><entry>/a/*.txt</entry><entry>Match any child node of the top level node "<code>a</code>" that also has a name ending in "<code>.txt</code>".</entry></row>
+						<row><entry>/a/b at c</entry><entry>Match the property "<code>c</code>" of node "<code>/a/b</code>".</entry></row>
+						<row><entry>/a/b[2]</entry><entry>The second child named "<code>b</code>" below the top level node "<code>a</code>".</entry></row>
+						<row><entry>/a/b[2,3,4]</entry><entry>The second, third or fourth child named "<code>b</code>" below the top level node "<code>a</code>".</entry></row>
+						<row><entry>/a/b[*]</entry><entry>Any (and every) child named "<code>b</code>" below the top level node "<code>a</code>".</entry></row>
+						<row><entry>//a/b</entry><entry>Any node named "<code>b</code>" that exists below a node named "<code>a</code>", regardless 
+						     of where node "<code>a</code>" occurs.  Again, neither node may have any same-name-sibilings.</entry></row>
+					</tbody>
+				</tgroup>
+			</table>
+			<para>With these simple examples, you can probably discern the most important rules.  First, the '<code>*</code>' is a wildcard character
+			  that matches any character or sequence of characters in a node's name (or index if appearing in between square brackets), and
+			  can be used in conjunction with other characters (e.g., "<code>*.txt</code>").</para>
+			<para>Second, square brackets (i.e., '<code>[</code>' and '<code>]</code>') are used to match a node's same-name-sibiling index.
+			  You can put a single non-negative number or a comma-separated list of non-negative numbers.  Use '0' to match a node that has no
+			  same-name-sibilings, or any positive number to match the specific same-name-sibling.</para>
+			<para>Third, combining two delimiters (e.g., "<code>//</code>") matches any sequence of nodes, regardless of what their names are 
+			  or how many nodes.  Often used with other patterns to identify nodes at any level matching other patterns. 
+				Three or more sequential slash characters are treated as two.</para>
+			<para>Many input paths can be created using just these simple rules.  However, input paths can be more complicated.  Here are some
+				more examples:</para>
+			<table frame='all'>
+				<title>More Complex Input Path Examples</title>
+				<tgroup cols='2' align='left' colsep='1' rowsep='1'>
+		      <colspec colname='c1' colwidth="1*"/>
+		      <colspec colname='c2' colwidth="1*"/>
+					<thead>
+						<row>
+				  		<entry>Input Path</entry>
+				  		<entry>Description</entry>
+						</row>
+					</thead>
+					<tbody>
+						<row><entry>/a/(b|c|d)</entry><entry>Match children of the top level node "<code>a</code>" that are named "<code>a</code>", 
+								 "<code>b</code>" or "<code>c</code>". None of the nodes may have same-name-sibling indexes.</entry></row>
+						<row><entry>/a/b[c/d]</entry><entry>Match node "<code>b</code>" child of the top level node "<code>a</code>", when node
+						     "<code>b</code>" has a child named "<code>c</code>", and "<code>c</code>" has a child named "<code>d</code>".
+								 Node "<code>b</code>" is the selected node, while nodes "<code>b</code>" and "<code>b</code>" are used as criteria but are not
+								 selected.</entry></row>
+						<row><entry>/a(/(b|c|d|)/e)[f/g/@something]</entry><entry>Match node "<code>/a/b/e</code>", "<code>/a/c/e</code>", "<code>/a/d/e</code>",
+						     or "<code>/a/e</code>" when they also have a child "<code>f</code>" that itself has a child "<code>g</code>" with property
+						     "<code>something</code>". None of the nodes may have same-name-sibling indexes.</entry></row>
+					</tbody>
+				</tgroup>
+			</table>
+			<para>These examples show a few more advanced rules.  Parentheses (i.e., '<code>(</code>' and '<code>)</code>') can be used
+			  to define a set of options for names, as shown in the first and third rules.  Whatever part of the selected node's path
+			  appears between the parentheses is captured for use within the output path.  Thus, the first input path in the previous table
+			  would match node "<code>/a/b</code>", and "b" would be captured and could be used within the output path using "<code>$1</code>",
+			  where the number used in the output path identifies the parentheses.</para>
+			<para>Square brackets can also be used to specify criteria on a node's properties or children.  Whatever appears in between the square
+				brackets does not appear in the selected node.</para>
+		  <para>Let's go back to the previous code fragment and look at the first path expression:</para>
+		  <programlisting><![CDATA[  //(*.(jpg|jpeg|gif|bmp|pcx|png)[*])/jcr:content[@jcr:data] => /images/$1 ]]></programlisting>
+		  <para>This matches a node named "<code>jcr:content</code>" with property "<code>jcr:data</code>" but no siblings with the same name,
+		    and that is a child of a node whose name ends with "<code>.jpg</code>", "<code>.jpeg</code>", "<code>.gif</code>", "<code>.bmp</code>", "<code>.pcx</code>", 
+		    or  "<code>.png</code>" that may have any same-name-sibling index.  These nodes can appear at any level in the repository.
+			  Note how the input path capture the filename (the segment containing the file extension), including any same-name-sibling index.
+			  This filename is then used in the output path, which is where the sequenced content is placed.</para>
+		</sect2>
+  </sect1>
+  <sect1 id="sequencers">
+    <title>JBoss DNA Sequencers</title>
+    <para>
+    	JBoss DNA includes a number of sequencers "out of the box".  These sequencers can be used within your application to sequence
+			a variety of common file formats.  To use them, the only thing you have to do is define the appropriate sequencer configurations
+			and include the appropriate JAR files.
+    </para>
+    <sect2 id="dna-sequencer-images">
+      <title>Image sequencer</title>
+      <para>
+				A sequencer that extracts metadata from JPEG, GIF, BMP, PCX, PNG, IFF, RAS, PBM, PGM, PPM and PSD image files.
+				This sequencer extracts the file format, image resolution, number of bits per pixel and optionally number of images, comments 
+				and physical resolution, and then writes this information into the repository using the following structure:
+			</para>
+			<itemizedlist>
+				<listitem>
+					<para>
+						<emphasis role="strong">image:metadata</emphasis> node of type <code>image:metadata</code>
+					</para>
+				</listitem>
+				<listitem>
+					<itemizedlist>
+						<listitem>
+							<para><emphasis role="strong">jcr:mimeType</emphasis> - optional string property for the mime type of the image</para>
+						</listitem>
+						<listitem>
+							<para><emphasis role="strong">jcr:encoding</emphasis> - optional string property for the encoding of the image</para>
+						</listitem>
+						<listitem>
+							<para><emphasis role="strong">image:formatName</emphasis> - string property for the name of the format</para>
+						</listitem>
+						<listitem>
+							<para><emphasis role="strong">image:width</emphasis> - optional integer property for the image's width in pixels</para>
+						</listitem>
+						<listitem>
+							<para><emphasis role="strong">image:height</emphasis> - optional integer property for the image's height in pixles</para>
+						</listitem>
+						<listitem>
+							<para><emphasis role="strong">image:bitsPerPixel</emphasis> - optional integer property for the number of bits per pixel</para>
+						</listitem>
+						<listitem>
+							<para><emphasis role="strong">image:progressive</emphasis> - optional boolean property specifying whether the image is stored in a progressive
+									(i.e., interlaced) form</para>
+						</listitem>
+						<listitem>
+							<para><emphasis role="strong">image:numberOfImages</emphasis> - optional integer property for the number of images stored in the file; defaults
+									to 1</para>
+						</listitem>
+						<listitem>
+							<para><emphasis role="strong">image:physicalWidthDpi</emphasis> - optional integer property for the physical width of the image in dots per inch</para>
+						</listitem>
+						<listitem>
+							<para><emphasis role="strong">image:physicalHeightDpi</emphasis> - optional integer property for the physical height of the image in dots per
+									inch</para>
+						</listitem>
+						<listitem>
+							<para><emphasis role="strong">image:physicalWidthInches</emphasis> - optional double property for the physical width of the image in inches</para>
+						</listitem>
+						<listitem>
+							<para><emphasis role="strong">image:physicalHeightInches</emphasis> - optional double property for the physical height of the image in inches</para>
+						</listitem>
+					</itemizedlist>
+				</listitem>
+			</itemizedlist>
+			<para>
+				This structure could be extended in the future to add EXIF and IPTC metadata as child nodes. For example, EXIF metadata is
+				structured as tags in directories, where the directories form something like namespaces, and which are used by different camera
+				vendors to store custom metadata. This structure could be mapped with each directory (e.g. "EXIF" or "Nikon Makernote" or
+				"IPTC") as the name of a child node, with the EXIF tags values stored as either properties or child nodes.
+      </para>
+			<para>
+				To use this sequencer, simply include the <code>dna-sequencer-images</code> JAR
+				in your application and configure	the Sequencing Service to use this sequencer using something similar to:
+      </para>
+	    <programlisting>
+String name = "Image Sequencer";
+String desc = "Sequences image files to extract the characteristics of the image";
+String classname = "org.jboss.dna.sequencer.images.ImageMetadataSequencer";
+String[] classpath = null; // Use the current classpath
+String[] pathExpressions = {"//(*.(jpg|jpeg|gif|bmp|pcx|png|iff|ras|pbm|pgm|ppm|psd)[*])/jcr:content[@jcr:data] =&gt; /images/$1"};
+&SequencerConfig; sequencerConfig = new &SequencerConfig;(name, desc, classname, 
+                                                      classpath, pathExpressions);
+sequencingService.addSequencer(sequencerConfig);
+</programlisting>
+    </sect2>
+    <sect2 id="dna-sequencer-msoffice">
+      <title>Microsoft Office document sequencer</title>
+      <para>
+      	This sequencer is included in JBoss DNA and processes Microsoft Office documents, including Excel spreadsheets
+				and PowerPoint presentations.  With presentations, the sequencer extracts the slides, titles, text and slide thumbnails.
+				With spreadsheets, the sequencer extracts the names of the sheets.  And, the sequencer extracts for all the files the
+				general file information, including the name of the author, title, keywords, subject, comments, and various dates.
+      </para>
+			<note>
+				<para>
+					Currently, Word documents are not supported.  For more information and the latest status, see
+					<ulink url="&JIRA;-153">DNA-153</ulink>.
+				</para>
+			</note>
+			<para>
+				To use this sequencer, simply include the <code>dna-sequencer-msoffice</code> JAR and all of the
+				<ulink url="http://poi.apache.org/">POI</ulink> JARs
+				in your application and configure	the Sequencing Service to use this sequencer using something similar to:
+      </para>
+	    <programlisting>
+String name = "Microsoft Office Document Sequencer";
+String desc = "Sequences MS Office documents, including spreadsheets and presentations";
+String classname = "org.jboss.dna.sequencer.msoffice.MSOfficeMetadataSequencer";
+String[] classpath = null; // Use the current classpath
+String[] pathExpressions = {"//(*.(doc|docx|ppt|pps|xls)[*])/jcr:content[@jcr:data] =&gt; /msoffice/$1"};
+&SequencerConfig; sequencerConfig = new &SequencerConfig;(name, desc, classname, 
+                                                      classpath, pathExpressions);
+sequencingService.addSequencer(sequencerConfig);
+</programlisting>
+    </sect2>
+    <sect2 id="dna-sequencer-zip">
+      <title>ZIP archive sequencer</title>
+      <para>
+      	The ZIP file sequencer is included in JBoss DNA and extracts the files and folders contained in the ZIP archive file,
+				extracting the files and folders into the repository using JCR's <code>nt:file</code> and <code>nt:folder</code> node types.
+      </para>
+			<para>
+				To use this sequencer, simply include the <code>dna-sequencer-zip</code> JAR
+				in your application and configure	the Sequencing Service to use this sequencer using something similar to:
+      </para>
+	    <programlisting>
+String name = "ZIP Sequencer";
+String desc = "Sequences ZIP archives to extract the files and folders";
+String classname = "org.jboss.dna.sequencer.zip.ZipSequencer";
+String[] pathExpressions = {"//(*.zip[*])/jcr:content[@jcr:data] =&gt; /zips/$1"};
+&SequencerConfig; sequencerConfig = new &SequencerConfig;(name, desc, classname, 
+                                                      classpath, pathExpressions);
+this.sequencingService.addSequencer(sequencerConfig);
+</programlisting>
+    </sect2>
+    <sect2 id="dna-sequencer-java">
+      <title>Java source sequencer</title>
+      <para>
+				One of the sequencers that included in JBoss DNA is the <emphasis role="strong">dna-sequencer-java</emphasis> subproject.
+				This sequencer parses Java source code added to the repository and extracts the basic structure of the classes and enumerations 
+				defined in the code.
+				This structure includes: the package structures, class declarations, class and member attribute declarations,
+				class and member method declarations with signature (but not implementation logic), enumerations with each enumeration literal value,
+				annotations, and JavaDoc information for all of the above. 
+				After extracting this information from the source code, the sequencer then writes this structure into the repository,
+				where it can be further processed, analyzed, searched, navigated, or referenced.
+			</para>
+			<para>
+				To use this sequencer, simply include the <code>dna-sequencer-java</code> JAR (plus all of the JARs that it is dependent upon)
+				in your application and configure	the Sequencing Service to use this sequencer using something similar to:
+      </para>
+	    <programlisting>
+String name = "Java Sequencer";
+String desc = "Sequences java files to extract the characteristics of the Java source";
+String classname = "org.jboss.dna.sequencer.java.JavaMetadataSequencer";
+String[] classpath = null; // Use the current classpath
+String[] pathExpressions = {"//(*.java[*])/jcr:content[@jcr:data] =&gt; /java/$1"};
+&SequencerConfig; sequencerConfig = new &SequencerConfig;(name, desc, classname, 
+                                                      classpath, pathExpressions);
+this.sequencingService.addSequencer(sequencerConfig);
+</programlisting>
+    </sect2>
+    <sect2 id="dna-sequencer-mp3">
+      <title>MP3 audio file sequencer</title>
+      <para>
+      	Another sequencer that is included in JBoss DNA is the <emphasis role="strong">dna-sequencer-mp3</emphasis> sequencer project.
+				This sequencer processes MP3 audio files added to a repository and extracts the <ulink url="http://www.id3.org/">ID3</ulink>
+			 	metadata for the file, including the track's title, author, album name, year, and comment.
+				After extracting this information from the audio files, the sequencer then writes this structure into the repository,
+				where it can be further processed, analyzed, searched, navigated, or referenced.
+      </para>
+			<para>
+				To use this sequencer, simply include the <code>dna-sequencer-mp3</code> JAR and the <ulink url="http://www.jthink.net/jaudiotagger/">JAudioTagger</ulink>
+				library in your application and configure	the Sequencing Service to use this sequencer using something similar to:
+      </para>
+	    <programlisting>
+String name = "MP3 Sequencer";
+String desc = "Sequences MP3 files to extract the ID3 tags of the audio file";
+String classname = "org.jboss.dna.sequencer.mp3.Mp3MetadataSequencer";
+String[] pathExpressions = {"//(*.mp3[*])/jcr:content[@jcr:data] =&gt; /mp3s/$1"};
+&SequencerConfig; sequencerConfig = new &SequencerConfig;(name, desc, classname, 
+                                                      classpath, pathExpressions);
+this.sequencingService.addSequencer(sequencerConfig);
+</programlisting>
+    </sect2>
+    <sect2 id="dna-sequencer-cnd">
+      <title>JCR Compact Node Definition (CND) file sequencer</title>
+      <para>
+      	This sequencer is incomplete and is not currently usable.  The purpose is to sequence JCR Compact Node Definition (CND) files
+				to extract the node definitions with their property definitions, and inserting these into the repository using JCR standard notation.
+      </para>
+    </sect2>
+  </sect1>
+  <sect1 id="custom-sequencers">
+	  <title>Creating custom sequencers</title>
+	  <para>The current release of JBoss DNA comes with six sequencers.  However, it's very easy to create your own
+	  sequencers and to then configure JBoss DNA to use them in your own application.
+	  </para>
+	  <para>
+	  Creating a custom sequencer involves the following steps:
+	  <itemizedlist>
+	    <listitem>
+	      <para>Create a Maven 2 project for your sequencer;</para>
+	    </listitem>
+	    <listitem>
+	      <para>Implement the &StreamSequencer; interface with your own implementation, and create unit tests to verify
+	      the functionality and expected behavior;</para>
+	    </listitem>
+	    <listitem>
+	      <para>Add the sequencer configuration to the JBoss DNA &SequencingService; in your application
+	      as described in the <link linkend="using_dna">previous chapter</link>; and</para>
+	    </listitem>
+	    <listitem>
+	      <para>Deploy the JAR file with your implementation (as well as any dependencies), and make them available to JBoss DNA
+	      in your application.</para>
+	    </listitem>
+	  </itemizedlist>
+	  It's that simple.
+	  </para>
+	  <sect2 id="custom_sequencer_project">
+	    <title>Creating the Maven 2 project</title>
+	    <para>The first step is to create the Maven 2 project that you can use to compile your code and build the JARs.
+	    Maven 2 automates a lot of the work, and since you're already <link linkend="maven">set up to use Maven</link>,
+	    using Maven for your project will save you a lot of time and effort.  Of course, you don't have to use Maven 2, but then you'll
+	    have to get the required libraries and manage the compiling and building process yourself.</para>
+	    <note>
+	      <para>JBoss DNA may provide in the future a Maven archetype for creating sequencer projects.  If you'd find this useful
+	        and would like to help create it, please <link linkend="preface">join the community</link>.
+				</para>
+		    <para>In lieu of a Maven archetype, you may find it easier to start with a small existing sequencer project.
+					The <emphasis role="strong">dna-sequencer-images</emphasis> project is a small, self-contained sequencer implementation that
+		    	has only the minimal dependencies.  
+		    	See the subversion repository: <ulink url="&Subversion;trunk/extensions/dna-sequencer-images/">&Subversion;trunk/sequencers/dna-sequencer-images/</ulink>
+		    </para>
+		  </note>
+	    <para>You can create your Maven project any way you'd like.  For examples, see the <ulink url="http://maven.apache.org/guides/getting-started/index.html#How_do_I_make_my_first_Maven_project">Maven 2 documentation</ulink>.  
+	    Once you've done that, just add the dependencies in your project's <code>pom.xml</code> dependencies section:</para>
+	  	<programlisting role="XML"><![CDATA[
+<dependency>
+  <groupId>org.jboss.dna</groupId>
+  <artifactId>dna-common</artifactId>
+  <version>0.1</version>
+</dependency>
+<dependency>
+  <groupId>org.jboss.dna</groupId>
+  <artifactId>dna-graph</artifactId>
+  <version>0.1</version>
+</dependency>
+<dependency>
+  <groupId>org.slf4j</groupId>
+  <artifactId>slf4j-api</artifactId>
+</dependency>
+	 ]]></programlisting>
+			<para>These are minimum dependencies required for compiling a sequencer.  Of course, you'll have to add
+	  		other dependencies that your sequencer needs.</para>
+	  	<para>As for testing, you probably will want to add more dependencies, such as those listed here:</para>
+			<programlisting role="XML"><![CDATA[
+<dependency>
+  <groupId>junit</groupId>
+  <artifactId>junit</artifactId>
+  <version>4.4</version>
+  <scope>test</scope>
+</dependency>
+<dependency>
+  <groupId>org.hamcrest</groupId>
+  <artifactId>hamcrest-library</artifactId>
+  <version>1.1</version>
+  <scope>test</scope>
+</dependency>
+<!-- Logging with Log4J -->
+<dependency>
+  <groupId>org.slf4j</groupId>
+  <artifactId>slf4j-log4j12</artifactId>
+  <version>1.4.3</version>
+  <scope>test</scope>
+</dependency>
+<dependency>
+  <groupId>log4j</groupId>
+  <artifactId>log4j</artifactId>
+  <version>1.2.14</version>
+  <scope>test</scope>
+</dependency>
+	 ]]></programlisting>
+	  	<para>Testing JBoss DNA sequencers does not require a JCR repository or the JBoss DNA services.  (For more detail,
+	  		see the <link linkend="testing_custom_sequencers">testing section</link>.)  However, if you want to do
+	  		integration testing with a JCR repository and the JBoss DNA services, you'll need additional dependencies for these libraries.</para>
+			<programlisting role="XML"><![CDATA[
+<dependency>
+  <groupId>org.jboss.dna</groupId>
+  <artifactId>dna-repository</artifactId>
+  <version>0.1</version>
+  <scope>test</scope>
+</dependency>
+<!-- Java Content Repository API -->
+<dependency>
+  <groupId>javax.jcr</groupId>
+  <artifactId>jcr</artifactId>
+  <version>1.0.1</version>
+  <scope>test</scope>
+</dependency>
+<!-- Apache Jackrabbit (JCR Implementation) -->
+<dependency>
+  <groupId>org.apache.jackrabbit</groupId>
+  <artifactId>jackrabbit-api</artifactId>
+  <version>1.3.3</version>
+  <scope>test</scope>
+  <!-- Exclude these since they are included in JDK 1.5 -->
+  <exclusions>
+    <exclusion>
+      <groupId>xml-apis</groupId>
+      <artifactId>xml-apis</artifactId>
+    </exclusion>
+    <exclusion>
+      <groupId>xerces</groupId>
+      <artifactId>xercesImpl</artifactId>
+    </exclusion>
+  </exclusions>
+</dependency>
+<dependency>
+  <groupId>org.apache.jackrabbit</groupId>
+  <artifactId>jackrabbit-core</artifactId>
+  <version>1.3.3</version>
+  <scope>test</scope>
+  <!-- Exclude these since they are included in JDK 1.5 -->
+  <exclusions>
+    <exclusion>
+      <groupId>xml-apis</groupId>
+      <artifactId>xml-apis</artifactId>
+    </exclusion>
+    <exclusion>
+      <groupId>xerces</groupId>
+      <artifactId>xercesImpl</artifactId>
+    </exclusion>
+  </exclusions>
+</dependency>
+	 ]]></programlisting>
+	  <para>At this point, your project should be set up correctly, and you're ready to move on to 
+	  	<link linkend="custom_sequencer_implementation">writing the Java implementation</link> for your sequencer.</para>
+	  </sect2>
+	  <sect2 id="custom_sequencer_implementation">
+	    <title>Implementing the StreamSequencer interface</title>
+	    <para>After creating the project and setting up the dependencies, the next step is to create a Java class that implements
+	    	the &StreamSequencer; interface.  This interface is very straightforward and involves a single method:</para>
+	    <programlisting>
+public interface &StreamSequencer; {
+
+    /**
+     * Sequence the data found in the supplied stream, placing the output 
+     * information into the supplied map.
+     *
+     * @param stream the stream with the data to be sequenced; never null
+     * @param output the output from the sequencing operation; never null
+     * @param progressMonitor the progress monitor that should be kept 
+     *   updated with the sequencer's progress and that should be
+     *   frequently consulted as to whether this operation has been cancelled.
+     */
+    void sequence( &InputStream; stream, &SequencerOutput; output, &ProgressMonitor; progressMonitor );
+</programlisting>
+	    <para>The job of a stream sequencer is to process the data in the supplied stream, and place into the &SequencerOutput;
+	    any information that is to go into the JCR repository.  JBoss DNA figures out when your sequencer should be called
+	    (of course, using the sequencing configuration you'll add in a bit), and then makes sure the generated information
+	    is saved in the correct place in the repository.  
+	    </para>
+	    <para>The &SequencerOutput; class is fairly easy to use.  There are basically two methods you need to call.
+	    One method sets the property values, while the other sets references to other nodes in the repository.  Use these
+	    methods to describe the properties of the nodes you want to create, using relative paths for the nodes and
+	    valid JCR property names for properties and references.  JBoss DNA will ensure that nodes are created or updated
+	    whenever they're needed.</para>
+	    <programlisting>
+public interface &SequencerOutput; {
+
+  /**
+   * Set the supplied property on the supplied node.  The allowable
+   * values are any of the following:
+   *   - primitives (which will be autoboxed)
+   *   - String instances
+   *   - String arrays
+   *   - byte arrays
+   *   - InputStream instances
+   *   - Calendar instances
+   *
+   * @param nodePath the path to the node containing the property; 
+   * may not be null
+   * @param property the name of the property to be set
+   * @param values the value(s) for the property; may be empty if 
+   * any existing property is to be removed
+   */
+  void setProperty( String nodePath, String property, Object... values );
+
+  /**
+   * Set the supplied reference on the supplied node.
+   *
+   * @param nodePath the path to the node containing the property; 
+   * may not be null
+   * @param property the name of the property to be set
+   * @param paths the paths to the referenced property, which may be
+   * absolute paths or relative to the sequencer output node;
+   * may be empty if any existing property is to be removed
+   */
+  void setReference( String nodePath, String property, String... paths );
+}
+</programlisting>
+	    <para>JBoss DNA will create nodes of type <code>nt:unstructured</code> unless you specify the value for the
+	      <code>jcr:primaryType</code> property.  You can also specify the values for the <code>jcr:mixinTypes</code> property
+	      if you want to add mixins to any node.</para>
+	    <para>For a complete example of a sequencer, let's look at the &ImageMetadataSequencer; 
+				implementation:</para>
+	    <programlisting>
+public class &ImageMetadataSequencer; implements &StreamSequencer; {
+
+    public static final String METADATA_NODE = "image:metadata";
+    public static final String IMAGE_PRIMARY_TYPE = "jcr:primaryType";
+    public static final String IMAGE_MIXINS = "jcr:mixinTypes";
+    public static final String IMAGE_MIME_TYPE = "jcr:mimeType";
+    public static final String IMAGE_ENCODING = "jcr:encoding";
+    public static final String IMAGE_FORMAT_NAME = "image:formatName";
+    public static final String IMAGE_WIDTH = "image:width";
+    public static final String IMAGE_HEIGHT = "image:height";
+    public static final String IMAGE_BITS_PER_PIXEL = "image:bitsPerPixel";
+    public static final String IMAGE_PROGRESSIVE = "image:progressive";
+    public static final String IMAGE_NUMBER_OF_IMAGES = "image:numberOfImages";
+    public static final String IMAGE_PHYSICAL_WIDTH_DPI = "image:physicalWidthDpi";
+    public static final String IMAGE_PHYSICAL_HEIGHT_DPI = "image:physicalHeightDpi";
+    public static final String IMAGE_PHYSICAL_WIDTH_INCHES = "image:physicalWidthInches";
+    public static final String IMAGE_PHYSICAL_HEIGHT_INCHES = "image:physicalHeightInches";
+
+    /**
+     * {@inheritDoc}
+     */
+    public void sequence( &InputStream; stream, &SequencerOutput; output, 
+                          &ProgressMonitor; progressMonitor ) {
+        progressMonitor.beginTask(10, &ImageSequencerI18n;.sequencerTaskName);
+
+        &ImageMetadata; metadata = new &ImageMetadata;();
+        metadata.setInput(stream);
+        metadata.setDetermineImageNumber(true);
+        metadata.setCollectComments(true);
+
+        // Process the image stream and extract the metadata ...
+        if (!metadata.check()) {
+            metadata = null;
+        }
+        progressMonitor.worked(5);
+        if (progressMonitor.isCancelled()) return;
+
+        // Generate the output graph if we found useful metadata ...
+        if (metadata != null) {
+            // Place the image metadata into the output map ...
+            output.setProperty(METADATA_NODE, IMAGE_PRIMARY_TYPE, "image:metadata");
+            // output.psetProperty(METADATA_NODE, IMAGE_MIXINS, "");
+            output.setProperty(METADATA_NODE, IMAGE_MIME_TYPE, metadata.getMimeType());
+            // output.setProperty(METADATA_NODE, IMAGE_ENCODING, "");
+            output.setProperty(METADATA_NODE, IMAGE_FORMAT_NAME, metadata.getFormatName());
+            output.setProperty(METADATA_NODE, IMAGE_WIDTH, metadata.getWidth());
+            output.setProperty(METADATA_NODE, IMAGE_HEIGHT, metadata.getHeight());
+            output.setProperty(METADATA_NODE, IMAGE_BITS_PER_PIXEL, metadata.getBitsPerPixel());
+            output.setProperty(METADATA_NODE, IMAGE_PROGRESSIVE, metadata.isProgressive());
+            output.setProperty(METADATA_NODE, IMAGE_NUMBER_OF_IMAGES, metadata.getNumberOfImages());
+            output.setProperty(METADATA_NODE, IMAGE_PHYSICAL_WIDTH_DPI, metadata.getPhysicalWidthDpi());
+            output.setProperty(METADATA_NODE, IMAGE_PHYSICAL_HEIGHT_DPI, metadata.getPhysicalHeightDpi());
+            output.setProperty(METADATA_NODE, IMAGE_PHYSICAL_WIDTH_INCHES, metadata.getPhysicalWidthInch());
+            output.setProperty(METADATA_NODE, IMAGE_PHYSICAL_HEIGHT_INCHES, metadata.getPhysicalHeightInch());
+        }
+
+        progressMonitor.done();
+    }
+}
+</programlisting>
+	    <para>
+	    Notice how the image metadata is extracted and the output graph is generated.  A single node is created with the name <code>image:metadata</code>
+	    and with the <code>image:metadata</code> node type.  No mixins are defined for the node, but several properties are set on the node
+	    using the values obtained from the image metadata.  After this method returns, the constructed graph will be saved to the repository
+	    in all of the places defined by its configuration.  (This is why only relative paths are used in the sequencer.)
+	    </para>
+	    <para>Also note how the progress monitor is used.  Reporting progress through the supplied &ProgressMonitor;> is very easy, and it ensures that JBoss DNA
+	     can accurately monitor and report the status of sequencing activities to the users.  At the beginning of the operation, call
+	     <code>beginTask(...)</code> with a meaningful message describing
+	     the operation and a total for the amount of work that will be done by this sequencer. Then perform the sequencing work,
+	     periodically reporting work by specifying the incremental amount of work with the <code>worked(double)</code> method, or
+	     by creating a subtask with the <code>createSubtask(double)</code> method and reporting work against that subtask
+	     monitor.
+	     </para>
+	     <para>Your method should periodically use the &ProgressMonitor;'s <code>isCancelled()</code> method to check whether the operation has been
+	     cancelled.. If this method returns true, the implementation should abort all work as
+	     soon as possible and close any resources that were acquired or opened.
+	     </para>
+	     <para>
+	     Finally, when your sequencing operation is completed, it should call <code>done()</code> on the progress monitor.
+	     </para>
+	  </sect2>
+	  <sect2 id="testing_custom_sequencers">
+	    <title>Testing custom sequencers</title>
+	    <para>The sequencing framework was designed to make testing sequencers much easier.  In particular, the
+	    &StreamSequencer; interface does not make use of the JCR API.  So instead of requiring a fully-configured
+	    JCR repository and JBoss DNA system, unit tests for a sequencer can focus on testing that the content is
+	    processed correctly and the desired output graph is generated.</para>
+	    <note>
+	      <para>For a complete example of a sequencer unit test, see the <code>ImageMetadataSequencerTest</code> unit test
+	      in the <code>org.jboss.dna.sequencer.images</code> package of the <code>dna-sequencers-image</code> project.
+	      </para>
+	    </note>
+	    <para>The following code fragment shows one way of testing a sequencer, using JUnit 4.4 assertions and 
+	      some of the classes made available by JBoss DNA.  Of course,
+	      this example code does not do any error handling and does not make all the assertions a real test would.</para>
+	    <programlisting>
+&StreamSequencer; sequencer = new &ImageMetadataSequencer;();
+MockSequencerOutput output = new MockSequencerOutput();
+&ProgressMonitor; progress = new &SimpleProgressMonitor;("Test activity");
+&InputStream; stream = null;
+try {
+    stream = this.getClass().getClassLoader().getResource("caution.gif").openStream();
+    sequencer.sequence(stream,output,progress);   // writes to 'output'
+    assertThat(output.getPropertyValues("image:metadata", "jcr:primaryType"), 
+               is(new Object[] {"image:metadata"}));
+    assertThat(output.getPropertyValues("image:metadata", "jcr:mimeType"), 
+               is(new Object[] {"image/gif"}));
+    // ... make more assertions here
+    assertThat(output.hasReferences(), is(false));
+} finally {
+    stream.close();
+}
+</programlisting>
+	  <para>It's also useful to test that a sequencer produces no output for something it should not understand:</para>
+	    <programlisting>
+&Sequencer; sequencer = new &ImageMetadataSequencer;();
+MockSequencerOutput output = new MockSequencerOutput();
+&ProgressMonitor; progress = new &SimpleProgressMonitor;("Test activity");
+&InputStream; stream = null;
+try {
+    stream = this.getClass().getClassLoader().getResource("caution.pict").openStream();
+    sequencer.sequence(stream,output,progress);   // writes to 'output'
+    assertThat(output.hasProperties(), is(false));
+    assertThat(output.hasReferences(), is(false));
+} finally {
+    stream.close();
+}
+</programlisting>
+	    <para>These are just two simple tests that show ways of testing a sequencer.  Some tests may get quite involved,
+	    especially if a lot of output data is produced.  
+	    </para>
+	    <para>It may also be useful to create some integration tests
+	    that <link linkend="using_dna">configure JBoss DNA</link> to use a custom sequencer, and to then upload
+	    content using the JCR API, verifying that the custom sequencer did run.  However, remember that JBoss DNA
+	    runs sequencers asynchronously in the background, and you must synchronize your tests to ensure that the
+	    sequencers have a chance to run before checking the results.  (One way of doing this (although, granted, not always reliable) is to wait for a second
+	    after uploading your content, shutdown the &SequencingService; and await its termination,
+	    and then check that the sequencer output has been saved to the JCR repository.  For an example of this technique,
+	    see the <code>SequencingClientTest</code> unit test in the example application.)
+	    </para>  
+	  </sect2>
+	  <sect2 id="deploying_custom_sequencers">
+	    <title>Deploying custom sequencers</title>
+	    <para>The first step of deploying a sequencer consists of adding/changing the sequencer configuration (e.g., &SequencerConfig;)
+	    in the &SequencingService;.  This was covered in the <link linkend="sequencing_service">previous chapter</link>.
+	    </para>
+	    <para>
+	    The second step is to make the sequencer implementation available to JBoss DNA.  At this time, the JAR containing 
+	    your new sequencer, as well as any JARs that your sequencer depends on, should be placed on your application classpath.</para>
+	    <note>
+	      <para>A future goal of JBoss DNA is to allow sequencers, connectors, and other extensions to be easily deployed into
+	        a runtime repository.  This process will not only be much simpler, but it will also provide JBoss DNA 
+	        with the information necessary to update configurations and create the appropriate class loaders for each extension.
+	        Having separate class loaders for each extension helps prevent the pollution of the common classpath, 
+	        facilitates an isolated runtime environment to eliminate any dependency conflicts, and may potentially
+	        enable hot redeployment of newer extension versions.
+	      </para>
+	    </note>
+	  </sect2>
+  </sect1>
+</chapter>

Deleted: tags/dna-0.2/extensions/dna-classloader-maven/pom.xml
===================================================================
--- trunk/extensions/dna-classloader-maven/pom.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/extensions/dna-classloader-maven/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,77 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.jboss.dna</groupId>
-    <artifactId>dna</artifactId>
-    <version>0.2</version>
-  </parent>
-  <!-- The groupId and version values are inherited from parent -->
-  <artifactId>dna-classloader-maven</artifactId>
-  <packaging>jar</packaging>
-  <name>JBoss DNA Maven Classloader</name>
-  <description>JBoss DNA Maven Classloader</description>
-  <url>http://labs.jboss.org/dna</url>
-  
-  <!--
-  Define the dependencies.  Note that all version and scopes default to those 
-  defined in the dependencyManagement section of the parent pom.
-  -->
-  <dependencies>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-common</artifactId>
-      <version>${pom.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <!-- 
-    Testing (note the scope)
-    -->
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-all</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <!-- 
-    Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
-    -->
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-    </dependency>
-    <!-- 
-      Java Content Repository API 
-    -->
-    <dependency>
-      <groupId>javax.jcr</groupId>
-      <artifactId>jcr</artifactId>
-    </dependency>
-    <!-- 
-      Apache Jackrabbit (JCR Implementation) for testing purposes
-    -->
-    <dependency>
-      <groupId>org.apache.jackrabbit</groupId>
-      <artifactId>jackrabbit-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.jackrabbit</groupId>
-      <artifactId>jackrabbit-core</artifactId>
-    </dependency>
-  </dependencies>
-</project>
\ No newline at end of file

Copied: tags/dna-0.2/extensions/dna-classloader-maven/pom.xml (from rev 554, trunk/extensions/dna-classloader-maven/pom.xml)
===================================================================
--- tags/dna-0.2/extensions/dna-classloader-maven/pom.xml	                        (rev 0)
+++ tags/dna-0.2/extensions/dna-classloader-maven/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,77 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.jboss.dna</groupId>
+    <artifactId>dna</artifactId>
+    <version>0.2</version>
+  </parent>
+  <!-- The groupId and version values are inherited from parent -->
+  <artifactId>dna-classloader-maven</artifactId>
+  <packaging>jar</packaging>
+  <name>JBoss DNA Maven Classloader</name>
+  <description>JBoss DNA Maven Classloader</description>
+  <url>http://labs.jboss.org/dna</url>
+  
+  <!--
+  Define the dependencies.  Note that all version and scopes default to those 
+  defined in the dependencyManagement section of the parent pom.
+  -->
+  <dependencies>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-common</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-common</artifactId>
+      <version>${pom.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <!-- 
+    Testing (note the scope)
+    -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-all</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <!-- 
+    Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
+    -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-log4j12</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+    </dependency>
+    <!-- 
+      Java Content Repository API 
+    -->
+    <dependency>
+      <groupId>javax.jcr</groupId>
+      <artifactId>jcr</artifactId>
+    </dependency>
+    <!-- 
+      Apache Jackrabbit (JCR Implementation) for testing purposes
+    -->
+    <dependency>
+      <groupId>org.apache.jackrabbit</groupId>
+      <artifactId>jackrabbit-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.jackrabbit</groupId>
+      <artifactId>jackrabbit-core</artifactId>
+    </dependency>
+  </dependencies>
+</project>
\ No newline at end of file

Deleted: tags/dna-0.2/extensions/dna-connector-federation/pom.xml
===================================================================
--- trunk/extensions/dna-connector-federation/pom.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/extensions/dna-connector-federation/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,89 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.jboss.dna</groupId>
-    <artifactId>dna</artifactId>
-    <version>0.2</version>
-    <relativePath>../..</relativePath>
-  </parent>
-  <!-- The groupId and version values are inherited from parent -->
-  <artifactId>dna-connector-federation</artifactId>
-  <packaging>jar</packaging>
-  <name>JBoss DNA Federation Connector</name>
-  <description>JBoss DNA Connector that federates content from multiple connectors.</description>
-  <url>http://labs.jboss.org/dna</url>
-  
-  <!--
-  Define the dependencies.  Note that all version and scopes default to those 
-  defined in the dependencyManagement section of the parent pom.
-  -->
-  <dependencies>
-    <!-- 
-    Common
-    -->
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-graph</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-common</artifactId>
-      <version>${pom.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-graph</artifactId>
-      <version>${pom.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <!-- 
-    Testing (note the scope)
-    -->
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-all</artifactId>
-    </dependency>
-    <!-- 
-    Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
-    -->
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-    </dependency>
-    <!-- 
-    Java Concurrency in Practice annotations
-    -->
-  <dependency>
-    <groupId>net.jcip</groupId>
-    <artifactId>jcip-annotations</artifactId>
-  </dependency>
-  </dependencies>
-  <reporting>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-report-plugin</artifactId>
-      </plugin>
-    </plugins>
-  </reporting>
-</project>
\ No newline at end of file

Copied: tags/dna-0.2/extensions/dna-connector-federation/pom.xml (from rev 554, trunk/extensions/dna-connector-federation/pom.xml)
===================================================================
--- tags/dna-0.2/extensions/dna-connector-federation/pom.xml	                        (rev 0)
+++ tags/dna-0.2/extensions/dna-connector-federation/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.jboss.dna</groupId>
+    <artifactId>dna</artifactId>
+    <version>0.2</version>
+    <relativePath>../..</relativePath>
+  </parent>
+  <!-- The groupId and version values are inherited from parent -->
+  <artifactId>dna-connector-federation</artifactId>
+  <packaging>jar</packaging>
+  <name>JBoss DNA Federation Connector</name>
+  <description>JBoss DNA Connector that federates content from multiple connectors.</description>
+  <url>http://labs.jboss.org/dna</url>
+  
+  <!--
+  Define the dependencies.  Note that all version and scopes default to those 
+  defined in the dependencyManagement section of the parent pom.
+  -->
+  <dependencies>
+    <!-- 
+    Common
+    -->
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-common</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-graph</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-common</artifactId>
+      <version>${pom.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-graph</artifactId>
+      <version>${pom.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <!-- 
+    Testing (note the scope)
+    -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-all</artifactId>
+    </dependency>
+    <!-- 
+    Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
+    -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-log4j12</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+    </dependency>
+    <!-- 
+    Java Concurrency in Practice annotations
+    -->
+  <dependency>
+    <groupId>net.jcip</groupId>
+    <artifactId>jcip-annotations</artifactId>
+  </dependency>
+  </dependencies>
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-report-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </reporting>
+</project>
\ No newline at end of file

Deleted: tags/dna-0.2/extensions/dna-connector-inmemory/pom.xml
===================================================================
--- trunk/extensions/dna-connector-inmemory/pom.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/extensions/dna-connector-inmemory/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,89 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.jboss.dna</groupId>
-    <artifactId>dna</artifactId>
-    <version>0.2</version>
-    <relativePath>../..</relativePath>
-  </parent>
-  <!-- The groupId and version values are inherited from parent -->
-  <artifactId>dna-connector-inmemory</artifactId>
-  <packaging>jar</packaging>
-  <name>JBoss DNA Connector to a simple in-memory repository</name>
-  <description>JBoss DNA Connector that accesses an in-memory graph.</description>
-  <url>http://labs.jboss.org/dna</url>
-  
-  <!--
-  Define the dependencies.  Note that all version and scopes default to those 
-  defined in the dependencyManagement section of the parent pom.
-  -->
-  <dependencies>
-    <!-- 
-    Common
-    -->
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-graph</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-common</artifactId>
-      <version>${pom.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-graph</artifactId>
-      <version>${pom.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <!-- 
-    Testing (note the scope)
-    -->
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-all</artifactId>
-    </dependency>
-    <!-- 
-    Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
-    -->
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-    </dependency>
-    <!-- 
-    Java Concurrency in Practice annotations
-    -->
-  <dependency>
-    <groupId>net.jcip</groupId>
-    <artifactId>jcip-annotations</artifactId>
-  </dependency>
-  </dependencies>
-  <reporting>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-report-plugin</artifactId>
-      </plugin>
-    </plugins>
-  </reporting>
-</project>
\ No newline at end of file

Copied: tags/dna-0.2/extensions/dna-connector-inmemory/pom.xml (from rev 554, trunk/extensions/dna-connector-inmemory/pom.xml)
===================================================================
--- tags/dna-0.2/extensions/dna-connector-inmemory/pom.xml	                        (rev 0)
+++ tags/dna-0.2/extensions/dna-connector-inmemory/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.jboss.dna</groupId>
+    <artifactId>dna</artifactId>
+    <version>0.2</version>
+    <relativePath>../..</relativePath>
+  </parent>
+  <!-- The groupId and version values are inherited from parent -->
+  <artifactId>dna-connector-inmemory</artifactId>
+  <packaging>jar</packaging>
+  <name>JBoss DNA Connector to a simple in-memory repository</name>
+  <description>JBoss DNA Connector that accesses an in-memory graph.</description>
+  <url>http://labs.jboss.org/dna</url>
+  
+  <!--
+  Define the dependencies.  Note that all version and scopes default to those 
+  defined in the dependencyManagement section of the parent pom.
+  -->
+  <dependencies>
+    <!-- 
+    Common
+    -->
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-common</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-graph</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-common</artifactId>
+      <version>${pom.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-graph</artifactId>
+      <version>${pom.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <!-- 
+    Testing (note the scope)
+    -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-all</artifactId>
+    </dependency>
+    <!-- 
+    Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
+    -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-log4j12</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+    </dependency>
+    <!-- 
+    Java Concurrency in Practice annotations
+    -->
+  <dependency>
+    <groupId>net.jcip</groupId>
+    <artifactId>jcip-annotations</artifactId>
+  </dependency>
+  </dependencies>
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-report-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </reporting>
+</project>
\ No newline at end of file

Deleted: tags/dna-0.2/extensions/dna-connector-jbosscache/pom.xml
===================================================================
--- trunk/extensions/dna-connector-jbosscache/pom.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/extensions/dna-connector-jbosscache/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,97 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.jboss.dna</groupId>
-    <artifactId>dna</artifactId>
-    <version>0.2</version>
-    <relativePath>../..</relativePath>
-  </parent>
-  <!-- The groupId and version values are inherited from parent -->
-  <artifactId>dna-connector-jbosscache</artifactId>
-  <packaging>jar</packaging>
-  <name>JBoss DNA Connector to JBoss Cache</name>
-  <description>JBoss DNA Connector that accesses an in-process JBoss Cache instance.</description>
-  <url>http://labs.jboss.org/dna</url>
-  
-  <!--
-  Define the dependencies.  Note that all version and scopes default to those 
-  defined in the dependencyManagement section of the parent pom.
-  -->
-  <dependencies>
-    <!-- 
-    Common
-    -->
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-graph</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-common</artifactId>
-      <version>${pom.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-graph</artifactId>
-      <version>${pom.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <!-- 
-    JBoss Cache
-    -->
-    <dependency>
-      <groupId>org.jboss.cache</groupId>
-      <artifactId>jbosscache-core</artifactId>
-      <version>2.2.0.GA</version>
-    </dependency>
-    <!-- 
-    Testing (note the scope)
-    -->
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-all</artifactId>
-    </dependency>
-    <!-- 
-    Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
-    -->
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-    </dependency>
-    <!-- 
-    Java Concurrency in Practice annotations
-    -->
-  <dependency>
-    <groupId>net.jcip</groupId>
-    <artifactId>jcip-annotations</artifactId>
-  </dependency>
-  </dependencies>
-  <reporting>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-report-plugin</artifactId>
-      </plugin>
-    </plugins>
-  </reporting>
-</project>
\ No newline at end of file

Copied: tags/dna-0.2/extensions/dna-connector-jbosscache/pom.xml (from rev 554, trunk/extensions/dna-connector-jbosscache/pom.xml)
===================================================================
--- tags/dna-0.2/extensions/dna-connector-jbosscache/pom.xml	                        (rev 0)
+++ tags/dna-0.2/extensions/dna-connector-jbosscache/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.jboss.dna</groupId>
+    <artifactId>dna</artifactId>
+    <version>0.2</version>
+    <relativePath>../..</relativePath>
+  </parent>
+  <!-- The groupId and version values are inherited from parent -->
+  <artifactId>dna-connector-jbosscache</artifactId>
+  <packaging>jar</packaging>
+  <name>JBoss DNA Connector to JBoss Cache</name>
+  <description>JBoss DNA Connector that accesses an in-process JBoss Cache instance.</description>
+  <url>http://labs.jboss.org/dna</url>
+  
+  <!--
+  Define the dependencies.  Note that all version and scopes default to those 
+  defined in the dependencyManagement section of the parent pom.
+  -->
+  <dependencies>
+    <!-- 
+    Common
+    -->
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-common</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-graph</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-common</artifactId>
+      <version>${pom.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-graph</artifactId>
+      <version>${pom.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <!-- 
+    JBoss Cache
+    -->
+    <dependency>
+      <groupId>org.jboss.cache</groupId>
+      <artifactId>jbosscache-core</artifactId>
+      <version>2.2.0.GA</version>
+    </dependency>
+    <!-- 
+    Testing (note the scope)
+    -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-all</artifactId>
+    </dependency>
+    <!-- 
+    Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
+    -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-log4j12</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+    </dependency>
+    <!-- 
+    Java Concurrency in Practice annotations
+    -->
+  <dependency>
+    <groupId>net.jcip</groupId>
+    <artifactId>jcip-annotations</artifactId>
+  </dependency>
+  </dependencies>
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-report-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </reporting>
+</project>
\ No newline at end of file

Deleted: tags/dna-0.2/extensions/dna-mimetype-detector-aperture/pom.xml
===================================================================
--- trunk/extensions/dna-mimetype-detector-aperture/pom.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/extensions/dna-mimetype-detector-aperture/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,256 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.jboss.dna</groupId>
-    <artifactId>dna</artifactId>
-    <version>0.2</version>
-    <relativePath>../..</relativePath>
-  </parent>
-  <!-- The groupId and version values are inherited from parent -->
-  <artifactId>dna-mimetype-detector-aperture</artifactId>
-  <packaging>jar</packaging>
-  <name>JBoss DNA Aperture MIME-type detector</name>
-  <description>JBoss DNA MIME-type detector using Aperture library</description>
-  <url>http://labs.jboss.org/dna</url>
-  <!--
-  Define the dependencies.  Note that all version and scopes default to those 
-  defined in the dependencyManagement section of the parent pom.
-  -->
-  <dependencies>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-graph</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-repository</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-repository</artifactId>
-      <version>${pom.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-<!--
-    <dependency>
-      <groupId>org.apache.tika</groupId>
-      <artifactId>tika</artifactId>
-      <version>0.1-incubating</version>
-    </dependency>
--->
-    <!-- 
-    MIME-type detection and metadata extraction
-    -->
-    <dependency>
-      <groupId>org.semanticdesktop</groupId>
-      <artifactId>aperture</artifactId>
-      <version>1.1.0.Beta1</version>
-      <!-- Exclude these since they are not needed for MIME-type detection -->
-      <exclusions>
-        <exclusion>
-          <groupId>javax.activation</groupId>
-          <artifactId>activation</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.gnowsis</groupId>
-          <artifactId>applewrapper</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>bouncycastle</groupId>
-          <artifactId>bcmail-jdk14</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>bouncycastle</groupId>
-          <artifactId>bcprov-jdk14</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>commons-codec</groupId>
-          <artifactId>commons-codec</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>commons-httpclient</groupId>
-          <artifactId>commons-httpclient</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>commons-lang</groupId>
-          <artifactId>commons-lang</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.semanticdesktop</groupId>
-          <artifactId>demork</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>de.dfki</groupId>
-          <artifactId>utils</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>com.aetrion</groupId>
-          <artifactId>flickr</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.fontbox</groupId>
-          <artifactId>fontbox</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.htmlparser</groupId>
-          <artifactId>htmlparser</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>ical4j</groupId>
-          <artifactId>ical4j</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.semanticdesktop.nepomuk</groupId>
-          <artifactId>infsail</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>com.jacob</groupId>
-          <artifactId>jacob</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>javax.media</groupId>
-          <artifactId>jai-core</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>com.sun.media</groupId>
-          <artifactId>jai-codec</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.jaudiotagger</groupId>
-          <artifactId>jaudiotagger</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.slf4j</groupId>
-          <artifactId>jcl104-over-slf4j</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>net.wimpi</groupId>
-          <artifactId>pim</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>junit</groupId>
-          <artifactId>junit</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>com.beetstra.jutf7</groupId>
-          <artifactId>jutf7</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>javax.mail</groupId>
-          <artifactId>mail</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>com.drewnoakes</groupId>
-          <artifactId>metadata-extractor</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>mstor</groupId>
-          <artifactId>mstor</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.semanticdesktop.nepomuk</groupId>
-          <artifactId>nrlvalidator</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.openrdf</groupId>
-          <artifactId>openrdf-sesame-onejar-osgi</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.osgi</groupId>
-          <artifactId>org.osgi.core</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>pdfbox</groupId>
-          <artifactId>pdfbox</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.apache.poi</groupId>
-          <artifactId>poi</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.apache.poi</groupId>
-          <artifactId>poi-scratchpad</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.semweb4j</groupId>
-          <artifactId>rdf2go.impl.base</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.semweb4j</groupId>
-          <artifactId>rdf2go.impl.sesame20</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.semweb4j</groupId>
-          <artifactId>rdf2go.impl.util</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.slf4j</groupId>
-          <artifactId>slf4j-api</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.slf4j</groupId>
-          <artifactId>slf4j-jdk14</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>org.semanticdesktop.nepomuk</groupId>
-          <artifactId>unionsail</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>winlaf</groupId>
-          <artifactId>winlaf</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <!-- 
-    Testing (note the scope)
-    -->
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.hamcrest</groupId>
-      <artifactId>hamcrest-library</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-all</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <!-- 
-    Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
-    -->
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-    </dependency>
-    <!-- 
-    Java Concurrency in Practice annotations
-    -->
-	<dependency>
-	  <groupId>net.jcip</groupId>
-	  <artifactId>jcip-annotations</artifactId>
-	</dependency>
-    <!-- 
-      Java Content Repository API and Apache Jackrabbit for the JCR unit test infrastructure
-    -->
-  </dependencies>
-  <reporting>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-report-plugin</artifactId>
-      </plugin>
-    </plugins>
-  </reporting>
-</project>
\ No newline at end of file

Copied: tags/dna-0.2/extensions/dna-mimetype-detector-aperture/pom.xml (from rev 554, trunk/extensions/dna-mimetype-detector-aperture/pom.xml)
===================================================================
--- tags/dna-0.2/extensions/dna-mimetype-detector-aperture/pom.xml	                        (rev 0)
+++ tags/dna-0.2/extensions/dna-mimetype-detector-aperture/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,256 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.jboss.dna</groupId>
+    <artifactId>dna</artifactId>
+    <version>0.2</version>
+    <relativePath>../..</relativePath>
+  </parent>
+  <!-- The groupId and version values are inherited from parent -->
+  <artifactId>dna-mimetype-detector-aperture</artifactId>
+  <packaging>jar</packaging>
+  <name>JBoss DNA Aperture MIME-type detector</name>
+  <description>JBoss DNA MIME-type detector using Aperture library</description>
+  <url>http://labs.jboss.org/dna</url>
+  <!--
+  Define the dependencies.  Note that all version and scopes default to those 
+  defined in the dependencyManagement section of the parent pom.
+  -->
+  <dependencies>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-graph</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-repository</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-repository</artifactId>
+      <version>${pom.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+<!--
+    <dependency>
+      <groupId>org.apache.tika</groupId>
+      <artifactId>tika</artifactId>
+      <version>0.1-incubating</version>
+    </dependency>
+-->
+    <!-- 
+    MIME-type detection and metadata extraction
+    -->
+    <dependency>
+      <groupId>org.semanticdesktop</groupId>
+      <artifactId>aperture</artifactId>
+      <version>1.1.0.Beta1</version>
+      <!-- Exclude these since they are not needed for MIME-type detection -->
+      <exclusions>
+        <exclusion>
+          <groupId>javax.activation</groupId>
+          <artifactId>activation</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.gnowsis</groupId>
+          <artifactId>applewrapper</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>bouncycastle</groupId>
+          <artifactId>bcmail-jdk14</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>bouncycastle</groupId>
+          <artifactId>bcprov-jdk14</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>commons-codec</groupId>
+          <artifactId>commons-codec</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>commons-httpclient</groupId>
+          <artifactId>commons-httpclient</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>commons-lang</groupId>
+          <artifactId>commons-lang</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.semanticdesktop</groupId>
+          <artifactId>demork</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>de.dfki</groupId>
+          <artifactId>utils</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>com.aetrion</groupId>
+          <artifactId>flickr</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.fontbox</groupId>
+          <artifactId>fontbox</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.htmlparser</groupId>
+          <artifactId>htmlparser</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>ical4j</groupId>
+          <artifactId>ical4j</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.semanticdesktop.nepomuk</groupId>
+          <artifactId>infsail</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>com.jacob</groupId>
+          <artifactId>jacob</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>javax.media</groupId>
+          <artifactId>jai-core</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>com.sun.media</groupId>
+          <artifactId>jai-codec</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.jaudiotagger</groupId>
+          <artifactId>jaudiotagger</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.slf4j</groupId>
+          <artifactId>jcl104-over-slf4j</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>net.wimpi</groupId>
+          <artifactId>pim</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>junit</groupId>
+          <artifactId>junit</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>com.beetstra.jutf7</groupId>
+          <artifactId>jutf7</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>javax.mail</groupId>
+          <artifactId>mail</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>com.drewnoakes</groupId>
+          <artifactId>metadata-extractor</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>mstor</groupId>
+          <artifactId>mstor</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.semanticdesktop.nepomuk</groupId>
+          <artifactId>nrlvalidator</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.openrdf</groupId>
+          <artifactId>openrdf-sesame-onejar-osgi</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.osgi</groupId>
+          <artifactId>org.osgi.core</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>pdfbox</groupId>
+          <artifactId>pdfbox</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.apache.poi</groupId>
+          <artifactId>poi</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.apache.poi</groupId>
+          <artifactId>poi-scratchpad</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.semweb4j</groupId>
+          <artifactId>rdf2go.impl.base</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.semweb4j</groupId>
+          <artifactId>rdf2go.impl.sesame20</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.semweb4j</groupId>
+          <artifactId>rdf2go.impl.util</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.slf4j</groupId>
+          <artifactId>slf4j-api</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.slf4j</groupId>
+          <artifactId>slf4j-jdk14</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.semanticdesktop.nepomuk</groupId>
+          <artifactId>unionsail</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>winlaf</groupId>
+          <artifactId>winlaf</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <!-- 
+    Testing (note the scope)
+    -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.hamcrest</groupId>
+      <artifactId>hamcrest-library</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-all</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <!-- 
+    Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
+    -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-log4j12</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+    </dependency>
+    <!-- 
+    Java Concurrency in Practice annotations
+    -->
+	<dependency>
+	  <groupId>net.jcip</groupId>
+	  <artifactId>jcip-annotations</artifactId>
+	</dependency>
+    <!-- 
+      Java Content Repository API and Apache Jackrabbit for the JCR unit test infrastructure
+    -->
+  </dependencies>
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-report-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </reporting>
+</project>
\ No newline at end of file

Deleted: tags/dna-0.2/extensions/dna-sequencer-cnd/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-cnd/pom.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/extensions/dna-sequencer-cnd/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <parent>
-    <artifactId>dna</artifactId>
-    <groupId>org.jboss.dna</groupId>
-    <version>0.2-SNAPSHOT</version>
-    <relativePath>../..</relativePath>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.jboss.dna</groupId>
-  <artifactId>dna-sequencer-cnd</artifactId>
-  <name>JBoss DNA CND Sequencer</name>
-  <version>0.2-SNAPSHOT</version>
-  <description>JBoss DNA Sequencer that processes JCR CND files</description>
-  <dependencies>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-common</artifactId>
-      <version>0.2-SNAPSHOT</version>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-graph</artifactId>
-      <version>0.2-SNAPSHOT</version>
-    </dependency>
-    <dependency>
-      <groupId>org.antlr</groupId>
-      <artifactId>antlr-runtime</artifactId>
-      <version>3.0.1</version>
-    </dependency>
-    
-    <!-- Testing -->
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.hamcrest</groupId>
-      <artifactId>hamcrest-library</artifactId>
-    </dependency>
-  </dependencies>
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>antlr3-maven-plugin</artifactId>
-        <version>1.0</version>
-        <executions>
-          <execution>
-            <goals>
-              <goal>antlr</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-</project>
\ No newline at end of file

Copied: tags/dna-0.2/extensions/dna-sequencer-cnd/pom.xml (from rev 554, trunk/extensions/dna-sequencer-cnd/pom.xml)
===================================================================
--- tags/dna-0.2/extensions/dna-sequencer-cnd/pom.xml	                        (rev 0)
+++ tags/dna-0.2/extensions/dna-sequencer-cnd/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,54 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <parent>
+    <artifactId>dna</artifactId>
+    <groupId>org.jboss.dna</groupId>
+    <version>0.2</version>
+    <relativePath>../..</relativePath>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.jboss.dna</groupId>
+  <artifactId>dna-sequencer-cnd</artifactId>
+  <name>JBoss DNA CND Sequencer</name>
+  <description>JBoss DNA Sequencer that processes JCR CND files</description>
+  <dependencies>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-common</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-graph</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.antlr</groupId>
+      <artifactId>antlr-runtime</artifactId>
+      <version>3.0.1</version>
+    </dependency>
+    
+    <!-- Testing -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.hamcrest</groupId>
+      <artifactId>hamcrest-library</artifactId>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>antlr3-maven-plugin</artifactId>
+        <version>1.0</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>antlr</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
\ No newline at end of file

Deleted: tags/dna-0.2/extensions/dna-sequencer-images/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-images/pom.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/extensions/dna-sequencer-images/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,92 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <groupId>org.jboss.dna</groupId>
-    <artifactId>dna</artifactId>
-    <version>0.2</version>
-    <relativePath>../..</relativePath>
-  </parent>
-  <!-- The groupId and version values are inherited from parent -->
-  <artifactId>dna-sequencer-images</artifactId>
-  <packaging>jar</packaging>
-  <name>JBoss DNA Image Sequencer</name>
-  <description>JBoss DNA Sequencer that processes PNG, JPEG, GIF and other image files</description>
-  <url>http://labs.jboss.org/dna</url>
-  
-  <!--
-  Define the dependencies.  Note that all version and scopes default to those 
-  defined in the dependencyManagement section of the parent pom.
-  -->
-  <dependencies>
-    <!-- 
-    Common
-    -->
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-graph</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-common</artifactId>
-      <version>${pom.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-graph</artifactId>
-      <version>${pom.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <!-- 
-    Testing (note the scope)
-    -->
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.hamcrest</groupId>
-      <artifactId>hamcrest-library</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-all</artifactId>
-    </dependency>
-    <!-- 
-    Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
-    -->
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-    </dependency>
-    <!-- 
-    Java Concurrency in Practice annotations
-    -->
-	<dependency>
-	  <groupId>net.jcip</groupId>
-	  <artifactId>jcip-annotations</artifactId>
-	</dependency>
-  </dependencies>
-  <reporting>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-report-plugin</artifactId>
-      </plugin>
-    </plugins>
-  </reporting>
-</project>
\ No newline at end of file

Copied: tags/dna-0.2/extensions/dna-sequencer-images/pom.xml (from rev 554, trunk/extensions/dna-sequencer-images/pom.xml)
===================================================================
--- tags/dna-0.2/extensions/dna-sequencer-images/pom.xml	                        (rev 0)
+++ tags/dna-0.2/extensions/dna-sequencer-images/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,92 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.jboss.dna</groupId>
+    <artifactId>dna</artifactId>
+    <version>0.2</version>
+    <relativePath>../..</relativePath>
+  </parent>
+  <!-- The groupId and version values are inherited from parent -->
+  <artifactId>dna-sequencer-images</artifactId>
+  <packaging>jar</packaging>
+  <name>JBoss DNA Image Sequencer</name>
+  <description>JBoss DNA Sequencer that processes PNG, JPEG, GIF and other image files</description>
+  <url>http://labs.jboss.org/dna</url>
+  
+  <!--
+  Define the dependencies.  Note that all version and scopes default to those 
+  defined in the dependencyManagement section of the parent pom.
+  -->
+  <dependencies>
+    <!-- 
+    Common
+    -->
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-common</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-graph</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-common</artifactId>
+      <version>${pom.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-graph</artifactId>
+      <version>${pom.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <!-- 
+    Testing (note the scope)
+    -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.hamcrest</groupId>
+      <artifactId>hamcrest-library</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-all</artifactId>
+    </dependency>
+    <!-- 
+    Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
+    -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-log4j12</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+    </dependency>
+    <!-- 
+    Java Concurrency in Practice annotations
+    -->
+	<dependency>
+	  <groupId>net.jcip</groupId>
+	  <artifactId>jcip-annotations</artifactId>
+	</dependency>
+  </dependencies>
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-report-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </reporting>
+</project>
\ No newline at end of file

Deleted: tags/dna-0.2/extensions/dna-sequencer-java/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-java/pom.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/extensions/dna-sequencer-java/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,145 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<groupId>org.jboss.dna</groupId>
-		<artifactId>dna</artifactId>
-		<version>0.2</version>
-		<relativePath>../..</relativePath>
-	</parent>
-	<!-- The groupId and version values are inherited from parent -->
-	<artifactId>dna-sequencer-java</artifactId>
-	<packaging>jar</packaging>
-	<name>JBoss DNA Java Sequencer</name>
-	<description>
-		JBoss DNA Sequencer that processes java sources
-	</description>
-	<url>http://labs.jboss.org/dna</url>
-	<!--
-		Define the dependencies.  Note that all version and scopes default to those 
-		defined in the dependencyManagement section of the parent pom.
-	-->
-	<dependencies>
-		<!-- 
-			Common
-		-->
-		<dependency>
-			<groupId>org.jboss.dna</groupId>
-			<artifactId>dna-common</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.jboss.dna</groupId>
-			<artifactId>dna-graph</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.jboss.dna</groupId>
-			<artifactId>dna-common</artifactId>
-			<version>${pom.version}</version>
-			<type>test-jar</type>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.jboss.dna</groupId>
-			<artifactId>dna-graph</artifactId>
-			<version>${pom.version}</version>
-			<type>test-jar</type>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.jboss.dna</groupId>
-			<artifactId>dna-integration-tests</artifactId>
-			<version>0.2</version>
-			<scope>test</scope>
-		</dependency>
-		<!-- 
-			Testing (note the scope)
-		-->
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.hamcrest</groupId>
-			<artifactId>hamcrest-library</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.mockito</groupId>
-			<artifactId>mockito-all</artifactId>
-		</dependency>
-		<!-- 
-			Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
-		-->
-		<dependency>
-			<groupId>org.slf4j</groupId>
-			<artifactId>slf4j-api</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.slf4j</groupId>
-			<artifactId>slf4j-log4j12</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>log4j</groupId>
-			<artifactId>log4j</artifactId>
-		</dependency>
-		<!-- 
-			Java Concurrency in Practice annotations
-		-->
-		<dependency>
-			<groupId>net.jcip</groupId>
-			<artifactId>jcip-annotations</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.eclipse.jdt</groupId>
-			<artifactId>core</artifactId>
-			<version>3.2.3.v_686_R32x</version>
-		</dependency>
-		<dependency>
-			<groupId>org.eclipse.core</groupId>
-			<artifactId>runtime</artifactId>
-			<version>3.3.100-v20070530</version>
-			<!-- Exclude this problem library -->
-			<exclusions>
-				<exclusion>
-					<groupId>org.eclipse.equinox</groupId>
-					<artifactId>app</artifactId>
-				</exclusion>
-			</exclusions>
-		</dependency>
-		<dependency>
-			<groupId>org.eclipse.core</groupId>
-			<artifactId>resources</artifactId>
-			<version>3.3.0-v20070604</version>
-		</dependency>
-		<dependency>
-			<groupId>commons-io</groupId>
-			<artifactId>commons-io</artifactId>
-			<version>1.4</version>
-		</dependency>
-		<dependency>
-			<groupId>commons-lang</groupId>
-			<artifactId>commons-lang</artifactId>
-			<version>2.4</version>
-		</dependency>
-		<!-- 
-			Apache Jackrabbit (JCR Implementation)
-		-->
-		<dependency>
-			<groupId>org.apache.jackrabbit</groupId>
-			<artifactId>jackrabbit-api</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.jackrabbit</groupId>
-			<artifactId>jackrabbit-core</artifactId>
-		</dependency>
-	</dependencies>
-	<reporting>
-		<plugins>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-surefire-report-plugin</artifactId>
-			</plugin>
-		</plugins>
-	</reporting>
-</project>

Copied: tags/dna-0.2/extensions/dna-sequencer-java/pom.xml (from rev 554, trunk/extensions/dna-sequencer-java/pom.xml)
===================================================================
--- tags/dna-0.2/extensions/dna-sequencer-java/pom.xml	                        (rev 0)
+++ tags/dna-0.2/extensions/dna-sequencer-java/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,142 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.jboss.dna</groupId>
+		<artifactId>dna</artifactId>
+		<version>0.2</version>
+		<relativePath>../..</relativePath>
+	</parent>
+	<!-- The groupId and version values are inherited from parent -->
+	<artifactId>dna-sequencer-java</artifactId>
+	<packaging>jar</packaging>
+	<name>JBoss DNA Java Sequencer</name>
+	<description>
+		JBoss DNA Sequencer that processes java sources
+	</description>
+	<url>http://labs.jboss.org/dna</url>
+	<!--
+		Define the dependencies.  Note that all version and scopes default to those 
+		defined in the dependencyManagement section of the parent pom.
+	-->
+	<dependencies>
+		<!-- 
+			Common
+		-->
+		<dependency>
+			<groupId>org.jboss.dna</groupId>
+			<artifactId>dna-common</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.jboss.dna</groupId>
+			<artifactId>dna-graph</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.jboss.dna</groupId>
+			<artifactId>dna-common</artifactId>
+			<version>${pom.version}</version>
+			<type>test-jar</type>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.jboss.dna</groupId>
+			<artifactId>dna-graph</artifactId>
+			<version>${pom.version}</version>
+			<type>test-jar</type>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.jboss.dna</groupId>
+			<artifactId>dna-integration-tests</artifactId>
+			<version>0.2</version>
+			<scope>test</scope>
+		</dependency>
+		<!-- 
+			Testing (note the scope)
+		-->
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.hamcrest</groupId>
+			<artifactId>hamcrest-library</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.mockito</groupId>
+			<artifactId>mockito-all</artifactId>
+		</dependency>
+		<!-- 
+			Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
+		-->
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-api</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-log4j12</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>log4j</groupId>
+			<artifactId>log4j</artifactId>
+		</dependency>
+		<!-- 
+			Java Concurrency in Practice annotations
+		-->
+		<dependency>
+			<groupId>net.jcip</groupId>
+			<artifactId>jcip-annotations</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.eclipse.jdt</groupId>
+			<artifactId>core</artifactId>
+			<version>3.2.3.v_686_R32x</version>
+		</dependency>
+		<dependency>
+			<groupId>org.eclipse.core</groupId>
+			<artifactId>runtime</artifactId>
+			<version>3.3.100-v20070530</version>
+			<!-- Exclude this problem library -->
+			<exclusions>
+				<exclusion>
+					<groupId>org.eclipse.equinox</groupId>
+					<artifactId>app</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+		<dependency>
+			<groupId>org.eclipse.core</groupId>
+			<artifactId>resources</artifactId>
+			<version>3.3.0-v20070604</version>
+		</dependency>
+		<dependency>
+			<groupId>commons-io</groupId>
+			<artifactId>commons-io</artifactId>
+			<version>1.4</version>
+		</dependency>
+		<dependency>
+			<groupId>commons-lang</groupId>
+			<artifactId>commons-lang</artifactId>
+			<version>2.4</version>
+		</dependency>
+		<!-- 
+			Apache Jackrabbit (JCR Implementation)
+		-->
+		<dependency>
+			<groupId>org.apache.jackrabbit</groupId>
+			<artifactId>jackrabbit-api</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.jackrabbit</groupId>
+			<artifactId>jackrabbit-core</artifactId>
+		</dependency>
+	</dependencies>
+	<reporting>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-surefire-report-plugin</artifactId>
+			</plugin>
+		</plugins>
+	</reporting>
+</project>
\ No newline at end of file

Deleted: tags/dna-0.2/extensions/dna-sequencer-mp3/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-mp3/pom.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/extensions/dna-sequencer-mp3/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,34 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <artifactId>dna</artifactId>
-    <groupId>org.jboss.dna</groupId>
-    <version>0.2-SNAPSHOT</version>
-    <relativePath>../..</relativePath>
-  </parent>
-  <!-- The groupId and version values are inherited from parent -->
-  <artifactId>dna-sequencer-mp3</artifactId>
-  <packaging>jar</packaging>
-  <name>JBoss DNA MP3 Sequencer</name>
-  <description>JBoss DNA Sequencer that processes MP3 audio files</description>
-  <url>http://labs.jboss.org/dna</url>
-  <dependencies>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-graph</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.jaudiotagger</groupId>
-      <artifactId>jaudiotagger</artifactId>
-      <version>1.0.8</version>
-   </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-  </dependencies>
-</project>
\ No newline at end of file

Copied: tags/dna-0.2/extensions/dna-sequencer-mp3/pom.xml (from rev 554, trunk/extensions/dna-sequencer-mp3/pom.xml)
===================================================================
--- tags/dna-0.2/extensions/dna-sequencer-mp3/pom.xml	                        (rev 0)
+++ tags/dna-0.2/extensions/dna-sequencer-mp3/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,34 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <artifactId>dna</artifactId>
+    <groupId>org.jboss.dna</groupId>
+    <version>0.2</version>
+    <relativePath>../..</relativePath>
+  </parent>
+  <!-- The groupId and version values are inherited from parent -->
+  <artifactId>dna-sequencer-mp3</artifactId>
+  <packaging>jar</packaging>
+  <name>JBoss DNA MP3 Sequencer</name>
+  <description>JBoss DNA Sequencer that processes MP3 audio files</description>
+  <url>http://labs.jboss.org/dna</url>
+  <dependencies>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-common</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-graph</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jaudiotagger</groupId>
+      <artifactId>jaudiotagger</artifactId>
+      <version>1.0.8</version>
+   </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+  </dependencies>
+</project>
\ No newline at end of file

Deleted: tags/dna-0.2/extensions/dna-sequencer-msoffice/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-msoffice/pom.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/extensions/dna-sequencer-msoffice/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,63 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <artifactId>dna</artifactId>
-    <groupId>org.jboss.dna</groupId>
-    <version>0.2</version>
-    <relativePath>../..</relativePath>
-  </parent>
-  <!-- The groupId and version values are inherited from parent -->
-  <artifactId>dna-sequencer-msoffice</artifactId>
-  <packaging>jar</packaging>
-  <name>JBoss DNA Microsoft Office Sequencer</name>
-  <description>JBoss DNA Sequencer that processes Microsoft Office files and searches for common metadata</description>
-  <url>http://labs.jboss.org/dna</url>
-  <dependencies>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-common</artifactId>
-      <version>${pom.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-graph</artifactId>
-    </dependency>
-    <dependency>
-        <groupId>org.apache.poi</groupId>
-        <artifactId>poi</artifactId>
-        <version>3.1-beta2</version>
-    </dependency>
-    <dependency>
-        <groupId>org.apache.poi</groupId>
-        <artifactId>poi-scratchpad</artifactId>
-        <version>3.1-beta2</version>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-    </dependency>
-    <!-- 
-    Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
-    -->
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-</project>
\ No newline at end of file

Copied: tags/dna-0.2/extensions/dna-sequencer-msoffice/pom.xml (from rev 554, trunk/extensions/dna-sequencer-msoffice/pom.xml)
===================================================================
--- tags/dna-0.2/extensions/dna-sequencer-msoffice/pom.xml	                        (rev 0)
+++ tags/dna-0.2/extensions/dna-sequencer-msoffice/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,63 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <artifactId>dna</artifactId>
+    <groupId>org.jboss.dna</groupId>
+    <version>0.2</version>
+    <relativePath>../..</relativePath>
+  </parent>
+  <!-- The groupId and version values are inherited from parent -->
+  <artifactId>dna-sequencer-msoffice</artifactId>
+  <packaging>jar</packaging>
+  <name>JBoss DNA Microsoft Office Sequencer</name>
+  <description>JBoss DNA Sequencer that processes Microsoft Office files and searches for common metadata</description>
+  <url>http://labs.jboss.org/dna</url>
+  <dependencies>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-common</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-common</artifactId>
+      <version>${pom.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-graph</artifactId>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.poi</groupId>
+        <artifactId>poi</artifactId>
+        <version>3.1-beta2</version>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.poi</groupId>
+        <artifactId>poi-scratchpad</artifactId>
+        <version>3.1-beta2</version>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+    </dependency>
+    <!-- 
+    Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
+    -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-log4j12</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+</project>
\ No newline at end of file

Deleted: tags/dna-0.2/extensions/dna-sequencer-zip/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-zip/pom.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/extensions/dna-sequencer-zip/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,54 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <parent>
-    <artifactId>dna</artifactId>
-    <groupId>org.jboss.dna</groupId>
-    <version>0.2-SNAPSHOT</version>
-    <relativePath>../..</relativePath>
-  </parent>
-  <!-- The groupId and version values are inherited from parent -->
-  <artifactId>dna-sequencer-zip</artifactId>
-  <packaging>jar</packaging>
-  <name>JBoss DNA ZIP Sequencer</name>
-  <description>JBoss DNA Sequencer that processes zip files and extracts content to repository</description>
-  <url>http://labs.jboss.org/dna</url>
-  <dependencies>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-common</artifactId>
-      <version>${pom.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.jboss.dna</groupId>
-      <artifactId>dna-graph</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit-dep</artifactId>
-      <version>4.4</version>
-    </dependency>
-    <!-- 
-    Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
-    -->
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-</project>
\ No newline at end of file

Copied: tags/dna-0.2/extensions/dna-sequencer-zip/pom.xml (from rev 554, trunk/extensions/dna-sequencer-zip/pom.xml)
===================================================================
--- tags/dna-0.2/extensions/dna-sequencer-zip/pom.xml	                        (rev 0)
+++ tags/dna-0.2/extensions/dna-sequencer-zip/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,54 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <artifactId>dna</artifactId>
+    <groupId>org.jboss.dna</groupId>
+    <version>0.2</version>
+    <relativePath>../..</relativePath>
+  </parent>
+  <!-- The groupId and version values are inherited from parent -->
+  <artifactId>dna-sequencer-zip</artifactId>
+  <packaging>jar</packaging>
+  <name>JBoss DNA ZIP Sequencer</name>
+  <description>JBoss DNA Sequencer that processes zip files and extracts content to repository</description>
+  <url>http://labs.jboss.org/dna</url>
+  <dependencies>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-common</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-common</artifactId>
+      <version>${pom.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.dna</groupId>
+      <artifactId>dna-graph</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit-dep</artifactId>
+      <version>4.4</version>
+    </dependency>
+    <!-- 
+    Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) 
+    -->
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-log4j12</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+</project>
\ No newline at end of file

Deleted: tags/dna-0.2/pom.xml
===================================================================
--- trunk/pom.xml	2008-09-26 16:10:20 UTC (rev 547)
+++ tags/dna-0.2/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -1,581 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<groupId>org.jboss.dna</groupId>
-	<artifactId>dna</artifactId>
-	<version>0.2-SNAPSHOT</version>
-	<packaging>pom</packaging>
-	<name>JBoss DNA</name>
-	<url>http://www.jboss.org/dna</url>
-	<inceptionYear>2008</inceptionYear>
-	<description>
-		JBoss DNA provides tools for working with JCR repositories.
-	</description>
-	<scm>
-		<connection>scm:svn:https://svn.jboss.org/repos/dna/trunk</connection>
-	</scm>
-	<licenses>
-		<license>
-			<name>GNU Lesser General Public License</name>
-			<url>http://www.gnu.org/licenses/lgpl.html</url>
-			<distribution>repo</distribution>
-			<comments>A business-friendly OSS license</comments>
-		</license>
-	</licenses>
-	<organization>
-		<name>JBoss, a division of Red Hat</name>
-		<url>http://www.jboss.org</url>
-	</organization>
-	<developers>
-		<developer>
-			<name>Randall Hauch</name>
-			<id>randall</id>
-			<email>rhauch at redhat.com</email>
-			<organization>JBoss, a division of Red Hat</organization>
-			<roles>
-				<role>Project Lead</role>
-				<role>Developer</role>
-			</roles>
-			<timezone>-6</timezone>
-		</developer>
-		<developer>
-			<name>John Verhaeg</name>
-			<id>johnny</id>
-			<email>jverhaeg at redhat.com</email>
-			<organization>JBoss, a division of Red Hat</organization>
-			<roles>
-				<role>Developer</role>
-			</roles>
-			<timezone>-6</timezone>
-		</developer>
-		<developer>
-			<name>Dan Florian</name>
-			<id>dan</id>
-			<email>dflorian at redhat.com</email>
-			<organization>JBoss, a division of Red Hat</organization>
-			<roles>
-				<role>Developer</role>
-			</roles>
-			<timezone>-6</timezone>
-		</developer>
-		<developer>
-			<name>Stefano Maestri</name>
-			<id>stefano</id>
-			<email>stefano.maestri at javalinux.it</email>
-			<roles>
-				<role>Developer</role>
-			</roles>
-			<timezone>+1</timezone>
-		</developer>
-		<developer>
-			<name>Serge Pagop</name>
-			<id>spagop</id>
-			<email>Serge.Pagop at innoq.com</email>
-			<roles>
-				<role>Developer</role>
-			</roles>
-			<timezone>+1</timezone>
-		</developer>
-		<developer>
-			<name>Michael Trezzi</name>
-			<id>mathwizard</id>
-			<email>michael at mathwizard.org</email>
-			<roles>
-				<role>Developer</role>
-			</roles>
-			<timezone>+1</timezone>
-		</developer>
-		<developer>
-			<name>Alexandre Porcelli</name>
-			<id>porcelli</id>
-			<email>porcelli at devexp.com.br</email>
-			<roles>
-				<role>Developer</role>
-			</roles>
-			<timezone>-3</timezone>
-		</developer>
-		<developer>
-			<name>Ben Abernathy</name>
-			<id>babernat</id>
-			<email>ben.abernathy at gmail.com</email>
-			<roles>
-				<role>Developer</role>
-			</roles>
-			<timezone>+2</timezone>
-		</developer>
-	</developers>
-	<contributors>
-		<contributor>
-			<name>Greg Haber</name>
-			<organization>JBoss, a division of Red Hat</organization>
-			<timezone>-5</timezone>
-		</contributor>
-	</contributors>
-	<modules>
-		<module>dna-common</module>
-		<module>dna-graph</module>
-		<module>dna-repository</module>
-		<module>dna-jcr</module>
-		<module>extensions/dna-classloader-maven</module>
-		<module>extensions/dna-sequencer-images</module>
-		<module>extensions/dna-sequencer-mp3</module>
-		<!--module>extensions/dna-sequencer-esbMessage</module-->
-		<module>extensions/dna-sequencer-cnd</module>
-		<module>extensions/dna-sequencer-java</module>
-		<module>extensions/dna-sequencer-msoffice</module>
-		<module>extensions/dna-sequencer-zip</module>
-		<module>extensions/dna-connector-federation</module>
-		<module>extensions/dna-connector-inmemory</module>
-		<module>extensions/dna-connector-jbosscache</module>
-		<module>extensions/dna-mimetype-detector-aperture</module>
-		<module>dna-integration-tests</module>
-		<module>docs/examples/gettingstarted</module>
-	</modules>
-
-	<profiles>
-		<profile>
-			<id>release</id>
-			<modules>
-				<module>docs</module>
-		        <module>docs/examples/gettingstarted</module>
-			</modules>
-		</profile>
-		<profile>
-		    <!-- 
-			This profile is activated when the "generate.docs" property is set,
-			as in "mvn ... -Dgenerate.docs=true ..."
-		    -->
-	      <id>docs</id>
-	      <activation>
-	        <property>
-	          <name>generate.docs</name>
-	        </property>
-	      </activation>
-	      <modules>
-	        <module>docs</module>
-	      </modules>
-		  <reporting>
-		    <plugins>
-		      <plugin>
-		        <groupId>org.apache.maven.plugins</groupId>
-		        <artifactId>maven-javadoc-plugin</artifactId>
-		        <configuration>
-		          <aggregate>true</aggregate>
-				  <show>public</show>
-				  <title>JBoss DNA ${project.version}</title>
-		        </configuration>
-		      </plugin>
-		    </plugins>
-		  </reporting>
-	    </profile>
-		<profile>
-		  <!-- 
-          This profile is activated manually, as in "mvn ... -P assembly ..."
-		  -->
-	      <id>assembly</id>
-	      <build>
-	        <plugins>
-	          <plugin>
-	            <artifactId>maven-assembly-plugin</artifactId>
-	            <inherited>false</inherited>
-	            <executions>
-	              <execution>
-	                <id>make-assembly</id>
-	                <phase>install</phase>
-	                <goals>
-	                  <goal>assembly</goal>
-	                </goals>
-	              </execution>
-	            </executions>
-	            <configuration>
-								<finalName>
-									jboss-dna-${project.version}
-								</finalName>
-			          <descriptors>
-									<descriptor>
-										build/assembly/examples.xml
-									</descriptor>
-									<descriptor>
-										build/assembly/javadoc.xml
-									</descriptor>
-									<descriptor>
-										build/assembly/dist.xml
-									</descriptor>
-									<descriptor>
-										build/assembly/src.xml
-									</descriptor>
-									<descriptor>
-										build/assembly/all.xml
-									</descriptor>
-								</descriptors>
-	            </configuration>
-	          </plugin>
-	        </plugins>
-	      </build>
-	      <modules>
-	        <module>docs</module>
-	        <module>docs/examples/gettingstarted</module>
-	      </modules>
-			  <reporting>
-			    <plugins>
-			      <plugin>
-			        <groupId>org.apache.maven.plugins</groupId>
-			        <artifactId>maven-javadoc-plugin</artifactId>
-			        <configuration>
-			          <aggregate>true</aggregate>
-							  <show>public</show>
-							  <title>JBoss DNA ${project.version}</title>
-			        </configuration>
-			      </plugin>
-			    </plugins>
-			  </reporting>
-	    </profile>
-	</profiles>
-	<build>
-		<!-- This section defines the default plugin settings inherited by child projects. -->
-		<pluginManagement>
-			<plugins>
-				<!-- Fixes how test resources of a project can be used in projects dependent on it  -->
-				<plugin>
-					<groupId>org.apache.maven.plugins</groupId>
-					<artifactId>maven-jar-plugin</artifactId>
-					<version>2.2</version>
-				</plugin>
-				<plugin>
-					<groupId>org.apache.maven.plugins</groupId>
-					<artifactId>maven-javadoc-plugin</artifactId>
-					<version>2.2</version>
-					<configuration>
-						<aggregate>true</aggregate>
-            <doclet>net.gleamynode.apiviz.APIviz</doclet>
-	          <docletArtifact>
-	            <groupId>net.gleamynode.apiviz</groupId>
-	            <artifactId>apiviz</artifactId>
-	            <version>1.1.1</version>
-	          </docletArtifact>
-	          <additionalparam>
-	            -charset UTF-8
-	            -docencoding UTF-8
-	            -version
-	            -author
-	            -breakiterator
-	            -linksource
-	            -sourcetab 4
-	            -windowtitle "${project.name} ${project.version} API Reference"
-	            -doctitle "${project.name} ${project.version} API Reference"
-	            -bottom "Copyright &#169; ${project.inceptionYear}-Present JBoss a division of Red Hat. All Rights Reserved."
-	            -link http://java.sun.com/javase/6/docs/api/
-	          </additionalparam>
-	          <encoding>UTF-8</encoding>
-					</configuration>
-				</plugin>
-			</plugins>
-		</pluginManagement>
-		<plugins>
-			<!-- Specify the compiler options and settings -->
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-compiler-plugin</artifactId>
-               <version>2.0.2</version>
-				<configuration>
-					<source>1.5</source>
-					<target>1.5</target>
-					<showDeprecation>false</showDeprecation>
-					<showWarnings>false</showWarnings>
-				</configuration>
-			</plugin>
-			<!-- Produce source jars during the 'verify' phase -->
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-source-plugin</artifactId>
-				<executions>
-					<execution>
-						<id>attach-sources</id>
-						<phase>verify</phase>
-						<goals>
-							<goal>jar</goal>
-							<goal>test-jar</goal>
-						</goals>
-					</execution>
-				</executions>
-			</plugin>
-			<plugin>
-				<artifactId>maven-surefire-plugin</artifactId>
-				<configuration>
-					<includes>
-						<include>**/*TestCase.java</include>
-						<include>**/*Test.java</include>
-					</includes>
-					<!--excludes>
-						<exclude>**/Abstract*TestCase.java</exclude>
-						<exclude>**/Abstract*Test.java</exclude>
-					</excludes-->
-				</configuration>
-			</plugin>
-			<!-- 
-           Build a test-jar for each project, so that src/test/* resources and classes can be used
-           in other projects.  Also customize how the jar files are assembled.
-           -->
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-jar-plugin</artifactId>
-				<executions>
-					<execution>
-						<goals>
-							<goal>test-jar</goal>
-						</goals>
-					</execution>
-				</executions>
-				<configuration>
-					<archive>
-						<manifest>
-							<addDefaultSpecificationEntries>
-								true
-							</addDefaultSpecificationEntries>
-							<addDefaultImplementationEntries>
-								true
-							</addDefaultImplementationEntries>
-						</manifest>
-						<manifestEntries>
-							<Implementation-URL>
-								${pom.url}
-							</Implementation-URL>
-						</manifestEntries>
-					</archive>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
-	<!--
-	This section defines the default dependency settings inherited by child projects.
-	Note that this section does not add dependencies, but rather provide default settings.
-	-->
-	<dependencyManagement>
-		<dependencies>
-			<!-- DNA subprojects -->
-			<dependency>
-				<groupId>org.jboss.dna</groupId>
-				<artifactId>dna-common</artifactId>
-				<version>${pom.version}</version>
-			</dependency>
-			<dependency>
-				<groupId>org.jboss.dna</groupId>
-				<artifactId>dna-classloader-maven</artifactId>
-				<version>${pom.version}</version>
-			</dependency>
-			<dependency>
-				<groupId>org.jboss.dna</groupId>
-				<artifactId>dna-graph</artifactId>
-				<version>${pom.version}</version>
-			</dependency>
-			<dependency>
-				<groupId>org.jboss.dna</groupId>
-				<artifactId>dna-repository</artifactId>
-				<version>${pom.version}</version>
-			</dependency>
-			<dependency>
-				<groupId>org.jboss.dna</groupId>
-				<artifactId>dna-jcr</artifactId>
-				<version>${pom.version}</version>
-			</dependency>
-			<dependency>
-				<groupId>org.jboss.dna</groupId>
-				<artifactId>dna-connector-federation</artifactId>
-				<version>${pom.version}</version>
-			</dependency>
-			<dependency>
-				<groupId>org.jboss.dna</groupId>
-				<artifactId>dna-connector-jbosscache</artifactId>
-				<version>${pom.version}</version>
-			</dependency>
-			<dependency>
-				<groupId>org.jboss.dna</groupId>
-				<artifactId>dna-connector-inmemory</artifactId>
-				<version>${pom.version}</version>
-			</dependency>
-			<dependency>
-				<groupId>org.jboss.dna</groupId>
-				<artifactId>dna-mimetype-detector-aperture</artifactId>
-				<version>${pom.version}</version>
-			</dependency>
-			<!-- 
-		    Time and Date
-		    -->
-			<dependency>
-				<groupId>joda-time</groupId>
-				<artifactId>joda-time</artifactId>
-				<version>1.4</version>
-			</dependency>
-			<!-- 
-		    Rules
-		    -->
-			<dependency>
-				<groupId>jsr94</groupId>
-				<artifactId>jsr94</artifactId>
-				<version>1.1</version>
-			</dependency>
-			<dependency>
-				<groupId>org.drools</groupId>
-				<artifactId>drools-jsr94</artifactId>
-				<version>4.0.7</version>
-				<scope>test</scope>
-			</dependency>
-			<dependency>
-				<groupId>org.drools</groupId>
-				<artifactId>drools-compiler</artifactId>
-				<version>4.0.7</version>
-				<scope>test</scope>
-			</dependency>
-			<!-- Testing (note the scope) -->
-			<dependency>
-				<groupId>junit</groupId>
-				<artifactId>junit</artifactId>
-				<version>4.4</version>
-				<scope>test</scope>
-			</dependency>
-			<dependency>
-				<groupId>org.hamcrest</groupId>
-				<artifactId>hamcrest-library</artifactId>
-				<version>1.1</version>
-				<scope>test</scope>
-			</dependency>
-			<dependency>
-				<groupId>org.mockito</groupId>
-				<artifactId>mockito-all</artifactId>
-				<version>1.5</version>
-				<scope>test</scope>
-			</dependency>
-			<!-- Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) -->
-			<dependency>
-				<groupId>org.slf4j</groupId>
-				<artifactId>slf4j-api</artifactId>
-				<version>1.4.3</version>
-				<scope>compile</scope>
-			</dependency>
-			<dependency>
-				<groupId>org.slf4j</groupId>
-				<artifactId>slf4j-log4j12</artifactId>
-				<version>1.4.3</version>
-				<scope>test</scope>
-			</dependency>
-			<dependency>
-				<groupId>log4j</groupId>
-				<artifactId>log4j</artifactId>
-				<version>1.2.14</version>
-				<scope>test</scope>
-			</dependency>
-			<!-- Java Concurrency in Practice annotations -->
-			<dependency>
-				<groupId>net.jcip</groupId>
-				<artifactId>jcip-annotations</artifactId>
-				<version>1.0</version>
-				<scope>compile</scope>
-			</dependency>
-			<!-- Java Content Repository API -->
-			<dependency>
-				<groupId>javax.jcr</groupId>
-				<artifactId>jcr</artifactId>
-				<version>1.0.1</version>
-				<scope>compile</scope>
-			</dependency>
-			<!-- Apache Jackrabbit (JCR Implementation) -->
-			<dependency>
-				<groupId>org.apache.jackrabbit</groupId>
-				<artifactId>jackrabbit-api</artifactId>
-				<version>1.4</version>
-				<scope>test</scope>
-				<!-- Exclude these since they are included in JDK 1.5 -->
-				<exclusions>
-					<exclusion>
-						<groupId>xml-apis</groupId>
-						<artifactId>xml-apis</artifactId>
-					</exclusion>
-					<exclusion>
-						<groupId>xerces</groupId>
-						<artifactId>xercesImpl</artifactId>
-					</exclusion>
-				</exclusions>
-			</dependency>
-			<dependency>
-				<groupId>org.apache.jackrabbit</groupId>
-				<artifactId>jackrabbit-core</artifactId>
-				<version>1.4.5</version>
-				<scope>test</scope>
-				<!-- Exclude these since they are included in JDK 1.5 -->
-				<exclusions>
-					<exclusion>
-						<groupId>xml-apis</groupId>
-						<artifactId>xml-apis</artifactId>
-					</exclusion>
-					<exclusion>
-						<groupId>xerces</groupId>
-						<artifactId>xercesImpl</artifactId>
-					</exclusion>
-				</exclusions>
-			</dependency>
-		    <!-- 
-		      Apache JCR API unit tests (for any JCR implementation), which is a subset of the official TCK
-		    -->
-		    <dependency>
-				<groupId>org.apache.jackrabbit</groupId>
-				<artifactId>jackrabbit-jcr-tests</artifactId>
-				<version>1.4</version>
-				<scope>test</scope>
-		    </dependency>
-			<!-- Databases and JDBC Drivers -->
-			<dependency>
-				<groupId>mysql</groupId>
-				<artifactId>mysql-connector-java</artifactId>
-				<version>5.0.7</version>
-				<scope>test</scope>
-			</dependency>
-			<dependency>
-				<groupId>org.apache.derby</groupId>
-				<artifactId>derby</artifactId>
-				<version>10.2.1.6</version>
-				<scope>test</scope>
-			</dependency>
-			
-			
-		</dependencies>
-	</dependencyManagement>
-	<reporting>
-		<plugins>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-surefire-report-plugin</artifactId>
-			</plugin>
-	    </plugins>
-	</reporting>
-	
-	<repositories>
-	<repository>
-      <id>apiviz.release</id>
-      <name>APIviz releases</name>
-      <url>http://apiviz.googlecode.com/svn/site/repo/mvn/release</url>
-      <releases>
-        <enabled>true</enabled>
-      </releases>
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-    </repository>
-	
-	
-		<repository>
-			<id>jboss</id>
-			<url>http://repository.jboss.com/maven2</url>
-		</repository>
-		<repository>
-			<id>jboss-snapshot</id>
-			<url>http://snapshots.jboss.org/maven2</url>
-		</repository>
-	</repositories>
-	<distributionManagement>
-		<repository>
-			<!-- Copy the distribution jar file to a local checkout of the maven repository 
- 			  -  This variable can be set in $MAVEN_HOME/conf/settings.xml -->
-			<id>repository.jboss.org</id>
-			<url>file://${jboss.repository.root}</url>
-		</repository>
-	</distributionManagement>
-</project>

Copied: tags/dna-0.2/pom.xml (from rev 554, trunk/pom.xml)
===================================================================
--- tags/dna-0.2/pom.xml	                        (rev 0)
+++ tags/dna-0.2/pom.xml	2008-09-26 21:12:43 UTC (rev 555)
@@ -0,0 +1,581 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>org.jboss.dna</groupId>
+	<artifactId>dna</artifactId>
+	<version>0.2</version>
+	<packaging>pom</packaging>
+	<name>JBoss DNA</name>
+	<url>http://www.jboss.org/dna</url>
+	<inceptionYear>2008</inceptionYear>
+	<description>
+		JBoss DNA provides tools for working with JCR repositories.
+	</description>
+	<scm>
+		<connection>scm:svn:https://svn.jboss.org/repos/dna/tags/dna-0.2</connection>
+	</scm>
+	<licenses>
+		<license>
+			<name>GNU Lesser General Public License</name>
+			<url>http://www.gnu.org/licenses/lgpl.html</url>
+			<distribution>repo</distribution>
+			<comments>A business-friendly OSS license</comments>
+		</license>
+	</licenses>
+	<organization>
+		<name>JBoss, a division of Red Hat</name>
+		<url>http://www.jboss.org</url>
+	</organization>
+	<developers>
+		<developer>
+			<name>Randall Hauch</name>
+			<id>randall</id>
+			<email>rhauch at redhat.com</email>
+			<organization>JBoss, a division of Red Hat</organization>
+			<roles>
+				<role>Project Lead</role>
+				<role>Developer</role>
+			</roles>
+			<timezone>-6</timezone>
+		</developer>
+		<developer>
+			<name>John Verhaeg</name>
+			<id>johnny</id>
+			<email>jverhaeg at redhat.com</email>
+			<organization>JBoss, a division of Red Hat</organization>
+			<roles>
+				<role>Developer</role>
+			</roles>
+			<timezone>-6</timezone>
+		</developer>
+		<developer>
+			<name>Dan Florian</name>
+			<id>dan</id>
+			<email>dflorian at redhat.com</email>
+			<organization>JBoss, a division of Red Hat</organization>
+			<roles>
+				<role>Developer</role>
+			</roles>
+			<timezone>-6</timezone>
+		</developer>
+		<developer>
+			<name>Stefano Maestri</name>
+			<id>stefano</id>
+			<email>stefano.maestri at javalinux.it</email>
+			<roles>
+				<role>Developer</role>
+			</roles>
+			<timezone>+1</timezone>
+		</developer>
+		<developer>
+			<name>Serge Pagop</name>
+			<id>spagop</id>
+			<email>Serge.Pagop at innoq.com</email>
+			<roles>
+				<role>Developer</role>
+			</roles>
+			<timezone>+1</timezone>
+		</developer>
+		<developer>
+			<name>Michael Trezzi</name>
+			<id>mathwizard</id>
+			<email>michael at mathwizard.org</email>
+			<roles>
+				<role>Developer</role>
+			</roles>
+			<timezone>+1</timezone>
+		</developer>
+		<developer>
+			<name>Alexandre Porcelli</name>
+			<id>porcelli</id>
+			<email>porcelli at devexp.com.br</email>
+			<roles>
+				<role>Developer</role>
+			</roles>
+			<timezone>-3</timezone>
+		</developer>
+		<developer>
+			<name>Ben Abernathy</name>
+			<id>babernat</id>
+			<email>ben.abernathy at gmail.com</email>
+			<roles>
+				<role>Developer</role>
+			</roles>
+			<timezone>+2</timezone>
+		</developer>
+	</developers>
+	<contributors>
+		<contributor>
+			<name>Greg Haber</name>
+			<organization>JBoss, a division of Red Hat</organization>
+			<timezone>-5</timezone>
+		</contributor>
+	</contributors>
+	<modules>
+		<module>dna-common</module>
+		<module>dna-graph</module>
+		<module>dna-repository</module>
+		<module>dna-jcr</module>
+		<module>extensions/dna-classloader-maven</module>
+		<module>extensions/dna-sequencer-images</module>
+		<module>extensions/dna-sequencer-mp3</module>
+		<!--module>extensions/dna-sequencer-esbMessage</module-->
+		<module>extensions/dna-sequencer-cnd</module>
+		<module>extensions/dna-sequencer-java</module>
+		<module>extensions/dna-sequencer-msoffice</module>
+		<module>extensions/dna-sequencer-zip</module>
+		<module>extensions/dna-connector-federation</module>
+		<module>extensions/dna-connector-inmemory</module>
+		<module>extensions/dna-connector-jbosscache</module>
+		<module>extensions/dna-mimetype-detector-aperture</module>
+		<module>dna-integration-tests</module>
+		<module>docs/examples/gettingstarted</module>
+	</modules>
+
+	<profiles>
+		<profile>
+			<id>release</id>
+			<modules>
+				<module>docs</module>
+		        <module>docs/examples/gettingstarted</module>
+			</modules>
+		</profile>
+		<profile>
+		    <!-- 
+			This profile is activated when the "generate.docs" property is set,
+			as in "mvn ... -Dgenerate.docs=true ..."
+		    -->
+	      <id>docs</id>
+	      <activation>
+	        <property>
+	          <name>generate.docs</name>
+	        </property>
+	      </activation>
+	      <modules>
+	        <module>docs</module>
+	      </modules>
+		  <reporting>
+		    <plugins>
+		      <plugin>
+		        <groupId>org.apache.maven.plugins</groupId>
+		        <artifactId>maven-javadoc-plugin</artifactId>
+		        <configuration>
+		          <aggregate>true</aggregate>
+				  <show>public</show>
+				  <title>JBoss DNA ${project.version}</title>
+		        </configuration>
+		      </plugin>
+		    </plugins>
+		  </reporting>
+	    </profile>
+		<profile>
+		  <!-- 
+          This profile is activated manually, as in "mvn ... -P assembly ..."
+		  -->
+	      <id>assembly</id>
+	      <build>
+	        <plugins>
+	          <plugin>
+	            <artifactId>maven-assembly-plugin</artifactId>
+	            <inherited>false</inherited>
+	            <executions>
+	              <execution>
+	                <id>make-assembly</id>
+	                <phase>install</phase>
+	                <goals>
+	                  <goal>assembly</goal>
+	                </goals>
+	              </execution>
+	            </executions>
+	            <configuration>
+								<finalName>
+									jboss-dna-${project.version}
+								</finalName>
+			          <descriptors>
+									<descriptor>
+										build/assembly/examples.xml
+									</descriptor>
+									<descriptor>
+										build/assembly/javadoc.xml
+									</descriptor>
+									<descriptor>
+										build/assembly/dist.xml
+									</descriptor>
+									<descriptor>
+										build/assembly/src.xml
+									</descriptor>
+									<descriptor>
+										build/assembly/all.xml
+									</descriptor>
+								</descriptors>
+	            </configuration>
+	          </plugin>
+	        </plugins>
+	      </build>
+	      <modules>
+	        <module>docs</module>
+	        <module>docs/examples/gettingstarted</module>
+	      </modules>
+			  <reporting>
+			    <plugins>
+			      <plugin>
+			        <groupId>org.apache.maven.plugins</groupId>
+			        <artifactId>maven-javadoc-plugin</artifactId>
+			        <configuration>
+			          <aggregate>true</aggregate>
+							  <show>public</show>
+							  <title>JBoss DNA ${project.version}</title>
+			        </configuration>
+			      </plugin>
+			    </plugins>
+			  </reporting>
+	    </profile>
+	</profiles>
+	<build>
+		<!-- This section defines the default plugin settings inherited by child projects. -->
+		<pluginManagement>
+			<plugins>
+				<!-- Fixes how test resources of a project can be used in projects dependent on it  -->
+				<plugin>
+					<groupId>org.apache.maven.plugins</groupId>
+					<artifactId>maven-jar-plugin</artifactId>
+					<version>2.2</version>
+				</plugin>
+				<plugin>
+					<groupId>org.apache.maven.plugins</groupId>
+					<artifactId>maven-javadoc-plugin</artifactId>
+					<version>2.2</version>
+					<configuration>
+						<aggregate>true</aggregate>
+            <doclet>net.gleamynode.apiviz.APIviz</doclet>
+	          <docletArtifact>
+	            <groupId>net.gleamynode.apiviz</groupId>
+	            <artifactId>apiviz</artifactId>
+	            <version>1.1.1</version>
+	          </docletArtifact>
+	          <additionalparam>
+	            -charset UTF-8
+	            -docencoding UTF-8
+	            -version
+	            -author
+	            -breakiterator
+	            -linksource
+	            -sourcetab 4
+	            -windowtitle "${project.name} ${project.version} API Reference"
+	            -doctitle "${project.name} ${project.version} API Reference"
+	            -bottom "Copyright © ${project.inceptionYear}-Present JBoss a division of Red Hat. All Rights Reserved."
+	            -link http://java.sun.com/javase/6/docs/api/
+	          </additionalparam>
+	          <encoding>UTF-8</encoding>
+					</configuration>
+				</plugin>
+			</plugins>
+		</pluginManagement>
+		<plugins>
+			<!-- Specify the compiler options and settings -->
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+               <version>2.0.2</version>
+				<configuration>
+					<source>1.5</source>
+					<target>1.5</target>
+					<showDeprecation>false</showDeprecation>
+					<showWarnings>false</showWarnings>
+				</configuration>
+			</plugin>
+			<!-- Produce source jars during the 'verify' phase -->
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-source-plugin</artifactId>
+				<executions>
+					<execution>
+						<id>attach-sources</id>
+						<phase>verify</phase>
+						<goals>
+							<goal>jar</goal>
+							<goal>test-jar</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<artifactId>maven-surefire-plugin</artifactId>
+				<configuration>
+					<includes>
+						<include>**/*TestCase.java</include>
+						<include>**/*Test.java</include>
+					</includes>
+					<!--excludes>
+						<exclude>**/Abstract*TestCase.java</exclude>
+						<exclude>**/Abstract*Test.java</exclude>
+					</excludes-->
+				</configuration>
+			</plugin>
+			<!-- 
+           Build a test-jar for each project, so that src/test/* resources and classes can be used
+           in other projects.  Also customize how the jar files are assembled.
+           -->
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-jar-plugin</artifactId>
+				<executions>
+					<execution>
+						<goals>
+							<goal>test-jar</goal>
+						</goals>
+					</execution>
+				</executions>
+				<configuration>
+					<archive>
+						<manifest>
+							<addDefaultSpecificationEntries>
+								true
+							</addDefaultSpecificationEntries>
+							<addDefaultImplementationEntries>
+								true
+							</addDefaultImplementationEntries>
+						</manifest>
+						<manifestEntries>
+							<Implementation-URL>
+								${pom.url}
+							</Implementation-URL>
+						</manifestEntries>
+					</archive>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+	<!--
+	This section defines the default dependency settings inherited by child projects.
+	Note that this section does not add dependencies, but rather provide default settings.
+	-->
+	<dependencyManagement>
+		<dependencies>
+			<!-- DNA subprojects -->
+			<dependency>
+				<groupId>org.jboss.dna</groupId>
+				<artifactId>dna-common</artifactId>
+				<version>${pom.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.jboss.dna</groupId>
+				<artifactId>dna-classloader-maven</artifactId>
+				<version>${pom.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.jboss.dna</groupId>
+				<artifactId>dna-graph</artifactId>
+				<version>${pom.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.jboss.dna</groupId>
+				<artifactId>dna-repository</artifactId>
+				<version>${pom.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.jboss.dna</groupId>
+				<artifactId>dna-jcr</artifactId>
+				<version>${pom.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.jboss.dna</groupId>
+				<artifactId>dna-connector-federation</artifactId>
+				<version>${pom.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.jboss.dna</groupId>
+				<artifactId>dna-connector-jbosscache</artifactId>
+				<version>${pom.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.jboss.dna</groupId>
+				<artifactId>dna-connector-inmemory</artifactId>
+				<version>${pom.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.jboss.dna</groupId>
+				<artifactId>dna-mimetype-detector-aperture</artifactId>
+				<version>${pom.version}</version>
+			</dependency>
+			<!-- 
+		    Time and Date
+		    -->
+			<dependency>
+				<groupId>joda-time</groupId>
+				<artifactId>joda-time</artifactId>
+				<version>1.4</version>
+			</dependency>
+			<!-- 
+		    Rules
+		    -->
+			<dependency>
+				<groupId>jsr94</groupId>
+				<artifactId>jsr94</artifactId>
+				<version>1.1</version>
+			</dependency>
+			<dependency>
+				<groupId>org.drools</groupId>
+				<artifactId>drools-jsr94</artifactId>
+				<version>4.0.7</version>
+				<scope>test</scope>
+			</dependency>
+			<dependency>
+				<groupId>org.drools</groupId>
+				<artifactId>drools-compiler</artifactId>
+				<version>4.0.7</version>
+				<scope>test</scope>
+			</dependency>
+			<!-- Testing (note the scope) -->
+			<dependency>
+				<groupId>junit</groupId>
+				<artifactId>junit</artifactId>
+				<version>4.4</version>
+				<scope>test</scope>
+			</dependency>
+			<dependency>
+				<groupId>org.hamcrest</groupId>
+				<artifactId>hamcrest-library</artifactId>
+				<version>1.1</version>
+				<scope>test</scope>
+			</dependency>
+			<dependency>
+				<groupId>org.mockito</groupId>
+				<artifactId>mockito-all</artifactId>
+				<version>1.5</version>
+				<scope>test</scope>
+			</dependency>
+			<!-- Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for testing) -->
+			<dependency>
+				<groupId>org.slf4j</groupId>
+				<artifactId>slf4j-api</artifactId>
+				<version>1.4.3</version>
+				<scope>compile</scope>
+			</dependency>
+			<dependency>
+				<groupId>org.slf4j</groupId>
+				<artifactId>slf4j-log4j12</artifactId>
+				<version>1.4.3</version>
+				<scope>test</scope>
+			</dependency>
+			<dependency>
+				<groupId>log4j</groupId>
+				<artifactId>log4j</artifactId>
+				<version>1.2.14</version>
+				<scope>test</scope>
+			</dependency>
+			<!-- Java Concurrency in Practice annotations -->
+			<dependency>
+				<groupId>net.jcip</groupId>
+				<artifactId>jcip-annotations</artifactId>
+				<version>1.0</version>
+				<scope>compile</scope>
+			</dependency>
+			<!-- Java Content Repository API -->
+			<dependency>
+				<groupId>javax.jcr</groupId>
+				<artifactId>jcr</artifactId>
+				<version>1.0.1</version>
+				<scope>compile</scope>
+			</dependency>
+			<!-- Apache Jackrabbit (JCR Implementation) -->
+			<dependency>
+				<groupId>org.apache.jackrabbit</groupId>
+				<artifactId>jackrabbit-api</artifactId>
+				<version>1.4</version>
+				<scope>test</scope>
+				<!-- Exclude these since they are included in JDK 1.5 -->
+				<exclusions>
+					<exclusion>
+						<groupId>xml-apis</groupId>
+						<artifactId>xml-apis</artifactId>
+					</exclusion>
+					<exclusion>
+						<groupId>xerces</groupId>
+						<artifactId>xercesImpl</artifactId>
+					</exclusion>
+				</exclusions>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.jackrabbit</groupId>
+				<artifactId>jackrabbit-core</artifactId>
+				<version>1.4.5</version>
+				<scope>test</scope>
+				<!-- Exclude these since they are included in JDK 1.5 -->
+				<exclusions>
+					<exclusion>
+						<groupId>xml-apis</groupId>
+						<artifactId>xml-apis</artifactId>
+					</exclusion>
+					<exclusion>
+						<groupId>xerces</groupId>
+						<artifactId>xercesImpl</artifactId>
+					</exclusion>
+				</exclusions>
+			</dependency>
+		    <!-- 
+		      Apache JCR API unit tests (for any JCR implementation), which is a subset of the official TCK
+		    -->
+		    <dependency>
+				<groupId>org.apache.jackrabbit</groupId>
+				<artifactId>jackrabbit-jcr-tests</artifactId>
+				<version>1.4</version>
+				<scope>test</scope>
+		    </dependency>
+			<!-- Databases and JDBC Drivers -->
+			<dependency>
+				<groupId>mysql</groupId>
+				<artifactId>mysql-connector-java</artifactId>
+				<version>5.0.7</version>
+				<scope>test</scope>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.derby</groupId>
+				<artifactId>derby</artifactId>
+				<version>10.2.1.6</version>
+				<scope>test</scope>
+			</dependency>
+			
+			
+		</dependencies>
+	</dependencyManagement>
+	<reporting>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-surefire-report-plugin</artifactId>
+			</plugin>
+	    </plugins>
+	</reporting>
+	
+	<repositories>
+	<repository>
+      <id>apiviz.release</id>
+      <name>APIviz releases</name>
+      <url>http://apiviz.googlecode.com/svn/site/repo/mvn/release</url>
+      <releases>
+        <enabled>true</enabled>
+      </releases>
+      <snapshots>
+        <enabled>false</enabled>
+      </snapshots>
+    </repository>
+	
+	
+		<repository>
+			<id>jboss</id>
+			<url>http://repository.jboss.com/maven2</url>
+		</repository>
+		<repository>
+			<id>jboss-snapshot</id>
+			<url>http://snapshots.jboss.org/maven2</url>
+		</repository>
+	</repositories>
+	<distributionManagement>
+		<repository>
+			<!-- Copy the distribution jar file to a local checkout of the maven repository 
+ 			  -  This variable can be set in $MAVEN_HOME/conf/settings.xml -->
+			<id>repository.jboss.org</id>
+			<url>file://${jboss.repository.root}</url>
+		</repository>
+	</distributionManagement>
+</project>
\ No newline at end of file




More information about the dna-commits mailing list