DNA SVN: r1227 - in trunk: dna-integration-tests and 5 other directories.
by dna-commits@lists.jboss.org
Author: rhauch
Date: 2009-09-16 16:56:22 -0400 (Wed, 16 Sep 2009)
New Revision: 1227
Added:
trunk/extensions/dna-connector-store-jpa/src/test/java/org/jboss/dna/connector/store/jpa/TestEnvironment.java
trunk/extensions/dna-connector-store-jpa/src/test/resources/database.properties
Modified:
trunk/dna-integration-tests/pom.xml
trunk/dna-integration-tests/src/test/resources/tck/jpa/configRepository.xml
trunk/docs/reference/src/main/docbook/en-US/content/developers/tools.xml
trunk/extensions/dna-connector-store-jpa/pom.xml
trunk/extensions/dna-connector-store-jpa/src/test/java/org/jboss/dna/connector/store/jpa/JpaConnectorCreateWorkspacesTest.java
trunk/extensions/dna-connector-store-jpa/src/test/java/org/jboss/dna/connector/store/jpa/JpaConnectorNoCreateWorkspaceTest.java
trunk/extensions/dna-connector-store-jpa/src/test/java/org/jboss/dna/connector/store/jpa/JpaConnectorReadingTest.java
trunk/extensions/dna-connector-store-jpa/src/test/java/org/jboss/dna/connector/store/jpa/JpaConnectorWritingTest.java
trunk/extensions/dna-connector-store-jpa/src/test/java/org/jboss/dna/connector/store/jpa/JpaSourceTest.java
trunk/pom.xml
Log:
DNA-521 Define infrastructure for testing with multiple DBMSes
The parent POM file was changed to define a new profiles for each database configuration, and each profile defines the dependencies and properties for the JPA Source objects used in the unit and integration tests.
For the most part, I followed Hibernate's example. Hibernate's POM is such that the database profile is specified explicitly on the Maven command (e.g., 'mvn -Poracle9i ...'), and thus is able to define a 'default' database profile that is used when no other profile is specified. However, this means that if ANY other profile is explicitly used on the command line (e.g., 'mvn -Pintegration ...'), the default database profile is not used, and in effect NO database profile is used. This causes a locking up of the build process.
jBPM's approach of using a property to refer to the database profile is actually superior in this respect, since there is a default database profile that is run when the 'database' property is not set. Thus, the database profiles and the other profiles remain orthogonal and independent. Yet another advantage to this approach is that it encourages specifying only one database profile. The cost is a bit more verbosity in the parent POM. So, 'mvn -P integration clean install' still runs the integration builds as before (using the HSQLDB database), and to use a different database simply set the 'database' property to the name of the database profile. For example, 'mvn -P integration -Ddatabase=oracle9i clean install' runs the integration tests against the 'oracle9i' database.
Note that it still is possible to specify the database via the '-P' flag, but then be sure to always include a database profile when using another profile. For example, 'mvn -P integration,oracle9i ...' does work.
The JPA unit tests were changed to read a resource file and set the JpaSource bean properties using the values in that resource file. This resource file is simply a properties file where the values are substituted by Maven during the build with the properties in the selected profile. Thus, each database profile can actually set any and all of the JpaSource bean properties (tho some integration tests explicitly override some of the property values, since they are related to the tests being run). A number of database profiles has been added, but these will be updated as we acquire database instances in the QA lab.
The integration tests that use a JPA connector all work in a similar manner, except that the integration tests already load the DNA configuration from an XML file. Here also the XML file (and the 'dna-integration-test/pom.xml' file) was changed so that Maven would substitute the properties in the database profile.
The short summary is this: simply change or add the appropriate database profile in the parent POM file, and then specify the DBMS that should be used by including the '-Ddatabase=dbprofilename' parameter on the command line. That's it.
Modified: trunk/dna-integration-tests/pom.xml
===================================================================
--- trunk/dna-integration-tests/pom.xml 2009-09-16 14:40:56 UTC (rev 1226)
+++ trunk/dna-integration-tests/pom.xml 2009-09-16 20:56:22 UTC (rev 1227)
@@ -225,6 +225,24 @@
phase
-->
<build>
+ <testResources>
+ <testResource>
+ <filtering>false</filtering>
+ <directory>src/test/resources</directory>
+ <includes>
+ <include>*</include>
+ <include>**/*</include>
+ </includes>
+ </testResource>
+ <!-- Apply the properties set in the POM to the resource files -->
+ <testResource>
+ <filtering>true</filtering>
+ <directory>src/test/resources</directory>
+ <includes>
+ <include>tck/jpa/configRepository.xml</include>
+ </includes>
+ </testResource>
+ </testResources>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
Modified: trunk/dna-integration-tests/src/test/resources/tck/jpa/configRepository.xml
===================================================================
--- trunk/dna-integration-tests/src/test/resources/tck/jpa/configRepository.xml 2009-09-16 14:40:56 UTC (rev 1226)
+++ trunk/dna-integration-tests/src/test/resources/tck/jpa/configRepository.xml 2009-09-16 20:56:22 UTC (rev 1227)
@@ -35,19 +35,19 @@
The 'JCR' repository is a JBoss Cache source with a single default workspace (though others could be created, too).
-->
<dna:source jcr:name="Store" dna:classname="org.jboss.dna.connector.store.jpa.JpaSource"
- dna:dialect="org.hibernate.dialect.HSQLDialect"
- dna:driverClassName="org.hsqldb.jdbcDriver"
- dna:username="sa"
- dna:password=""
- dna:url="jdbc:hsqldb:."
- dna:maximumConnectionsInPool="1"
- dna:referentialIntegrityEnforced="true"
- dna:largeValueSizeInBytes="150"
- dna:retryLimit="3"
- dna:compressData="true"
+ dna:dialect="${jpaSource.dialect}"
+ dna:driverClassName="${jpaSource.driverClassName}"
+ dna:username="${jpaSource.username}"
+ dna:password="${jpaSource.password}"
+ dna:url="${jpaSource.url}"
+ dna:maximumConnectionsInPool="${jpaSource.maximumConnectionsInPool}"
+ dna:referentialIntegrityEnforced="${jpaSource.referentialIntegrityEnforced}"
+ dna:largeValueSizeInBytes="${jpaSource.largeValueSizeInBytes}"
+ dna:retryLimit="${jpaSource.retryLimit}"
+ dna:compressData="${jpaSource.compressData}"
dna:predefinedWorkspaceNames="default"
- dna:showSql="false"
- dna:autoGenerateSchema="create"
+ dna:showSql="${jpaSource.showSql}"
+ dna:autoGenerateSchema="${jpaSource.autoGenerateSchema}"
dna:defaultWorkspaceName="default"/>
</dna:sources>
<!--
Modified: trunk/docs/reference/src/main/docbook/en-US/content/developers/tools.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/content/developers/tools.xml 2009-09-16 14:40:56 UTC (rev 1226)
+++ trunk/docs/reference/src/main/docbook/en-US/content/developers/tools.xml 2009-09-16 20:56:22 UTC (rev 1227)
@@ -252,36 +252,81 @@
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>
+ <sect2 id="build_commands">
+ <title>Building</title>
+ <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>Called the "quick build". Clean up all produced artifacts; compile the source code and test cases;
+ run all of the unit tests; and install the resulting JAR artifact(s)
+ into your local Maven repository (e.g, usually <code>~/.m2/repository</code>). This is often what
+ developers run prior to checking in changes, since it generally runs quickly.
+ Note that no integration tests are performed, and HSQLDB is used when a database is needed.
+ </entry>
+ </row>
+ <row>
+ <entry><code>mvn clean install -Ddatabase=dbprofile</code></entry>
+ <entry>Same as the "quick build", except that it specifies the database management system
+ that is to be used by the tests.
+ Options for "<code>dbprofile</code>" values are:
+ "<code>hsqldb</code>", "<code>h2</code>",
+ "<code>postgresql_local</code>", "<code>postgresql8</code>",
+ "<code>mysql5</code>",
+ "<code>oracle9i</code>", "<code>oracle10g</code>", "<code>oracle11g</code>",
+ "<code>db2v8</code>", "<code>db2v9</code>",
+ "<code>sybase15</code>", and
+ "<code>mysql2005</code>".
+ The database connection information for these database profiles are in the parent "pom.xml" file,
+ and most of these are configured to use database instances within the JBoss Quality Assurance
+ lab and are accessible only to Red Hat employees. However, feel free to add your own profiles
+ or even change the settings in the POM file to suit your needs.
+ </entry>
+ </row>
+ <row>
+ <entry><code>mvn -P integration clean install</code></entry>
+ <entry>This "integration build" does everything the "quick" build does plus it compiles and
+ runs the integration tests, which take several extra minutes to run.
+ Also, HSQLDB is used when a database is needed.
+ </entry>
+ </row>
+ <row>
+ <entry><code>mvn -P integration clean install -Ddatabase=dbprofile</code></entry>
+ <entry>This does the same as the "integration build", except that it specifies the database management system
+ that is to be used by the unit and integration tests. Options for the "<code>dbprofile</code>" values are
+ the same as listed above.
+ </entry>
+ </row>
+ <row>
+ <entry><code>mvn -P assembly clean install</code></entry>
+ <entry>This runs a builds all source code, documentation, JavaDoc, runs all unit and integration tests,
+ and produces all assemblies (e.g., zip files).
+ HSQLDB is used when a database is needed.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </sect2>
</sect1>
<sect1 id="hudson">
<title>Continuous integration with Hudson</title>
@@ -303,11 +348,11 @@
<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>
+ <entry>Continuous build that runs an integration build 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%20JDK...">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
+ <entry>Integration 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>
Modified: trunk/extensions/dna-connector-store-jpa/pom.xml
===================================================================
--- trunk/extensions/dna-connector-store-jpa/pom.xml 2009-09-16 14:40:56 UTC (rev 1226)
+++ trunk/extensions/dna-connector-store-jpa/pom.xml 2009-09-16 20:56:22 UTC (rev 1227)
@@ -102,4 +102,24 @@
</plugin>
</plugins>
</reporting>
+ <build>
+ <testResources>
+ <testResource>
+ <filtering>false</filtering>
+ <directory>src/test/resources</directory>
+ <includes>
+ <include>*</include>
+ <include>**/*</include>
+ </includes>
+ </testResource>
+ <!-- Apply the properties set in the POM to the resource files -->
+ <testResource>
+ <filtering>true</filtering>
+ <directory>src/test/resources</directory>
+ <includes>
+ <include>database.properties</include>
+ </includes>
+ </testResource>
+ </testResources>
+ </build>
</project>
\ No newline at end of file
Modified: trunk/extensions/dna-connector-store-jpa/src/test/java/org/jboss/dna/connector/store/jpa/JpaConnectorCreateWorkspacesTest.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/test/java/org/jboss/dna/connector/store/jpa/JpaConnectorCreateWorkspacesTest.java 2009-09-16 14:40:56 UTC (rev 1226)
+++ trunk/extensions/dna-connector-store-jpa/src/test/java/org/jboss/dna/connector/store/jpa/JpaConnectorCreateWorkspacesTest.java 2009-09-16 20:56:22 UTC (rev 1227)
@@ -51,23 +51,12 @@
protected RepositorySource setUpSource() {
predefinedWorkspaces = new String[] {"workspace1", "workspace1a"};
- // Set the connection properties to be an in-memory HSQL database ...
- JpaSource source = new JpaSource();
- source.setName("Test Repository");
- source.setDialect("org.hibernate.dialect.HSQLDialect");
- source.setDriverClassName("org.hsqldb.jdbcDriver");
- source.setUsername("sa");
- source.setPassword("");
- source.setUrl("jdbc:hsqldb:.");
- source.setMaximumConnectionsInPool(3);
- source.setMinimumConnectionsInPool(0);
- source.setNumberOfConnectionsToAcquireAsNeeded(1);
- source.setMaximumSizeOfStatementCache(100);
- source.setMaximumConnectionIdleTimeInSeconds(0);
- source.setLargeValueSizeInBytes(150);
+ // Set the connection properties using the environment defined in the POM files ...
+ JpaSource source = TestEnvironment.configureJpaSource("Test Repository", this);
+
+ // Override the inherited properties, since that's the focus of these tests ...
source.setCreatingWorkspacesAllowed(true);
source.setPredefinedWorkspaceNames(predefinedWorkspaces);
- source.setAutoGenerateSchema("create");
return source;
}
Modified: trunk/extensions/dna-connector-store-jpa/src/test/java/org/jboss/dna/connector/store/jpa/JpaConnectorNoCreateWorkspaceTest.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/test/java/org/jboss/dna/connector/store/jpa/JpaConnectorNoCreateWorkspaceTest.java 2009-09-16 14:40:56 UTC (rev 1226)
+++ trunk/extensions/dna-connector-store-jpa/src/test/java/org/jboss/dna/connector/store/jpa/JpaConnectorNoCreateWorkspaceTest.java 2009-09-16 20:56:22 UTC (rev 1227)
@@ -51,23 +51,12 @@
protected RepositorySource setUpSource() {
predefinedWorkspaces = new String[] {"workspace1", "workspace2", "workspace3"};
- // Set the connection properties to be an in-memory HSQL database ...
- JpaSource source = new JpaSource();
- source.setName("Test Repository");
- source.setDialect("org.hibernate.dialect.HSQLDialect");
- source.setDriverClassName("org.hsqldb.jdbcDriver");
- source.setUsername("sa");
- source.setPassword("");
- source.setUrl("jdbc:hsqldb:.");
- source.setMaximumConnectionsInPool(3);
- source.setMinimumConnectionsInPool(0);
- source.setNumberOfConnectionsToAcquireAsNeeded(1);
- source.setMaximumSizeOfStatementCache(100);
- source.setMaximumConnectionIdleTimeInSeconds(0);
- source.setLargeValueSizeInBytes(150);
+ // Set the connection properties using the environment defined in the POM files ...
+ JpaSource source = TestEnvironment.configureJpaSource("Test Repository", this);
+
+ // Override the inherited properties, since that's the focus of these tests ...
source.setCreatingWorkspacesAllowed(false);
source.setPredefinedWorkspaceNames(predefinedWorkspaces);
- source.setAutoGenerateSchema("create");
return source;
}
Modified: trunk/extensions/dna-connector-store-jpa/src/test/java/org/jboss/dna/connector/store/jpa/JpaConnectorReadingTest.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/test/java/org/jboss/dna/connector/store/jpa/JpaConnectorReadingTest.java 2009-09-16 14:40:56 UTC (rev 1226)
+++ trunk/extensions/dna-connector-store-jpa/src/test/java/org/jboss/dna/connector/store/jpa/JpaConnectorReadingTest.java 2009-09-16 20:56:22 UTC (rev 1227)
@@ -41,21 +41,8 @@
*/
@Override
protected RepositorySource setUpSource() {
- // Set the connection properties to be an in-memory HSQL database ...
- JpaSource source = new JpaSource();
- source.setName("Test Repository");
- source.setDialect("org.hibernate.dialect.HSQLDialect");
- source.setDriverClassName("org.hsqldb.jdbcDriver");
- source.setUsername("sa");
- source.setPassword("");
- source.setUrl("jdbc:hsqldb:.");
- source.setMaximumConnectionsInPool(3);
- source.setMinimumConnectionsInPool(0);
- source.setNumberOfConnectionsToAcquireAsNeeded(1);
- source.setMaximumSizeOfStatementCache(100);
- source.setMaximumConnectionIdleTimeInSeconds(0);
- source.setLargeValueSizeInBytes(150);
- source.setAutoGenerateSchema("create");
+ // Set the connection properties using the environment defined in the POM files ...
+ JpaSource source = TestEnvironment.configureJpaSource("Test Repository", this);
// Create a graph and look up the root node. We do this to initialize the connection pool and
// force the database to be setup at this point. By doing it now, we don't include this overhead
Modified: trunk/extensions/dna-connector-store-jpa/src/test/java/org/jboss/dna/connector/store/jpa/JpaConnectorWritingTest.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/test/java/org/jboss/dna/connector/store/jpa/JpaConnectorWritingTest.java 2009-09-16 14:40:56 UTC (rev 1226)
+++ trunk/extensions/dna-connector-store-jpa/src/test/java/org/jboss/dna/connector/store/jpa/JpaConnectorWritingTest.java 2009-09-16 20:56:22 UTC (rev 1227)
@@ -42,22 +42,11 @@
*/
@Override
protected RepositorySource setUpSource() {
- // Set the connection properties to be an in-memory HSQL database ...
- JpaSource source = new JpaSource();
- source.setName("Test Repository");
- source.setDialect("org.hibernate.dialect.HSQLDialect");
- source.setDriverClassName("org.hsqldb.jdbcDriver");
- source.setUsername("sa");
- source.setPassword("");
- source.setUrl("jdbc:hsqldb:.");
- source.setMaximumConnectionsInPool(1);
- source.setMinimumConnectionsInPool(0);
- source.setNumberOfConnectionsToAcquireAsNeeded(1);
- source.setMaximumSizeOfStatementCache(100);
- source.setMaximumConnectionIdleTimeInSeconds(0);
+ // Set the connection properties using the environment defined in the POM files ...
+ JpaSource source = TestEnvironment.configureJpaSource("Test Repository", this);
+
+ // Override the inherited properties ...
source.setReferentialIntegrityEnforced(true);
- source.setLargeValueSizeInBytes(150);
- source.setAutoGenerateSchema("create");
source.setCompressData(true);
return source;
Modified: trunk/extensions/dna-connector-store-jpa/src/test/java/org/jboss/dna/connector/store/jpa/JpaSourceTest.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/test/java/org/jboss/dna/connector/store/jpa/JpaSourceTest.java 2009-09-16 14:40:56 UTC (rev 1226)
+++ trunk/extensions/dna-connector-store-jpa/src/test/java/org/jboss/dna/connector/store/jpa/JpaSourceTest.java 2009-09-16 20:56:22 UTC (rev 1227)
@@ -45,22 +45,12 @@
@Before
public void beforeEach() throws Exception {
- this.source = new JpaSource();
- // Set the connection properties to be an in-memory HSQL database ...
- this.source.setName("Test Repository");
- this.source.setDialect("org.hibernate.dialect.HSQLDialect");
- this.source.setDriverClassName("org.hsqldb.jdbcDriver");
- this.source.setUsername("sa");
- this.source.setPassword("");
- this.source.setUrl("jdbc:hsqldb:.");
- this.source.setMaximumConnectionsInPool(3);
- this.source.setMinimumConnectionsInPool(0);
- this.source.setNumberOfConnectionsToAcquireAsNeeded(1);
- this.source.setMaximumSizeOfStatementCache(100);
- this.source.setMaximumConnectionIdleTimeInSeconds(0);
+ // Set the connection properties using the environment defined in the POM files ...
+ this.source = TestEnvironment.configureJpaSource("Test Repository", this);
+
+ // Override the inherited properties ...
this.source.setDefaultWorkspaceName("default");
this.source.setCreatingWorkspacesAllowed(true);
- this.source.setAutoGenerateSchema("create");
}
@After
Added: trunk/extensions/dna-connector-store-jpa/src/test/java/org/jboss/dna/connector/store/jpa/TestEnvironment.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/test/java/org/jboss/dna/connector/store/jpa/TestEnvironment.java (rev 0)
+++ trunk/extensions/dna-connector-store-jpa/src/test/java/org/jboss/dna/connector/store/jpa/TestEnvironment.java 2009-09-16 20:56:22 UTC (rev 1227)
@@ -0,0 +1,118 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.dna.connector.store.jpa;
+
+import java.io.IOException;
+import java.util.Properties;
+
+public class TestEnvironment {
+
+ public static JpaSource configureJpaSource( String sourceName,
+ Object testCase ) {
+ Properties properties = new Properties();
+ ClassLoader loader = testCase instanceof Class ? ((Class<?>)testCase).getClassLoader() : testCase.getClass()
+ .getClassLoader();
+ try {
+ properties.load(loader.getResourceAsStream("database.properties"));
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+
+ // Set the connection properties to be an in-memory HSQL database ...
+ JpaSource source = new JpaSource();
+ source.setName(sourceName);
+ source.setDialect(properties.getProperty("jpaSource.dialect"));
+ source.setDriverClassName(properties.getProperty("jpaSource.driverClassName"));
+ source.setUsername(properties.getProperty("jpaSource.username"));
+ source.setPassword(properties.getProperty("jpaSource.password"));
+ source.setUrl(properties.getProperty("jpaSource.url"));
+
+ String value = properties.getProperty("jpaSource.maximumConnectionsInPool");
+ if (isValue(value)) source.setMaximumConnectionsInPool(Integer.parseInt(value));
+
+ value = properties.getProperty("jpaSource.minimumConnectionsInPool");
+ if (isValue(value)) source.setMinimumConnectionsInPool(Integer.parseInt(value));
+
+ value = properties.getProperty("jpaSource.maximumSizeOfStatementCache");
+ if (isValue(value)) source.setMaximumSizeOfStatementCache(Integer.parseInt(value));
+
+ value = properties.getProperty("jpaSource.maximumConnectionIdleTimeInSeconds");
+ if (isValue(value)) source.setMaximumConnectionIdleTimeInSeconds(Integer.parseInt(value));
+
+ value = properties.getProperty("jpaSource.largeValueSizeInBytes");
+ if (isValue(value)) source.setLargeValueSizeInBytes(Long.parseLong(value));
+
+ value = properties.getProperty("jpaSource.autoGenerateSchema");
+ if (isValue(value)) source.setAutoGenerateSchema(value);
+
+ value = properties.getProperty("jpaSource.compressData");
+ if (isValue(value)) source.setCompressData(Boolean.parseBoolean(value));
+
+ value = properties.getProperty("jpaSource.cacheTimeToLiveInMilliseconds");
+ if (isValue(value)) source.setCacheTimeToLiveInMilliseconds(Integer.parseInt(value));
+
+ value = properties.getProperty("jpaSource.creatingWorkspacesAllowed");
+ if (isValue(value)) source.setCreatingWorkspacesAllowed(Boolean.parseBoolean(value));
+
+ value = properties.getProperty("jpaSource.defaultWorkspaceName");
+ if (isValue(value)) source.setDefaultWorkspaceName(value);
+
+ value = properties.getProperty("jpaSource.predefinedWorkspaceNames");
+ if (isValue(value)) source.setPredefinedWorkspaceNames(splitValues(value));
+
+ value = properties.getProperty("jpaSource.model");
+ if (isValue(value)) source.setModel(value);
+
+ value = properties.getProperty("jpaSource.numberOfConnectionsToAcquireAsNeeded");
+ if (isValue(value)) source.setNumberOfConnectionsToAcquireAsNeeded(Integer.parseInt(value));
+
+ value = properties.getProperty("jpaSource.referentialIntegrityEnforced");
+ if (isValue(value)) source.setReferentialIntegrityEnforced(Boolean.parseBoolean(value));
+
+ value = properties.getProperty("jpaSource.retryLimit");
+ if (isValue(value)) source.setRetryLimit(Integer.parseInt(value));
+
+ value = properties.getProperty("jpaSource.rootNodeUuid");
+ if (isValue(value)) source.setRootNodeUuid(value);
+
+ value = properties.getProperty("jpaSource.showSql");
+ if (isValue(value)) source.setShowSql(Boolean.parseBoolean(value));
+
+ return source;
+ }
+
+ protected static boolean isValue( String value ) {
+ return value != null && value.trim().length() != 0;
+ }
+
+ protected static String[] splitValues( String value ) {
+ String[] results = value.split(", ");
+ for (int i = 0; i != results.length; ++i) {
+ results[i] = results[i].trim();
+ // Remove leading and trailing quotes, if there are any ...
+ results[i] = results[i].replaceFirst("^['\"]+", "").replaceAll("['\"]+$", "").trim();
+ }
+ return results;
+ }
+}
Property changes on: trunk/extensions/dna-connector-store-jpa/src/test/java/org/jboss/dna/connector/store/jpa/TestEnvironment.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: trunk/extensions/dna-connector-store-jpa/src/test/resources/database.properties
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/test/resources/database.properties (rev 0)
+++ trunk/extensions/dna-connector-store-jpa/src/test/resources/database.properties 2009-09-16 20:56:22 UTC (rev 1227)
@@ -0,0 +1,52 @@
+#
+# JBoss DNA (http://www.jboss.org/dna)
+# See the COPYRIGHT.txt file distributed with this work for information
+# regarding copyright ownership. Some portions may be licensed
+# to Red Hat, Inc. under one or more contributor license agreements.
+# See the AUTHORS.txt file in the distribution for a full listing of
+# individual contributors.
+#
+# JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+# is licensed to you under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation; either version 2.1 of
+# the License, or (at your option) any later version.
+#
+# JBoss DNA 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 software; if not, write to the Free
+# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+# 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+#
+
+# All of these properties are or can be set in the parent POM in the different profiles.
+# The property names are designed to match those used in the POM.
+# Any property that does not have a non-empty value set by Maven will not be set on the JpaSource.
+jpaSource.dialect = ${jpaSource.dialect}
+jpaSource.driverClassName = ${jpaSource.driverClassName}
+jpaSource.url = ${jpaSource.url}
+jpaSource.username = ${jpaSource.username}
+jpaSource.password = ${jpaSource.password}
+jpaSource.maximumConnectionsInPool = ${jpaSource.maximumConnectionsInPool}
+jpaSource.minimumConnectionsInPool = ${jpaSource.minimumConnectionsInPool}
+jpaSource.numberOfConnectionsToAcquireAsNeeded = ${jpaSource.numberOfConnectionsToAcquireAsNeeded}
+jpaSource.maximumSizeOfStatementCache = ${jpaSource.maximumSizeOfStatementCache}
+jpaSource.maximumConnectionIdleTimeInSeconds = ${jpaSource.maximumConnectionIdleTimeInSeconds}
+jpaSource.largeValueSizeInBytes = ${jpaSource.largeValueSizeInBytes}
+jpaSource.autoGenerateSchema = ${jpaSource.autoGenerateSchema}
+jpaSource.compressData = ${jpaSource.compressData}
+jpaSource.cacheTimeToLiveInMilliseconds = ${jpaSource.cacheTimeToLiveInMilliseconds}
+jpaSource.creatingWorkspacesAllowed = ${jpaSource.creatingWorkspacesAllowed}
+jpaSource.defaultWorkspaceName = ${jpaSource.defaultWorkspaceName}
+# comma-separated and optionally quoted
+jpaSource.predefinedWorkspaceNames = ${jpaSource.predefinedWorkspaceNames}
+jpaSource.model = ${jpaSource.model}
+jpaSource.numberOfConnectionsToAcquireAsNeeded = ${jpaSource.numberOfConnectionsToAcquireAsNeeded}
+jpaSource.referentialIntegrityEnforced = ${jpaSource.referentialIntegrityEnforced}
+jpaSource.retryLimit = ${jpaSource.retryLimit}
+jpaSource.rootNodeUuid = ${jpaSource.rootNodeUuid}
+jpaSource.showSql = ${jpaSource.showSql}
+
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2009-09-16 14:40:56 UTC (rev 1226)
+++ trunk/pom.xml 2009-09-16 20:56:22 UTC (rev 1227)
@@ -137,6 +137,36 @@
<module>web/dna-web-jcr-rest</module>
<module>web/dna-web-jcr-rest-war</module>
</modules>
+ <properties>
+ <!-- These are properties used in the database profiles. Must initialize them to be empty so that Maven applies
+ them via filtering to the resources. If a project needs files filtered, however, make sure to include
+ a 'testResources' fragment in the 'build' section of the child project POM to say which files need to be filtered.
+ See the "dna-integration" or "extensions/dna-connector-store-jpa" project POMs for examples. -->
+ <jpaSource.dialect/>
+ <jpaSource.driverClassName/>
+ <jpaSource.url/>
+ <jpaSource.username/>
+ <jpaSource.password/>
+ <jpaSource.maximumConnectionsInPool>1</jpaSource.maximumConnectionsInPool>
+ <jpaSource.minimumConnectionsInPool>0</jpaSource.minimumConnectionsInPool>
+ <jpaSource.numberOfConnectionsToAcquireAsNeeded>1</jpaSource.numberOfConnectionsToAcquireAsNeeded>
+ <jpaSource.maximumSizeOfStatementCache>100</jpaSource.maximumSizeOfStatementCache>
+ <jpaSource.maximumConnectionIdleTimeInSeconds>0</jpaSource.maximumConnectionIdleTimeInSeconds>
+ <jpaSource.referentialIntegrityEnforced>true</jpaSource.referentialIntegrityEnforced>
+ <jpaSource.largeValueSizeInBytes>150</jpaSource.largeValueSizeInBytes>
+ <jpaSource.autoGenerateSchema>create</jpaSource.autoGenerateSchema>
+ <jpaSource.compressData/>
+ <jpaSource.cacheTimeToLiveInMilliseconds/>
+ <jpaSource.creatingWorkspacesAllowed/>
+ <jpaSource.defaultWorkspaceName/>
+ <jpaSource.predefinedWorkspaceNames/>
+ <jpaSource.model/>
+ <jpaSource.numberOfConnectionsToAcquireAsNeeded/>
+ <jpaSource.referentialIntegrityEnforced>true</jpaSource.referentialIntegrityEnforced>
+ <jpaSource.retryLimit>3</jpaSource.retryLimit>
+ <jpaSource.rootNodeUuid/>
+ <jpaSource.showSql>false</jpaSource.showSql>
+ </properties>
<profiles>
<profile>
@@ -310,6 +340,368 @@
</plugins>
</reporting>
</profile>
+
+ <!--
+ ###################################################################
+ Database profiles to specify which DBMS is used for tests.
+ ###################################################################
+
+ To use, specify "-Ddatbase=<dbProfileName>" on the Maven command line.
+ -->
+
+ <!-- The default test environment is HSQLDB (may eventually move to H2) -->
+ <profile>
+ <id>default_dbms</id>
+ <activation>
+ <property>
+ <name>!database</name>
+ </property>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
+ <version>1.8.0.2</version>
+ </dependency>
+ </dependencies>
+ <properties>
+ <database>hsqldb</database>
+ <jpaSource.dialect>org.hibernate.dialect.HSQLDialect</jpaSource.dialect>
+ <jpaSource.driverClassName>org.hsqldb.jdbcDriver</jpaSource.driverClassName>
+ <jpaSource.url>jdbc:hsqldb:target/test/db/hsqldb/hibernate</jpaSource.url>
+ <jpaSource.username>sa</jpaSource.username>
+ <jpaSource.password />
+ </properties>
+ </profile>
+
+ <!-- The HSQLDB test environment -->
+ <profile>
+ <id>hsqldb</id>
+ <activation>
+ <property>
+ <name>database</name>
+ <value>h2</value>
+ </property>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
+ <version>1.8.0.2</version>
+ </dependency>
+ </dependencies>
+ <properties>
+ <database>hsqldb</database>
+ <jpaSource.dialect>org.hibernate.dialect.HSQLDialect</jpaSource.dialect>
+ <jpaSource.driverClassName>org.hsqldb.jdbcDriver</jpaSource.driverClassName>
+ <jpaSource.url>jdbc:hsqldb:target/test/db/hsqldb/hibernate</jpaSource.url>
+ <jpaSource.username>sa</jpaSource.username>
+ <jpaSource.password />
+ </properties>
+ </profile>
+
+ <!-- The H2 test environment -->
+
+ <profile>
+ <id>h2</id>
+ <activation>
+ <property>
+ <name>database</name>
+ <value>h2</value>
+ </property>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>org.h2database</groupId>
+ <artifactId>h2database</artifactId>
+ <version>1.0.20061217</version>
+ </dependency>
+ </dependencies>
+ <properties>
+ <jpaSource.dialect>org.hibernate.dialect.H2Dialect</jpaSource.dialect>
+ <jpaSource.driverClassName>org.h2.Driver</jpaSource.driverClassName>
+ <jpaSource.url>jdbc:h2:mem:target/test/db/h2/hibernate</jpaSource.url>
+ <jpaSource.username>sa</jpaSource.username>
+ <jpaSource.password />
+ </properties>
+ </profile>
+
+ <!-- The PostgreSQL test environment, local to the developer -->
+ <profile>
+ <id>postgresql_local</id>
+ <activation>
+ <property>
+ <name>database</name>
+ <value>postgresql_local</value>
+ </property>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>postgresql</groupId>
+ <artifactId>postgresql</artifactId>
+ <version>8.4-701.jdbc3</version>
+ </dependency>
+ </dependencies>
+ <properties>
+ <jpaSource.dialect>org.hibernate.dialect.PostgreSQLDialect</jpaSource.dialect>
+ <jpaSource.driver>org.postgresql.Driver</jpaSource.driver>
+ <jpaSource.url>jdbc:postgresql://localhost/unit_test</jpaSource.url>
+ <jpaSource.username>postgres</jpaSource.username>
+ <jpaSource.password>data</jpaSource.password>
+ </properties>
+ </profile>
+
+ <!--
+ ###################################################################
+ Profiles naming db instances in the Red Hat QA/QE lab
+ First, those with OSS drivers
+ ###################################################################
+ -->
+
+ <!-- The MySQL5 test environment -->
+ <profile>
+ <id>mysql5</id>
+ <activation>
+ <property>
+ <name>database</name>
+ <value>mysql5</value>
+ </property>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>mysql</groupId>
+ <artifactId>mysql-connector-java</artifactId>
+ <version>5.0.5</version>
+ </dependency>
+ </dependencies>
+ <properties>
+ <jpaSource.dialect>org.hibernate.dialect.MySQL5InnoDBDialect</jpaSource.dialect>
+ <jpaSource.driverClassName>com.mysql.jdbc.driverClassName</jpaSource.driverClassName>
+ <jpaSource.url>jdbc:mysql://vmg08.mw.lab.eng.bos.redhat.com/hibbrtru</jpaSource.url>
+ <jpaSource.username>username</jpaSource.username>
+ <jpaSource.password>password</jpaSource.password>
+ </properties>
+ </profile>
+
+ <!-- The PostgreSQL test environment -->
+ <profile>
+ <id>postgresql8</id>
+ <activation>
+ <property>
+ <name>database</name>
+ <value>postgresql8</value>
+ </property>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>postgresql</groupId>
+ <artifactId>postgresql</artifactId>
+ <version>8.2-504</version>
+ <classifier>jdbc3</classifier>
+ </dependency>
+ </dependencies>
+ <properties>
+ <jpaSource.dialect>org.hibernate.dialect.PostgreSQLDialect</jpaSource.dialect>
+ <jpaSource.driverClassName>org.postgresql.Driver</jpaSource.driverClassName>
+ <jpaSource.url>jdbc:postgresql://dev01.qa.atl.jboss.com:5432:hibbrtru</jpaSource.url>
+ <jpaSource.username>username</jpaSource.username>
+ <jpaSource.password>password</jpaSource.password>
+ </properties>
+ </profile>
+
+ <!--
+ ###################################################################
+ Then, those with commercial drivers
+ ###################################################################
+ -->
+
+ <!-- The DB2 8.x test environment (using 9x drivers)-->
+ <profile>
+ <id>db2v8</id>
+ <activation>
+ <property>
+ <name>database</name>
+ <value>db2v8</value>
+ </property>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>com.ibm</groupId>
+ <artifactId>db2jcc</artifactId>
+ <version>3.1.57</version>
+ </dependency>
+ <dependency>
+ <groupId>com.ibm</groupId>
+ <artifactId>db2jcc_license_cu</artifactId>
+ <version>3.1.57</version>
+ </dependency>
+ </dependencies>
+ <properties>
+ <jpaSource.dialect>org.hibernate.dialect.DB2Dialect</jpaSource.dialect>
+ <jpaSource.driverClassName>com.ibm.db2.jcc.DB2Driver</jpaSource.driverClassName>
+ <jpaSource.url>jdbc:db2://dev32.qa.atl.jboss.com:50000/jbossqa</jpaSource.url>
+ <jpaSource.username>username</jpaSource.username>
+ <jpaSource.password>password</jpaSource.password>
+ </properties>
+ </profile>
+
+ <!-- The DB2 9.x test environment (using 9x drivers)-->
+ <profile>
+ <id>db2v9</id>
+ <activation>
+ <property>
+ <name>database</name>
+ <value>db2v9</value>
+ </property>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>com.ibm</groupId>
+ <artifactId>db2jcc</artifactId>
+ <version>3.1.57</version>
+ </dependency>
+ <dependency>
+ <groupId>com.ibm</groupId>
+ <artifactId>db2jcc_license_cu</artifactId>
+ <version>3.1.57</version>
+ </dependency>
+ </dependencies>
+ <properties>
+ <jpaSource.dialect>org.hibernate.dialect.DB2Dialect</jpaSource.dialect>
+ <jpaSource.driverClassName>com.ibm.db2.jcc.DB2Driver</jpaSource.driverClassName>
+ <jpaSource.url>jdbc:db2://dev67.qa.atl.jboss.com:50000/jbossqa</jpaSource.url>
+ <jpaSource.username>username</jpaSource.username>
+ <jpaSource.password>password</jpaSource.password>
+ </properties>
+ </profile>
+
+ <!-- The Oracle9i test environment -->
+ <profile>
+ <id>oracle9i</id>
+ <activation>
+ <property>
+ <name>database</name>
+ <value>oracle9i</value>
+ </property>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>com.oracle</groupId>
+ <artifactId>ojdbc14</artifactId>
+ <!-- use the 10g drivers which are surprisingly largely bug free -->
+ <version>10.0.2.0</version>
+ </dependency>
+ </dependencies>
+ <properties>
+ <jpaSource.dialect>org.hibernate.dialect.Oracle9iDialect</jpaSource.dialect>
+ <jpaSource.driverClassName>oracle.jdbc.driverClassName.OracleDriver</jpaSource.driverClassName>
+ <jpaSource.url>jdbc:oracle:thin:@dev20.qa.atl.jboss.com:1521:qa</jpaSource.url>
+ <jpaSource.username>username</jpaSource.username>
+ <jpaSource.password>password</jpaSource.password>
+ </properties>
+ </profile>
+
+ <!-- The Oracle10g test environment -->
+ <profile>
+ <id>oracle10g</id>
+ <activation>
+ <property>
+ <name>database</name>
+ <value>oracle10g</value>
+ </property>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>com.oracle</groupId>
+ <artifactId>ojdbc14</artifactId>
+ <!-- use the 10g drivers which are surprisingly largely bug free -->
+ <version>10.0.2.0</version>
+ </dependency>
+ </dependencies>
+ <properties>
+ <jpaSource.dialect>org.hibernate.dialect.Oracle10gDialect</jpaSource.dialect>
+ <jpaSource.driverClassName>oracle.jdbc.driverClassName.OracleDriver</jpaSource.driverClassName>
+ <jpaSource.url>jdbc:oracle:thin:@dev01.qa.atl.jboss.com:1521:qadb01</jpaSource.url>
+ <jpaSource.username>username</jpaSource.username>
+ <jpaSource.password>password</jpaSource.password>
+ </properties>
+ </profile>
+
+ <!-- The Oracle11g test environment -->
+ <profile>
+ <id>oracle11g</id>
+ <activation>
+ <property>
+ <name>database</name>
+ <value>oracle11g</value>
+ </property>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>com.oracle</groupId>
+ <artifactId>ojdbc6</artifactId>
+ <version>11.1.0.7.0</version>
+ </dependency>
+ </dependencies>
+ <properties>
+ <jpaSource.dialect>org.hibernate.dialect.Oracle10gDialect</jpaSource.dialect>
+ <jpaSource.driverClassName>oracle.jdbc.driverClassName.OracleDriver</jpaSource.driverClassName>
+ <jpaSource.url>jdbc:oracle:thin:@ENGLXDBS11.mm.atl2.redhat.com:1521:orcl</jpaSource.url>
+ <jpaSource.username>integtest</jpaSource.username>
+ <jpaSource.password>teiid</jpaSource.password>
+ </properties>
+ </profile>
+
+ <!-- The Sybase 15 test environment -->
+ <profile>
+ <id>sybase15</id>
+ <activation>
+ <property>
+ <name>database</name>
+ <value>sybase15</value>
+ </property>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>com.sybase</groupId>
+ <artifactId>jconnect</artifactId>
+ <version>6.0.5</version>
+ </dependency>
+ </dependencies>
+ <properties>
+ <jpaSource.dialect>org.hibernate.dialect.SybaseASE15Dialect</jpaSource.dialect>
+ <jpaSource.driverClassName>com.sybase.jdbc3.jdbc.SybDriver</jpaSource.driverClassName>
+ <jpaSource.url>jdbc:sybase:Tds:dev77.qa.atl2.redhat.com:5000/hibbrtru</jpaSource.url>
+ <jpaSource.username>username</jpaSource.username>
+ <jpaSource.password>password</jpaSource.password>
+ </properties>
+ </profile>
+
+ <!-- The SQLServer2005 (MS JDBC) test environment -->
+ <profile>
+ <id>mssql2005</id>
+ <activation>
+ <property>
+ <name>database</name>
+ <value>mssql2005</value>
+ </property>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>com.microsoft.sqlserver</groupId>
+ <artifactId>msjdbc</artifactId>
+ <version>1.1</version>
+ </dependency>
+ </dependencies>
+ <properties>
+ <jpaSource.dialect>org.hibernate.dialect.SQLServerDialect</jpaSource.dialect>
+ <jpaSource.driverClassName>com.microsoft.sqlserver.jdbc.SQLServerDriver</jpaSource.driverClassName>
+ <jpaSource.url>jdbc:sqlserver://dev30.qa.atl.jboss.com:3918</jpaSource.url>
+ <jpaSource.username>username</jpaSource.username>
+ <jpaSource.password>password</jpaSource.password>
+ </properties>
+ </profile>
+
</profiles>
<build>
<!-- This section defines the default plugin settings inherited by child projects. -->
16 years, 7 months
DNA SVN: r1226 - in trunk: dna-cnd/src/main/antlr/org/jboss/dna/cnd and 7 other directories.
by dna-commits@lists.jboss.org
Author: rhauch
Date: 2009-09-16 10:40:56 -0400 (Wed, 16 Sep 2009)
New Revision: 1226
Added:
trunk/dna-cnd/src/main/java/org/jboss/dna/cnd/CndTokenizer.java
trunk/dna-cnd/src/test/java/org/jboss/dna/cnd/CndTokenizerTest.java
Removed:
trunk/dna-cnd/src/main/antlr/org/jboss/dna/cnd/Cnd.g
trunk/dna-cnd/src/main/antlr3/org/jboss/dna/cnd/Cnd.g
Modified:
trunk/dna-cnd/.classpath
trunk/dna-cnd/pom.xml
trunk/dna-cnd/src/main/java/org/jboss/dna/cnd/CndI18n.java
trunk/dna-cnd/src/main/java/org/jboss/dna/cnd/CndImporter.java
trunk/dna-cnd/src/main/resources/org/jboss/dna/cnd/CndI18n.properties
trunk/dna-cnd/src/test/java/org/jboss/dna/cnd/CndImporterTest.java
trunk/dna-cnd/src/test/resources/cnd/jcr-builtins-283-early-draft.cnd
trunk/dna-common/src/main/java/org/jboss/dna/common/text/TokenStream.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/JcrLexicon.java
Log:
DNA-522 CND files that use keywords as names cannot be read in
ANTLR 3.0 by default treats keywords used in the parser as special tokens in the lexer, meaning that the lexer will always generate a keyword token whenever such a word appears in the input (regardless of whether that word is indeed a proper use of that keyword or just a coincidental match). To fix this requires a lot of nasty workarounds, and this makes the generated parser really large.
So instead of using ANTLR, the parser was changed to use the TokenStream class added late last release. This is a very simple framework that makes it possible to write a parser that is fairly efficient but extremely easy to understand when reading and extremely easy to debug. Plus, the total lines of code for this CND importer/parser are actually reduced, even when excluding the generated code from the stats. The same CndImporter interface was kept, so there were no other changes outside of the 'dna-cnd' project.
Also, one of the test cases used to this point attempted to import a namespace mapping where the URI was not quoted. Technically this is not possible according to the JCR 2.0 Public Final Draft specification, and the reference implementation does not appear to support it. Actually, there are several errors in the JCR 2.0 PFD specification section that talks about the CND grammar. In particular, the definition of a string is unclear in the very least and like in error, since it attempts to define a string as a sequence of one or more XmlChar, where XmlChar appears to be defined as any of the characters allowed in the Char production of the XML specification (http://www.w3.org/TR/xml/#NT-Char) and therefore would allow nearly any unicode character (including whitespace, newlines, etc). This is clearly NOT the behavior of the reference implementation, which treats a CND unquoted string simply as '[A-Za-z0-9:_]+'. Therefore, the string behavior of the parser was cleaned up !
a bit, though it still is more lenient than the reference implementation. Basically, our unquoted string is any non-whitespace character except the following: []<>=-+(),"'/{*|
As a result of these changes, all existing unit tests and integration tests pass (though some of the dna-cnd tests were changed and new ones were added).
Modified: trunk/dna-cnd/.classpath
===================================================================
--- trunk/dna-cnd/.classpath 2009-09-16 14:39:42 UTC (rev 1225)
+++ trunk/dna-cnd/.classpath 2009-09-16 14:40:56 UTC (rev 1226)
@@ -2,10 +2,8 @@
<classpath>
<classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="src" path="src/main/resources"/>
- <classpathentry kind="src" path="src/main/antlr3"/>
<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
<classpathentry kind="src" output="target/test-classes" path="src/test/resources"/>
- <classpathentry kind="src" path="target/generated-sources/antlr3"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
Modified: trunk/dna-cnd/pom.xml
===================================================================
--- trunk/dna-cnd/pom.xml 2009-09-16 14:39:42 UTC (rev 1225)
+++ trunk/dna-cnd/pom.xml 2009-09-16 14:40:56 UTC (rev 1226)
@@ -18,17 +18,6 @@
<groupId>org.jboss.dna</groupId>
<artifactId>dna-graph</artifactId>
</dependency>
- <dependency>
- <groupId>org.antlr</groupId>
- <artifactId>antlr-runtime</artifactId>
- <version>3.1.3</version>
- <exclusions>
- <exclusion>
- <groupId>org.antlr</groupId>
- <artifactId>stringtemplate</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
<!-- Testing -->
<dependency>
@@ -42,24 +31,7 @@
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
- <dependency>
- <groupId>org.antlr</groupId>
- <artifactId>antlr</artifactId>
- <version>3.1.3</version>
- <exclusions>
- <exclusion>
- <groupId>org.antlr</groupId>
- <artifactId>stringtemplate</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-project</artifactId>
- </exclusion>
- </exclusions>
- <!-- we try to use scope to hide it from transitivity -->
- <scope>test</scope> <!-- or perhaps 'provided' (see later discussion) or 'import' (maven >= 2.0.9) -->
- </dependency>
- <dependency>
+ <dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-library</artifactId>
</dependency>
@@ -88,20 +60,4 @@
<artifactId>jcip-annotations</artifactId>
</dependency>
</dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.antlr</groupId>
- <artifactId>antlr3-maven-plugin</artifactId>
- <version>3.1.3-1</version>
- <executions>
- <execution>
- <goals>
- <goal>antlr</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
</project>
\ No newline at end of file
Deleted: trunk/dna-cnd/src/main/antlr/org/jboss/dna/cnd/Cnd.g
===================================================================
--- trunk/dna-cnd/src/main/antlr/org/jboss/dna/cnd/Cnd.g 2009-09-16 14:39:42 UTC (rev 1225)
+++ trunk/dna-cnd/src/main/antlr/org/jboss/dna/cnd/Cnd.g 2009-09-16 14:40:56 UTC (rev 1226)
@@ -1,360 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-grammar Cnd;
-
-options {
- output=AST;
-}
-
-
-tokens {
- NAMESPACES;
- PREFIX;
- URI;
- NODE;
- NAME;
- PRIMARY_TYPE;
- SUPERTYPES;
- NODE_TYPES;
- NODE_TYPE_ATTRIBUTES;
- HAS_ORDERABLE_CHILD_NODES;
- IS_MIXIN;
- IS_ABSTRACT;
- IS_QUERYABLE;
- PRIMARY_ITEM_NAME;
- PROPERTY_DEFINITION;
- REQUIRED_TYPE;
- DEFAULT_VALUES;
- VALUE_CONSTRAINTS;
- AUTO_CREATED;
- MANDATORY;
- PROTECTED;
- REQUIRED_TYPE;
- ON_PARENT_VERSION;
- MULTIPLE;
- QUERY_OPERATORS;
- IS_FULL_TEXT_SEARCHABLE;
- IS_QUERY_ORDERERABLE;
- CHILD_NODE_DEFINITION;
- REQUIRED_PRIMARY_TYPES;
- DEFAULT_PRIMARY_TYPE;
- SAME_NAME_SIBLINGS;
-}
-
-@header {
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.cnd;
-}
-
-@members {
-@Override
-public void emitErrorMessage( String msg ) {
- // don't write messages to System.err ...
- //super.emitErrorMessage(msg);
-}
-}
-
-@lexer::header {
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.cnd;
-}
-
-@rulecatch {
- catch (RecognitionException re) {
- reportError(re);
- }
-}
-
-// ------------
-// Parser rules
-// ------------
-
-// These rules generate an AST that was designed with a structure that may be
-// automatically processed into a graph structure. This structure is:
-//
-// NAMESPACES
-// +- NODE (multiple)
-// +- PREFIX
-// +- string value
-// +- URI
-// +- string value
-// NODE_TYPES
-// +- NODE (multiple)
-// +- NAME [nt:nodeType/@jcr:name]
-// +- string value
-// +- PRIMARY_TYPE [nt:base/@jcr:primaryType]
-// +- string with value 'nt:nodeType'
-// +- SUPERTYPES [nt:nodeType/@jcr:supertypes]
-// +- string value(s)
-// +- IS_ABSTRACT [nt:nodeType/@jcr:isAbstract]
-// +- string containing boolean value (or false if not present)
-// +- HAS_ORDERABLE_CHILD_NODES [nt:nodeType/@jcr:hasOrderableChildNodes]
-// +- string containing boolean value (or false if not present)
-// +- IS_MIXIN [nt:nodeType/@jcr:isMixin]
-// +- string containing boolean value (or false if not present)
-// +- IS_QUERYABLE [nt:nodeType/@jcr:isQueryable]
-// +- string containing boolean value (or true if not present)
-// +- PRIMARY_ITEM_NAME [nt:nodeType/@jcr:primaryItemName]
-// +- string containing string value
-// +- PROPERTY_DEFINITION [nt:nodeType/@jcr:propertyDefinition]
-// +- NODE (multiple)
-// +- NAME [nt:propertyDefinition/@jcr:name]
-// +- string value
-// +- PRIMARY_TYPE [nt:base/@jcr:primaryType]
-// +- string with value 'nt:propertyDefinition'
-// +- REQUIRED_TYPE [nt:propertyDefinition/@jcr:propertyType]
-// +- string value (limited to one of the predefined types)
-// +- DEFAULT_VALUES [nt:propertyDefinition/@jcr:defaultValues]
-// +- string value(s)
-// +- MULTIPLE [nt:propertyDefinition/@jcr:multiple]
-// +- string containing boolean value (or false if not present)
-// +- MANDATORY [nt:propertyDefinition/@jcr:mandatory]
-// +- string containing boolean value (or false if not present)
-// +- AUTO_CREATED [nt:propertyDefinition/@jcr:autoCreated]
-// +- string containing boolean value (or false if not present)
-// +- PROTECTED [nt:propertyDefinition/@jcr:protected]
-// +- string containing boolean value (or false if not present)
-// +- ON_PARENT_VERSION [nt:propertyDefinition/@jcr:onParentVersion]
-// +- string value (limited to one of the predefined literal values)
-// +- QUERY_OPERATORS
-// +- string value (containing a comma-separated list of operator literals)
-// +- IS_FULL_TEXT_SEARCHABLE [nt:propertyDefinition/@jcr:isFullTextSearchable]
-// +- string containing boolean value (or true if not present)
-// +- IS_QUERY_ORDERABLE [nt:propertyDefinition/@jcr:isQueryOrderable]
-// +- string containing boolean value (or true if not present)
-// +- VALUE_CONSTRAINTS [nt:propertyDefinition/@jcr:valueConstraints]
-// +- string value(s)
-// +- CHILD_NODE_DEFINITION [nt:nodeType/@jcr:childNodeDefinition]
-// +- NODE (multiple)
-// +- NAME [nt:childNodeDefinition/@jcr:name]
-// +- string value
-// +- PRIMARY_TYPE [nt:base/@jcr:primaryType]
-// +- string with value 'nt:childNodeDefinition'
-// +- REQUIRED_PRIMARY_TYPES [nt:childNodeDefinition/@jcr:requiredPrimaryTypes]
-// +- string values (limited to names)
-// +- DEFAULT_PRIMARY_TYPE [nt:childNodeDefinition/@jcr:defaultPrimaryType]
-// +- string value (limited to a name)
-// +- MANDATORY [nt:childNodeDefinition/@jcr:mandatory]
-// +- string containing boolean value (or false if not present)
-// +- AUTO_CREATED [nt:childNodeDefinition/@jcr:autoCreated]
-// +- string containing boolean value (or false if not present)
-// +- PROTECTED [nt:childNodeDefinition/@jcr:protected]
-// +- string containing boolean value (or false if not present)
-// +- SAME_NAME_SIBLINGS [nt:childNodeDefinition/@jcr:sameNameSiblings]
-// +- string containing boolean value (or false if not present)
-// +- ON_PARENT_VERSION [nt:childNodeDefinition/@jcr:onParentVersion]
-// +- string value (limited to one of the predefined literal values)
-//
-// Comments
-// --------
-// The JSR-283 specification states that comments are allowed in CND files but are to be removed prior
-// to parsing and processing. This grammar accomplishes this by sending the MULTI_LINE_COMMENT and
-// SINGLE_LINE_COMMENT tokens to the HIDDEN channel (along with all whitespace tokens).
-//
-// Case sensitivity
-// ----------------
-// ANTLR 3 has no way of generating a case-insensitive lexer/parser (since this is dependent upon locale).
-// However, it's possible to do this as outlined at http://www.antlr.org/wiki/pages/viewpage.action?pageId=1782.
-// Note that the approach that overrides the "LT" method does not change the content but merely changes the
-// character returned by the method, which are the characters used to match the rules.
-//
-// And this must be done for this grammar, since the CND tokens are case-insensitive. Note that this
-// grammar defines all tokens as lower-case, so the ANTLRFileStream subclass must perform a 'toLowerCase()'
-// rather than a 'toUpperCase()'.
-//
-// Post Processing
-// ---------------
-// A number of the values in the AST must be post-processed to perform the requisite validation.
-//
-// The string values may or may not be wrapped in quotes (single or double). Any quotes will
-// need to be removed in post-processing.
-//
-// Also, the QUERY_OPERATORS string value should contain a comma-separated list of operators
-// wrapped by single quotes. As noted below, this is a side effect of how this grammar's lexer
-// automatically produces a STRING token whenever single-quoted strings are found, so by the
-// time the parser rules are run, the operators are encapsulated in a STRING token.
-// (It's arguable whether this is a defect in the CND grammar, or a side effect of how this grammar
-// uses ANTLR; other parser and lexer rules were considered, but most caused a massive increase in
-// the size of the generated code and a massive decrease in performance.) In short, these
-// operators must be validated in a post-processing step.
-//
-// Generating JCR content
-// ----------------------
-//
-// The resulting AST's structure was designed such that it directly corresponds to the "nt:nodeType",
-// "nt:propertyDefinition", and "nt:childNodeDefinition" node types that are specified in JSR-283
-// (proposed draft), in the hopes that this approach could be used with a "standard" AST tree walker
-// that could automatically generate the JCR content.
-//
-// First of all, the structure follows a repeating multi-level pattern, where the "NODE" appears
-// in the AST when a new node should be created, with JCR properties
-// identified by AST nodes under "NODE" that have a single child (e.g., the property's value),
-// or with JCR child nodes identified by AST nodes under "NODE" that also contain an AST "NODE"
-// (with properties below it).
-//
-// The AST node names were designed to be easily translated into property names. ANTLR uses
-// all-caps for AST node names and '_' to separate words in those names. To produce the JCR name,
-// simply convert the first word to lowercase, and convert to lowercase all but the first character
-// of each remaining word, and finally remove all '_' characters.
-//
-// This grammar (mostly) uses the "jcr" prefix (the namespaces should probably be "dna").
-// This could be automated by defining a mapping between the AST node names and the property names
-// (as well as defining a default namespace for any AST node name that is to be converted automatically).
-//
-cnd : (namespaceMapping|nodeTypeDefinition)* EOF
- -> ^(NAMESPACES namespaceMapping*)? ^(NODE_TYPES nodeTypeDefinition*)? ;
-
-// Namespace mappings
-namespaceMapping : '<' prefix '=' uri '>' -> ^(NODE prefix uri);
-prefix : STRING -> ^(PREFIX STRING);
-uri : STRING -> ^(URI STRING);
-
-// Node type definitions
-nodeTypeDefinition : nodeTypeName supertypes? nodeTypeOptions? ( propertyDefinition | childNodeDefinition )*
- -> ^(NODE nodeTypeName ^(PRIMARY_TYPE STRING["nt:nodeType"]) supertypes? nodeTypeOptions? ^(PROPERTY_DEFINITION propertyDefinition*) ^(CHILD_NODE_DEFINITION childNodeDefinition*)) ;
-nodeTypeName : '[' STRING ']' -> ^(NAME STRING) ;
-supertypes : '>' stringList -> ^(SUPERTYPES stringList);
-nodeTypeOptions : nodeTypeOption+;
-nodeTypeOption : orderable | mixin | isAbstract | noQuery | primaryItem ;
-orderable : ('o'|'ord'|'orderable') -> ^(HAS_ORDERABLE_CHILD_NODES STRING["true"]);
-mixin : ('m' | 'mix' | 'mixin') -> ^(IS_MIXIN STRING["true"]);
-isAbstract : ('a'|'abs'|'abstract') -> ^(IS_ABSTRACT STRING["true"]);
-noQuery : ('nq'|'noquery') -> ^(IS_QUERYABLE STRING["false"]);
-primaryItem : ('primaryitem'|'!') STRING -> ^(PRIMARY_ITEM_NAME STRING);
-
-// Property definitions ...
-propertyDefinition : propertyName propertyType? defaultValues? ( propertyAttributes | valueConstraints )*
- -> ^(NODE propertyName ^(PRIMARY_TYPE STRING["nt:propertyDefinition"]) propertyType? defaultValues? propertyAttributes* valueConstraints*);
-propertyName : '-' STRING -> ^(NAME STRING);
-propertyType : '(' propertyTypeLiteral ')' -> ^(REQUIRED_TYPE propertyTypeLiteral);
-propertyTypeLiteral : ('string'|'binary'|'long'|'double'|'boolean'|'date'|'name'|'path'|'reference'|'*');
-defaultValues : '=' stringList -> ^(DEFAULT_VALUES stringList);
-propertyAttributes : ( (onParentVersioningLiteral)=>onParentVersioning | (autoCreated)=> autoCreated | (multiple)=>multiple | (mandatory)=>mandatory | (isProtected)=>isProtected | (queryOperators)=>queryOperators | (noFullText)=>noFullText | (noQueryOrder)=>noQueryOrder)+ ;
-//propertyAttributes : ( (onParentVersioning)=> onParentVersioning | ('a')=>autoCreated | ('m')=>mandatory |('p')=>isProtected | ('mul'|'*')=>multiple | ('q')=>queryOperators | ('nof')=>noFullText | ('nqord'|'noq')=>noQueryOrder)+ ;
-valueConstraints : '<' stringList -> ^(VALUE_CONSTRAINTS stringList);
-autoCreated : ('a'|'aut'|'autocreated') -> ^(AUTO_CREATED STRING["true"]);
-mandatory : ('m'|'man'|'mandatory') -> ^(MANDATORY STRING["true"]);
-isProtected : ('p'|'pro'|'protected') -> ^(PROTECTED STRING["true"]);
-onParentVersioning : onParentVersioningLiteral -> ^(ON_PARENT_VERSION onParentVersioningLiteral);
-onParentVersioningLiteral : ('copy'|'version'|'initialize'|'compute'|'ignore'|'abort');
-multiple : ('*'|'mul'|'multiple') -> ^(MULTIPLE STRING["true"]);
-noFullText : ('nof'|'nofulltext') -> ^(IS_FULL_TEXT_SEARCHABLE STRING["false"]);
-noQueryOrder : ('nqord'|'noqueryorder') -> ^(IS_QUERY_ORDERERABLE STRING["false"]);
-queryOperators : ('qop'|'queryops') STRING -> ^(QUERY_OPERATORS STRING);
-// The grammar defines the query operators to be wrapped by single quotes, and therefore the lexer produces a single STRING token.
-// Since we cannot break this token up, we simply store the operators as a STRING literal, and will have to process
-// at a later step.
-
-// Child node definitions ...
-childNodeDefinition : nodeName requiredTypes? defaultType? nodeAttributes?
- -> ^(NODE nodeName ^(PRIMARY_TYPE STRING["nt:childNodeDefinition"]) requiredTypes? defaultType? nodeAttributes?);
-nodeName : '+' STRING -> ^(NAME STRING);
-requiredTypes :'(' stringList ')' -> ^(REQUIRED_PRIMARY_TYPES stringList);
-defaultType : '=' STRING -> ^(DEFAULT_PRIMARY_TYPE STRING);
-nodeAttributes : nodeAttribute+;
-nodeAttribute : autoCreated | mandatory | isProtected | onParentVersioning | sns ;
-sns : ('sns'|'*') -> ^(SAME_NAME_SIBLINGS STRING["true"]) ;
-
-// General rules
-stringList : STRING (',' STRING )* -> STRING*;
-
-// ------------
-// Lexer rules
-// ------------
-
-// Comments are currently sent to a separate channel
-MULTI_LINE_COMMENT : ('/*' (options {greedy=false;} : . )* '*/') { $channel=HIDDEN;};
-SINGLE_LINE_COMMENT : '//' ~('\n' | '\r')* { $channel=HIDDEN;};
-
-// Quoted strings allow for strings containing characters that otherwise would be CND delimiters.
-// Note that the single- and double-quote characters must be escaped within the string.
-// Also note that escape sequences are allowed as well.
-STRING : QUOTED_STRING | UNQUOTED_STRING;
-
-// Quoted strings may contain escaped characters.
-fragment QUOTED_STRING
- : '"' ( EscapeSequence | ~('\\'|'"'))* '"'
- | '\'' ( EscapeSequence | ~('\\'|'\''))* '\''
- ;
-
-fragment EscapeSequence
- : '\\' ('b'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\'
- |('0'..'3') (('0'..'7') ('0'..'7')?)?
- |'u'(('0'..'9')|('a'..'f')) (('0'..'9')|('a'..'f')) (('0'..'9')|('a'..'f'))
- )
-;
-
-// An unquoted string is a word delimited by whitespace and CND tokens.
-fragment UNQUOTED_STRING
-: (~(' '|'\r'|'\t'|'\u000C'|'\n' // whitespace
- |'='|'<'|'>'|'['|']'|','|'-'|'('|')' // tokens
- ))+;
-
-WS : (' '|'\r'|'\t'|'\u000C'|'\n')+ {$channel=HIDDEN;} ;
-
-
Deleted: trunk/dna-cnd/src/main/antlr3/org/jboss/dna/cnd/Cnd.g
===================================================================
--- trunk/dna-cnd/src/main/antlr3/org/jboss/dna/cnd/Cnd.g 2009-09-16 14:39:42 UTC (rev 1225)
+++ trunk/dna-cnd/src/main/antlr3/org/jboss/dna/cnd/Cnd.g 2009-09-16 14:40:56 UTC (rev 1226)
@@ -1,368 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-grammar Cnd;
-
-options {
- output=AST;
-}
-
-
-tokens {
- NAMESPACES;
- PREFIX;
- URI;
- NODE;
- NAME;
- PRIMARY_TYPE;
- SUPERTYPES;
- NODE_TYPES;
- NODE_TYPE_ATTRIBUTES;
- HAS_ORDERABLE_CHILD_NODES;
- IS_MIXIN;
- IS_ABSTRACT;
- IS_QUERYABLE;
- PRIMARY_ITEM_NAME;
- PROPERTY_DEFINITION;
- REQUIRED_TYPE;
- DEFAULT_VALUES;
- VALUE_CONSTRAINTS;
- AUTO_CREATED;
- MANDATORY;
- PROTECTED;
- REQUIRED_TYPE;
- ON_PARENT_VERSION;
- MULTIPLE;
- IS_PRIMARY_PROPERTY;
- QUERY_OPERATORS;
- IS_FULL_TEXT_SEARCHABLE;
- IS_QUERY_ORDERERABLE;
- CHILD_NODE_DEFINITION;
- REQUIRED_PRIMARY_TYPES;
- DEFAULT_PRIMARY_TYPE;
- SAME_NAME_SIBLINGS;
-}
-
-@header {
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.cnd;
-}
-
-@members {
-@Override
-public void emitErrorMessage( String msg ) {
- // don't write messages to System.err ...
- //super.emitErrorMessage(msg);
-}
-}
-
-@lexer::header {
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.cnd;
-}
-
-@rulecatch {
- catch (RecognitionException re) {
- reportError(re);
- }
-}
-
-// ------------
-// Parser rules
-// ------------
-
-// These rules generate an AST that was designed with a structure that may be
-// automatically processed into a graph structure. This structure is:
-//
-// NAMESPACES
-// +- NODE (multiple)
-// +- PREFIX
-// +- string value
-// +- URI
-// +- string value
-// NODE_TYPES
-// +- NODE (multiple)
-// +- NAME [nt:nodeType/@jcr:name]
-// +- string value
-// +- PRIMARY_TYPE [nt:base/@jcr:primaryType]
-// +- string with value 'nt:nodeType'
-// +- SUPERTYPES [nt:nodeType/@jcr:supertypes]
-// +- string value(s)
-// +- IS_ABSTRACT [nt:nodeType/@jcr:isAbstract]
-// +- string containing boolean value (or false if not present)
-// +- HAS_ORDERABLE_CHILD_NODES [nt:nodeType/@jcr:hasOrderableChildNodes]
-// +- string containing boolean value (or false if not present)
-// +- IS_MIXIN [nt:nodeType/@jcr:isMixin]
-// +- string containing boolean value (or false if not present)
-// +- IS_QUERYABLE [nt:nodeType/@jcr:isQueryable]
-// +- string containing boolean value (or true if not present)
-// +- PRIMARY_ITEM_NAME [nt:nodeType/@jcr:primaryItemName]
-// +- string containing string value
-// +- PROPERTY_DEFINITION [nt:nodeType/@jcr:propertyDefinition]
-// +- NODE (multiple)
-// +- NAME [nt:propertyDefinition/@jcr:name]
-// +- string value
-// +- PRIMARY_TYPE [nt:base/@jcr:primaryType]
-// +- string with value 'nt:propertyDefinition'
-// +- REQUIRED_TYPE [nt:propertyDefinition/@jcr:propertyType]
-// +- string value (limited to one of the predefined types)
-// +- DEFAULT_VALUES [nt:propertyDefinition/@jcr:defaultValues]
-// +- string value(s)
-// +- MULTIPLE [nt:propertyDefinition/@jcr:multiple]
-// +- string containing boolean value (or false if not present)
-// +- MANDATORY [nt:propertyDefinition/@jcr:mandatory]
-// +- string containing boolean value (or false if not present)
-// +- AUTO_CREATED [nt:propertyDefinition/@jcr:autoCreated]
-// +- string containing boolean value (or false if not present)
-// +- PROTECTED [nt:propertyDefinition/@jcr:protected]
-// +- string containing boolean value (or false if not present)
-// +- ON_PARENT_VERSION [nt:propertyDefinition/@jcr:onParentVersion]
-// +- string value (limited to one of the predefined literal values)
-// +- QUERY_OPERATORS
-// +- string value (containing a comma-separated list of operator literals)
-// +- IS_FULL_TEXT_SEARCHABLE [nt:propertyDefinition/@jcr:isFullTextSearchable]
-// +- string containing boolean value (or true if not present)
-// +- IS_QUERY_ORDERABLE [nt:propertyDefinition/@jcr:isQueryOrderable]
-// +- string containing boolean value (or true if not present)
-// +- VALUE_CONSTRAINTS [nt:propertyDefinition/@jcr:valueConstraints]
-// +- string value(s)
-// +- CHILD_NODE_DEFINITION [nt:nodeType/@jcr:childNodeDefinition]
-// +- NODE (multiple)
-// +- NAME [nt:childNodeDefinition/@jcr:name]
-// +- string value
-// +- PRIMARY_TYPE [nt:base/@jcr:primaryType]
-// +- string with value 'nt:childNodeDefinition'
-// +- REQUIRED_PRIMARY_TYPES [nt:childNodeDefinition/@jcr:requiredPrimaryTypes]
-// +- string values (limited to names)
-// +- DEFAULT_PRIMARY_TYPE [nt:childNodeDefinition/@jcr:defaultPrimaryType]
-// +- string value (limited to a name)
-// +- MANDATORY [nt:childNodeDefinition/@jcr:mandatory]
-// +- string containing boolean value (or false if not present)
-// +- AUTO_CREATED [nt:childNodeDefinition/@jcr:autoCreated]
-// +- string containing boolean value (or false if not present)
-// +- PROTECTED [nt:childNodeDefinition/@jcr:protected]
-// +- string containing boolean value (or false if not present)
-// +- SAME_NAME_SIBLINGS [nt:childNodeDefinition/@jcr:sameNameSiblings]
-// +- string containing boolean value (or false if not present)
-// +- ON_PARENT_VERSION [nt:childNodeDefinition/@jcr:onParentVersion]
-// +- string value (limited to one of the predefined literal values)
-//
-// JSR-283 node types
-// ------------------
-// This grammar does support reading in the new 'decimal', 'weakreference' and 'uri' property types. Therefore, it
-// is up to the calling component to verify that these types are allowed. Supporting these new types means
-// that this CND grammar can be used for both JSR-170 and JSR-283.
-//
-// Comments
-// --------
-// The JSR-283 specification states that comments are allowed in CND files but are to be removed prior
-// to parsing and processing. This grammar accomplishes this by sending the MULTI_LINE_COMMENT and
-// SINGLE_LINE_COMMENT tokens to the HIDDEN channel (along with all whitespace tokens).
-//
-// Case sensitivity
-// ----------------
-// ANTLR 3 has no way of generating a case-insensitive lexer/parser (since this is dependent upon locale).
-// However, it's possible to do this as outlined at http://www.antlr.org/wiki/pages/viewpage.action?pageId=1782.
-// Note that the approach that overrides the "LT" method does not change the content but merely changes the
-// character returned by the method, which are the characters used to match the rules.
-//
-// And this must be done for this grammar, since the CND tokens are case-insensitive. Note that this
-// grammar defines all tokens as lower-case, so the ANTLRFileStream subclass must perform a 'toLowerCase()'
-// rather than a 'toUpperCase()'.
-//
-// Post Processing
-// ---------------
-// A number of the values in the AST must be post-processed to perform the requisite validation.
-//
-// The string values may or may not be wrapped in quotes (single or double). Any quotes will
-// need to be removed in post-processing.
-//
-// Also, the QUERY_OPERATORS string value should contain a comma-separated list of operators
-// wrapped by single quotes. As noted below, this is a side effect of how this grammar's lexer
-// automatically produces a STRING token whenever single-quoted strings are found, so by the
-// time the parser rules are run, the operators are encapsulated in a STRING token.
-// (It's arguable whether this is a defect in the CND grammar, or a side effect of how this grammar
-// uses ANTLR; other parser and lexer rules were considered, but most caused a massive increase in
-// the size of the generated code and a massive decrease in performance.) In short, these
-// operators must be validated in a post-processing step.
-//
-// Generating JCR content
-// ----------------------
-//
-// The resulting AST's structure was designed such that it directly corresponds to the "nt:nodeType",
-// "nt:propertyDefinition", and "nt:childNodeDefinition" node types that are specified in JSR-283
-// (proposed draft), in the hopes that this approach could be used with a "standard" AST tree walker
-// that could automatically generate the JCR content.
-//
-// First of all, the structure follows a repeating multi-level pattern, where the "NODE" appears
-// in the AST when a new node should be created, with JCR properties
-// identified by AST nodes under "NODE" that have a single child (e.g., the property's value),
-// or with JCR child nodes identified by AST nodes under "NODE" that also contain an AST "NODE"
-// (with properties below it).
-//
-// The AST node names were designed to be easily translated into property names. ANTLR uses
-// all-caps for AST node names and '_' to separate words in those names. To produce the JCR name,
-// simply convert the first word to lowercase, and convert to lowercase all but the first character
-// of each remaining word, and finally remove all '_' characters.
-//
-// This grammar (mostly) uses the "jcr" prefix (the namespaces should probably be "dna").
-// This could be automated by defining a mapping between the AST node names and the property names
-// (as well as defining a default namespace for any AST node name that is to be converted automatically).
-//
-cnd : (namespaceMapping|nodeTypeDefinition)* EOF
- -> ^(NAMESPACES namespaceMapping*)? ^(NODE_TYPES nodeTypeDefinition*)? ;
-
-// Namespace mappings
-namespaceMapping : '<' prefix '=' uri '>' -> ^(NODE prefix uri);
-prefix :
- | 'mix' -> ^(PREFIX 'mix') // Must break out this built-in prefix because it happens to be a keyword
- | STRING -> ^(PREFIX STRING);
-uri : STRING -> ^(URI STRING);
-
-// Node type definitions
-nodeTypeDefinition : nodeTypeName supertypes? nodeTypeOptions? ( propertyDefinition | childNodeDefinition )*
- -> ^(NODE nodeTypeName ^(PRIMARY_TYPE STRING["nt:nodeType"]) supertypes? nodeTypeOptions? ^(PROPERTY_DEFINITION propertyDefinition*) ^(CHILD_NODE_DEFINITION childNodeDefinition*)) ;
-nodeTypeName : '[' STRING ']' -> ^(NAME STRING) ;
-supertypes : '>' stringList -> ^(SUPERTYPES stringList);
-nodeTypeOptions : nodeTypeOption+;
-nodeTypeOption : orderable | mixin | isAbstract | noQuery | primaryItem ;
-orderable : ('o'|'ord'|'orderable') -> ^(HAS_ORDERABLE_CHILD_NODES STRING["true"]);
-mixin : ('m' | 'mix' | 'mixin') -> ^(IS_MIXIN STRING["true"]);
-isAbstract : ('a'|'abs'|'abstract') -> ^(IS_ABSTRACT STRING["true"]);
-noQuery : ('nq'|'noquery') -> ^(IS_QUERYABLE STRING["false"]);
-primaryItem : ('primaryitem'|'!') STRING -> ^(PRIMARY_ITEM_NAME STRING);
-
-// Property definitions ...
-propertyDefinition : propertyName propertyType? defaultValues? ( propertyAttributes | valueConstraints )*
- -> ^(NODE propertyName ^(PRIMARY_TYPE STRING["nt:propertyDefinition"]) propertyType? defaultValues? propertyAttributes* valueConstraints*);
-propertyName : '-' ('*' -> ^(NAME '*') | STRING -> ^(NAME STRING));
-propertyType : '(' propertyTypeLiteral ')' -> ^(REQUIRED_TYPE propertyTypeLiteral);
-propertyTypeLiteral : ('string'|'binary'|'long'|'double'|'boolean'|'decimal'|'date'|'name'|'path'|'reference'|'*'|'undefined'|'weakreference'|'uri');
-defaultValues : '=' stringList -> ^(DEFAULT_VALUES stringList);
-propertyAttributes : ( (isPrimary)=>isPrimary | (onParentVersioningLiteral)=>onParentVersioning | (autoCreated)=> autoCreated | (multiple)=>multiple | (mandatory)=>mandatory | (isProtected)=>isProtected | (queryOperators)=>queryOperators | (noFullText)=>noFullText | (noQueryOrder)=>noQueryOrder)+ ;
-//propertyAttributes : ( (onParentVersioning)=> onParentVersioning | ('a')=>autoCreated | ('m')=>mandatory |('p')=>isProtected | ('mul'|'*')=>multiple | ('q')=>queryOperators | ('nof')=>noFullText | ('nqord'|'noq')=>noQueryOrder)+ ;
-valueConstraints : '<' stringList -> ^(VALUE_CONSTRAINTS stringList);
-isPrimary : ('!'|'pri'|'primary') -> ^(IS_PRIMARY_PROPERTY STRING["true"]);
-autoCreated : ('a'|'aut'|'autocreated') -> ^(AUTO_CREATED STRING["true"]);
-mandatory : ('m'|'man'|'mandatory') -> ^(MANDATORY STRING["true"]);
-isProtected : ('p'|'pro'|'protected') -> ^(PROTECTED STRING["true"]);
-onParentVersioning : onParentVersioningLiteral -> ^(ON_PARENT_VERSION onParentVersioningLiteral);
-onParentVersioningLiteral : ('copy'|'version'|'initialize'|'compute'|'ignore'|'abort');
-multiple : ('*'|'mul'|'multiple') -> ^(MULTIPLE STRING["true"]);
-noFullText : ('nof'|'nofulltext') -> ^(IS_FULL_TEXT_SEARCHABLE STRING["false"]);
-noQueryOrder : ('nqord'|'noqueryorder') -> ^(IS_QUERY_ORDERERABLE STRING["false"]);
-queryOperators : ('qop'|'queryops') STRING -> ^(QUERY_OPERATORS STRING);
-// The grammar defines the query operators to be wrapped by single quotes, and therefore the lexer produces a single STRING token.
-// Since we cannot break this token up, we simply store the operators as a STRING literal, and will have to process
-// at a later step.
-
-// Child node definitions ...
-childNodeDefinition : nodeName requiredTypes? defaultType? nodeAttributes?
- -> ^(NODE nodeName ^(PRIMARY_TYPE STRING["nt:childNodeDefinition"]) requiredTypes? defaultType? nodeAttributes?);
-nodeName : '+' ('*' -> ^(NAME '*') | STRING -> ^(NAME STRING));
-requiredTypes :'(' stringList ')' -> ^(REQUIRED_PRIMARY_TYPES stringList);
-defaultType : '=' STRING -> ^(DEFAULT_PRIMARY_TYPE STRING);
-nodeAttributes : nodeAttribute+;
-nodeAttribute : autoCreated | mandatory | (isPrimary)=>isPrimary| (isProtected)=>isProtected | onParentVersioning | sns ;
-sns : ('sns'|'*'|'multiple') -> ^(SAME_NAME_SIBLINGS STRING["true"]) ;
-
-// General rules
-stringList : STRING (',' STRING )* -> STRING*;
-
-// ------------
-// Lexer rules
-// ------------
-
-// Comments are currently sent to a separate channel
-MULTI_LINE_COMMENT : ('/*' (options {greedy=false;} : . )* '*/') { $channel=HIDDEN;};
-SINGLE_LINE_COMMENT : '//' ~('\n' | '\r')* { $channel=HIDDEN;};
-
-// Quoted strings allow for strings containing characters that otherwise would be CND delimiters.
-// Note that the single- and double-quote characters must be escaped within the string.
-// Also note that escape sequences are allowed as well.
-STRING : QUOTED_STRING | UNQUOTED_STRING;
-
-// Quoted strings may contain escaped characters.
-fragment QUOTED_STRING
- : '"' ( EscapeSequence | ~('"'))* '"'
- | '\'' ( EscapeSequence | ~('\''))* '\''
- ;
-
-fragment EscapeSequence
- : '\\' ('b'|'t'|'n'|'f'|'r'|'\"'|'\''|'\\'
- |('0'..'3') (('0'..'7') ('0'..'7')?)?
- |'u'(('0'..'9')|('a'..'f')) (('0'..'9')|('a'..'f')) (('0'..'9')|('a'..'f'))
- )
-;
-
-// An unquoted string is a word delimited by whitespace and CND tokens.
-fragment UNQUOTED_STRING
-: (~(' '|'\r'|'\t'|'\u000C'|'\n' // whitespace
- |'='|'<'|'>'|'['|']'|','|'-'|'('|')' // tokens
- ))+;
-
-WS : (' '|'\r'|'\t'|'\u000C'|'\n')+ {$channel=HIDDEN;} ;
\ No newline at end of file
Modified: trunk/dna-cnd/src/main/java/org/jboss/dna/cnd/CndI18n.java
===================================================================
--- trunk/dna-cnd/src/main/java/org/jboss/dna/cnd/CndI18n.java 2009-09-16 14:39:42 UTC (rev 1225)
+++ trunk/dna-cnd/src/main/java/org/jboss/dna/cnd/CndI18n.java 2009-09-16 14:40:56 UTC (rev 1226)
@@ -30,15 +30,11 @@
*/
public final class CndI18n {
- public static I18n passthrough;
public static I18n errorImportingCndContent;
- public static I18n expectedBooleanLiteral;
- public static I18n expectedStringLiteral;
public static I18n expectedValidNameLiteral;
public static I18n expectedValidQueryOperator;
- public static I18n expectedValidPropertyTypeName;
- public static I18n expectedValidOnParentVersion;
- public static I18n locationFromLineNumberAndCharacter;
+ public static I18n expectedNamespaceOrNodeDefinition;
+ public static I18n vendorBlockWasNotClosed;
static {
try {
Modified: trunk/dna-cnd/src/main/java/org/jboss/dna/cnd/CndImporter.java
===================================================================
--- trunk/dna-cnd/src/main/java/org/jboss/dna/cnd/CndImporter.java 2009-09-16 14:39:42 UTC (rev 1225)
+++ trunk/dna-cnd/src/main/java/org/jboss/dna/cnd/CndImporter.java 2009-09-16 14:40:56 UTC (rev 1226)
@@ -23,7 +23,7 @@
*/
package org.jboss.dna.cnd;
-import java.io.ByteArrayInputStream;
+import static org.jboss.dna.common.text.TokenStream.ANY_VALUE;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
@@ -34,30 +34,26 @@
import java.util.List;
import java.util.Set;
import net.jcip.annotations.NotThreadSafe;
-import org.antlr.runtime.ANTLRFileStream;
-import org.antlr.runtime.ANTLRInputStream;
-import org.antlr.runtime.CharStream;
-import org.antlr.runtime.CommonTokenStream;
-import org.antlr.runtime.RecognitionException;
-import org.antlr.runtime.TokenStream;
-import org.antlr.runtime.tree.CommonTree;
-import org.antlr.runtime.tree.RewriteCardinalityException;
import org.jboss.dna.common.collection.Problems;
-import org.jboss.dna.common.i18n.I18n;
+import org.jboss.dna.common.text.TokenStream;
+import org.jboss.dna.common.text.TokenStream.ParsingException;
+import org.jboss.dna.common.text.TokenStream.Position;
+import org.jboss.dna.common.text.TokenStream.Tokenizer;
import org.jboss.dna.common.util.CheckArg;
+import org.jboss.dna.common.util.IoUtil;
import org.jboss.dna.graph.ExecutionContext;
import org.jboss.dna.graph.JcrLexicon;
import org.jboss.dna.graph.JcrNtLexicon;
import org.jboss.dna.graph.io.Destination;
import org.jboss.dna.graph.property.Name;
import org.jboss.dna.graph.property.NameFactory;
-import org.jboss.dna.graph.property.NamespaceRegistry;
import org.jboss.dna.graph.property.Path;
import org.jboss.dna.graph.property.PathFactory;
+import org.jboss.dna.graph.property.Property;
import org.jboss.dna.graph.property.PropertyFactory;
-import org.jboss.dna.graph.property.ValueFactory;
+import org.jboss.dna.graph.property.PropertyType;
+import org.jboss.dna.graph.property.ValueFactories;
import org.jboss.dna.graph.property.ValueFormatException;
-import org.jboss.dna.graph.property.basic.LocalNamespaceRegistry;
/**
* A class that imports the node types contained in a JCR Compact Node Definition (CND) file into graph content. The content is
@@ -71,70 +67,63 @@
@NotThreadSafe
public class CndImporter {
- private static final Set<String> VALID_PROPERTY_TYPES = Collections.unmodifiableSet(new HashSet<String>(
- Arrays.asList(new String[] {
- "STRING",
- "BINARY", "LONG",
- "DOUBLE",
- "BOOLEAN",
- "DECIMAL",
- "DATE", "NAME",
- "PATH",
- "REFERENCE",
- "WEAKREFERENCE",
- "URI",
- "UNDEFINED"})));
- private static final Set<String> VALID_ON_PARENT_VERSION = Collections.unmodifiableSet(new HashSet<String>(
- Arrays.asList(new String[] {
- "COPY",
- "VERSION",
- "INITIALIZE",
- "COMPUTE",
- "IGNORE",
- "ABORT"})));
+ protected final List<String> VALID_PROPERTY_TYPES = Collections.unmodifiableList(Arrays.asList(new String[] {"STRING",
+ "BINARY", "LONG", "DOUBLE", "BOOLEAN", "DATE", "NAME", "PATH", "REFERENCE", "WEAKREFERENCE", "DECIMAL", "URI",
+ "UNDEFINED", "*", "?"}));
+
+ protected final List<String> VALID_ON_PARENT_VERSION = Collections.unmodifiableList(Arrays.asList(new String[] {"COPY",
+ "VERSION", "INITIALIZE", "COMPUTE", "IGNORE", "ABORT"}));
+
+ protected final Set<String> VALID_QUERY_OPERATORS = Collections.unmodifiableSet(new HashSet<String>(
+ Arrays.asList(new String[] {
+ "=", "<>", "<", "<=",
+ ">", ">=", "LIKE"})));
+
protected final Destination destination;
- protected final Path parentPath;
- private boolean debug = false;
+ protected final Path outputPath;
+ protected final PropertyFactory propertyFactory;
+ protected final PathFactory pathFactory;
+ protected final NameFactory nameFactory;
+ protected final ValueFactories valueFactories;
+ protected final boolean jcr170;
/**
* Create a new importer that will place the content in the supplied destination under the supplied path.
*
* @param destination the destination where content is to be written
* @param parentPath the path in the destination below which the generated content is to appear
+ * @param compatibleWithPreJcr2 true if this parser should accept the CND format that was used in the reference implementation
+ * prior to JCR 2.0.
* @throws IllegalArgumentException if either parameter is null
*/
public CndImporter( Destination destination,
- Path parentPath ) {
+ Path parentPath,
+ boolean compatibleWithPreJcr2 ) {
CheckArg.isNotNull(destination, "destination");
CheckArg.isNotNull(parentPath, "parentPath");
this.destination = destination;
- this.parentPath = parentPath;
+ this.outputPath = parentPath;
+ ExecutionContext context = destination.getExecutionContext();
+ this.valueFactories = context.getValueFactories();
+ this.propertyFactory = context.getPropertyFactory();
+ this.pathFactory = valueFactories.getPathFactory();
+ this.nameFactory = valueFactories.getNameFactory();
+ this.jcr170 = compatibleWithPreJcr2;
}
- void setDebug( boolean value ) {
- this.debug = value;
+ /**
+ * Create a new importer that will place the content in the supplied destination under the supplied path. This parser will
+ * accept the CND format that was used in the reference implementation prior to JCR 2.0.
+ *
+ * @param destination the destination where content is to be written
+ * @param parentPath the path in the destination below which the generated content is to appear
+ * @throws IllegalArgumentException if either parameter is null
+ */
+ public CndImporter( Destination destination,
+ Path parentPath ) {
+ this(destination, parentPath, true);
}
- protected ExecutionContext context() {
- return this.destination.getExecutionContext();
- }
-
- protected NamespaceRegistry namespaces() {
- return context().getNamespaceRegistry();
- }
-
- protected NameFactory nameFactory() {
- return context().getValueFactories().getNameFactory();
- }
-
- protected ValueFactory<String> stringFactory() {
- return context().getValueFactories().getStringFactory();
- }
-
- protected ValueFactory<Boolean> booleanFactory() {
- return context().getValueFactories().getBooleanFactory();
- }
-
/**
* Import the CND content from the supplied stream, placing the content into the importer's destination.
*
@@ -147,611 +136,572 @@
public void importFrom( InputStream stream,
Problems problems,
String resourceName ) throws IOException {
- CndLexer lex = new CndLexer(new CaseInsensitiveInputStream(stream));
- importFrom(lex, resourceName, problems);
+ importFrom(IoUtil.read(stream), problems, resourceName);
}
/**
* Import the CND content from the supplied stream, placing the content into the importer's destination.
*
- * @param content the string containing the CND content
+ * @param file the file containing the CND content
* @param problems where any problems encountered during import should be reported
- * @param resourceName a logical name for the resource name to be used when reporting problems; may be null if there is no
- * useful name
* @throws IOException if there is a problem reading from the supplied stream
*/
- public void importFrom( String content,
- Problems problems,
- String resourceName ) throws IOException {
- ByteArrayInputStream stream = new ByteArrayInputStream(content.getBytes());
- importFrom(stream, problems, resourceName);
+ public void importFrom( File file,
+ Problems problems ) throws IOException {
+ importFrom(IoUtil.read(file), problems, file.getCanonicalPath());
}
/**
* Import the CND content from the supplied stream, placing the content into the importer's destination.
*
- * @param file the file containing the CND content
+ * @param content the string containing the CND content
* @param problems where any problems encountered during import should be reported
- * @throws IOException if there is a problem reading from the supplied stream
+ * @param resourceName a logical name for the resource name to be used when reporting problems; may be null if there is no
+ * useful name
*/
- public void importFrom( File file,
- Problems problems ) throws IOException {
- CndLexer lex = new CndLexer(new CaseInsensitiveFileStream(file.getAbsolutePath()));
- importFrom(lex, file.getCanonicalPath(), problems);
- }
-
- protected void importFrom( CndLexer lexer,
- String resourceName,
- Problems problems ) {
- CommonTokenStream tokens = new CommonTokenStream(lexer);
- CndParser parser = new Parser(tokens, problems, resourceName);
-
- // Create a new context with our own namespace registry ...
- ImportContext context = new ImportContext(context(), problems, resourceName);
- CommonTree ast = null;
+ public void importFrom( String content,
+ Problems problems,
+ String resourceName ) {
try {
- ast = (CommonTree)parser.cnd().getTree();
- } catch (RecognitionException e) {
- // already handled by Parser, so we should not handle twice
- } catch (RewriteCardinalityException e) {
- // already handled by Parser, so we should not handle twice
+ parse(content);
+ destination.submit();
} catch (RuntimeException e) {
problems.addError(e, CndI18n.errorImportingCndContent, (Object)resourceName, e.getMessage());
}
+ }
- if (ast != null && problems.isEmpty()) {
-
- // --------------
- // Namespaces ...
- // --------------
-
- /*
- NAMESPACES
- +- NODE (multiple)
- +- PREFIX
- +- string value
- +- URI
- +- string value
- */
-
- // Get the namespaces before we do anything else ...
- CommonTree namespaces = (CommonTree)ast.getFirstChildWithType(CndLexer.NAMESPACES);
- if (namespaces != null) {
- for (int i = 0; i != namespaces.getChildCount(); ++i) {
- CommonTree namespace = (CommonTree)namespaces.getChild(i);
- String prefix = namespace.getFirstChildWithType(CndLexer.PREFIX).getChild(0).getText();
- String uri = namespace.getFirstChildWithType(CndLexer.URI).getChild(0).getText();
- // Register the namespace ...
- context.register(removeQuotes(prefix), removeQuotes(uri));
- }
+ /**
+ * Parse the CND content.
+ *
+ * @param content the content
+ * @throws ParsingException if there is a problem parsing the content
+ */
+ protected void parse( String content ) {
+ Tokenizer tokenizer = new CndTokenizer(false, false);
+ TokenStream tokens = new TokenStream(content, tokenizer, false);
+ tokens.start();
+ while (tokens.hasNext()) {
+ // Keep reading while we can recognize one of the two types of statements ...
+ if (tokens.matches("<", ANY_VALUE, "=", ANY_VALUE, ">")) {
+ parseNamespaceMapping(tokens);
+ } else if (tokens.matches("[", ANY_VALUE, "]")) {
+ parseNodeTypeDefinition(tokens, outputPath);
+ } else {
+ Position position = tokens.previousPosition();
+ throw new ParsingException(position, CndI18n.expectedNamespaceOrNodeDefinition.text(tokens.consume(),
+ position.getLine(),
+ position.getColumn()));
}
+ }
+ }
- // --------------
- // Node Types ...
- // --------------
+ /**
+ * Parse the namespace mapping statement that is next on the token stream.
+ *
+ * @param tokens the tokens containing the namespace statement; never null
+ * @throws ParsingException if there is a problem parsing the content
+ */
+ protected void parseNamespaceMapping( TokenStream tokens ) {
+ tokens.consume('<');
+ String prefix = removeQuotes(tokens.consume());
+ tokens.consume('=');
+ String uri = removeQuotes(tokens.consume());
+ tokens.consume('>');
+ // Register the namespace ...
+ destination.getExecutionContext().getNamespaceRegistry().register(prefix, uri);
+ }
- /*
- NODE_TYPES
- +- NODE (multiple)
- +- NAME [nt:nodeType/@jcr:name]
- +- string value
- +- PRIMARY_TYPE [nt:base/@jcr:primaryType]
- +- string with value 'nt:nodeType'
- +- SUPERTYPES [nt:nodeType/@jcr:supertypes]
- +- string value(s)
- +- IS_ABSTRACT [nt:nodeType/@jcr:isAbstract]
- +- string containing boolean value (or false if not present)
- +- HAS_ORDERABLE_CHILD_NODES [nt:nodeType/@jcr:hasOrderableChildNodes]
- +- string containing boolean value (or false if not present)
- +- IS_MIXIN [nt:nodeType/@jcr:isMixin]
- +- string containing boolean value (or false if not present)
- +- IS_QUERYABLE [nt:nodeType/@jcr:isQueryable]
- +- string containing boolean value (or true if not present)
- +- PRIMARY_ITEM_NAME [nt:nodeType/@jcr:primaryItemName]
- +- string containing string value
- +- PROPERTY_DEFINITION [nt:nodeType/@jcr:propertyDefinition]
- +- NODE (multiple)
- +- NAME [nt:propertyDefinition/@jcr:name]
- +- string value
- +- PRIMARY_TYPE [nt:base/@jcr:primaryType]
- +- string with value 'nt:propertyDefinition'
- +- REQUIRED_TYPE [nt:propertyDefinition/@jcr:propertyType]
- +- string value (limited to one of the predefined types)
- +- DEFAULT_VALUES [nt:propertyDefinition/@jcr:defaultValues]
- +- string value(s)
- +- MULTIPLE [nt:propertyDefinition/@jcr:multiple]
- +- string containing boolean value (or false if not present)
- +- MANDATORY [nt:propertyDefinition/@jcr:mandatory]
- +- string containing boolean value (or false if not present)
- +- AUTO_CREATED [nt:propertyDefinition/@jcr:autoCreated]
- +- string containing boolean value (or false if not present)
- +- PROTECTED [nt:propertyDefinition/@jcr:protected]
- +- string containing boolean value (or false if not present)
- +- ON_PARENT_VERSION [nt:propertyDefinition/@jcr:onParentVersion]
- +- string value (limited to one of the predefined literal values)
- +- QUERY_OPERATORS
- +- string value (containing a comma-separated list of operator literals)
- +- IS_FULL_TEXT_SEARCHABLE [nt:propertyDefinition/@jcr:isFullTextSearchable]
- +- string containing boolean value (or true if not present)
- +- IS_QUERY_ORDERABLE [nt:propertyDefinition/@jcr:isQueryOrderable]
- +- string containing boolean value (or true if not present)
- +- VALUE_CONSTRAINTS [nt:propertyDefinition/@jcr:valueConstraints]
- +- string value(s)
- +- CHILD_NODE_DEFINITION [nt:nodeType/@jcr:childNodeDefinition]
- +- NODE (multiple)
- +- NAME [nt:childNodeDefinition/@jcr:name]
- +- string value
- +- PRIMARY_TYPE [nt:base/@jcr:primaryType]
- +- string with value 'nt:childNodeDefinition'
- +- REQUIRED_PRIMARY_TYPES [nt:childNodeDefinition/@jcr:requiredPrimaryTypes]
- +- string values (limited to names)
- +- DEFAULT_PRIMARY_TYPE [nt:childNodeDefinition/@jcr:defaultPrimaryType]
- +- string value (limited to a name)
- +- MANDATORY [nt:childNodeDefinition/@jcr:mandatory]
- +- string containing boolean value (or false if not present)
- +- AUTO_CREATED [nt:childNodeDefinition/@jcr:autoCreated]
- +- string containing boolean value (or false if not present)
- +- PROTECTED [nt:childNodeDefinition/@jcr:protected]
- +- string containing boolean value (or false if not present)
- +- SAME_NAME_SIBLINGS [nt:childNodeDefinition/@jcr:sameNameSiblings]
- +- string containing boolean value (or false if not present)
- +- ON_PARENT_VERSION [nt:childNodeDefinition/@jcr:onParentVersion]
- +- string value (limited to one of the predefined literal values)
- */
+ /**
+ * Parse the node type definition that is next on the token stream.
+ *
+ * @param tokens the tokens containing the node type definition; never null
+ * @param path the path in the destination under which the node type definition should be stored; never null
+ * @throws ParsingException if there is a problem parsing the content
+ */
+ protected void parseNodeTypeDefinition( TokenStream tokens,
+ Path path ) {
+ // Parse the name, and create the path and a property for the name ...
+ Name name = parseNodeTypeName(tokens);
+ Path nodeTypePath = pathFactory.create(path, name);
+ List<Property> properties = new ArrayList<Property>();
+ properties.add(propertyFactory.create(JcrLexicon.NODE_TYPE_NAME, name));
- // Get the node types ...
- CommonTree nodeTypes = (CommonTree)ast.getFirstChildWithType(CndLexer.NODE_TYPES);
- if (nodeTypes != null) {
- int numNodeTypes = 0;
- // Walk each of the nodes underneath the NODE_TYPES parent node ...
- for (int i = 0; i != nodeTypes.getChildCount(); ++i) {
- CommonTree nodeType = (CommonTree)nodeTypes.getChild(i);
- if (this.debug) System.out.println(nodeType.toStringTree());
- Path nodeTypePath = context.createNodeType(nodeType, parentPath);
- if (nodeTypePath == null) continue;
- ++numNodeTypes;
+ // Read the (optional) supertypes ...
+ List<Name> supertypes = parseSupertypes(tokens);
+ properties.add(propertyFactory.create(JcrLexicon.SUPERTYPES, supertypes)); // even if empty
- CommonTree propertyDefinitions = (CommonTree)nodeType.getFirstChildWithType(CndLexer.PROPERTY_DEFINITION);
- if (propertyDefinitions != null) {
- // Walk each of the nodes under PROPERTY_DEFINITION ...
- for (int j = 0; j != propertyDefinitions.getChildCount(); ++j) {
- CommonTree propDefn = (CommonTree)propertyDefinitions.getChild(j);
- context.createPropertyDefinition(propDefn, nodeTypePath);
- }
- }
+ // Read the node type options ...
+ parseNodeTypeOptions(tokens, properties);
+ destination.create(nodeTypePath, properties);
- CommonTree childNodeDefinitions = (CommonTree)nodeType.getFirstChildWithType(CndLexer.CHILD_NODE_DEFINITION);
- if (childNodeDefinitions != null) {
- // Walk each of the nodes under CHILD_NODE_DEFINITION ...
- for (int j = 0; j != childNodeDefinitions.getChildCount(); ++j) {
- CommonTree childDefn = (CommonTree)childNodeDefinitions.getChild(j);
- context.createChildDefinition(childDefn, nodeTypePath);
- }
- }
- }
-
- // Submit the destination
- destination.submit();
- }
- }
+ // Parse property and child node definitions ...
+ parsePropertyOrChildNodeDefinitions(tokens, nodeTypePath);
}
- protected final String removeQuotes( String text ) {
- // Remove leading and trailing quotes, if there are any ...
- return text.replaceFirst("^['\"]+", "").replaceAll("['\"]+$", "");
+ /**
+ * Parse a node type name that appears next on the token stream.
+ *
+ * @param tokens the tokens containing the node type name; never null
+ * @return the node type name
+ * @throws ParsingException if there is a problem parsing the content
+ */
+ protected Name parseNodeTypeName( TokenStream tokens ) {
+ tokens.consume('[');
+ Name name = parseName(tokens);
+ tokens.consume(']');
+ return name;
}
/**
- * Utility class that uses a context with a local namespace registry, along with the problems and resource name.
+ * Parse an optional list of supertypes if they appear next on the token stream.
+ *
+ * @param tokens the tokens containing the supertype names; never null
+ * @return the list of supertype names; never null, but possibly empty
+ * @throws ParsingException if there is a problem parsing the content
*/
- protected final class ImportContext {
- private final ExecutionContext context;
- private final ExecutionContext originalContext;
- private final Problems problems;
- private final String resourceName;
+ protected List<Name> parseSupertypes( TokenStream tokens ) {
+ if (tokens.canConsume('>')) {
+ // There is at least one supertype ...
+ return parseNameList(tokens);
+ }
+ return Collections.emptyList();
+ }
- protected ImportContext( ExecutionContext context,
- Problems problems,
- String resourceName ) {
- // Create a context that has a local namespace registry
- NamespaceRegistry localNamespaces = new LocalNamespaceRegistry(context.getNamespaceRegistry());
- this.originalContext = context;
- this.context = context.with(localNamespaces);
- this.problems = problems;
- this.resourceName = resourceName;
+ /**
+ * Parse a list of strings, separated by commas. Any quotes surrounding the strings are removed.
+ *
+ * @param tokens the tokens containing the comma-separated strings; never null
+ * @return the list of string values; never null, but possibly empty
+ * @throws ParsingException if there is a problem parsing the content
+ */
+ protected List<String> parseStringList( TokenStream tokens ) {
+ List<String> strings = new ArrayList<String>();
+ if (tokens.canConsume('?')) {
+ // This list is variant ...
+ strings.add("?");
+ } else {
+ // Read names until we see a ','
+ do {
+ strings.add(removeQuotes(tokens.consume()));
+ } while (tokens.canConsume(','));
}
+ return strings;
+ }
- protected ExecutionContext context() {
- return this.context;
+ /**
+ * Parse a list of names, separated by commas. Any quotes surrounding the names are removed.
+ *
+ * @param tokens the tokens containing the comma-separated strings; never null
+ * @return the list of string values; never null, but possibly empty
+ * @throws ParsingException if there is a problem parsing the content
+ */
+ protected List<Name> parseNameList( TokenStream tokens ) {
+ List<Name> names = new ArrayList<Name>();
+ if (!tokens.canConsume('?')) {
+ // Read names until we see a ','
+ do {
+ names.add(parseName(tokens));
+ } while (tokens.canConsume(','));
}
+ return names;
+ }
- protected void register( String prefix,
- String uri ) {
- // Register it in the local registry with the supplied prefix ...
- context.getNamespaceRegistry().register(prefix, uri);
-
- // See if it is already registered in the original context ...
- NamespaceRegistry registry = originalContext.getNamespaceRegistry();
- if (!registry.isRegisteredNamespaceUri(uri)) {
- // It is not, so register it ...
- registry.register(prefix, uri);
+ /**
+ * Parse the options for the node types, including whether the node type is orderable, a mixin, abstract, whether it supports
+ * querying, and which property/child node (if any) is the primary item for the node type.
+ *
+ * @param tokens the tokens containing the comma-separated strings; never null
+ * @param properties the list into which the properties that represent the options should be placed
+ * @throws ParsingException if there is a problem parsing the content
+ */
+ protected void parseNodeTypeOptions( TokenStream tokens,
+ List<Property> properties ) {
+ // Set up the defaults ...
+ boolean isOrderable = false;
+ boolean isMixin = false;
+ boolean isAbstract = false;
+ boolean isQueryable = true;
+ Name primaryItem = null;
+ String onParentVersion = "COPY";
+ while (true) {
+ // Keep reading while we see a valid option ...
+ if (tokens.canConsumeAnyOf("ORDERABLE", "ORD", "O")) {
+ tokens.canConsume('?');
+ isOrderable = true;
+ } else if (tokens.canConsumeAnyOf("MIXIN", "MIX", "M")) {
+ tokens.canConsume('?');
+ isMixin = true;
+ } else if (tokens.canConsumeAnyOf("ABSTRACT", "ABS", "A")) {
+ tokens.canConsume('?');
+ isAbstract = true;
+ } else if (tokens.canConsumeAnyOf("NOQUERY", "NOQ")) {
+ tokens.canConsume('?');
+ isQueryable = false;
+ } else if (tokens.canConsumeAnyOf("PRIMARYITEM", "!")) {
+ primaryItem = parseName(tokens);
+ tokens.canConsume('?');
+ } else if (tokens.matchesAnyOf(VALID_ON_PARENT_VERSION)) {
+ onParentVersion = tokens.consume();
+ tokens.canConsume('?');
+ } else if (tokens.matches("OPV")) {
+ // variant on-parent-version
+ onParentVersion = tokens.consume();
+ tokens.canConsume('?');
+ } else {
+ // No more valid options on the stream, so stop ...
+ break;
}
}
-
- protected NameFactory nameFactory() {
- return this.context.getValueFactories().getNameFactory();
+ properties.add(propertyFactory.create(JcrLexicon.HAS_ORDERABLE_CHILD_NODES, isOrderable));
+ properties.add(propertyFactory.create(JcrLexicon.IS_MIXIN, isMixin));
+ properties.add(propertyFactory.create(JcrLexicon.IS_ABSTRACT, isAbstract));
+ properties.add(propertyFactory.create(JcrLexicon.IS_QUERYABLE, isQueryable));
+ properties.add(propertyFactory.create(JcrLexicon.ON_PARENT_VERSION, onParentVersion.toUpperCase()));
+ if (primaryItem != null) {
+ properties.add(propertyFactory.create(JcrLexicon.PRIMARY_ITEM_NAME, primaryItem));
}
+ }
- protected PathFactory pathFactory() {
- return this.context.getValueFactories().getPathFactory();
+ /**
+ * Parse a node type's property or child node definitions that appear next on the token stream.
+ *
+ * @param tokens the tokens containing the definitions; never null
+ * @param nodeTypePath the path in the destination where the node type has been created, and under which the property and
+ * child node type definitions should be placed
+ * @throws ParsingException if there is a problem parsing the content
+ */
+ protected void parsePropertyOrChildNodeDefinitions( TokenStream tokens,
+ Path nodeTypePath ) {
+ while (true) {
+ // Keep reading while we see a property definition or child node definition ...
+ if (tokens.matches('-')) {
+ parsePropertyDefinition(tokens, nodeTypePath);
+ } else if (tokens.matches('+')) {
+ parseChildNodeDefinition(tokens, nodeTypePath);
+ } else {
+ // The next token does not signal either one of these, so stop ...
+ break;
+ }
}
+ }
- protected ValueFactory<String> stringFactory() {
- return this.context.getValueFactories().getStringFactory();
- }
+ /**
+ * Parse a node type's property definition from the next tokens on the stream.
+ *
+ * @param tokens the tokens containing the definition; never null
+ * @param nodeTypePath the path in the destination where the node type has been created, and under which the property and
+ * child node type definitions should be placed
+ * @throws ParsingException if there is a problem parsing the content
+ */
+ protected void parsePropertyDefinition( TokenStream tokens,
+ Path nodeTypePath ) {
+ tokens.consume('-');
+ Name name = parseName(tokens);
+ Path path = pathFactory.create(nodeTypePath, JcrLexicon.PROPERTY_DEFINITION);
+ List<Property> properties = new ArrayList<Property>();
+ properties.add(propertyFactory.create(JcrLexicon.NAME, name));
- protected ValueFactory<Boolean> booleanFactory() {
- return this.context.getValueFactories().getBooleanFactory();
- }
+ // Parse the (optional) required type ...
+ parsePropertyType(tokens, properties, PropertyType.STRING.getName());
- protected void recordError( CommonTree node,
- I18n msg,
- Object... params ) {
- String location = CndI18n.locationFromLineNumberAndCharacter.text(node.getLine(), node.getCharPositionInLine());
- problems.addError(msg, resourceName, location, params);
- }
+ // Parse the default values ...
+ parseDefaultValues(tokens, properties);
- protected void recordError( Throwable throwable,
- CommonTree node,
- I18n msg,
- Object... params ) {
- String location = CndI18n.locationFromLineNumberAndCharacter.text(node.getLine(), node.getCharPositionInLine());
- problems.addError(throwable, msg, resourceName, location, params);
- }
+ // Parse the property attributes ...
+ parsePropertyAttributes(tokens, properties, name, path);
- protected Name nameFrom( CommonTree node,
- int childType ) {
- CommonTree childNode = (CommonTree)node.getFirstChildWithType(childType);
- if (childNode != null && childNode.getChildCount() > 0) {
- CommonTree textNode = (CommonTree)childNode.getChild(0);
- if (textNode.getToken().getTokenIndex() < 0) return null;
- String text = removeQuotes(childNode.getChild(0).getText());
- try {
- return nameFactory().create(text);
- } catch (ValueFormatException e) {
- recordError(e, node, CndI18n.expectedValidNameLiteral, text);
- }
- }
- return null;
- }
+ // Parse the property constraints ...
+ parseValueConstraints(tokens, properties);
- protected Name[] namesFrom( CommonTree node,
- int childType ) {
- CommonTree childNode = (CommonTree)node.getFirstChildWithType(childType);
- if (childNode != null && childNode.getChildCount() > 0) {
- List<Name> names = new ArrayList<Name>();
- for (int i = 0; i != childNode.getChildCount(); ++i) {
- String text = removeQuotes(childNode.getChild(i).getText());
- try {
- names.add(nameFactory().create(text));
- } catch (ValueFormatException e) {
- recordError(e, node, CndI18n.expectedValidNameLiteral, text);
- }
- }
- return names.toArray(new Name[names.size()]);
- }
- return new Name[] {};
- }
+ // Create the node in the destination ...
+ destination.create(path, properties);
+ }
- protected String stringFrom( CommonTree node,
- int childType ) {
- CommonTree childNode = (CommonTree)node.getFirstChildWithType(childType);
- if (childNode != null && childNode.getChildCount() > 0) {
- String text = removeQuotes(childNode.getChild(0).getText().trim());
- try {
- return stringFactory().create(text);
- } catch (ValueFormatException e) {
- recordError(e, node, CndI18n.expectedStringLiteral, text);
- }
+ /**
+ * Parse the property type, if a valid one appears next on the token stream.
+ *
+ * @param tokens the tokens containing the definition; never null
+ * @param properties the list into which the property that represents the property type should be placed
+ * @param defaultPropertyType the default property type if none is actually found
+ * @throws ParsingException if there is a problem parsing the content
+ */
+ protected void parsePropertyType( TokenStream tokens,
+ List<Property> properties,
+ String defaultPropertyType ) {
+ if (tokens.canConsume('(')) {
+ // Parse the (optional) property type ...
+ String propertyType = defaultPropertyType;
+ if (tokens.matchesAnyOf(VALID_PROPERTY_TYPES)) {
+ propertyType = tokens.consume();
+ if ("*".equals(propertyType)) propertyType = "UNDEFINED";
}
- return null;
+ tokens.consume(')');
+ properties.add(propertyFactory.create(JcrLexicon.REQUIRED_TYPE, propertyType.toUpperCase()));
}
+ }
- protected String[] stringsFrom( CommonTree node,
- int childType ) {
- CommonTree childNode = (CommonTree)node.getFirstChildWithType(childType);
- if (childNode != null && childNode.getChildCount() > 0) {
- List<String> names = new ArrayList<String>();
- for (int i = 0; i != childNode.getChildCount(); ++i) {
- String text = removeQuotes(childNode.getChild(i).getText().trim());
- try {
- names.add(stringFactory().create(text));
- } catch (ValueFormatException e) {
- recordError(e, node, CndI18n.expectedStringLiteral, text);
- }
- }
- return names.toArray(new String[names.size()]);
+ /**
+ * Parse the property definition's default value, if they appear next on the token stream.
+ *
+ * @param tokens the tokens containing the definition; never null
+ * @param properties the list into which the property that represents the default values should be placed
+ * @throws ParsingException if there is a problem parsing the content
+ */
+ protected void parseDefaultValues( TokenStream tokens,
+ List<Property> properties ) {
+ if (tokens.canConsume('=')) {
+ List<String> defaultValues = parseStringList(tokens);
+ if (!defaultValues.isEmpty()) {
+ properties.add(propertyFactory.create(JcrLexicon.DEFAULT_VALUES, defaultValues));
}
- return new String[] {};
}
+ }
- protected boolean booleanFrom( CommonTree node,
- int childType,
- boolean defaultValue ) {
- CommonTree childNode = (CommonTree)node.getFirstChildWithType(childType);
- if (childNode != null && childNode.getChildCount() > 0) {
- String text = removeQuotes(childNode.getChild(0).getText());
- try {
- return booleanFactory().create(text);
- } catch (ValueFormatException e) {
- recordError(e, node, CndI18n.expectedBooleanLiteral, text);
- }
+ /**
+ * Parse the property definition's value constraints, if they appear next on the token stream.
+ *
+ * @param tokens the tokens containing the definition; never null
+ * @param properties the list into which the property that represents the value constraints should be placed
+ * @throws ParsingException if there is a problem parsing the content
+ */
+ protected void parseValueConstraints( TokenStream tokens,
+ List<Property> properties ) {
+ if (tokens.canConsume('<')) {
+ List<String> defaultValues = parseStringList(tokens);
+ if (!defaultValues.isEmpty()) {
+ properties.add(propertyFactory.create(JcrLexicon.VALUE_CONSTRAINTS, defaultValues));
}
- return defaultValue;
}
+ }
- protected QueryOperator[] queryOperatorsFrom( CommonTree node,
- int childType ) {
- String text = stringFrom(node, childType);
- if (text != null) {
- String[] literals = text.split(",");
- if (literals.length != 0) {
- Set<QueryOperator> operators = new HashSet<QueryOperator>();
- for (String literal : literals) {
- literal = literal.trim();
- if (literal.length() == 0) continue;
- QueryOperator operator = QueryOperator.forText(literal);
- if (operator != null) {
- operators.add(operator);
- } else {
- recordError(node, CndI18n.expectedValidQueryOperator, literal);
- }
- }
- return operators.toArray(new QueryOperator[operators.size()]);
- }
+ /**
+ * Parse the property definition's attributes, if they appear next on the token stream.
+ *
+ * @param tokens the tokens containing the attributes; never null
+ * @param properties the list into which the properties that represents the attributes should be placed
+ * @param propDefnName the name of the property definition; never null
+ * @param propDefnPath the path in the destination to the property definition node; never null
+ * @throws ParsingException if there is a problem parsing the content
+ */
+ protected void parsePropertyAttributes( TokenStream tokens,
+ List<Property> properties,
+ Name propDefnName,
+ Path propDefnPath ) {
+ boolean autoCreated = false;
+ boolean mandatory = false;
+ boolean isProtected = false;
+ boolean multiple = false;
+ boolean isFullTextSearchable = true;
+ boolean isQueryOrderable = true;
+ String onParentVersion = "COPY";
+ while (true) {
+ if (tokens.canConsumeAnyOf("AUTOCREATED", "AUT", "A")) {
+ tokens.canConsume('?');
+ autoCreated = true;
+ } else if (tokens.canConsumeAnyOf("MANDATORY", "MAN", "M")) {
+ tokens.canConsume('?');
+ mandatory = true;
+ } else if (tokens.canConsumeAnyOf("PROTECTED", "PRO", "P")) {
+ tokens.canConsume('?');
+ isProtected = true;
+ } else if (tokens.canConsumeAnyOf("MULTIPLE", "MUL", "*")) {
+ tokens.canConsume('?');
+ multiple = true;
+ } else if (tokens.matchesAnyOf(VALID_ON_PARENT_VERSION)) {
+ onParentVersion = tokens.consume();
+ tokens.canConsume('?');
+ } else if (tokens.matches("OPV")) {
+ // variant on-parent-version
+ onParentVersion = tokens.consume();
+ tokens.canConsume('?');
+ } else if (tokens.canConsumeAnyOf("NOFULLTEXT", "NOF")) {
+ tokens.canConsume('?');
+ isFullTextSearchable = false;
+ } else if (tokens.canConsumeAnyOf("NOQUERYORDER", "NQORD")) {
+ tokens.canConsume('?');
+ isQueryOrderable = false;
+ } else if (tokens.canConsumeAnyOf("QUERYOPS", "QOP")) {
+ parseQueryOperators(tokens, properties);
+ } else if (jcr170 && tokens.canConsumeAnyOf("PRIMARY", "PRI", "!")) {
+ // Then this child node is considered the primary item ...
+ Property primaryItem = propertyFactory.create(JcrLexicon.PRIMARY_ITEM_NAME, propDefnName);
+ destination.setProperties(propDefnPath.getParent(), primaryItem);
+ } else {
+ break;
}
- return new QueryOperator[] {};
}
+ properties.add(propertyFactory.create(JcrLexicon.AUTO_CREATED, autoCreated));
+ properties.add(propertyFactory.create(JcrLexicon.MANDATORY, mandatory));
+ properties.add(propertyFactory.create(JcrLexicon.PROTECTED, isProtected));
+ properties.add(propertyFactory.create(JcrLexicon.ON_PARENT_VERSION, onParentVersion.toUpperCase()));
+ properties.add(propertyFactory.create(JcrLexicon.MULTIPLE, multiple));
+ properties.add(propertyFactory.create(JcrLexicon.IS_FULL_TEXT_SEARCHABLE, isFullTextSearchable));
+ properties.add(propertyFactory.create(JcrLexicon.IS_QUERY_ORDERABLE, isQueryOrderable));
+ }
- protected String propertyTypeNameFrom( CommonTree node,
- int childType ) {
- String text = stringFrom(node, childType);
- if ("*".equals(text)) text = "undefined";
- String upperText = text.toUpperCase();
- if (!VALID_PROPERTY_TYPES.contains(upperText)) {
- recordError(node, CndI18n.expectedValidPropertyTypeName, text, VALID_PROPERTY_TYPES);
- return null;
- }
- return upperText;
+ /**
+ * Parse the property definition's query operators, if they appear next on the token stream.
+ *
+ * @param tokens the tokens containing the definition; never null
+ * @param properties the list into which the property that represents the value constraints should be placed
+ * @throws ParsingException if there is a problem parsing the content
+ */
+ protected void parseQueryOperators( TokenStream tokens,
+ List<Property> properties ) {
+ if (tokens.canConsume('?')) {
+ return;
}
-
- protected String onParentVersionFrom( CommonTree node,
- int childType ) {
- String text = stringFrom(node, childType);
- if (text == null) return "COPY";
- String upperText = text.toUpperCase();
- if (!VALID_ON_PARENT_VERSION.contains(upperText)) {
- recordError(node, CndI18n.expectedValidOnParentVersion, text, VALID_ON_PARENT_VERSION);
- return null;
+ // The query operators are expected to be enclosed in a single quote, so therefore will be a single token ...
+ List<String> operators = new ArrayList<String>();
+ String operatorList = removeQuotes(tokens.consume());
+ // Now split this string on ',' ...
+ for (String operatorValue : operatorList.split(",")) {
+ String operator = operatorValue.trim();
+ if (!VALID_QUERY_OPERATORS.contains(operator)) {
+ throw new ParsingException(tokens.previousPosition(), CndI18n.expectedValidQueryOperator.text(operator));
}
- return upperText;
+ operators.add(operator);
}
-
- protected Path createNodeType( CommonTree nodeType,
- Path parentPath ) {
- Name name = nameFrom(nodeType, CndLexer.NAME);
- Name[] supertypes = namesFrom(nodeType, CndLexer.SUPERTYPES);
- boolean isAbstract = booleanFrom(nodeType, CndLexer.IS_ABSTRACT, false);
- boolean hasOrderableChildNodes = booleanFrom(nodeType, CndLexer.HAS_ORDERABLE_CHILD_NODES, false);
- boolean isMixin = booleanFrom(nodeType, CndLexer.IS_MIXIN, false);
- boolean isQueryable = booleanFrom(nodeType, CndLexer.IS_QUERYABLE, true);
- Name primaryItemName = nameFrom(nodeType, CndLexer.PRIMARY_ITEM_NAME);
-
- if (primaryItemName == null) {
- // See if one of the property definitions is marked as the primary ...
- CommonTree propertyDefinitions = (CommonTree)nodeType.getFirstChildWithType(CndLexer.PROPERTY_DEFINITION);
- if (propertyDefinitions != null) {
- // Walk each of the nodes under PROPERTY_DEFINITION ...
- for (int j = 0; j != propertyDefinitions.getChildCount(); ++j) {
- CommonTree propDefn = (CommonTree)propertyDefinitions.getChild(j);
- if (booleanFrom(propDefn, CndLexer.IS_PRIMARY_PROPERTY, false)) {
- primaryItemName = nameFrom(propDefn, CndLexer.NAME);
- break;
- }
- }
- }
- }
- if (primaryItemName == null) {
- // See if one of the child definitions is marked as the primary ...
- CommonTree childNodeDefinitions = (CommonTree)nodeType.getFirstChildWithType(CndLexer.CHILD_NODE_DEFINITION);
- if (childNodeDefinitions != null) {
- // Walk each of the nodes under CHILD_NODE_DEFINITION ...
- for (int j = 0; j != childNodeDefinitions.getChildCount(); ++j) {
- CommonTree childDefn = (CommonTree)childNodeDefinitions.getChild(j);
- if (booleanFrom(childDefn, CndLexer.IS_PRIMARY_PROPERTY, false)) {
- primaryItemName = nameFrom(childDefn, CndLexer.NAME);
- break;
- }
- }
- }
- }
-
- // Create the node for the node type ...
- if (name == null) return null;
- Path path = pathFactory().create(parentPath, name);
-
- PropertyFactory factory = context.getPropertyFactory();
- destination.create(path,
- factory.create(JcrLexicon.PRIMARY_TYPE, JcrNtLexicon.NODE_TYPE),
- factory.create(JcrLexicon.SUPERTYPES, (Object[])supertypes),
- factory.create(JcrLexicon.IS_ABSTRACT, isAbstract),
- factory.create(JcrLexicon.HAS_ORDERABLE_CHILD_NODES, hasOrderableChildNodes),
- factory.create(JcrLexicon.IS_MIXIN, isMixin),
- factory.create(JcrLexicon.IS_QUERYABLE, isQueryable),
- factory.create(JcrLexicon.NODE_TYPE_NAME, name),
- factory.create(JcrLexicon.PRIMARY_ITEM_NAME, primaryItemName));
-
- return path;
+ if (operators.isEmpty()) {
+ operators.addAll(VALID_QUERY_OPERATORS);
}
+ properties.add(propertyFactory.create(JcrLexicon.QUERY_OPERATORS, operators));
+ }
- protected Path createPropertyDefinition( CommonTree propDefn,
- Path parentPath ) {
- Name name = nameFrom(propDefn, CndLexer.NAME);
- String requiredType = propertyTypeNameFrom(propDefn, CndLexer.REQUIRED_TYPE);
- String[] defaultValues = stringsFrom(propDefn, CndLexer.DEFAULT_VALUES);
- boolean multiple = booleanFrom(propDefn, CndLexer.MULTIPLE, false);
- boolean mandatory = booleanFrom(propDefn, CndLexer.MANDATORY, false);
- boolean autoCreated = booleanFrom(propDefn, CndLexer.AUTO_CREATED, false);
- boolean isProtected = booleanFrom(propDefn, CndLexer.PROTECTED, false);
- String onParentVersion = onParentVersionFrom(propDefn, CndLexer.ON_PARENT_VERSION);
- /*QueryOperator[] queryOperators =*/queryOperatorsFrom(propDefn, CndLexer.QUERY_OPERATORS);
- boolean isFullTextSearchable = booleanFrom(propDefn, CndLexer.IS_FULL_TEXT_SEARCHABLE, true);
- boolean isQueryOrderable = booleanFrom(propDefn, CndLexer.IS_QUERY_ORDERERABLE, true);
- String[] valueConstraints = stringsFrom(propDefn, CndLexer.VALUE_CONSTRAINTS);
+ /**
+ * Parse a node type's child node definition from the next tokens on the stream.
+ *
+ * @param tokens the tokens containing the definition; never null
+ * @param nodeTypePath the path in the destination where the node type has been created, and under which the child node type
+ * definitions should be placed
+ * @throws ParsingException if there is a problem parsing the content
+ */
+ protected void parseChildNodeDefinition( TokenStream tokens,
+ Path nodeTypePath ) {
+ tokens.consume('+');
+ Name name = parseName(tokens);
+ Path path = pathFactory.create(nodeTypePath, JcrLexicon.CHILD_NODE_DEFINITION);
+ List<Property> properties = new ArrayList<Property>();
+ properties.add(propertyFactory.create(JcrLexicon.NAME, name));
- // Create the node for the node type ...
- if (name == null) return null;
- Path path = pathFactory().create(parentPath, JcrLexicon.PROPERTY_DEFINITION);
+ parseRequiredPrimaryTypes(tokens, properties);
+ parseDefaultType(tokens, properties);
+ parseNodeAttributes(tokens, properties, name, path);
- PropertyFactory factory = context.getPropertyFactory();
- destination.create(path,
- factory.create(JcrLexicon.PRIMARY_TYPE, JcrNtLexicon.PROPERTY_DEFINITION),
- factory.create(JcrLexicon.REQUIRED_TYPE, requiredType),
- factory.create(JcrLexicon.DEFAULT_VALUES, (Object[])defaultValues),
- factory.create(JcrLexicon.MULTIPLE, multiple),
- factory.create(JcrLexicon.MANDATORY, mandatory),
- factory.create(JcrLexicon.NAME, name),
- factory.create(JcrLexicon.AUTO_CREATED, autoCreated),
- factory.create(JcrLexicon.PROTECTED, isProtected),
- factory.create(JcrLexicon.ON_PARENT_VERSION, onParentVersion),
- // factory.create(DnaLexicon.QUERY_OPERATORS, queryOperators),
- factory.create(JcrLexicon.IS_FULL_TEXT_SEARCHABLE, isFullTextSearchable),
- factory.create(JcrLexicon.IS_QUERY_ORDERABLE, isQueryOrderable),
- factory.create(JcrLexicon.VALUE_CONSTRAINTS, (Object[])valueConstraints));
-
- return path;
- }
-
- protected Path createChildDefinition( CommonTree childDefn,
- Path parentPath ) {
- Name name = nameFrom(childDefn, CndLexer.NAME);
- Name[] requiredPrimaryTypes = namesFrom(childDefn, CndLexer.REQUIRED_PRIMARY_TYPES);
- Name defaultPrimaryType = nameFrom(childDefn, CndLexer.DEFAULT_PRIMARY_TYPE);
- boolean mandatory = booleanFrom(childDefn, CndLexer.MANDATORY, false);
- boolean autoCreated = booleanFrom(childDefn, CndLexer.AUTO_CREATED, false);
- boolean isProtected = booleanFrom(childDefn, CndLexer.PROTECTED, false);
- String onParentVersion = onParentVersionFrom(childDefn, CndLexer.ON_PARENT_VERSION);
- boolean sameNameSiblings = booleanFrom(childDefn, CndLexer.SAME_NAME_SIBLINGS, false);
-
- // Create the node for the node type ...
- if (name == null) return null;
- Path path = pathFactory().create(parentPath, JcrLexicon.CHILD_NODE_DEFINITION);
-
- PropertyFactory factory = context.getPropertyFactory();
- destination.create(path,
- factory.create(JcrLexicon.PRIMARY_TYPE, JcrNtLexicon.CHILD_NODE_DEFINITION),
- factory.create(JcrLexicon.REQUIRED_PRIMARY_TYPES, (Object[])requiredPrimaryTypes),
- factory.create(JcrLexicon.DEFAULT_PRIMARY_TYPE, defaultPrimaryType),
- factory.create(JcrLexicon.MANDATORY, mandatory),
- factory.create(JcrLexicon.NAME, name),
- factory.create(JcrLexicon.AUTO_CREATED, autoCreated),
- factory.create(JcrLexicon.PROTECTED, isProtected),
- factory.create(JcrLexicon.ON_PARENT_VERSION, onParentVersion),
- factory.create(JcrLexicon.SAME_NAME_SIBLINGS, sameNameSiblings));
-
- return path;
- }
+ // Create the node in the destination ...
+ destination.create(path, properties);
}
- protected class Parser extends CndParser {
- private final Problems problems;
- private final String nameOfResource;
-
- public Parser( TokenStream input,
- Problems problems,
- String nameOfResource ) {
- super(input);
- this.problems = problems;
- this.nameOfResource = nameOfResource;
- }
-
- @Override
- public void displayRecognitionError( String[] tokenNames,
- RecognitionException e ) {
- if (problems != null) {
- String hdr = getErrorHeader(e);
- String msg = getErrorMessage(e, tokenNames);
- problems.addError(CndI18n.passthrough, nameOfResource, hdr, msg);
- } else {
- super.displayRecognitionError(tokenNames, e);
+ /**
+ * Parse the child node definition's list of required primary types, if they appear next on the token stream.
+ *
+ * @param tokens the tokens containing the definition; never null
+ * @param properties the list into which the property that represents the required types should be placed
+ * @throws ParsingException if there is a problem parsing the content
+ */
+ protected void parseRequiredPrimaryTypes( TokenStream tokens,
+ List<Property> properties ) {
+ if (tokens.canConsume('(')) {
+ List<Name> requiredTypes = parseNameList(tokens);
+ if (requiredTypes.isEmpty()) {
+ requiredTypes.add(JcrNtLexicon.BASE);
}
+ properties.add(propertyFactory.create(JcrLexicon.REQUIRED_PRIMARY_TYPES, requiredTypes));
+ tokens.consume(')');
}
}
/**
- * Specialization of an {@link ANTLRInputStream} that converts all tokens to lowercase, allowing the grammar to be
- * case-insensitive. See the <a href="http://www.antlr.org/wiki/pages/viewpage.action?pageId=1782">ANTLR documentation</a>.
+ * Parse the child node definition's default type, if they appear next on the token stream.
+ *
+ * @param tokens the tokens containing the definition; never null
+ * @param properties the list into which the property that represents the default primary type should be placed
+ * @throws ParsingException if there is a problem parsing the content
*/
- protected class CaseInsensitiveInputStream extends ANTLRInputStream {
- protected CaseInsensitiveInputStream( InputStream stream ) throws IOException {
- super(stream);
+ protected void parseDefaultType( TokenStream tokens,
+ List<Property> properties ) {
+ if (tokens.canConsume('=')) {
+ if (!tokens.canConsume('?')) {
+ Name defaultType = parseName(tokens);
+ properties.add(propertyFactory.create(JcrLexicon.DEFAULT_PRIMARY_TYPE, defaultType));
+ }
}
+ }
- /**
- * {@inheritDoc}
- *
- * @see org.antlr.runtime.ANTLRStringStream#LA(int)
- */
- @Override
- public int LA( int i ) {
- if (i == 0) {
- return 0; // undefined
+ /**
+ * Parse the child node definition's attributes, if they appear next on the token stream.
+ *
+ * @param tokens the tokens containing the attributes; never null
+ * @param properties the list into which the properties that represents the attributes should be placed
+ * @param childNodeDefnName the name of the child node definition; never null
+ * @param childNodeDefnPath the path in the destination to the child node definition node; never null
+ * @throws ParsingException if there is a problem parsing the content
+ */
+ protected void parseNodeAttributes( TokenStream tokens,
+ List<Property> properties,
+ Name childNodeDefnName,
+ Path childNodeDefnPath ) {
+ boolean autoCreated = false;
+ boolean mandatory = false;
+ boolean isProtected = false;
+ boolean sns = false;
+ String onParentVersion = "COPY";
+ while (true) {
+ if (tokens.canConsumeAnyOf("AUTOCREATED", "AUT", "A")) {
+ tokens.canConsume('?');
+ autoCreated = true;
+ } else if (tokens.canConsumeAnyOf("MANDATORY", "MAN", "M")) {
+ tokens.canConsume('?');
+ mandatory = true;
+ } else if (tokens.canConsumeAnyOf("PROTECTED", "PRO", "P")) {
+ tokens.canConsume('?');
+ isProtected = true;
+ } else if (tokens.canConsumeAnyOf("SNS", "*")) { // standard JCR 2.0 keywords for SNS ...
+ tokens.canConsume('?');
+ sns = true;
+ } else if (jcr170 && tokens.canConsumeAnyOf("MULTIPLE", "MUL", "*")) { // from pre-JCR 2.0 ref impl
+ tokens.canConsume('?');
+ sns = true;
+ } else if (tokens.matchesAnyOf(VALID_ON_PARENT_VERSION)) {
+ onParentVersion = tokens.consume();
+ tokens.canConsume('?');
+ } else if (tokens.matches("OPV")) {
+ // variant on-parent-version
+ onParentVersion = tokens.consume();
+ tokens.canConsume('?');
+ } else if (jcr170 && tokens.canConsumeAnyOf("PRIMARY", "PRI", "!")) {
+ // Then this child node is considered the primary item ...
+ Property primaryItem = propertyFactory.create(JcrLexicon.PRIMARY_ITEM_NAME, childNodeDefnName);
+ destination.setProperties(childNodeDefnPath.getParent(), primaryItem);
+ } else {
+ break;
}
- if (i < 0) {
- i++; // e.g., translate LA(-1) to use offset 0
- }
-
- if ((p + i - 1) >= n) {
- return CharStream.EOF;
- }
- return Character.toLowerCase(data[p + i - 1]);
}
+ properties.add(propertyFactory.create(JcrLexicon.AUTO_CREATED, autoCreated));
+ properties.add(propertyFactory.create(JcrLexicon.MANDATORY, mandatory));
+ properties.add(propertyFactory.create(JcrLexicon.PROTECTED, isProtected));
+ properties.add(propertyFactory.create(JcrLexicon.ON_PARENT_VERSION, onParentVersion.toUpperCase()));
+ properties.add(propertyFactory.create(JcrLexicon.SAME_NAME_SIBLINGS, sns));
}
/**
- * Specialization of an {@link ANTLRInputStream} that converts all tokens to lowercase, allowing the grammar to be
- * case-insensitive. See the <a href="http://www.antlr.org/wiki/pages/viewpage.action?pageId=1782">ANTLR documentation</a>.
+ * Parse the name that is expected to be next on the token stream.
+ *
+ * @param tokens the tokens containing the name; never null
+ * @return the name; never null
+ * @throws ParsingException if there is a problem parsing the content
*/
- protected class CaseInsensitiveFileStream extends ANTLRFileStream {
- protected CaseInsensitiveFileStream( String fileName ) throws IOException {
- super(fileName, null);
+ protected Name parseName( TokenStream tokens ) {
+ String value = tokens.consume();
+ try {
+ return nameFactory.create(removeQuotes(value));
+ } catch (ValueFormatException e) {
+ throw new ParsingException(tokens.previousPosition(), CndI18n.expectedValidNameLiteral.text(value));
}
-
- protected CaseInsensitiveFileStream( String fileName,
- String encoding ) throws IOException {
- super(fileName, encoding);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.antlr.runtime.ANTLRStringStream#LA(int)
- */
- @Override
- public int LA( int i ) {
- if (i == 0) {
- return 0; // undefined
- }
- if (i < 0) {
- i++; // e.g., translate LA(-1) to use offset 0
- }
-
- if ((p + i - 1) >= n) {
-
- return CharStream.EOF;
- }
- return Character.toLowerCase(data[p + i - 1]);
- }
}
+ protected final String removeQuotes( String text ) {
+ // Remove leading and trailing quotes, if there are any ...
+ return text.replaceFirst("^['\"]+", "").replaceAll("['\"]+$", "");
+ }
}
Added: trunk/dna-cnd/src/main/java/org/jboss/dna/cnd/CndTokenizer.java
===================================================================
--- trunk/dna-cnd/src/main/java/org/jboss/dna/cnd/CndTokenizer.java (rev 0)
+++ trunk/dna-cnd/src/main/java/org/jboss/dna/cnd/CndTokenizer.java 2009-09-16 14:40:56 UTC (rev 1226)
@@ -0,0 +1,224 @@
+package org.jboss.dna.cnd;
+
+import org.jboss.dna.common.CommonI18n;
+import org.jboss.dna.common.text.TokenStream.CharacterStream;
+import org.jboss.dna.common.text.TokenStream.ParsingException;
+import org.jboss.dna.common.text.TokenStream.Position;
+import org.jboss.dna.common.text.TokenStream.Tokenizer;
+import org.jboss.dna.common.text.TokenStream.Tokens;
+
+/**
+ * A {@link Tokenizer} implementation that adheres to the CND format by ignoring whitespace while including tokens for individual
+ * symbols, the period ('.'), single-quoted strings, double-quoted strings, whitespace-delimited words, and optionally comments.
+ * This tokenizer optionally includes comments and vendor extensions.
+ */
+public class CndTokenizer implements Tokenizer {
+ /**
+ * The token type for tokens that represent an unquoted string containing a character sequence made up of non-whitespace and
+ * non-symbol characters.
+ */
+ public static final int WORD = 1;
+ /**
+ * The token type for tokens that consist of an individual "symbol" character. The set of characters includes:
+ * <code>[]<>=-+(),</code>
+ */
+ public static final int SYMBOL = 2;
+ /**
+ * The token type for tokens that consist of an individual '.' character.
+ */
+ public static final int DECIMAL = 3;
+ /**
+ * The token type for tokens that consist of all the characters within single-quotes. Single quote characters are included if
+ * they are preceded (escaped) by a '\' character.
+ */
+ public static final int SINGLE_QUOTED_STRING = 4;
+ /**
+ * The token type for tokens that consist of all the characters within double-quotes. Double quote characters are included if
+ * they are preceded (escaped) by a '\' character.
+ */
+ public static final int DOUBLE_QUOTED_STRING = 5;
+ /**
+ * The token type for tokens that consist of all the characters between "/*" and "*/" or between "//" and the next line
+ * terminator (e.g., '\n', '\r' or "\r\n").
+ */
+ public static final int COMMENT = 6;
+ /**
+ * The token type for the token containing a vendor extension block.
+ */
+ public static final int VENDOR_EXTENSION = 7;
+
+ private final boolean useComments;
+ private final boolean useVendorExtensions;
+
+ public CndTokenizer( boolean useComments,
+ boolean useVendorExtensions ) {
+ this.useComments = useComments;
+ this.useVendorExtensions = useVendorExtensions;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.jboss.dna.common.text.TokenStream.Tokenizer#tokenize(CharacterStream, Tokens)
+ */
+ public void tokenize( CharacterStream input,
+ Tokens tokens ) throws ParsingException {
+ while (input.hasNext()) {
+ char c = input.next();
+ switch (c) {
+ case ' ':
+ case '\t':
+ case '\n':
+ case '\r':
+ // Just skip these whitespace characters ...
+ break;
+ case '[':
+ case ']':
+ case '<':
+ case '>':
+ case '=':
+ case '-':
+ case '+':
+ case '(':
+ case ')':
+ case ',':
+ tokens.addToken(input.position(), input.index(), input.index() + 1, SYMBOL);
+ break;
+ // case '.':
+ // tokens.addToken(input.position(), input.index(), input.index() + 1, DECIMAL);
+ // break;
+ case '{':
+ // Vendor extension, meant to be excluded
+ int startIndex = input.index();
+ Position startingPosition = input.position();
+ boolean foundClosingBrace = false;
+ String vendorName = "";
+ while (input.hasNext()) {
+ c = input.next();
+ if (c == '\\' && input.isNext('}')) {
+ c = input.next(); // consume the '}' character since it is escaped
+ } else if (c == '}') {
+ foundClosingBrace = true;
+ break;
+ }
+ }
+ if (!foundClosingBrace) {
+ String msg = CndI18n.vendorBlockWasNotClosed.text(startingPosition.getLine(),
+ startingPosition.getColumn());
+ throw new ParsingException(startingPosition, msg);
+ }
+ int endIndex = input.index() + 1; // beyond last character read
+ if (useVendorExtensions) {
+ tokens.addToken(startingPosition, startIndex, endIndex, VENDOR_EXTENSION);
+ }
+ break;
+ case '\"':
+ startIndex = input.index();
+ startingPosition = input.position();
+ boolean foundClosingQuote = false;
+ while (input.hasNext()) {
+ c = input.next();
+ if (c == '\\' && input.isNext('"')) {
+ c = input.next(); // consume the ' character since it is escaped
+ } else if (c == '"') {
+ foundClosingQuote = true;
+ break;
+ }
+ }
+ if (!foundClosingQuote) {
+ String msg = CommonI18n.noMatchingDoubleQuoteFound.text(startingPosition.getLine(),
+ startingPosition.getColumn());
+ throw new ParsingException(startingPosition, msg);
+ }
+ endIndex = input.index() + 1; // beyond last character read
+ tokens.addToken(startingPosition, startIndex, endIndex, DOUBLE_QUOTED_STRING);
+ break;
+ case '\'':
+ startIndex = input.index();
+ startingPosition = input.position();
+ foundClosingQuote = false;
+ while (input.hasNext()) {
+ c = input.next();
+ if (c == '\\' && input.isNext('\'')) {
+ c = input.next(); // consume the ' character since it is escaped
+ } else if (c == '\'') {
+ foundClosingQuote = true;
+ break;
+ }
+ }
+ if (!foundClosingQuote) {
+ String msg = CommonI18n.noMatchingSingleQuoteFound.text(startingPosition.getLine(),
+ startingPosition.getColumn());
+ throw new ParsingException(startingPosition, msg);
+ }
+ endIndex = input.index() + 1; // beyond last character read
+ tokens.addToken(startingPosition, startIndex, endIndex, SINGLE_QUOTED_STRING);
+ break;
+ case '/':
+ startIndex = input.index();
+ startingPosition = input.position();
+ if (input.isNext('/')) {
+ // End-of-line comment ...
+ boolean foundLineTerminator = false;
+ while (input.hasNext()) {
+ c = input.next();
+ if (c == '\n' || c == '\r') {
+ foundLineTerminator = true;
+ break;
+ }
+ }
+ endIndex = input.index(); // the token won't include the '\n' or '\r' character(s)
+ if (!foundLineTerminator) ++endIndex; // must point beyond last char
+ if (c == '\r' && input.isNext('\n')) input.next();
+ if (useComments) {
+ tokens.addToken(startingPosition, startIndex, endIndex, COMMENT);
+ }
+ } else if (input.isNext('*')) {
+ // Multi-line comment ...
+ while (input.hasNext() && !input.isNext('*', '/')) {
+ c = input.next();
+ }
+ if (input.hasNext()) input.next(); // consume the '*'
+ if (input.hasNext()) input.next(); // consume the '/'
+ if (useComments) {
+ endIndex = input.index() + 1; // the token will include the '/' and '*' characters
+ tokens.addToken(startingPosition, startIndex, endIndex, COMMENT);
+ }
+ } else {
+ continue;
+ }
+ break;
+ default:
+ // The JCR 2.0 Public Final Draft is very unclear about what exactly a string is defined to be,
+ // and in fact the reference implementation (all versions) basically just treat an unquoted string
+ // to be defined as
+ // - unquoted_string ::= [A-Za-z0-9:_]+
+ // But this doesn't really seem to align very well with the spec, which alludes to any number
+ // of XmlChar:
+ // - unquoted_string ::= XmlChar { XmlChar }
+ // - XmlChar ::= /* see §3.2.2 Local Names */
+ // Then in Section 3.2.2, there is this rule:
+ // - XmlChar ::= /* Any character that matches the Char production at http://www.w3.org/TR/xml/#NT-Char */
+ // This doesn't really make sense, because even whitespace is valid in Char.
+ //
+ // Could the CND grammar instead reference 3.2.5.2 (rather than 3.2.2)? This refers to qualified
+ // names, and appears to be much closer to the examples and reference implementation.
+ //
+ // What we're doing is basically reading all subsequent characters until we find a whitespace,
+ // one of the SYMBOL characters, a single- or double-quote character, a slash, or an open brace
+ // (since these are all the basis for other tokenization rules above). Also, the '*' and '|'
+ // characters terminate a WORD token, since these cannot appear unescaped within local names;
+ // since these do not appear in other rules above, they will result in one-character tokens.
+ //
+ startIndex = input.index();
+ startingPosition = input.position();
+ // Read as long as there is a valid XML character ...
+ while (input.hasNext() && !(input.isNextWhitespace() || input.isNextAnyOf("[]<>=-+(),\"'/{*|"))) {
+ c = input.next();
+ }
+ endIndex = input.index() + 1; // beyond last character that was included
+ tokens.addToken(startingPosition, startIndex, endIndex, WORD);
+ }
+ }
+ }
+}
Property changes on: trunk/dna-cnd/src/main/java/org/jboss/dna/cnd/CndTokenizer.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: trunk/dna-cnd/src/main/resources/org/jboss/dna/cnd/CndI18n.properties
===================================================================
--- trunk/dna-cnd/src/main/resources/org/jboss/dna/cnd/CndI18n.properties 2009-09-16 14:39:42 UTC (rev 1225)
+++ trunk/dna-cnd/src/main/resources/org/jboss/dna/cnd/CndI18n.properties 2009-09-16 14:40:56 UTC (rev 1226)
@@ -22,12 +22,8 @@
# 02110-1301 USA, or see the FSF site: http://www.fsf.org.
#
-passthrough = {0}
errorImportingCndContent = Error importing {0}: {1}
-expectedBooleanLiteral = Expected 'true' or 'false', but was "{0}"
-expectedStringLiteral = Expected a valid string, but was "{0}"
expectedValidNameLiteral = Expected a valid name, but was "{0}"
-expectedValidPropertyTypeName = Property type name was "{0}" but should be one of "{1}"
-expectedValidOnParentVersion = On parent version value was "{0}" but should be one of "{1}"
expectedValidQueryOperator = Expected a valid query operator ('=', '<>', '<', '<=', '>', '>=', or 'LIKE'), but was {0}
-locationFromLineNumberAndCharacter = Line {0} column {1}
\ No newline at end of file
+expectedNamespaceOrNodeDefinition = Expected either a namespace mapping or a node type defininition, but found {0} at line {1}, column {2}
+vendorBlockWasNotClosed = Vendor block at line {0}, column {1} was not closed
Modified: trunk/dna-cnd/src/test/java/org/jboss/dna/cnd/CndImporterTest.java
===================================================================
--- trunk/dna-cnd/src/test/java/org/jboss/dna/cnd/CndImporterTest.java 2009-09-16 14:39:42 UTC (rev 1225)
+++ trunk/dna-cnd/src/test/java/org/jboss/dna/cnd/CndImporterTest.java 2009-09-16 14:40:56 UTC (rev 1226)
@@ -36,6 +36,7 @@
import java.util.Set;
import org.jboss.dna.common.collection.Problem;
import org.jboss.dna.common.collection.SimpleProblems;
+import org.jboss.dna.common.text.TokenStream.ParsingException;
import org.jboss.dna.graph.DnaLexicon;
import org.jboss.dna.graph.ExecutionContext;
import org.jboss.dna.graph.Graph;
@@ -133,49 +134,85 @@
return result;
}
- @Test
- public void shouldReportErrorIfTheNodeTypeNameIsEmpty() throws IOException {
+ @Test( expected = ParsingException.class )
+ public void shouldReportErrorIfTheNodeTypeNameIsEmpty() {
String cnd = "<ns = 'http://namespace.com/ns'> [] abstract";
- importer.importFrom(cnd, problems, "string");
- // printProblems();
- assertThat(problems.size(), is(1));
- assertThat(problems.iterator().next().getMessageString(), is("missing STRING at ']'"));
+ importer.parse(cnd);
}
- @Test
- public void shouldReportErrorIfTheNodeTypeNameIsBlank() throws IOException {
+ @Test( expected = ParsingException.class )
+ public void shouldReportErrorIfTheNodeTypeNameIsBlank() {
String cnd = "<ns = 'http://namespace.com/ns'> [ ] abstract";
- importer.importFrom(cnd, problems, "string");
- // printProblems();
- assertThat(problems.size(), is(1));
- assertThat(problems.iterator().next().getMessageString(), is("missing STRING at ']'"));
+ importer.parse(cnd);
}
- @Test
- public void shouldReportErrorIfTheNodeTypeNameIsNotFollowedByClosingBracket() throws IOException {
+ @Test( expected = ParsingException.class )
+ public void shouldReportErrorIfTheNodeTypeNameIsNotFollowedByClosingBracket() {
String cnd = "<ns = 'http://namespace.com/ns'> [ abstract";
- importer.importFrom(cnd, problems, "string");
- // printProblems();
- assertThat(problems.size(), is(1));
- assertThat(problems.iterator().next().getMessageString(), is("mismatched input 'abstract' expecting STRING"));
+ importer.parse(cnd);
}
- @Test
- public void shouldReportErrorIfTheNodeTypeNameUsesInvalidNamespace() throws IOException {
+ @Test( expected = ParsingException.class )
+ public void shouldReportErrorIfTheNodeTypeNameUsesInvalidNamespace() {
String cnd = "<ns = 'http://namespace.com/ns'> [xyz:acme] abstract";
- importer.importFrom(cnd, problems, "string");
- // printProblems();
- assertThat(problems.size(), is(1));
- assertThat(problems.iterator().next().getMessage(), is(CndI18n.expectedValidNameLiteral));
+ importer.parse(cnd);
}
@Test
+ public void shouldParseNamespaceDeclarationWithQuotedUriAndQuotedPrefix() {
+ String cnd = "<'ns' = 'http://namespace.com/ns'>";
+ importer.parse(cnd);
+ }
+
+ @Test
+ public void shouldParseNamespaceDeclarationWithUnquotedUriAndQuotedPrefix() {
+ String cnd = "<'ns' = http_namespace.com_ns>";
+ importer.parse(cnd);
+ }
+
+ @Test
+ public void shouldParseNamespaceDeclarationWithQuotedUriAndUnquotedPrefix() {
+ String cnd = "<ns = 'http://namespace.com/ns'>";
+ importer.parse(cnd);
+ }
+
+ @Test
+ public void shouldParseNamespaceDeclarationWithUnquotedUriAndUnquotedPrefix() {
+ String cnd = "<ns = http_namespace.com_ns>";
+ importer.parse(cnd);
+ }
+
+ @Test
+ public void shouldParseMinimalNodeDefinition() {
+ String cnd = "[nodeTypeName]";
+ importer.parse(cnd);
+ }
+
+ @Test
+ public void shouldParseMinimalNodeDefinitionWithSupertype() {
+ String cnd = "[nodeTypeName] > supertype";
+ importer.parse(cnd);
+ }
+
+ @Test
+ public void shouldParseMinimalNodeDefinitionWithSupertypes() {
+ String cnd = "[nodeTypeName] > supertype1, supertype2";
+ importer.parse(cnd);
+ }
+
+ @Test
+ public void shouldParseNodeDefinitionWithNameThatIsKeyword() {
+ String cnd = "[abstract] > supertype1, supertype2";
+ importer.parse(cnd);
+ }
+
+ @Test
public void shouldImportCndThatUsesAllFeatures() throws IOException {
// importer.setDebug(true);
String cnd = "<ex = 'http://namespace.com/ns'>\n"
+ "[ex:NodeType] > ex:ParentType1, ex:ParentType2 abstract orderable mixin noquery primaryitem ex:property\n"
- + "- ex:property (STRING) = 'default1', 'default2' mandatory autocreated protected multiple VERSION < 'constraint1', 'constraint2'\n"
- + " queryops '=, <>, <, <=, >, >=, LIKE' nofulltext noqueryorder\n"
+ + "- ex:property (STRING) = 'default1', 'default2' mandatory autocreated protected multiple VERSION\n"
+ + " queryops '=, <>, <, <=, >, >=, LIKE' nofulltext noqueryorder < 'constraint1', 'constraint2'"
+ "+ ex:node (ex:reqType1, ex:reqType2) = ex:defaultType mandatory autocreated protected sns version";
importer.importFrom(cnd, problems, "string");
// assertThat(problems.size(), is(1));
@@ -503,7 +540,11 @@
assertThat(nodeType, hasProperty(JcrLexicon.IS_ABSTRACT, options.contains(NodeOptions.Abstract)));
assertThat(nodeType, hasProperty(JcrLexicon.HAS_ORDERABLE_CHILD_NODES, options.contains(NodeOptions.Ordered)));
assertThat(nodeType, hasProperty(JcrLexicon.IS_QUERYABLE, !options.contains(NodeOptions.Queryable)));
- assertThat(nodeType, hasProperty(JcrLexicon.PRIMARY_ITEM_NAME, name(primaryItemName)));
+ if (primaryItemName != null) {
+ assertThat(nodeType, hasProperty(JcrLexicon.PRIMARY_ITEM_NAME, name(primaryItemName)));
+ } else {
+ assertThat(nodeType.getPropertiesByName().containsKey(JcrLexicon.PRIMARY_ITEM_NAME), is(false));
+ }
if (superTypes.length != 0) {
Name[] superTypeNames = new Name[superTypes.length];
for (int i = 0; i != superTypes.length; ++i) {
Added: trunk/dna-cnd/src/test/java/org/jboss/dna/cnd/CndTokenizerTest.java
===================================================================
--- trunk/dna-cnd/src/test/java/org/jboss/dna/cnd/CndTokenizerTest.java (rev 0)
+++ trunk/dna-cnd/src/test/java/org/jboss/dna/cnd/CndTokenizerTest.java 2009-09-16 14:40:56 UTC (rev 1226)
@@ -0,0 +1,320 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.dna.cnd;
+
+import static org.hamcrest.core.Is.is;
+import static org.junit.Assert.assertThat;
+import java.util.LinkedList;
+import org.jboss.dna.common.text.TokenStream.CharacterArrayStream;
+import org.jboss.dna.common.text.TokenStream.ParsingException;
+import org.jboss.dna.common.text.TokenStream.Position;
+import org.jboss.dna.common.text.TokenStream.Tokens;
+import org.junit.Before;
+import org.junit.Test;
+
+public class CndTokenizerTest {
+
+ private CndTokenizer tokenizer;
+ private Tokens tokenFactory;
+ private LinkedList<int[]> tokenValues;
+
+ @Before
+ public void beforeEach() {
+ tokenizer = new CndTokenizer(true, false);
+ final LinkedList<int[]> tokenValues = new LinkedList<int[]>();
+ tokenFactory = new Tokens() {
+ public void addToken( Position position,
+ int index ) {
+ int[] token = new int[] {index, index + 1, 0};
+ tokenValues.add(token);
+ }
+
+ public void addToken( Position position,
+ int startIndex,
+ int endIndex ) {
+ int[] token = new int[] {startIndex, endIndex, 0};
+ tokenValues.add(token);
+ }
+
+ public void addToken( Position position,
+ int startIndex,
+ int endIndex,
+ int type ) {
+ int[] token = new int[] {startIndex, endIndex, type};
+ tokenValues.add(token);
+ }
+ };
+ this.tokenValues = tokenValues;
+ }
+
+ protected void tokenize( String input ) {
+ tokenizer.tokenize(new CharacterArrayStream(input.toCharArray()), tokenFactory);
+ }
+
+ protected void assertNextTokenIs( int startIndex,
+ int endIndex,
+ int type ) {
+ int[] token = tokenValues.removeFirst();
+ assertThat(token[0], is(startIndex));
+ assertThat(token[1], is(endIndex));
+ assertThat(token[2], is(type));
+ }
+
+ protected void assertNoMoreTokens() {
+ assertThat(tokenValues.isEmpty(), is(true));
+ }
+
+ @Test
+ public void shouldCreateNoTokensForEmptyContent() {
+ tokenize("");
+ assertNoMoreTokens();
+ }
+
+ @Test
+ public void shouldCreateNoTokensForContentWithOnlyWhitespace() {
+ tokenize(" \t \n \r\n \r ");
+ assertNoMoreTokens();
+ }
+
+ @Test
+ public void shouldCreateTokenForEachSymbolCharacter() {
+ String content = "[]<>=-+(),";
+ int numSymbols = content.length();
+ tokenize(content);
+ for (int i = 0; i != numSymbols; ++i) {
+ assertNextTokenIs(i, i + 1, CndTokenizer.SYMBOL);
+ }
+ assertNoMoreTokens();
+ }
+
+ @Test
+ public void shouldNotIncludeColonInListOfSymbolsSinceTheyCanAppearInNames() {
+ tokenizer = new CndTokenizer(true, true);
+ String content = "dna:someName";
+ int numSymbols = content.length();
+ tokenize(content);
+ assertNextTokenIs(0, content.length(), CndTokenizer.WORD);
+ assertNoMoreTokens();
+ }
+
+ @Test
+ public void shouldCreateVendorExtensionToken() {
+ tokenizer = new CndTokenizer(true, true);
+ String content = "{vendor extension}";
+ int numSymbols = content.length();
+ tokenize(content);
+ assertNextTokenIs(0, content.length(), CndTokenizer.VENDOR_EXTENSION);
+ assertNoMoreTokens();
+ }
+
+ @Test
+ public void shouldNotCreateVendorExtensionTokenIfTokenizerIsNotUsingThem() {
+ tokenizer = new CndTokenizer(true, false);
+ String content = "{vendor extension}";
+ int numSymbols = content.length();
+ tokenize(content);
+ assertNoMoreTokens();
+ }
+
+ @Test
+ public void shouldCreateTokenForEndOfLineComment() {
+ String content = "--//this is a comment\n";
+ tokenize(content);
+ assertNextTokenIs(0, 1, CndTokenizer.SYMBOL);
+ assertNextTokenIs(1, 2, CndTokenizer.SYMBOL);
+ assertNextTokenIs(2, content.length() - 1, CndTokenizer.COMMENT); // -1 because '\n' is not included
+ assertNoMoreTokens();
+ }
+
+ @Test
+ public void shouldCreateTokenForEndOfLineCommentThatEndsWithEndOfString() {
+ String content = "--//this is a comment";
+ tokenize(content);
+ assertNextTokenIs(0, 1, CndTokenizer.SYMBOL);
+ assertNextTokenIs(1, 2, CndTokenizer.SYMBOL);
+ assertNextTokenIs(2, content.length(), CndTokenizer.COMMENT);
+ assertNoMoreTokens();
+ }
+
+ @Test
+ public void shouldCreateTokenForMultiLineComment() {
+ String content = "--/*this is a comment*/-";
+ tokenize(content);
+ assertNextTokenIs(0, 1, CndTokenizer.SYMBOL);
+ assertNextTokenIs(1, 2, CndTokenizer.SYMBOL);
+ assertNextTokenIs(2, content.length() - 1, CndTokenizer.COMMENT);
+ assertNextTokenIs(content.length() - 1, content.length(), CndTokenizer.SYMBOL);
+ assertNoMoreTokens();
+ }
+
+ @Test
+ public void shouldCreateTokenForMultiLineCommentAtEndOfContent() {
+ String content = "--/*this is a comment*/";
+ tokenize(content);
+ assertNextTokenIs(0, 1, CndTokenizer.SYMBOL);
+ assertNextTokenIs(1, 2, CndTokenizer.SYMBOL);
+ assertNextTokenIs(2, content.length(), CndTokenizer.COMMENT);
+ assertNoMoreTokens();
+ }
+
+ @Test
+ public void shouldCreateTokenForMultiLineCommentWithoutTerminatingCharacters() {
+ String content = "--/*this is a comment";
+ tokenize(content);
+ assertNextTokenIs(0, 1, CndTokenizer.SYMBOL);
+ assertNextTokenIs(1, 2, CndTokenizer.SYMBOL);
+ assertNextTokenIs(2, content.length(), CndTokenizer.COMMENT);
+ assertNoMoreTokens();
+ }
+
+ @Test
+ public void shouldCreateTokenForMultiLineCommentWithoutAllTerminatingCharacters() {
+ String content = "--/*this is a comment*";
+ tokenize(content);
+ assertNextTokenIs(0, 1, CndTokenizer.SYMBOL);
+ assertNextTokenIs(1, 2, CndTokenizer.SYMBOL);
+ assertNextTokenIs(2, content.length(), CndTokenizer.COMMENT);
+ assertNoMoreTokens();
+ }
+
+ @Test
+ public void shouldCreateTokenForSingleQuotedString() {
+ String content = "--'this is a single-quoted \n string'-";
+ assertThat(content.charAt(2), is('\''));
+ assertThat(content.charAt(35), is('\''));
+ tokenize(content);
+ assertNextTokenIs(0, 1, CndTokenizer.SYMBOL);
+ assertNextTokenIs(1, 2, CndTokenizer.SYMBOL);
+ assertNextTokenIs(2, 36, CndTokenizer.SINGLE_QUOTED_STRING);
+ assertNextTokenIs(36, 37, CndTokenizer.SYMBOL);
+ assertNoMoreTokens();
+ }
+
+ @Test
+ public void shouldCreateTokenForSingleQuotedStringWithEscapedSingleQuoteCharacters() {
+ String content = "--'this \"is\" a \\'single-quoted\\' \n string'-";
+ assertThat(content.charAt(2), is('\''));
+ assertThat(content.charAt(41), is('\''));
+ tokenize(content);
+ assertNextTokenIs(0, 1, CndTokenizer.SYMBOL);
+ assertNextTokenIs(1, 2, CndTokenizer.SYMBOL);
+ assertNextTokenIs(2, 42, CndTokenizer.SINGLE_QUOTED_STRING);
+ assertNextTokenIs(42, 43, CndTokenizer.SYMBOL);
+ assertNoMoreTokens();
+ }
+
+ @Test
+ public void shouldCreateTokenForSingleQuotedStringAtEndOfContent() {
+ String content = "--'this is a single-quoted \n string'";
+ assertThat(content.charAt(2), is('\''));
+ assertThat(content.charAt(35), is('\''));
+ tokenize(content);
+ assertNextTokenIs(0, 1, CndTokenizer.SYMBOL);
+ assertNextTokenIs(1, 2, CndTokenizer.SYMBOL);
+ assertNextTokenIs(2, 36, CndTokenizer.SINGLE_QUOTED_STRING);
+ assertNoMoreTokens();
+ }
+
+ @Test( expected = ParsingException.class )
+ public void shouldCreateTokenForSingleQuotedStringWithoutClosingQuote() {
+ String content = "--'this is a single-quoted \n string";
+ tokenize(content);
+ }
+
+ @Test
+ public void shouldCreateTokenForDoubleQuotedString() {
+ String content = "--\"this is a double-quoted \n string\"-";
+ assertThat(content.charAt(2), is('"'));
+ assertThat(content.charAt(35), is('"'));
+ tokenize(content);
+ assertNextTokenIs(0, 1, CndTokenizer.SYMBOL);
+ assertNextTokenIs(1, 2, CndTokenizer.SYMBOL);
+ assertNextTokenIs(2, 36, CndTokenizer.DOUBLE_QUOTED_STRING);
+ assertNextTokenIs(36, 37, CndTokenizer.SYMBOL);
+ assertNoMoreTokens();
+ }
+
+ @Test
+ public void shouldCreateTokenForDoubleQuotedStringWithEscapedDoubleQuoteCharacters() {
+ String content = "--\"this 'is' a \\\"double-quoted\\\" \n string\"-";
+ assertThat(content.charAt(2), is('"'));
+ assertThat(content.charAt(41), is('"'));
+ tokenize(content);
+ assertNextTokenIs(0, 1, CndTokenizer.SYMBOL);
+ assertNextTokenIs(1, 2, CndTokenizer.SYMBOL);
+ assertNextTokenIs(2, 42, CndTokenizer.DOUBLE_QUOTED_STRING);
+ assertNextTokenIs(42, 43, CndTokenizer.SYMBOL);
+ assertNoMoreTokens();
+ }
+
+ @Test
+ public void shouldCreateTokenForDoubleQuotedStringAtEndOfContent() {
+ String content = "--\"this is a double-quoted \n string\"";
+ assertThat(content.charAt(2), is('"'));
+ assertThat(content.charAt(35), is('"'));
+ tokenize(content);
+ assertNextTokenIs(0, 1, CndTokenizer.SYMBOL);
+ assertNextTokenIs(1, 2, CndTokenizer.SYMBOL);
+ assertNextTokenIs(2, 36, CndTokenizer.DOUBLE_QUOTED_STRING);
+ assertNoMoreTokens();
+ }
+
+ @Test( expected = ParsingException.class )
+ public void shouldCreateTokenForDoubleQuotedStringWithoutClosingQuote() {
+ String content = "--\"this is a double-quoted \n string";
+ tokenize(content);
+ }
+
+ @Test
+ public void shouldCreateTokensForWordsWithAlphabeticCharacters() {
+ String content = "This is a series of words.";
+ tokenize(content);
+ assertNextTokenIs(0, 4, CndTokenizer.WORD);
+ assertNextTokenIs(5, 7, CndTokenizer.WORD);
+ assertNextTokenIs(8, 9, CndTokenizer.WORD);
+ assertNextTokenIs(10, 16, CndTokenizer.WORD);
+ assertNextTokenIs(17, 19, CndTokenizer.WORD);
+ assertNextTokenIs(20, 26, CndTokenizer.WORD);
+ assertNoMoreTokens();
+ }
+
+ @Test
+ public void shouldCreateTokensForWordsWithNumericCharacters() {
+ String content = "1234 4 5353.324";
+ tokenize(content);
+ assertNextTokenIs(0, 4, CndTokenizer.WORD);
+ assertNextTokenIs(5, 6, CndTokenizer.WORD);
+ assertNextTokenIs(7, 15, CndTokenizer.WORD);
+ assertNoMoreTokens();
+ }
+
+ @Test
+ public void shouldCreateTokensForWordsWithAlphaNumericCharacters() {
+ String content = "123a 5353.324e100";
+ tokenize(content);
+ assertNextTokenIs(0, 4, CndTokenizer.WORD);
+ assertNextTokenIs(5, 17, CndTokenizer.WORD);
+ assertNoMoreTokens();
+ }
+}
Property changes on: trunk/dna-cnd/src/test/java/org/jboss/dna/cnd/CndTokenizerTest.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: trunk/dna-cnd/src/test/resources/cnd/jcr-builtins-283-early-draft.cnd
===================================================================
--- trunk/dna-cnd/src/test/resources/cnd/jcr-builtins-283-early-draft.cnd 2009-09-16 14:39:42 UTC (rev 1225)
+++ trunk/dna-cnd/src/test/resources/cnd/jcr-builtins-283-early-draft.cnd 2009-09-16 14:40:56 UTC (rev 1226)
@@ -1,7 +1,7 @@
-<jcr=http://www.jcp.org/jcr/1.0>
-<nt=http://www.jcp.org/jcr/nt/1.0>
-<mix=http://www.jcp.org/jcr/mix/1.0>
-<sv=http://www.jcp.org/jcr/sv/1.0>
+<jcr='http://www.jcp.org/jcr/1.0'>
+<nt='http://www.jcp.org/jcr/nt/1.0'>
+<mix='http://www.jcp.org/jcr/mix/1.0'>
+<sv='http://www.jcp.org/jcr/sv/1.0'>
// ------------------------------------------------------------------------
// Pre-defined Node Types
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/text/TokenStream.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/text/TokenStream.java 2009-09-16 14:39:42 UTC (rev 1225)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/text/TokenStream.java 2009-09-16 14:40:56 UTC (rev 1226)
@@ -32,6 +32,7 @@
import net.jcip.annotations.NotThreadSafe;
import org.jboss.dna.common.CommonI18n;
import org.jboss.dna.common.util.CheckArg;
+import org.jboss.dna.common.xml.XmlCharacters;
/**
* A foundation for basic parsers that tokenizes input content and allows parsers to easily access and use those tokens. A
@@ -421,6 +422,28 @@
}
/**
+ * Get the position of the previous token.
+ *
+ * @return the previous token's position; never null
+ * @throws IllegalStateException if this method was called before the stream was {@link #start() started}
+ * @throws NoSuchElementException if there is no previous token
+ */
+ public Position previousPosition() {
+ return previousToken().position();
+ }
+
+ /**
+ * Get the position of the next (or current) token.
+ *
+ * @return the current token's position; never null
+ * @throws IllegalStateException if this method was called before the stream was {@link #start() started}
+ * @throws NoSuchElementException if there is no previous token
+ */
+ public Position nextPosition() {
+ return currentToken().position();
+ }
+
+ /**
* Return the value of this token and move to the next token.
*
* @return the value of the current token
@@ -746,6 +769,87 @@
}
/**
+ * Attempt to consume the next token if it matches one of the supplied values.
+ *
+ * @param firstOption the first option for the value of the current token
+ * @param additionalOptions the additional options for the value of the current token
+ * @return true if the current token's value did match one of the suplied options, or false otherwise
+ * @throws IllegalStateException if this method was called before the stream was {@link #start() started}
+ */
+ public boolean canConsumeAnyOf( String firstOption,
+ String... additionalOptions ) throws IllegalStateException {
+ if (completed) return false;
+ if (canConsume(firstOption)) return true;
+ for (String nextOption : additionalOptions) {
+ if (canConsume(nextOption)) return true;
+ }
+ return false;
+ }
+
+ /**
+ * Attempt to consume the next token if it matches one of the supplied values.
+ *
+ * @param options the options for the value of the current token
+ * @return true if the current token's value did match one of the suplied options, or false otherwise
+ * @throws IllegalStateException if this method was called before the stream was {@link #start() started}
+ */
+ public boolean canConsumeAnyOf( String[] options ) throws IllegalStateException {
+ if (completed) return false;
+ for (String option : options) {
+ if (canConsume(option)) return true;
+ }
+ return false;
+ }
+
+ /**
+ * Attempt to consume the next token if it matches one of the supplied values.
+ *
+ * @param options the options for the value of the current token
+ * @return true if the current token's value did match one of the suplied options, or false otherwise
+ * @throws IllegalStateException if this method was called before the stream was {@link #start() started}
+ */
+ public boolean canConsumeAnyOf( Iterable<String> options ) throws IllegalStateException {
+ if (completed) return false;
+ for (String option : options) {
+ if (canConsume(option)) return true;
+ }
+ return false;
+ }
+
+ /**
+ * Attempt to consume the next token if it matches one of the supplied types.
+ *
+ * @param firstTypeOption the first option for the type of the current token
+ * @param additionalTypeOptions the additional options for the type of the current token
+ * @return true if the current token's type matched one of the supplied options, or false otherwise
+ * @throws IllegalStateException if this method was called before the stream was {@link #start() started}
+ */
+ public boolean canConsumeAnyOf( int firstTypeOption,
+ int... additionalTypeOptions ) throws IllegalStateException {
+ if (completed) return false;
+ if (canConsume(firstTypeOption)) return true;
+ for (int nextTypeOption : additionalTypeOptions) {
+ if (canConsume(nextTypeOption)) return true;
+ }
+ return false;
+ }
+
+ /**
+ * Attempt to consume the next token if it matches one of the supplied types.
+ *
+ * @param typeOptions the options for the type of the current token
+ * @return true if the current token's type matched one of the supplied options, or false otherwise
+ * @throws IllegalStateException if this method was called before the stream was {@link #start() started}
+ */
+ public boolean canConsumeAnyOf( int[] typeOptions ) throws IllegalStateException {
+ if (completed) return false;
+ for (int nextTypeOption : typeOptions) {
+ if (canConsume(nextTypeOption)) return true;
+ }
+ return false;
+ }
+
+ /**
* Determine if the current token matches the expected value.
* <p>
* The {@link #ANY_VALUE ANY_VALUE} constant can be used as a wildcard.
@@ -1003,13 +1107,30 @@
return tokenIterator.hasNext();
}
- // public Position currentPosition() {
- // return currentToken().position();
- // }
- //
- // public int currentType() {
- // return currentToken().type();
- // }
+ /**
+ * {@inheritDoc}
+ *
+ * @see java.lang.Object#toString()
+ */
+ @Override
+ public String toString() {
+ ListIterator<Token> iter = tokens.listIterator(tokenIterator.previousIndex());
+ StringBuilder sb = new StringBuilder();
+ if (iter.hasNext()) {
+ sb.append(iter.next());
+ int count = 1;
+ while (iter.hasNext()) {
+ if (count > 20) {
+ sb.append(" ...");
+ break;
+ }
+ sb.append(" ");
+ ++count;
+ sb.append(iter.next());
+ }
+ }
+ return sb.toString();
+ }
private void moveToNextToken() {
// And move the currentToken to the next token ...
@@ -1039,6 +1160,30 @@
return currentToken;
}
+ /**
+ * Get the previous token. This does not modify the state.
+ *
+ * @return the previous token; never null
+ * @throws IllegalStateException if this method was called before the stream was {@link #start() started}
+ * @throws NoSuchElementException if there is no previous token
+ */
+ final Token previousToken() throws IllegalStateException, NoSuchElementException {
+ if (currentToken == null) {
+ if (completed) {
+ if (tokens.isEmpty()) {
+ throw new NoSuchElementException(CommonI18n.noMoreContent.text());
+ }
+ return tokens.get(tokens.size() - 1);
+ }
+ throw new IllegalStateException(CommonI18n.startMethodMustBeCalledBeforeConsumingOrMatching.text());
+ }
+ if (!tokenIterator.hasPrevious()) {
+ throw new NoSuchElementException(CommonI18n.noMoreContent.text());
+ }
+ ListIterator<Token> temp = tokens.listIterator(tokenIterator.previousIndex());
+ return temp.next();
+ }
+
String generateFragment() {
// Find the current position ...
assert currentToken != null;
@@ -1133,6 +1278,14 @@
boolean isNextWhitespace();
/**
+ * Determine if the next character on the sream is a {@link XmlCharacters#isValid(int) valid XML character}. This method
+ * does <i>not</i> advance the stream.
+ *
+ * @return true if there is a {@link #next() next} character and it is a valid XML character, or false otherwise
+ */
+ boolean isNextValidXmlCharacter();
+
+ /**
* Determine if the next character on the sream is the supplied value. This method does <i>not</i> advance the stream.
*
* @param c the character value to compare to the next character on the stream
@@ -1234,26 +1387,74 @@
/**
* The interface defining a token, which references the characters in the actual input character stream.
+ *
+ * @see CaseSensitiveTokenFactory
+ * @see CaseInsensitiveTokenFactory
*/
@Immutable
- protected interface Token {
+ public interface Token {
+ /**
+ * Get the value of the token, in actual case.
+ *
+ * @return the value
+ */
String value();
+ /**
+ * Determine if the token matches the supplied string.
+ *
+ * @param expected the expected value
+ * @return true if the token's value matches the supplied value, or false otherwise
+ */
boolean matches( String expected );
+ /**
+ * Determine if the token matches the supplied character.
+ *
+ * @param expected the expected character value
+ * @return true if the token's value matches the supplied character value, or false otherwise
+ */
boolean matches( char expected );
+ /**
+ * Get the type of the token.
+ *
+ * @return the token's type
+ */
int type();
+ /**
+ * Get the index in the raw stream for the first character in the token.
+ *
+ * @return the starting index of the token
+ */
int startIndex();
+ /**
+ * Get the index in the raw stream past the last character in the token.
+ *
+ * @return the ending index of the token, which is past the last character
+ */
int endIndex();
+ /**
+ * Get the length of the token, which is equivalent to <code>endIndex() - startIndex()</code>.
+ *
+ * @return the length
+ */
int length();
+ /**
+ * Get the position of this token, which includes the line number and column number of the first character in the token.
+ *
+ * @return the position; never null
+ */
Position position();
}
+ /**
+ * An immutable {@link Token} that implements matching using case-sensitive logic.
+ */
@Immutable
protected class CaseSensitiveToken implements Token {
private final int startIndex;
@@ -1410,7 +1611,7 @@
}
}
- protected class CaseSensitiveTokenFactory extends TokenFactory {
+ public class CaseSensitiveTokenFactory extends TokenFactory {
/**
* {@inheritDoc}
*
@@ -1424,7 +1625,7 @@
}
}
- protected class CaseInsensitiveTokenFactory extends TokenFactory {
+ public class CaseInsensitiveTokenFactory extends TokenFactory {
/**
* {@inheritDoc}
*
@@ -1438,7 +1639,10 @@
}
}
- protected static final class CharacterArrayStream implements CharacterStream {
+ /**
+ * An implementation of {@link CharacterStream} that works with a single character array.
+ */
+ public static final class CharacterArrayStream implements CharacterStream {
private final char[] content;
private int lastIndex = -1;
private final int maxIndex;
@@ -1446,7 +1650,7 @@
private int columnNumber = 1;
private boolean nextCharMayBeLineFeed;
- protected CharacterArrayStream( char[] content ) {
+ public CharacterArrayStream( char[] content ) {
this.content = content;
this.maxIndex = content.length - 1;
}
@@ -1577,6 +1781,16 @@
int nextIndex = lastIndex + 1;
return nextIndex <= maxIndex && Character.isWhitespace(content[nextIndex]);
}
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.jboss.dna.common.text.TokenStream.CharacterStream#isNextValidXmlCharacter()
+ */
+ public boolean isNextValidXmlCharacter() {
+ int nextIndex = lastIndex + 1;
+ return nextIndex <= maxIndex && XmlCharacters.isValid(content[nextIndex]);
+ }
}
/**
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/JcrLexicon.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/JcrLexicon.java 2009-09-16 14:39:42 UTC (rev 1225)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/JcrLexicon.java 2009-09-16 14:40:56 UTC (rev 1226)
@@ -67,6 +67,7 @@
public static final Name PRIMARY_ITEM_NAME = new BasicName(Namespace.URI, "primaryItemName");
public static final Name PROPERTY_DEFINITION = new BasicName(Namespace.URI, "propertyDefinition");
public static final Name PROTECTED = new BasicName(Namespace.URI, "protected");
+ public static final Name QUERY_OPERATORS = new BasicName(Namespace.URI, "queryOperators");
public static final Name REQUIRED_PRIMARY_TYPES = new BasicName(Namespace.URI, "requiredPrimaryTypes");
public static final Name REQUIRED_TYPE = new BasicName(Namespace.URI, "requiredType");
public static final Name SAME_NAME_SIBLINGS = new BasicName(Namespace.URI, "sameNameSiblings");
16 years, 7 months
DNA SVN: r1225 - in trunk: build/assembly and 1 other directory.
by dna-commits@lists.jboss.org
Author: rhauch
Date: 2009-09-16 10:39:42 -0400 (Wed, 16 Sep 2009)
New Revision: 1225
Modified:
trunk/build/assembly/dist.xml
trunk/build/assembly/javadoc.xml
trunk/pom.xml
Log:
Changed location of JavaDoc to 'apidoc' (from 'api', which was used for only the 0.6 release but was inconsistent within the release)
Modified: trunk/build/assembly/dist.xml
===================================================================
--- trunk/build/assembly/dist.xml 2009-09-14 21:32:06 UTC (rev 1224)
+++ trunk/build/assembly/dist.xml 2009-09-16 14:39:42 UTC (rev 1225)
@@ -25,8 +25,8 @@
<!--
Gather into the distribution the JavaDoc for all projects
-->
- <directory>target/site/api</directory>
- <outputDirectory>api</outputDirectory>
+ <directory>target/site/apidoc</directory>
+ <outputDirectory>apidoc</outputDirectory>
</fileSet>
<fileSet>
<!--
Modified: trunk/build/assembly/javadoc.xml
===================================================================
--- trunk/build/assembly/javadoc.xml 2009-09-14 21:32:06 UTC (rev 1224)
+++ trunk/build/assembly/javadoc.xml 2009-09-16 14:39:42 UTC (rev 1225)
@@ -26,8 +26,8 @@
<!--
Gather into the distribution the JavaDoc for all projects
-->
- <directory>target/api</directory>
- <outputDirectory>api</outputDirectory>
+ <directory>target/apidoc</directory>
+ <outputDirectory>apidoc</outputDirectory>
</fileSet>
</fileSets>
</assembly>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2009-09-14 21:32:06 UTC (rev 1224)
+++ trunk/pom.xml 2009-09-16 14:39:42 UTC (rev 1225)
@@ -253,9 +253,9 @@
<attach>false</attach>
<!--stylesheetfile>${basedir}/src/javadoc/stylesheet.css</stylesheetfile-->
<useStandardDocletOptions>true</useStandardDocletOptions>
- <outputDirectory>${project.build.directory}/api</outputDirectory>
- <reportOutputDirectory>${project.build.directory}/api</reportOutputDirectory>
- <destDir>api</destDir>
+ <outputDirectory>${project.build.directory}/apidoc</outputDirectory>
+ <reportOutputDirectory>${project.build.directory}/apidoc</reportOutputDirectory>
+ <destDir>apidoc</destDir>
<charset>UTF-8</charset>
<docencoding>UTF-8</docencoding>
<breakiterator>true</breakiterator>
16 years, 7 months
DNA SVN: r1224 - branches/eclipse/dna-web-jcr-rest-client/src/main/java/org/jboss/dna/web/jcr/rest/client.
by dna-commits@lists.jboss.org
Author: elvisisking
Date: 2009-09-14 17:32:06 -0400 (Mon, 14 Sep 2009)
New Revision: 1224
Modified:
branches/eclipse/dna-web-jcr-rest-client/src/main/java/org/jboss/dna/web/jcr/rest/client/ServerManager.java
Log:
Using Base64 encryption/decryption when persisting/restoring password.
Modified: branches/eclipse/dna-web-jcr-rest-client/src/main/java/org/jboss/dna/web/jcr/rest/client/ServerManager.java
===================================================================
--- branches/eclipse/dna-web-jcr-rest-client/src/main/java/org/jboss/dna/web/jcr/rest/client/ServerManager.java 2009-09-14 02:00:24 UTC (rev 1223)
+++ branches/eclipse/dna-web-jcr-rest-client/src/main/java/org/jboss/dna/web/jcr/rest/client/ServerManager.java 2009-09-14 21:32:06 UTC (rev 1224)
@@ -44,6 +44,7 @@
import javax.xml.transform.stream.StreamResult;
import net.jcip.annotations.GuardedBy;
import net.jcip.annotations.ThreadSafe;
+import org.jboss.dna.common.util.Base64;
import org.jboss.dna.common.util.CheckArg;
import org.jboss.dna.common.util.Logger;
import org.jboss.dna.web.jcr.rest.client.Status.Severity;
@@ -562,7 +563,8 @@
Node urlNode = attributeMap.getNamedItem(URL_TAG);
Node userNode = attributeMap.getNamedItem(USER_TAG);
Node passwordNode = attributeMap.getNamedItem(PASSWORD_TAG);
- String pswd = ((passwordNode == null) ? null : (String)passwordNode.getNodeValue());
+ String pswd = ((passwordNode == null) ? null : new String(Base64.decode(passwordNode.getNodeValue()),
+ "UTF-8")); //$NON-NLS-1$
// add server to registry
addServer(new Server(urlNode.getNodeValue(), userNode.getNodeValue(), pswd, (pswd != null)));
@@ -602,7 +604,7 @@
serverElement.setAttribute(USER_TAG, server.getUser());
if (server.isPasswordBeingPersisted()) {
- serverElement.setAttribute(PASSWORD_TAG, server.getPassword());
+ serverElement.setAttribute(PASSWORD_TAG, Base64.encodeBytes(server.getPassword().getBytes()));
}
}
16 years, 7 months
DNA SVN: r1222 - in trunk: dna-cnd and 28 other directories.
by dna-commits@lists.jboss.org
Author: rhauch
Date: 2009-09-13 11:11:41 -0400 (Sun, 13 Sep 2009)
New Revision: 1222
Modified:
trunk/dna-cnd/pom.xml
trunk/dna-common/pom.xml
trunk/dna-graph/pom.xml
trunk/dna-integration-tests/pom.xml
trunk/dna-jcr/pom.xml
trunk/dna-repository/pom.xml
trunk/docs/examples/gettingstarted/pom.xml
trunk/docs/examples/gettingstarted/repositories/pom.xml
trunk/docs/examples/gettingstarted/sequencers/pom.xml
trunk/docs/gettingstarted/pom.xml
trunk/docs/pom.xml
trunk/docs/reference/pom.xml
trunk/extensions/dna-classloader-maven/pom.xml
trunk/extensions/dna-connector-filesystem/pom.xml
trunk/extensions/dna-connector-infinispan/pom.xml
trunk/extensions/dna-connector-jbosscache/pom.xml
trunk/extensions/dna-connector-store-jpa/pom.xml
trunk/extensions/dna-connector-svn/pom.xml
trunk/extensions/dna-mimetype-detector-aperture/pom.xml
trunk/extensions/dna-sequencer-cnd/pom.xml
trunk/extensions/dna-sequencer-images/pom.xml
trunk/extensions/dna-sequencer-java/pom.xml
trunk/extensions/dna-sequencer-jbpm-jpdl/pom.xml
trunk/extensions/dna-sequencer-mp3/pom.xml
trunk/extensions/dna-sequencer-msoffice/pom.xml
trunk/extensions/dna-sequencer-xml/pom.xml
trunk/extensions/dna-sequencer-zip/pom.xml
trunk/pom.xml
trunk/web/dna-web-jcr-rest-war/pom.xml
trunk/web/dna-web-jcr-rest/pom.xml
Log:
[maven-release-plugin] prepare for next development iteration
Modified: trunk/dna-cnd/pom.xml
===================================================================
--- trunk/dna-cnd/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/dna-cnd/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -2,7 +2,7 @@
<parent>
<artifactId>dna</artifactId>
<groupId>org.jboss.dna</groupId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.dna</groupId>
Modified: trunk/dna-common/pom.xml
===================================================================
--- trunk/dna-common/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/dna-common/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -3,7 +3,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
</parent>
<!-- The groupId and version values are inherited from parent -->
<artifactId>dna-common</artifactId>
Modified: trunk/dna-graph/pom.xml
===================================================================
--- trunk/dna-graph/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/dna-graph/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -3,7 +3,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
</parent>
<!-- The groupId and version values are inherited from parent -->
<artifactId>dna-graph</artifactId>
Modified: trunk/dna-integration-tests/pom.xml
===================================================================
--- trunk/dna-integration-tests/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/dna-integration-tests/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -3,7 +3,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
</parent>
<!-- The groupId and version values are inherited from parent -->
<artifactId>dna-integration-tests</artifactId>
Modified: trunk/dna-jcr/pom.xml
===================================================================
--- trunk/dna-jcr/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/dna-jcr/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -4,7 +4,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
</parent>
<!-- The groupId and version values are inherited from parent -->
<artifactId>dna-jcr</artifactId>
Modified: trunk/dna-repository/pom.xml
===================================================================
--- trunk/dna-repository/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/dna-repository/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -3,7 +3,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
</parent>
<!-- The groupId and version values are inherited from parent -->
<artifactId>dna-repository</artifactId>
Modified: trunk/docs/examples/gettingstarted/pom.xml
===================================================================
--- trunk/docs/examples/gettingstarted/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/docs/examples/gettingstarted/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -4,7 +4,7 @@
<groupId>org.jboss.dna.examples</groupId>
<artifactId>getting_started</artifactId>
<packaging>pom</packaging>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
<name>JBoss DNA Getting Started examples</name>
<description />
Modified: trunk/docs/examples/gettingstarted/repositories/pom.xml
===================================================================
--- trunk/docs/examples/gettingstarted/repositories/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/docs/examples/gettingstarted/repositories/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -3,14 +3,14 @@
<parent>
<groupId>org.jboss.dna.examples</groupId>
<artifactId>getting_started</artifactId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.dna.examples</groupId>
<artifactId>dna-example-repositories</artifactId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
<packaging>jar</packaging>
<name>JBoss DNA Repositories Examples</name>
<description>Examples that showcase how to use DNA repositories.</description>
Modified: trunk/docs/examples/gettingstarted/sequencers/pom.xml
===================================================================
--- trunk/docs/examples/gettingstarted/sequencers/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/docs/examples/gettingstarted/sequencers/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -3,14 +3,14 @@
<parent>
<groupId>org.jboss.dna.examples</groupId>
<artifactId>getting_started</artifactId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.dna.examples</groupId>
<artifactId>dna-example-sequencers</artifactId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
<packaging>jar</packaging>
<name>JBoss DNA Sequencer Examples</name>
<description>Examples that showcase how to use sequencers with a JCR repository.</description>
Modified: trunk/docs/gettingstarted/pom.xml
===================================================================
--- trunk/docs/gettingstarted/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/docs/gettingstarted/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -4,7 +4,7 @@
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.6</version>
+ <version>0.7-SNAPSHOT</version>
<packaging>jdocbook</packaging>
<name>JBoss DNA Getting Started manual</name>
<description>The JBoss DNA Getting Started manual</description>
Modified: trunk/docs/pom.xml
===================================================================
--- trunk/docs/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/docs/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.dna.docs</groupId>
Modified: trunk/docs/reference/pom.xml
===================================================================
--- trunk/docs/reference/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/docs/reference/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -4,7 +4,7 @@
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.6</version>
+ <version>0.7-SNAPSHOT</version>
<packaging>jdocbook</packaging>
<name>JBoss DNA Reference Guide</name>
<description>The reference guide for JBoss DNA developers and advanced users</description>
Modified: trunk/extensions/dna-classloader-maven/pom.xml
===================================================================
--- trunk/extensions/dna-classloader-maven/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/extensions/dna-classloader-maven/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -3,7 +3,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
<relativePath>../..</relativePath>
</parent>
<!-- The groupId and version values are inherited from parent -->
Modified: trunk/extensions/dna-connector-filesystem/pom.xml
===================================================================
--- trunk/extensions/dna-connector-filesystem/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/extensions/dna-connector-filesystem/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -4,7 +4,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
<relativePath>../..</relativePath>
</parent>
<!-- The groupId and version values are inherited from parent -->
Modified: trunk/extensions/dna-connector-infinispan/pom.xml
===================================================================
--- trunk/extensions/dna-connector-infinispan/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/extensions/dna-connector-infinispan/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -4,7 +4,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
<relativePath>../..</relativePath>
</parent>
<!-- The groupId and version values are inherited from parent -->
Modified: trunk/extensions/dna-connector-jbosscache/pom.xml
===================================================================
--- trunk/extensions/dna-connector-jbosscache/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/extensions/dna-connector-jbosscache/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -4,7 +4,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
<relativePath>../..</relativePath>
</parent>
<!-- The groupId and version values are inherited from parent -->
Modified: trunk/extensions/dna-connector-store-jpa/pom.xml
===================================================================
--- trunk/extensions/dna-connector-store-jpa/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/extensions/dna-connector-store-jpa/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -4,7 +4,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
<relativePath>../..</relativePath>
</parent>
<!-- The groupId and version values are inherited from parent -->
Modified: trunk/extensions/dna-connector-svn/pom.xml
===================================================================
--- trunk/extensions/dna-connector-svn/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/extensions/dna-connector-svn/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -3,7 +3,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
<relativePath>../..</relativePath>
</parent>
<artifactId>dna-connector-svn</artifactId>
Modified: trunk/extensions/dna-mimetype-detector-aperture/pom.xml
===================================================================
--- trunk/extensions/dna-mimetype-detector-aperture/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/extensions/dna-mimetype-detector-aperture/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -3,7 +3,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
<relativePath>../..</relativePath>
</parent>
<!-- The groupId and version values are inherited from parent -->
Modified: trunk/extensions/dna-sequencer-cnd/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-cnd/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/extensions/dna-sequencer-cnd/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -2,7 +2,7 @@
<parent>
<artifactId>dna</artifactId>
<groupId>org.jboss.dna</groupId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
<relativePath>../..</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: trunk/extensions/dna-sequencer-images/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-images/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/extensions/dna-sequencer-images/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -3,7 +3,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
<relativePath>../..</relativePath>
</parent>
<!-- The groupId and version values are inherited from parent -->
Modified: trunk/extensions/dna-sequencer-java/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-java/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/extensions/dna-sequencer-java/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -3,7 +3,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
<relativePath>../..</relativePath>
</parent>
<!-- The groupId and version values are inherited from parent -->
Modified: trunk/extensions/dna-sequencer-jbpm-jpdl/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-jbpm-jpdl/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/extensions/dna-sequencer-jbpm-jpdl/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -3,12 +3,12 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
<relativePath>../..</relativePath>
</parent>
<artifactId>dna-sequencer-jbpm-jpdl</artifactId>
<packaging>jar</packaging>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
<name>JBoss DNA jBPM jPDL Sequencer</name>
<description>
JBoss DNA Sequencer that processes jPDL XML document
Modified: trunk/extensions/dna-sequencer-mp3/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-mp3/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/extensions/dna-sequencer-mp3/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -3,7 +3,7 @@
<parent>
<artifactId>dna</artifactId>
<groupId>org.jboss.dna</groupId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
<relativePath>../..</relativePath>
</parent>
<!-- The groupId and version values are inherited from parent -->
Modified: trunk/extensions/dna-sequencer-msoffice/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-msoffice/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/extensions/dna-sequencer-msoffice/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -3,7 +3,7 @@
<parent>
<artifactId>dna</artifactId>
<groupId>org.jboss.dna</groupId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
<relativePath>../..</relativePath>
</parent>
<!-- The groupId and version values are inherited from parent -->
Modified: trunk/extensions/dna-sequencer-xml/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-xml/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/extensions/dna-sequencer-xml/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -3,7 +3,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
<relativePath>../..</relativePath>
</parent>
<!-- The groupId and version values are inherited from parent -->
Modified: trunk/extensions/dna-sequencer-zip/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-zip/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/extensions/dna-sequencer-zip/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -3,7 +3,7 @@
<parent>
<artifactId>dna</artifactId>
<groupId>org.jboss.dna</groupId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
<relativePath>../..</relativePath>
</parent>
<!-- The groupId and version values are inherited from parent -->
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -2,7 +2,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
<packaging>pom</packaging>
<name>JBoss DNA</name>
<url>http://www.jboss.org/dna</url>
@@ -11,7 +11,7 @@
JBoss DNA provides tools for working with JCR repositories.
</description>
<scm>
- <connection>scm:svn:https://svn.jboss.org/repos/dna/tags/dna-0.6</connection>
+ <connection>scm:svn:https://svn.jboss.org/repos/dna/trunk</connection>
</scm>
<licenses>
<license>
Modified: trunk/web/dna-web-jcr-rest/pom.xml
===================================================================
--- trunk/web/dna-web-jcr-rest/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/web/dna-web-jcr-rest/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -3,7 +3,7 @@
<parent>
<artifactId>dna</artifactId>
<groupId>org.jboss.dna</groupId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
<relativePath>../..</relativePath>
</parent>
<artifactId>dna-web-jcr-rest</artifactId>
Modified: trunk/web/dna-web-jcr-rest-war/pom.xml
===================================================================
--- trunk/web/dna-web-jcr-rest-war/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
+++ trunk/web/dna-web-jcr-rest-war/pom.xml 2009-09-13 15:11:41 UTC (rev 1222)
@@ -3,7 +3,7 @@
<parent>
<artifactId>dna</artifactId>
<groupId>org.jboss.dna</groupId>
- <version>0.6</version>
+ <version>0.7-SNAPSHOT</version>
<relativePath>../..</relativePath>
</parent>
<artifactId>dna-web-jcr-rest-war</artifactId>
16 years, 7 months
DNA SVN: r1221 - in tags: dna-0.6 and 29 other directories.
by dna-commits@lists.jboss.org
Author: rhauch
Date: 2009-09-13 11:10:56 -0400 (Sun, 13 Sep 2009)
New Revision: 1221
Added:
tags/dna-0.6/
tags/dna-0.6/dna-cnd/pom.xml
tags/dna-0.6/dna-common/pom.xml
tags/dna-0.6/dna-graph/pom.xml
tags/dna-0.6/dna-integration-tests/pom.xml
tags/dna-0.6/dna-jcr/pom.xml
tags/dna-0.6/dna-repository/pom.xml
tags/dna-0.6/docs/examples/gettingstarted/pom.xml
tags/dna-0.6/docs/examples/gettingstarted/repositories/pom.xml
tags/dna-0.6/docs/examples/gettingstarted/sequencers/pom.xml
tags/dna-0.6/docs/gettingstarted/pom.xml
tags/dna-0.6/docs/pom.xml
tags/dna-0.6/docs/reference/pom.xml
tags/dna-0.6/extensions/dna-classloader-maven/pom.xml
tags/dna-0.6/extensions/dna-connector-filesystem/pom.xml
tags/dna-0.6/extensions/dna-connector-infinispan/pom.xml
tags/dna-0.6/extensions/dna-connector-jbosscache/pom.xml
tags/dna-0.6/extensions/dna-connector-store-jpa/pom.xml
tags/dna-0.6/extensions/dna-connector-svn/pom.xml
tags/dna-0.6/extensions/dna-mimetype-detector-aperture/pom.xml
tags/dna-0.6/extensions/dna-sequencer-cnd/pom.xml
tags/dna-0.6/extensions/dna-sequencer-images/pom.xml
tags/dna-0.6/extensions/dna-sequencer-java/pom.xml
tags/dna-0.6/extensions/dna-sequencer-jbpm-jpdl/pom.xml
tags/dna-0.6/extensions/dna-sequencer-mp3/pom.xml
tags/dna-0.6/extensions/dna-sequencer-msoffice/pom.xml
tags/dna-0.6/extensions/dna-sequencer-xml/pom.xml
tags/dna-0.6/extensions/dna-sequencer-zip/pom.xml
tags/dna-0.6/pom.xml
tags/dna-0.6/web/dna-web-jcr-rest-war/pom.xml
tags/dna-0.6/web/dna-web-jcr-rest/pom.xml
Removed:
tags/dna-0.6/dna-cnd/pom.xml
tags/dna-0.6/dna-common/pom.xml
tags/dna-0.6/dna-graph/pom.xml
tags/dna-0.6/dna-integration-tests/pom.xml
tags/dna-0.6/dna-jcr/pom.xml
tags/dna-0.6/dna-repository/pom.xml
tags/dna-0.6/docs/examples/gettingstarted/pom.xml
tags/dna-0.6/docs/examples/gettingstarted/repositories/pom.xml
tags/dna-0.6/docs/examples/gettingstarted/sequencers/pom.xml
tags/dna-0.6/docs/gettingstarted/pom.xml
tags/dna-0.6/docs/pom.xml
tags/dna-0.6/docs/reference/pom.xml
tags/dna-0.6/extensions/dna-classloader-maven/pom.xml
tags/dna-0.6/extensions/dna-connector-filesystem/pom.xml
tags/dna-0.6/extensions/dna-connector-infinispan/pom.xml
tags/dna-0.6/extensions/dna-connector-jbosscache/pom.xml
tags/dna-0.6/extensions/dna-connector-store-jpa/pom.xml
tags/dna-0.6/extensions/dna-connector-svn/pom.xml
tags/dna-0.6/extensions/dna-mimetype-detector-aperture/pom.xml
tags/dna-0.6/extensions/dna-sequencer-cnd/pom.xml
tags/dna-0.6/extensions/dna-sequencer-images/pom.xml
tags/dna-0.6/extensions/dna-sequencer-java/pom.xml
tags/dna-0.6/extensions/dna-sequencer-jbpm-jpdl/pom.xml
tags/dna-0.6/extensions/dna-sequencer-mp3/pom.xml
tags/dna-0.6/extensions/dna-sequencer-msoffice/pom.xml
tags/dna-0.6/extensions/dna-sequencer-xml/pom.xml
tags/dna-0.6/extensions/dna-sequencer-zip/pom.xml
tags/dna-0.6/pom.xml
tags/dna-0.6/web/dna-web-jcr-rest-war/pom.xml
tags/dna-0.6/web/dna-web-jcr-rest/pom.xml
Log:
[maven-release-plugin] copy for tag dna-0.6
Copied: tags/dna-0.6 (from rev 1219, trunk)
Deleted: tags/dna-0.6/dna-cnd/pom.xml
===================================================================
--- trunk/dna-cnd/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/dna-cnd/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -1,107 +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>
- <artifactId>dna</artifactId>
- <groupId>org.jboss.dna</groupId>
- <version>0.6-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.jboss.dna</groupId>
- <artifactId>dna-cnd</artifactId>
- <name>JBoss DNA CND Utility</name>
- <description>JBoss DNA utility for processing and working with 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.1.3</version>
- <exclusions>
- <exclusion>
- <groupId>org.antlr</groupId>
- <artifactId>stringtemplate</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <!-- Testing -->
- <dependency>
- <groupId>org.jboss.dna</groupId>
- <artifactId>dna-graph</artifactId>
- <version>${pom.version}</version>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- </dependency>
- <dependency>
- <groupId>org.antlr</groupId>
- <artifactId>antlr</artifactId>
- <version>3.1.3</version>
- <exclusions>
- <exclusion>
- <groupId>org.antlr</groupId>
- <artifactId>stringtemplate</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-project</artifactId>
- </exclusion>
- </exclusions>
- <!-- we try to use scope to hide it from transitivity -->
- <scope>test</scope> <!-- or perhaps 'provided' (see later discussion) or 'import' (maven >= 2.0.9) -->
- </dependency>
- <dependency>
- <groupId>org.hamcrest</groupId>
- <artifactId>hamcrest-library</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>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.antlr</groupId>
- <artifactId>antlr3-maven-plugin</artifactId>
- <version>3.1.3-1</version>
- <executions>
- <execution>
- <goals>
- <goal>antlr</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-</project>
\ No newline at end of file
Copied: tags/dna-0.6/dna-cnd/pom.xml (from rev 1220, trunk/dna-cnd/pom.xml)
===================================================================
--- tags/dna-0.6/dna-cnd/pom.xml (rev 0)
+++ tags/dna-0.6/dna-cnd/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -0,0 +1,107 @@
+<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.6</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-cnd</artifactId>
+ <name>JBoss DNA CND Utility</name>
+ <description>JBoss DNA utility for processing and working with 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.1.3</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.antlr</groupId>
+ <artifactId>stringtemplate</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <!-- Testing -->
+ <dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-graph</artifactId>
+ <version>${pom.version}</version>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.antlr</groupId>
+ <artifactId>antlr</artifactId>
+ <version>3.1.3</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.antlr</groupId>
+ <artifactId>stringtemplate</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-project</artifactId>
+ </exclusion>
+ </exclusions>
+ <!-- we try to use scope to hide it from transitivity -->
+ <scope>test</scope> <!-- or perhaps 'provided' (see later discussion) or 'import' (maven >= 2.0.9) -->
+ </dependency>
+ <dependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest-library</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>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.antlr</groupId>
+ <artifactId>antlr3-maven-plugin</artifactId>
+ <version>3.1.3-1</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>antlr</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
Deleted: tags/dna-0.6/dna-common/pom.xml
===================================================================
--- trunk/dna-common/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/dna-common/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -1,66 +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.6-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>
- </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.6/dna-common/pom.xml (from rev 1220, trunk/dna-common/pom.xml)
===================================================================
--- tags/dna-0.6/dna-common/pom.xml (rev 0)
+++ tags/dna-0.6/dna-common/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -0,0 +1,66 @@
+<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.6</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>
+ </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.6/dna-graph/pom.xml
===================================================================
--- trunk/dna-graph/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/dna-graph/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -1,78 +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.6-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>
- <dependency>
- <groupId>com.google.code.google-collections</groupId>
- <artifactId>google-collect</artifactId>
- <version>snapshot-20080530</version>
- </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.6/dna-graph/pom.xml (from rev 1220, trunk/dna-graph/pom.xml)
===================================================================
--- tags/dna-0.6/dna-graph/pom.xml (rev 0)
+++ tags/dna-0.6/dna-graph/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -0,0 +1,78 @@
+<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.6</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>
+ <dependency>
+ <groupId>com.google.code.google-collections</groupId>
+ <artifactId>google-collect</artifactId>
+ <version>snapshot-20080530</version>
+ </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.6/dna-integration-tests/pom.xml
===================================================================
--- trunk/dna-integration-tests/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/dna-integration-tests/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -1,250 +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.6-SNAPSHOT</version>
- </parent>
- <!-- The groupId and version values are inherited from parent -->
- <artifactId>dna-integration-tests</artifactId>
- <description>The JBoss DNA integration tests</description>
- <packaging>jar</packaging>
- <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-jcr</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>
- <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-jcr</artifactId>
- <version>${pom.version}</version>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.dna</groupId>
- <artifactId>dna-connector-jbosscache</artifactId>
- <version>${pom.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.dna</groupId>
- <artifactId>dna-connector-filesystem</artifactId>
- <version>${pom.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.dna</groupId>
- <artifactId>dna-connector-infinispan</artifactId>
- <version>${pom.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.dna</groupId>
- <artifactId>dna-connector-svn</artifactId>
- <version>${pom.version}</version>
- <scope>test</scope>
- </dependency>
-
- <!--
- JPA Connector Dependencies
- -->
- <dependency>
- <groupId>org.jboss.dna</groupId>
- <artifactId>dna-connector-store-jpa</artifactId>
- <version>${pom.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-entitymanager</artifactId>
- <version>3.4.0.GA</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-c3p0</artifactId>
- <version>3.3.1.GA</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>hsqldb</groupId>
- <artifactId>hsqldb</artifactId>
- <version>1.8.0.2</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>
- <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>
- <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>
-
- <dependency>
- <groupId>org.apache.jackrabbit</groupId>
- <artifactId>jackrabbit-jcr-tests</artifactId>
- </dependency>
- <!--
- Databases and JDBC Drivers
- -->
- <dependency>
- <groupId>org.apache.derby</groupId>
- <artifactId>derby</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.security</groupId>
- <artifactId>jboss-idtrust</artifactId>
- <version>2.0.2.CR1</version>
- <scope>test</scope>
- </dependency>
-
- <!--
- ID Trust (JAAS Dependency)
- -->
- <dependency>
- <groupId>org.jboss.security</groupId>
- <artifactId>jboss-security-spi-bare</artifactId>
- <version>2.0.2.SP6</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.security</groupId>
- <artifactId>jbosssx-bare</artifactId>
- <version>2.0.2.SP6</version>
- <exclusions>
- <exclusion>
- <groupId>apache-xalan</groupId>
- <artifactId>xalan</artifactId>
- </exclusion>
- <exclusion>
- <groupId>apache-xalan</groupId>
- <artifactId>serializer</artifactId>
- </exclusion>
- </exclusions>
- <scope>test</scope>
- </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.6/dna-integration-tests/pom.xml (from rev 1220, trunk/dna-integration-tests/pom.xml)
===================================================================
--- tags/dna-0.6/dna-integration-tests/pom.xml (rev 0)
+++ tags/dna-0.6/dna-integration-tests/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -0,0 +1,249 @@
+<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.6</version>
+ </parent>
+ <!-- The groupId and version values are inherited from parent -->
+ <artifactId>dna-integration-tests</artifactId>
+ <description>The JBoss DNA integration tests</description>
+ <packaging>jar</packaging>
+ <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-jcr</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>
+ <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-jcr</artifactId>
+ <version>${pom.version}</version>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-connector-jbosscache</artifactId>
+ <version>${pom.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-connector-filesystem</artifactId>
+ <version>${pom.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-connector-infinispan</artifactId>
+ <version>${pom.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-connector-svn</artifactId>
+ <version>${pom.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <!--
+ JPA Connector Dependencies
+ -->
+ <dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-connector-store-jpa</artifactId>
+ <version>${pom.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-entitymanager</artifactId>
+ <version>3.4.0.GA</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-c3p0</artifactId>
+ <version>3.3.1.GA</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
+ <version>1.8.0.2</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>
+ <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>
+ <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>
+
+ <dependency>
+ <groupId>org.apache.jackrabbit</groupId>
+ <artifactId>jackrabbit-jcr-tests</artifactId>
+ </dependency>
+ <!--
+ Databases and JDBC Drivers
+ -->
+ <dependency>
+ <groupId>org.apache.derby</groupId>
+ <artifactId>derby</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.security</groupId>
+ <artifactId>jboss-idtrust</artifactId>
+ <version>2.0.2.CR1</version>
+ <scope>test</scope>
+ </dependency>
+
+ <!--
+ ID Trust (JAAS Dependency)
+ -->
+ <dependency>
+ <groupId>org.jboss.security</groupId>
+ <artifactId>jboss-security-spi-bare</artifactId>
+ <version>2.0.2.SP6</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.security</groupId>
+ <artifactId>jbosssx-bare</artifactId>
+ <version>2.0.2.SP6</version>
+ <exclusions>
+ <exclusion>
+ <groupId>apache-xalan</groupId>
+ <artifactId>xalan</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>apache-xalan</groupId>
+ <artifactId>serializer</artifactId>
+ </exclusion>
+ </exclusions>
+ <scope>test</scope>
+ </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.6/dna-jcr/pom.xml
===================================================================
--- trunk/dna-jcr/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/dna-jcr/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -1,141 +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.6-SNAPSHOT</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>
- <dependency>
- <groupId>org.jboss.dna</groupId>
- <artifactId>dna-cnd</artifactId>
- <version>${pom.version}</version>
- </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>
-
- <dependency>
- <groupId>org.jboss.security</groupId>
- <artifactId>jboss-idtrust</artifactId>
- <version>2.0.2.CR1</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.jboss.security</groupId>
- <artifactId>jboss-security-spi-bare</artifactId>
- <version>2.0.2.SP6</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.security</groupId>
- <artifactId>jbosssx-bare</artifactId>
- <version>2.0.2.SP6</version>
- <exclusions>
- <exclusion>
- <groupId>apache-xalan</groupId>
- <artifactId>xalan</artifactId>
- </exclusion>
- <exclusion>
- <groupId>apache-xalan</groupId>
- <artifactId>serializer</artifactId>
- </exclusion>
- </exclusions>
- <scope>test</scope>
- </dependency>
- </dependencies>
-</project>
\ No newline at end of file
Copied: tags/dna-0.6/dna-jcr/pom.xml (from rev 1220, trunk/dna-jcr/pom.xml)
===================================================================
--- tags/dna-0.6/dna-jcr/pom.xml (rev 0)
+++ tags/dna-0.6/dna-jcr/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -0,0 +1,141 @@
+<?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.6</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>
+ <dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-cnd</artifactId>
+ <version>${pom.version}</version>
+ </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>
+
+ <dependency>
+ <groupId>org.jboss.security</groupId>
+ <artifactId>jboss-idtrust</artifactId>
+ <version>2.0.2.CR1</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.security</groupId>
+ <artifactId>jboss-security-spi-bare</artifactId>
+ <version>2.0.2.SP6</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.security</groupId>
+ <artifactId>jbosssx-bare</artifactId>
+ <version>2.0.2.SP6</version>
+ <exclusions>
+ <exclusion>
+ <groupId>apache-xalan</groupId>
+ <artifactId>xalan</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>apache-xalan</groupId>
+ <artifactId>serializer</artifactId>
+ </exclusion>
+ </exclusions>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file
Deleted: tags/dna-0.6/dna-repository/pom.xml
===================================================================
--- trunk/dna-repository/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/dna-repository/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -1,86 +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.6-SNAPSHOT</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>
- <!--
- 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>
- </dependencies>
-</project>
\ No newline at end of file
Copied: tags/dna-0.6/dna-repository/pom.xml (from rev 1220, trunk/dna-repository/pom.xml)
===================================================================
--- tags/dna-0.6/dna-repository/pom.xml (rev 0)
+++ tags/dna-0.6/dna-repository/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -0,0 +1,86 @@
+<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.6</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>
+ <!--
+ 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>
+ </dependencies>
+</project>
\ No newline at end of file
Deleted: tags/dna-0.6/docs/examples/gettingstarted/pom.xml
===================================================================
--- trunk/docs/examples/gettingstarted/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/docs/examples/gettingstarted/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -1,171 +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.6-SNAPSHOT</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-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.5.8</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>1.5.8</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>
- <!-- 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>
- <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-->
- <systemProperties>
- <property>
- <name>java.io.tmpdir</name>
- <value>${basedir}/target</value>
- </property>
- </systemProperties>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
- <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
Copied: tags/dna-0.6/docs/examples/gettingstarted/pom.xml (from rev 1220, trunk/docs/examples/gettingstarted/pom.xml)
===================================================================
--- tags/dna-0.6/docs/examples/gettingstarted/pom.xml (rev 0)
+++ tags/dna-0.6/docs/examples/gettingstarted/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -0,0 +1,171 @@
+<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.6</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-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.5.8</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>1.5.8</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>
+ <!-- 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>
+ <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-->
+ <systemProperties>
+ <property>
+ <name>java.io.tmpdir</name>
+ <value>${basedir}/target</value>
+ </property>
+ </systemProperties>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <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
Deleted: tags/dna-0.6/docs/examples/gettingstarted/repositories/pom.xml
===================================================================
--- trunk/docs/examples/gettingstarted/repositories/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/docs/examples/gettingstarted/repositories/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -1,124 +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.6-SNAPSHOT</version>
- <relativePath>..</relativePath>
- </parent>
-
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.jboss.dna.examples</groupId>
- <artifactId>dna-example-repositories</artifactId>
- <version>0.6-SNAPSHOT</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-graph</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.dna</groupId>
- <artifactId>dna-repository</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.dna</groupId>
- <artifactId>dna-jcr</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.dna</groupId>
- <artifactId>dna-connector-jbosscache</artifactId>
- <version>${pom.version}</version>
- <scope>runtime</scope>
- </dependency>
- <!--
- Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for running)
- -->
- <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>
- <!--
- JAAS implementation (and dependencies)
- -->
- <dependency>
- <groupId>org.jboss.security</groupId>
- <artifactId>jboss-idtrust</artifactId>
- <version>2.0.2.CR1</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.security</groupId>
- <artifactId>jboss-security-spi-bare</artifactId>
- <version>2.0.2.SP6</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.security</groupId>
- <artifactId>jbosssx-bare</artifactId>
- <version>2.0.2.SP6</version>
- <exclusions>
- <exclusion>
- <groupId>apache-xalan</groupId>
- <artifactId>xalan</artifactId>
- </exclusion>
- <exclusion>
- <groupId>apache-xalan</groupId>
- <artifactId>serializer</artifactId>
- </exclusion>
- </exclusions>
- </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.6/docs/examples/gettingstarted/repositories/pom.xml (from rev 1220, trunk/docs/examples/gettingstarted/repositories/pom.xml)
===================================================================
--- tags/dna-0.6/docs/examples/gettingstarted/repositories/pom.xml (rev 0)
+++ tags/dna-0.6/docs/examples/gettingstarted/repositories/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -0,0 +1,124 @@
+<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.6</version>
+ <relativePath>..</relativePath>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.jboss.dna.examples</groupId>
+ <artifactId>dna-example-repositories</artifactId>
+ <version>0.6</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-graph</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-repository</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-jcr</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-connector-jbosscache</artifactId>
+ <version>${pom.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ <!--
+ Logging (require SLF4J API for compiling, but use Log4J and its SLF4J binding for running)
+ -->
+ <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>
+ <!--
+ JAAS implementation (and dependencies)
+ -->
+ <dependency>
+ <groupId>org.jboss.security</groupId>
+ <artifactId>jboss-idtrust</artifactId>
+ <version>2.0.2.CR1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.security</groupId>
+ <artifactId>jboss-security-spi-bare</artifactId>
+ <version>2.0.2.SP6</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.security</groupId>
+ <artifactId>jbosssx-bare</artifactId>
+ <version>2.0.2.SP6</version>
+ <exclusions>
+ <exclusion>
+ <groupId>apache-xalan</groupId>
+ <artifactId>xalan</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>apache-xalan</groupId>
+ <artifactId>serializer</artifactId>
+ </exclusion>
+ </exclusions>
+ </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.6/docs/examples/gettingstarted/sequencers/pom.xml
===================================================================
--- trunk/docs/examples/gettingstarted/sequencers/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/docs/examples/gettingstarted/sequencers/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -1,109 +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.6-SNAPSHOT</version>
- <relativePath>..</relativePath>
- </parent>
-
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.jboss.dna.examples</groupId>
- <artifactId>dna-example-sequencers</artifactId>
- <version>0.6-SNAPSHOT</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-common</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.dna</groupId>
- <artifactId>dna-graph</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.dna</groupId>
- <artifactId>dna-jcr</artifactId>
- </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>
- <dependency>
- <groupId>org.jboss.dna</groupId>
- <artifactId>dna-sequencer-zip</artifactId>
- <version>${pom.version}</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>
- </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>
- </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.6/docs/examples/gettingstarted/sequencers/pom.xml (from rev 1220, trunk/docs/examples/gettingstarted/sequencers/pom.xml)
===================================================================
--- tags/dna-0.6/docs/examples/gettingstarted/sequencers/pom.xml (rev 0)
+++ tags/dna-0.6/docs/examples/gettingstarted/sequencers/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -0,0 +1,109 @@
+<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.6</version>
+ <relativePath>..</relativePath>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.jboss.dna.examples</groupId>
+ <artifactId>dna-example-sequencers</artifactId>
+ <version>0.6</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-common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-graph</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-jcr</artifactId>
+ </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>
+ <dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-sequencer-zip</artifactId>
+ <version>${pom.version}</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>
+ </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>
+ </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.6/docs/gettingstarted/pom.xml
===================================================================
--- trunk/docs/gettingstarted/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/docs/gettingstarted/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -1,104 +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.6-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>net.sf.docbook</groupId>
- <artifactId>docbook</artifactId>
- <version>1.74.0</version>
- </dependency>
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jbossorg-docbook-xslt</artifactId>
- <version>1.1.0</version>
- </dependency>
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jbossorg-jdocbook-style</artifactId>
- <version>1.1.0</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>
- <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>${pom.artifactId}.html</finalName>
- </format>
- <format>
- <formatName>pdf</formatName>
- <stylesheetResource>classpath:/xslt/org/jboss/pdf.xsl</stylesheetResource>
- <finalName>${pom.artifactId}.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>
- <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
Copied: tags/dna-0.6/docs/gettingstarted/pom.xml (from rev 1220, trunk/docs/gettingstarted/pom.xml)
===================================================================
--- tags/dna-0.6/docs/gettingstarted/pom.xml (rev 0)
+++ tags/dna-0.6/docs/gettingstarted/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -0,0 +1,104 @@
+<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.6</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>net.sf.docbook</groupId>
+ <artifactId>docbook</artifactId>
+ <version>1.74.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jbossorg-docbook-xslt</artifactId>
+ <version>1.1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jbossorg-jdocbook-style</artifactId>
+ <version>1.1.0</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>
+ <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>${pom.artifactId}.html</finalName>
+ </format>
+ <format>
+ <formatName>pdf</formatName>
+ <stylesheetResource>classpath:/xslt/org/jboss/pdf.xsl</stylesheetResource>
+ <finalName>${pom.artifactId}.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>
+ <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
Deleted: tags/dna-0.6/docs/pom.xml
===================================================================
--- trunk/docs/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/docs/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -1,49 +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.6-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>
- <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
Copied: tags/dna-0.6/docs/pom.xml (from rev 1220, trunk/docs/pom.xml)
===================================================================
--- tags/dna-0.6/docs/pom.xml (rev 0)
+++ tags/dna-0.6/docs/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -0,0 +1,49 @@
+<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.6</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>
+ <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
Deleted: tags/dna-0.6/docs/reference/pom.xml
===================================================================
--- trunk/docs/reference/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/docs/reference/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -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/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.6-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>net.sf.docbook</groupId>
- <artifactId>docbook</artifactId>
- <version>1.74.0</version>
- </dependency>
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jbossorg-docbook-xslt</artifactId>
- <version>1.1.0</version>
- </dependency>
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jbossorg-jdocbook-style</artifactId>
- <version>1.1.0</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>
- <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>${pom.artifactId}.html</finalName>
- </format>
- <format>
- <formatName>pdf</formatName>
- <stylesheetResource>classpath:/xslt/org/jboss/pdf.xsl</stylesheetResource>
- <finalName>${pom.artifactId}.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.6/docs/reference/pom.xml (from rev 1220, trunk/docs/reference/pom.xml)
===================================================================
--- tags/dna-0.6/docs/reference/pom.xml (rev 0)
+++ tags/dna-0.6/docs/reference/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -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.6</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>net.sf.docbook</groupId>
+ <artifactId>docbook</artifactId>
+ <version>1.74.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jbossorg-docbook-xslt</artifactId>
+ <version>1.1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jbossorg-jdocbook-style</artifactId>
+ <version>1.1.0</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>
+ <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>${pom.artifactId}.html</finalName>
+ </format>
+ <format>
+ <formatName>pdf</formatName>
+ <stylesheetResource>classpath:/xslt/org/jboss/pdf.xsl</stylesheetResource>
+ <finalName>${pom.artifactId}.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.6/extensions/dna-classloader-maven/pom.xml
===================================================================
--- trunk/extensions/dna-classloader-maven/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/extensions/dna-classloader-maven/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -1,104 +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.6-SNAPSHOT</version>
- <relativePath>../..</relativePath>
- </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>
- <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>
- </dependencies>
-</project>
\ No newline at end of file
Copied: tags/dna-0.6/extensions/dna-classloader-maven/pom.xml (from rev 1220, trunk/extensions/dna-classloader-maven/pom.xml)
===================================================================
--- tags/dna-0.6/extensions/dna-classloader-maven/pom.xml (rev 0)
+++ tags/dna-0.6/extensions/dna-classloader-maven/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -0,0 +1,104 @@
+<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.6</version>
+ <relativePath>../..</relativePath>
+ </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>
+ <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>
+ </dependencies>
+</project>
\ No newline at end of file
Deleted: tags/dna-0.6/extensions/dna-connector-filesystem/pom.xml
===================================================================
--- trunk/extensions/dna-connector-filesystem/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/extensions/dna-connector-filesystem/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -1,84 +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.6-SNAPSHOT</version>
- <relativePath>../..</relativePath>
- </parent>
- <!-- The groupId and version values are inherited from parent -->
- <artifactId>dna-connector-filesystem</artifactId>
- <packaging>jar</packaging>
- <name>JBoss DNA Connector to a local file system</name>
- <description>JBoss DNA Connector that exposes the files and directories of (part of) a local file system.</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>
- <!--
- JBoss DNA
- -->
- <dependency>
- <groupId>org.jboss.dna</groupId>
- <artifactId>dna-graph</artifactId>
- </dependency>
- <!--
- Testing (note the scope)
- -->
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- </dependency>
- <dependency>
- <groupId>org.mockito</groupId>
- <artifactId>mockito-all</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>
- <!--
- 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.6/extensions/dna-connector-filesystem/pom.xml (from rev 1220, trunk/extensions/dna-connector-filesystem/pom.xml)
===================================================================
--- tags/dna-0.6/extensions/dna-connector-filesystem/pom.xml (rev 0)
+++ tags/dna-0.6/extensions/dna-connector-filesystem/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -0,0 +1,84 @@
+<?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.6</version>
+ <relativePath>../..</relativePath>
+ </parent>
+ <!-- The groupId and version values are inherited from parent -->
+ <artifactId>dna-connector-filesystem</artifactId>
+ <packaging>jar</packaging>
+ <name>JBoss DNA Connector to a local file system</name>
+ <description>JBoss DNA Connector that exposes the files and directories of (part of) a local file system.</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>
+ <!--
+ JBoss DNA
+ -->
+ <dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-graph</artifactId>
+ </dependency>
+ <!--
+ Testing (note the scope)
+ -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</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>
+ <!--
+ 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.6/extensions/dna-connector-infinispan/pom.xml
===================================================================
--- trunk/extensions/dna-connector-infinispan/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/extensions/dna-connector-infinispan/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -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.6-SNAPSHOT</version>
- <relativePath>../..</relativePath>
- </parent>
- <!-- The groupId and version values are inherited from parent -->
- <artifactId>dna-connector-infinispan</artifactId>
- <packaging>jar</packaging>
- <name>JBoss DNA Connector to JBoss Infinispan</name>
- <description>JBoss DNA Connector that accesses an in-process JBoss Infinispan 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.infinispan</groupId>
- <artifactId>infinispan-core</artifactId>
- <version>4.0.0.BETA1</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.6/extensions/dna-connector-infinispan/pom.xml (from rev 1220, trunk/extensions/dna-connector-infinispan/pom.xml)
===================================================================
--- tags/dna-0.6/extensions/dna-connector-infinispan/pom.xml (rev 0)
+++ tags/dna-0.6/extensions/dna-connector-infinispan/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -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.6</version>
+ <relativePath>../..</relativePath>
+ </parent>
+ <!-- The groupId and version values are inherited from parent -->
+ <artifactId>dna-connector-infinispan</artifactId>
+ <packaging>jar</packaging>
+ <name>JBoss DNA Connector to JBoss Infinispan</name>
+ <description>JBoss DNA Connector that accesses an in-process JBoss Infinispan 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.infinispan</groupId>
+ <artifactId>infinispan-core</artifactId>
+ <version>4.0.0.BETA1</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.6/extensions/dna-connector-jbosscache/pom.xml
===================================================================
--- trunk/extensions/dna-connector-jbosscache/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/extensions/dna-connector-jbosscache/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -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.6-SNAPSHOT</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>3.0.3.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.6/extensions/dna-connector-jbosscache/pom.xml (from rev 1220, trunk/extensions/dna-connector-jbosscache/pom.xml)
===================================================================
--- tags/dna-0.6/extensions/dna-connector-jbosscache/pom.xml (rev 0)
+++ tags/dna-0.6/extensions/dna-connector-jbosscache/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -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.6</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>3.0.3.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.6/extensions/dna-connector-store-jpa/pom.xml
===================================================================
--- trunk/extensions/dna-connector-store-jpa/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/extensions/dna-connector-store-jpa/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -1,105 +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.6-SNAPSHOT</version>
- <relativePath>../..</relativePath>
- </parent>
- <!-- The groupId and version values are inherited from parent -->
- <artifactId>dna-connector-store-jpa</artifactId>
- <packaging>jar</packaging>
- <name>JBoss DNA Connector to JPA Persistence Store</name>
- <description>JBoss DNA Connector that persists graph content using JPA.</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>
- <!--
- JBoss DNA
- -->
- <dependency>
- <groupId>org.jboss.dna</groupId>
- <artifactId>dna-graph</artifactId>
- </dependency>
- <!--
- JPA via Hibernate Entity Manager
- -->
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-entitymanager</artifactId>
- <version>3.4.0.GA</version>
- </dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-c3p0</artifactId>
- <version>3.3.2.GA</version>
- </dependency>
- <!--
- HSQLDB
- -->
- <dependency>
- <groupId>hsqldb</groupId>
- <artifactId>hsqldb</artifactId>
- <version>1.8.0.2</version>
- </dependency>
- <!--
- Testing (note the scope)
- -->
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- </dependency>
- <dependency>
- <groupId>org.mockito</groupId>
- <artifactId>mockito-all</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>
- <!--
- 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.6/extensions/dna-connector-store-jpa/pom.xml (from rev 1220, trunk/extensions/dna-connector-store-jpa/pom.xml)
===================================================================
--- tags/dna-0.6/extensions/dna-connector-store-jpa/pom.xml (rev 0)
+++ tags/dna-0.6/extensions/dna-connector-store-jpa/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -0,0 +1,105 @@
+<?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.6</version>
+ <relativePath>../..</relativePath>
+ </parent>
+ <!-- The groupId and version values are inherited from parent -->
+ <artifactId>dna-connector-store-jpa</artifactId>
+ <packaging>jar</packaging>
+ <name>JBoss DNA Connector to JPA Persistence Store</name>
+ <description>JBoss DNA Connector that persists graph content using JPA.</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>
+ <!--
+ JBoss DNA
+ -->
+ <dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-graph</artifactId>
+ </dependency>
+ <!--
+ JPA via Hibernate Entity Manager
+ -->
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-entitymanager</artifactId>
+ <version>3.4.0.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-c3p0</artifactId>
+ <version>3.3.2.GA</version>
+ </dependency>
+ <!--
+ HSQLDB
+ -->
+ <dependency>
+ <groupId>hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
+ <version>1.8.0.2</version>
+ </dependency>
+ <!--
+ Testing (note the scope)
+ -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</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>
+ <!--
+ 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.6/extensions/dna-connector-svn/pom.xml
===================================================================
--- trunk/extensions/dna-connector-svn/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/extensions/dna-connector-svn/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -1,96 +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.6-SNAPSHOT</version>
- <relativePath>../..</relativePath>
- </parent>
- <artifactId>dna-connector-svn</artifactId>
- <packaging>jar</packaging>
- <name>JBoss DNA Connector to SVN</name>
- <description>
- JBoss DNA Connector that accesses an in-process SVN 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>
- <!--
- SVNKit
- -->
- <dependency>
- <groupId>org.tmatesoft.svnkit</groupId>
- <artifactId>svnkit</artifactId>
- <version>1.2.3.5521</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.6/extensions/dna-connector-svn/pom.xml (from rev 1220, trunk/extensions/dna-connector-svn/pom.xml)
===================================================================
--- tags/dna-0.6/extensions/dna-connector-svn/pom.xml (rev 0)
+++ tags/dna-0.6/extensions/dna-connector-svn/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -0,0 +1,96 @@
+<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.6</version>
+ <relativePath>../..</relativePath>
+ </parent>
+ <artifactId>dna-connector-svn</artifactId>
+ <packaging>jar</packaging>
+ <name>JBoss DNA Connector to SVN</name>
+ <description>
+ JBoss DNA Connector that accesses an in-process SVN 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>
+ <!--
+ SVNKit
+ -->
+ <dependency>
+ <groupId>org.tmatesoft.svnkit</groupId>
+ <artifactId>svnkit</artifactId>
+ <version>1.2.3.5521</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.6/extensions/dna-mimetype-detector-aperture/pom.xml
===================================================================
--- trunk/extensions/dna-mimetype-detector-aperture/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/extensions/dna-mimetype-detector-aperture/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -1,248 +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.6-SNAPSHOT</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-graph</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>
- </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.6/extensions/dna-mimetype-detector-aperture/pom.xml (from rev 1220, trunk/extensions/dna-mimetype-detector-aperture/pom.xml)
===================================================================
--- tags/dna-0.6/extensions/dna-mimetype-detector-aperture/pom.xml (rev 0)
+++ tags/dna-0.6/extensions/dna-mimetype-detector-aperture/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -0,0 +1,248 @@
+<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.6</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-graph</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>
+ </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.6/extensions/dna-sequencer-cnd/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-cnd/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/extensions/dna-sequencer-cnd/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -1,51 +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>
- <artifactId>dna</artifactId>
- <groupId>org.jboss.dna</groupId>
- <version>0.6-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>
- <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.jboss.dna</groupId>
- <artifactId>dna-cnd</artifactId>
- </dependency>
-
- <!-- Testing -->
- <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>junit</groupId>
- <artifactId>junit</artifactId>
- </dependency>
- <dependency>
- <groupId>org.hamcrest</groupId>
- <artifactId>hamcrest-library</artifactId>
- </dependency>
- </dependencies>
-</project>
\ No newline at end of file
Copied: tags/dna-0.6/extensions/dna-sequencer-cnd/pom.xml (from rev 1220, trunk/extensions/dna-sequencer-cnd/pom.xml)
===================================================================
--- tags/dna-0.6/extensions/dna-sequencer-cnd/pom.xml (rev 0)
+++ tags/dna-0.6/extensions/dna-sequencer-cnd/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -0,0 +1,51 @@
+<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.6</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.jboss.dna</groupId>
+ <artifactId>dna-cnd</artifactId>
+ </dependency>
+
+ <!-- Testing -->
+ <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>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest-library</artifactId>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file
Deleted: tags/dna-0.6/extensions/dna-sequencer-images/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-images/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/extensions/dna-sequencer-images/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -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.6-SNAPSHOT</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.6/extensions/dna-sequencer-images/pom.xml (from rev 1220, trunk/extensions/dna-sequencer-images/pom.xml)
===================================================================
--- tags/dna-0.6/extensions/dna-sequencer-images/pom.xml (rev 0)
+++ tags/dna-0.6/extensions/dna-sequencer-images/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -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.6</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.6/extensions/dna-sequencer-java/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-java/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/extensions/dna-sequencer-java/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -1,136 +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.6-SNAPSHOT</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>
- <!--
- 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>
- <!--
- Eclipse Java Development Tools (JDT) parser and its (many) required libraries
- -->
- <dependency>
- <groupId>org.eclipse</groupId>
- <artifactId>osgi</artifactId>
- <version>3.4.3.R34x_v20081215-1030</version>
- </dependency>
- <dependency>
- <groupId>org.eclipse.jdt</groupId>
- <artifactId>core</artifactId>
- <version>3.4.2.v_883_R34x</version>
- </dependency>
- <dependency>
- <groupId>org.eclipse.core</groupId>
- <artifactId>resources</artifactId>
- <version>[3.2.0,4.0.0)</version>
- <exclusions>
- <exclusion>
- <groupId>org.eclipse.core.runtime.compatibility</groupId>
- <artifactId>auth</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.eclipse.equinox</groupId>
- <artifactId>app</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.eclipse.core</groupId>
- <artifactId>runtime</artifactId>
- <version>[3.2.0,4.0.0)</version>
- <exclusions>
- <exclusion>
- <groupId>org.eclipse.core.runtime.compatibility</groupId>
- <artifactId>auth</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.eclipse.equinox</groupId>
- <artifactId>app</artifactId>
- </exclusion>
- </exclusions>
- </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.6/extensions/dna-sequencer-java/pom.xml (from rev 1220, trunk/extensions/dna-sequencer-java/pom.xml)
===================================================================
--- tags/dna-0.6/extensions/dna-sequencer-java/pom.xml (rev 0)
+++ tags/dna-0.6/extensions/dna-sequencer-java/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -0,0 +1,136 @@
+<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.6</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>
+ <!--
+ 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>
+ <!--
+ Eclipse Java Development Tools (JDT) parser and its (many) required libraries
+ -->
+ <dependency>
+ <groupId>org.eclipse</groupId>
+ <artifactId>osgi</artifactId>
+ <version>3.4.3.R34x_v20081215-1030</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jdt</groupId>
+ <artifactId>core</artifactId>
+ <version>3.4.2.v_883_R34x</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.core</groupId>
+ <artifactId>resources</artifactId>
+ <version>[3.2.0,4.0.0)</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.eclipse.core.runtime.compatibility</groupId>
+ <artifactId>auth</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.eclipse.equinox</groupId>
+ <artifactId>app</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.core</groupId>
+ <artifactId>runtime</artifactId>
+ <version>[3.2.0,4.0.0)</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.eclipse.core.runtime.compatibility</groupId>
+ <artifactId>auth</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.eclipse.equinox</groupId>
+ <artifactId>app</artifactId>
+ </exclusion>
+ </exclusions>
+ </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.6/extensions/dna-sequencer-jbpm-jpdl/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-jbpm-jpdl/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/extensions/dna-sequencer-jbpm-jpdl/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -1,116 +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.6-SNAPSHOT</version>
- <relativePath>../..</relativePath>
- </parent>
- <artifactId>dna-sequencer-jbpm-jpdl</artifactId>
- <packaging>jar</packaging>
- <version>0.6-SNAPSHOT</version>
- <name>JBoss DNA jBPM jPDL Sequencer</name>
- <description>
- JBoss DNA Sequencer that processes jPDL XML document
- </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>
- <!--
- jBPM jPDL
- -->
- <dependency>
- <groupId>org.jbpm</groupId>
- <artifactId>jbpm-jpdl</artifactId>
- <version>3.2.2</version>
- </dependency>
- <dependency>
- <groupId>dom4j</groupId>
- <artifactId>dom4j</artifactId>
- <version>1.6.1</version>
- </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>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>
- </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.6/extensions/dna-sequencer-jbpm-jpdl/pom.xml (from rev 1220, trunk/extensions/dna-sequencer-jbpm-jpdl/pom.xml)
===================================================================
--- tags/dna-0.6/extensions/dna-sequencer-jbpm-jpdl/pom.xml (rev 0)
+++ tags/dna-0.6/extensions/dna-sequencer-jbpm-jpdl/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -0,0 +1,116 @@
+<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.6</version>
+ <relativePath>../..</relativePath>
+ </parent>
+ <artifactId>dna-sequencer-jbpm-jpdl</artifactId>
+ <packaging>jar</packaging>
+ <version>0.6</version>
+ <name>JBoss DNA jBPM jPDL Sequencer</name>
+ <description>
+ JBoss DNA Sequencer that processes jPDL XML document
+ </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>
+ <!--
+ jBPM jPDL
+ -->
+ <dependency>
+ <groupId>org.jbpm</groupId>
+ <artifactId>jbpm-jpdl</artifactId>
+ <version>3.2.2</version>
+ </dependency>
+ <dependency>
+ <groupId>dom4j</groupId>
+ <artifactId>dom4j</artifactId>
+ <version>1.6.1</version>
+ </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>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>
+ </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.6/extensions/dna-sequencer-mp3/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-mp3/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/extensions/dna-sequencer-mp3/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -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.6-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.6/extensions/dna-sequencer-mp3/pom.xml (from rev 1220, trunk/extensions/dna-sequencer-mp3/pom.xml)
===================================================================
--- tags/dna-0.6/extensions/dna-sequencer-mp3/pom.xml (rev 0)
+++ tags/dna-0.6/extensions/dna-sequencer-mp3/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -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.6</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.6/extensions/dna-sequencer-msoffice/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-msoffice/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/extensions/dna-sequencer-msoffice/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -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.6-SNAPSHOT</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.2-FINAL</version>
- </dependency>
- <dependency>
- <groupId>org.apache.poi</groupId>
- <artifactId>poi-scratchpad</artifactId>
- <version>3.2-FINAL</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.6/extensions/dna-sequencer-msoffice/pom.xml (from rev 1220, trunk/extensions/dna-sequencer-msoffice/pom.xml)
===================================================================
--- tags/dna-0.6/extensions/dna-sequencer-msoffice/pom.xml (rev 0)
+++ tags/dna-0.6/extensions/dna-sequencer-msoffice/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -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.6</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.2-FINAL</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi-scratchpad</artifactId>
+ <version>3.2-FINAL</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.6/extensions/dna-sequencer-xml/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-xml/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/extensions/dna-sequencer-xml/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -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.6-SNAPSHOT</version>
- <relativePath>../..</relativePath>
- </parent>
- <!-- The groupId and version values are inherited from parent -->
- <artifactId>dna-sequencer-xml</artifactId>
- <packaging>jar</packaging>
- <name>JBoss DNA XML Sequencer</name>
- <description>JBoss DNA Sequencer that processes XML 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.6/extensions/dna-sequencer-xml/pom.xml (from rev 1220, trunk/extensions/dna-sequencer-xml/pom.xml)
===================================================================
--- tags/dna-0.6/extensions/dna-sequencer-xml/pom.xml (rev 0)
+++ tags/dna-0.6/extensions/dna-sequencer-xml/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -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.6</version>
+ <relativePath>../..</relativePath>
+ </parent>
+ <!-- The groupId and version values are inherited from parent -->
+ <artifactId>dna-sequencer-xml</artifactId>
+ <packaging>jar</packaging>
+ <name>JBoss DNA XML Sequencer</name>
+ <description>JBoss DNA Sequencer that processes XML 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.6/extensions/dna-sequencer-zip/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-zip/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/extensions/dna-sequencer-zip/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -1,62 +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.6-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>
- <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>
- </dependencies>
-</project>
\ No newline at end of file
Copied: tags/dna-0.6/extensions/dna-sequencer-zip/pom.xml (from rev 1220, trunk/extensions/dna-sequencer-zip/pom.xml)
===================================================================
--- tags/dna-0.6/extensions/dna-sequencer-zip/pom.xml (rev 0)
+++ tags/dna-0.6/extensions/dna-sequencer-zip/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -0,0 +1,62 @@
+<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.6</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>
+ <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>
+ </dependencies>
+</project>
\ No newline at end of file
Deleted: tags/dna-0.6/pom.xml
===================================================================
--- trunk/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -1,620 +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.6-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(a)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(a)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(a)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(a)javalinux.it</email>
- <roles>
- <role>Developer</role>
- </roles>
- <timezone>+1</timezone>
- </developer>
- <developer>
- <name>Serge Pagop</name>
- <id>spagop</id>
- <email>Serge.Pagop(a)innoq.com</email>
- <roles>
- <role>Developer</role>
- </roles>
- <timezone>+1</timezone>
- </developer>
- <developer>
- <name>Michael Trezzi</name>
- <id>mathwizard</id>
- <email>michael(a)mathwizard.org</email>
- <roles>
- <role>Developer</role>
- </roles>
- <timezone>+1</timezone>
- </developer>
- <developer>
- <name>Alexandre Porcelli</name>
- <id>porcelli</id>
- <email>porcelli(a)devexp.com.br</email>
- <roles>
- <role>Developer</role>
- </roles>
- <timezone>-3</timezone>
- </developer>
- <developer>
- <name>Sergiy Litsenko</name>
- <id>lisbor</id>
- <email>litsenko_sergey(a)yahoo.com</email>
- <roles>
- <role>Developer</role>
- </roles>
- <timezone>+10</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-cnd</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-jbpm-jpdl</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-xml</module>
- <module>extensions/dna-sequencer-zip</module>
- <module>extensions/dna-connector-filesystem</module>
- <module>extensions/dna-connector-infinispan</module>
- <module>extensions/dna-connector-jbosscache</module>
- <module>extensions/dna-connector-svn</module>
- <module>extensions/dna-connector-store-jpa</module>
- <module>extensions/dna-mimetype-detector-aperture</module>
- <!--module>extensions/dna-common-jdbc</module-->
- <!--module>extensions/dna-connector-jdbc-metadata</module-->
- <module>web/dna-web-jcr-rest</module>
- <module>web/dna-web-jcr-rest-war</module>
- </modules>
-
- <profiles>
- <profile>
- <id>release</id>
- <modules>
- <module>dna-integration-tests</module>
- <module>docs</module>
- <module>docs/examples/gettingstarted</module>
- </modules>
- </profile>
- <profile>
- <id>integration</id>
- <modules>
- <module>dna-integration-tests</module>
- <module>docs/examples/gettingstarted</module>
- </modules>
- </profile>
- <profile>
- <id>jcr-tck</id>
- <modules>
- <module>dna-jcr-tck</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>
- <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>
- <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>
- <plugin>
- <artifactId>maven-javadoc-plugin</artifactId>
- <version>2.5</version>
- <executions>
- <execution>
- <id>generate-javadoc</id>
- <phase>package</phase>
- <goals>
- <goal>javadoc</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <doclet>org.jboss.apiviz.APIviz</doclet>
- <docletArtifact>
- <groupId>org.jboss.apiviz</groupId>
- <artifactId>apiviz</artifactId>
- <version>1.3.0.GA</version>
- </docletArtifact>
- <attach>false</attach>
- <!--stylesheetfile>${basedir}/src/javadoc/stylesheet.css</stylesheetfile-->
- <useStandardDocletOptions>true</useStandardDocletOptions>
- <outputDirectory>${project.build.directory}/api</outputDirectory>
- <reportOutputDirectory>${project.build.directory}/api</reportOutputDirectory>
- <destDir>api</destDir>
- <charset>UTF-8</charset>
- <docencoding>UTF-8</docencoding>
- <breakiterator>true</breakiterator>
- <version>true</version>
- <author>true</author>
- <keywords>true</keywords>
- <overview>${basedir}/src/javadoc/overview.html</overview>
- <doctitle>${project.name} API Reference (${project.version})</doctitle>
- <windowtitle>${project.name} API Reference (${project.version})</windowtitle>
- <maxmemory>1024m</maxmemory>
- <additionalparam>
- -link http://java.sun.com/javase/6/docs/api/
- -link http://java.sun.com/products/servlet/2.5/docs/servlet-2_5-mr2/
- -link http://www.slf4j.org/apidocs/
- -link http://logging.apache.org/log4j/1.2/apidocs/
-
- -group "JCR implementation" ${project.groupId}.jcr*:${project.groupId}.cnd*
- -group "Repository engine" ${project.groupId}.repository*
- -group "Graph API" ${project.groupId}.graph:${project.groupId}.graph.io*:${project.groupId}.graph.property*:${project.groupId}.graph.request*:${project.groupId}.graph.session*:${project.groupId}.graph.xml*
- -group "Connectors" ${project.groupId}.graph.cache*:${project.groupId}.graph.connector*:${project.groupId}.connector*
- -group "Observation" ${project.groupId}.graph.observation*
- -group "Sequencers" ${project.groupId}.graph.sequencer*:${project.groupId}.sequencer*
- -group "MIME type detectors" ${project.groupId}.graph.mimetype*:${project.groupId}.mimetype*
- -group "Web services" ${project.groupId}.web*
- -group "Common utilities" ${project.groupId}.common*
-
- -nopackagediagram
- </additionalparam>
- <encoding>UTF-8</encoding>
- <locale>en_US</locale>
- <excludePackageNames>${project.groupId}.test*:org.jboss.example.dna*</excludePackageNames>
- </configuration>
- </plugin>
- </plugins>
- </build>
- <modules>
- <module>dna-integration-tests</module>
- <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>
- </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-->
- <systemProperties>
- <property>
- <name>java.io.tmpdir</name>
- <value>${basedir}/target</value>
- </property>
- </systemProperties>
- </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-cnd</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-jcr-tck</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-store-jpa</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.dna</groupId>
- <artifactId>dna-connector-filesystem</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.dna</groupId>
- <artifactId>dna-connector-svn</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.dna</groupId>
- <artifactId>dna-mimetype-detector-aperture</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.dna</groupId>
- <artifactId>dna-sequencer-cnd</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-sequencer-mp3</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.dna</groupId>
- <artifactId>dna-sequencer-msoffice</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.dna</groupId>
- <artifactId>dna-sequencer-xml</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.dna</groupId>
- <artifactId>dna-sequencer-zip</artifactId>
- <version>${pom.version}</version>
- </dependency>
- <!--
- Time and Date
- -->
- <dependency>
- <groupId>joda-time</groupId>
- <artifactId>joda-time</artifactId>
- <version>1.4</version>
- </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.5.8</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>1.5.8</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 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>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
Copied: tags/dna-0.6/pom.xml (from rev 1220, trunk/pom.xml)
===================================================================
--- tags/dna-0.6/pom.xml (rev 0)
+++ tags/dna-0.6/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -0,0 +1,620 @@
+<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.6</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.6</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(a)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(a)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(a)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(a)javalinux.it</email>
+ <roles>
+ <role>Developer</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+ <developer>
+ <name>Serge Pagop</name>
+ <id>spagop</id>
+ <email>Serge.Pagop(a)innoq.com</email>
+ <roles>
+ <role>Developer</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+ <developer>
+ <name>Michael Trezzi</name>
+ <id>mathwizard</id>
+ <email>michael(a)mathwizard.org</email>
+ <roles>
+ <role>Developer</role>
+ </roles>
+ <timezone>+1</timezone>
+ </developer>
+ <developer>
+ <name>Alexandre Porcelli</name>
+ <id>porcelli</id>
+ <email>porcelli(a)devexp.com.br</email>
+ <roles>
+ <role>Developer</role>
+ </roles>
+ <timezone>-3</timezone>
+ </developer>
+ <developer>
+ <name>Sergiy Litsenko</name>
+ <id>lisbor</id>
+ <email>litsenko_sergey(a)yahoo.com</email>
+ <roles>
+ <role>Developer</role>
+ </roles>
+ <timezone>+10</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-cnd</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-jbpm-jpdl</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-xml</module>
+ <module>extensions/dna-sequencer-zip</module>
+ <module>extensions/dna-connector-filesystem</module>
+ <module>extensions/dna-connector-infinispan</module>
+ <module>extensions/dna-connector-jbosscache</module>
+ <module>extensions/dna-connector-svn</module>
+ <module>extensions/dna-connector-store-jpa</module>
+ <module>extensions/dna-mimetype-detector-aperture</module>
+ <!--module>extensions/dna-common-jdbc</module-->
+ <!--module>extensions/dna-connector-jdbc-metadata</module-->
+ <module>web/dna-web-jcr-rest</module>
+ <module>web/dna-web-jcr-rest-war</module>
+ </modules>
+
+ <profiles>
+ <profile>
+ <id>release</id>
+ <modules>
+ <module>dna-integration-tests</module>
+ <module>docs</module>
+ <module>docs/examples/gettingstarted</module>
+ </modules>
+ </profile>
+ <profile>
+ <id>integration</id>
+ <modules>
+ <module>dna-integration-tests</module>
+ <module>docs/examples/gettingstarted</module>
+ </modules>
+ </profile>
+ <profile>
+ <id>jcr-tck</id>
+ <modules>
+ <module>dna-jcr-tck</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>
+ <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>
+ <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>
+ <plugin>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>2.5</version>
+ <executions>
+ <execution>
+ <id>generate-javadoc</id>
+ <phase>package</phase>
+ <goals>
+ <goal>javadoc</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <doclet>org.jboss.apiviz.APIviz</doclet>
+ <docletArtifact>
+ <groupId>org.jboss.apiviz</groupId>
+ <artifactId>apiviz</artifactId>
+ <version>1.3.0.GA</version>
+ </docletArtifact>
+ <attach>false</attach>
+ <!--stylesheetfile>${basedir}/src/javadoc/stylesheet.css</stylesheetfile-->
+ <useStandardDocletOptions>true</useStandardDocletOptions>
+ <outputDirectory>${project.build.directory}/api</outputDirectory>
+ <reportOutputDirectory>${project.build.directory}/api</reportOutputDirectory>
+ <destDir>api</destDir>
+ <charset>UTF-8</charset>
+ <docencoding>UTF-8</docencoding>
+ <breakiterator>true</breakiterator>
+ <version>true</version>
+ <author>true</author>
+ <keywords>true</keywords>
+ <overview>${basedir}/src/javadoc/overview.html</overview>
+ <doctitle>${project.name} API Reference (${project.version})</doctitle>
+ <windowtitle>${project.name} API Reference (${project.version})</windowtitle>
+ <maxmemory>1024m</maxmemory>
+ <additionalparam>
+ -link http://java.sun.com/javase/6/docs/api/
+ -link http://java.sun.com/products/servlet/2.5/docs/servlet-2_5-mr2/
+ -link http://www.slf4j.org/apidocs/
+ -link http://logging.apache.org/log4j/1.2/apidocs/
+
+ -group "JCR implementation" ${project.groupId}.jcr*:${project.groupId}.cnd*
+ -group "Repository engine" ${project.groupId}.repository*
+ -group "Graph API" ${project.groupId}.graph:${project.groupId}.graph.io*:${project.groupId}.graph.property*:${project.groupId}.graph.request*:${project.groupId}.graph.session*:${project.groupId}.graph.xml*
+ -group "Connectors" ${project.groupId}.graph.cache*:${project.groupId}.graph.connector*:${project.groupId}.connector*
+ -group "Observation" ${project.groupId}.graph.observation*
+ -group "Sequencers" ${project.groupId}.graph.sequencer*:${project.groupId}.sequencer*
+ -group "MIME type detectors" ${project.groupId}.graph.mimetype*:${project.groupId}.mimetype*
+ -group "Web services" ${project.groupId}.web*
+ -group "Common utilities" ${project.groupId}.common*
+
+ -nopackagediagram
+ </additionalparam>
+ <encoding>UTF-8</encoding>
+ <locale>en_US</locale>
+ <excludePackageNames>${project.groupId}.test*:org.jboss.example.dna*</excludePackageNames>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <modules>
+ <module>dna-integration-tests</module>
+ <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>
+ </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-->
+ <systemProperties>
+ <property>
+ <name>java.io.tmpdir</name>
+ <value>${basedir}/target</value>
+ </property>
+ </systemProperties>
+ </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-cnd</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-jcr-tck</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-store-jpa</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-connector-filesystem</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-connector-svn</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-mimetype-detector-aperture</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-sequencer-cnd</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-sequencer-mp3</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-sequencer-msoffice</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-sequencer-xml</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-sequencer-zip</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <!--
+ Time and Date
+ -->
+ <dependency>
+ <groupId>joda-time</groupId>
+ <artifactId>joda-time</artifactId>
+ <version>1.4</version>
+ </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.5.8</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>1.5.8</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 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>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
Deleted: tags/dna-0.6/web/dna-web-jcr-rest/pom.xml
===================================================================
--- trunk/web/dna-web-jcr-rest/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/web/dna-web-jcr-rest/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -1,85 +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.6-SNAPSHOT</version>
- <relativePath>../..</relativePath>
- </parent>
- <artifactId>dna-web-jcr-rest</artifactId>
- <packaging>jar</packaging>
- <name>JBoss DNA JCR REST Library</name>
- <description>JBoss DNA REST support library</description>
- <url>http://labs.jboss.org/dna</url>
- <dependencies>
- <dependency>
- <groupId>org.jboss.resteasy</groupId>
- <artifactId>resteasy-jaxrs</artifactId>
- <version>1.1.GA</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.resteasy</groupId>
- <artifactId>resteasy-jaxb-provider</artifactId>
- <version>1.1.GA</version>
- <exclusions>
- <exclusion>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-impl</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <!--
- This is only included as a temp. workaround. Current release of
- RESTEasy depends on 2.1.8, which is not in our repo at this time This
- should be removed after RESTEasy 1.1GA is released and added to this
- pom.
- -->
- <dependency>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-impl</artifactId>
- <version>2.1.9</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.dna</groupId>
- <artifactId>dna-jcr</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>1.5.8</version>
- <scope>runtime</scope>
- </dependency>
- <!--
- Java Content Repository API
- -->
- <dependency>
- <groupId>javax.jcr</groupId>
- <artifactId>jcr</artifactId>
- </dependency>
-
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <version>2.5</version>
- <scope>provided</scope>
- </dependency>
-
- <!-- TESTING DEPENDENCIES -->
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit-dep</artifactId>
- <version>4.4</version>
- <scope>integration-test</scope>
- </dependency>
-
- <dependency>
- <groupId>javax.xml.bind</groupId>
- <artifactId>jaxb-api</artifactId>
- <version>2.1</version>
- </dependency>
-
- </dependencies>
-</project>
Copied: tags/dna-0.6/web/dna-web-jcr-rest/pom.xml (from rev 1220, trunk/web/dna-web-jcr-rest/pom.xml)
===================================================================
--- tags/dna-0.6/web/dna-web-jcr-rest/pom.xml (rev 0)
+++ tags/dna-0.6/web/dna-web-jcr-rest/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -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>
+ <artifactId>dna</artifactId>
+ <groupId>org.jboss.dna</groupId>
+ <version>0.6</version>
+ <relativePath>../..</relativePath>
+ </parent>
+ <artifactId>dna-web-jcr-rest</artifactId>
+ <packaging>jar</packaging>
+ <name>JBoss DNA JCR REST Library</name>
+ <description>JBoss DNA REST support library</description>
+ <url>http://labs.jboss.org/dna</url>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.resteasy</groupId>
+ <artifactId>resteasy-jaxrs</artifactId>
+ <version>1.1.GA</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.resteasy</groupId>
+ <artifactId>resteasy-jaxb-provider</artifactId>
+ <version>1.1.GA</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.sun.xml.bind</groupId>
+ <artifactId>jaxb-impl</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <!--
+ This is only included as a temp. workaround. Current release of
+ RESTEasy depends on 2.1.8, which is not in our repo at this time This
+ should be removed after RESTEasy 1.1GA is released and added to this
+ pom.
+ -->
+ <dependency>
+ <groupId>com.sun.xml.bind</groupId>
+ <artifactId>jaxb-impl</artifactId>
+ <version>2.1.9</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-jcr</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>1.5.8</version>
+ <scope>runtime</scope>
+ </dependency>
+ <!--
+ Java Content Repository API
+ -->
+ <dependency>
+ <groupId>javax.jcr</groupId>
+ <artifactId>jcr</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.5</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <!-- TESTING DEPENDENCIES -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit-dep</artifactId>
+ <version>4.4</version>
+ <scope>integration-test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
+ <version>2.1</version>
+ </dependency>
+
+ </dependencies>
+</project>
Deleted: tags/dna-0.6/web/dna-web-jcr-rest-war/pom.xml
===================================================================
--- trunk/web/dna-web-jcr-rest-war/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ tags/dna-0.6/web/dna-web-jcr-rest-war/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -1,96 +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.6-SNAPSHOT</version>
- <relativePath>../..</relativePath>
- </parent>
- <artifactId>dna-web-jcr-rest-war</artifactId>
- <packaging>war</packaging>
- <name>JBoss DNA JCR REST Servlet</name>
- <description>JBoss DNA servlet that provides RESTful access to JCR items</description>
- <url>http://labs.jboss.org/dna</url>
- <dependencies>
- <dependency>
- <groupId>org.jboss.dna</groupId>
- <artifactId>dna-web-jcr-rest</artifactId>
- <version>${pom.version}</version>
- </dependency>
-
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>1.5.8</version>
- <scope>runtime</scope>
- </dependency>
-
- <!-- TESTING DEPENDENCIES -->
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit-dep</artifactId>
- <version>4.4</version>
- <scope>integration-test</scope>
- </dependency>
- </dependencies>
- <build>
- <finalName>resources</finalName>
- <plugins>
- <plugin>
- <groupId>org.codehaus.cargo</groupId>
- <artifactId>cargo-maven2-plugin</artifactId>
- <!-- >version>1.0.1-SNAPSHOT</version -->
- <executions>
- <execution>
- <id>start-container</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>start</goal>
- </goals>
- </execution>
- <execution>
- <id>stop-container</id>
- <phase>post-integration-test</phase>
- <goals>
- <goal>stop</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <configuration>
- <properties>
- <cargo.logging>low</cargo.logging>
- <cargo.servlet.users>dnauser:password:connect,readwrite|unauthorized:password:bogus</cargo.servlet.users>
- </properties>
- </configuration>
- <wait>false</wait>
- </configuration>
- </plugin>
- <!--
- Override the default Surefire behavior to run during
- integration-test phase
- -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <skip>true</skip>
- </configuration>
- <executions>
- <execution>
- <id>surefire-it</id>
- <phase>integration-test</phase>
- <goals>
- <goal>test</goal>
- </goals>
- <configuration>
- <skip>false</skip>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
-
- </build>
-
-</project>
Copied: tags/dna-0.6/web/dna-web-jcr-rest-war/pom.xml (from rev 1220, trunk/web/dna-web-jcr-rest-war/pom.xml)
===================================================================
--- tags/dna-0.6/web/dna-web-jcr-rest-war/pom.xml (rev 0)
+++ tags/dna-0.6/web/dna-web-jcr-rest-war/pom.xml 2009-09-13 15:10:56 UTC (rev 1221)
@@ -0,0 +1,96 @@
+<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.6</version>
+ <relativePath>../..</relativePath>
+ </parent>
+ <artifactId>dna-web-jcr-rest-war</artifactId>
+ <packaging>war</packaging>
+ <name>JBoss DNA JCR REST Servlet</name>
+ <description>JBoss DNA servlet that provides RESTful access to JCR items</description>
+ <url>http://labs.jboss.org/dna</url>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.dna</groupId>
+ <artifactId>dna-web-jcr-rest</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ <version>1.5.8</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <!-- TESTING DEPENDENCIES -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit-dep</artifactId>
+ <version>4.4</version>
+ <scope>integration-test</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <finalName>resources</finalName>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.cargo</groupId>
+ <artifactId>cargo-maven2-plugin</artifactId>
+ <!-- >version>1.0.1-SNAPSHOT</version -->
+ <executions>
+ <execution>
+ <id>start-container</id>
+ <phase>pre-integration-test</phase>
+ <goals>
+ <goal>start</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>stop-container</id>
+ <phase>post-integration-test</phase>
+ <goals>
+ <goal>stop</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <configuration>
+ <properties>
+ <cargo.logging>low</cargo.logging>
+ <cargo.servlet.users>dnauser:password:connect,readwrite|unauthorized:password:bogus</cargo.servlet.users>
+ </properties>
+ </configuration>
+ <wait>false</wait>
+ </configuration>
+ </plugin>
+ <!--
+ Override the default Surefire behavior to run during
+ integration-test phase
+ -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ <executions>
+ <execution>
+ <id>surefire-it</id>
+ <phase>integration-test</phase>
+ <goals>
+ <goal>test</goal>
+ </goals>
+ <configuration>
+ <skip>false</skip>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+
+ </build>
+
+</project>
16 years, 7 months
DNA SVN: r1220 - in trunk: dna-cnd and 28 other directories.
by dna-commits@lists.jboss.org
Author: rhauch
Date: 2009-09-13 11:10:05 -0400 (Sun, 13 Sep 2009)
New Revision: 1220
Modified:
trunk/dna-cnd/pom.xml
trunk/dna-common/pom.xml
trunk/dna-graph/pom.xml
trunk/dna-integration-tests/pom.xml
trunk/dna-jcr/pom.xml
trunk/dna-repository/pom.xml
trunk/docs/examples/gettingstarted/pom.xml
trunk/docs/examples/gettingstarted/repositories/pom.xml
trunk/docs/examples/gettingstarted/sequencers/pom.xml
trunk/docs/gettingstarted/pom.xml
trunk/docs/pom.xml
trunk/docs/reference/pom.xml
trunk/extensions/dna-classloader-maven/pom.xml
trunk/extensions/dna-connector-filesystem/pom.xml
trunk/extensions/dna-connector-infinispan/pom.xml
trunk/extensions/dna-connector-jbosscache/pom.xml
trunk/extensions/dna-connector-store-jpa/pom.xml
trunk/extensions/dna-connector-svn/pom.xml
trunk/extensions/dna-mimetype-detector-aperture/pom.xml
trunk/extensions/dna-sequencer-cnd/pom.xml
trunk/extensions/dna-sequencer-images/pom.xml
trunk/extensions/dna-sequencer-java/pom.xml
trunk/extensions/dna-sequencer-jbpm-jpdl/pom.xml
trunk/extensions/dna-sequencer-mp3/pom.xml
trunk/extensions/dna-sequencer-msoffice/pom.xml
trunk/extensions/dna-sequencer-xml/pom.xml
trunk/extensions/dna-sequencer-zip/pom.xml
trunk/pom.xml
trunk/web/dna-web-jcr-rest-war/pom.xml
trunk/web/dna-web-jcr-rest/pom.xml
Log:
[maven-release-plugin] prepare release dna-0.6
Modified: trunk/dna-cnd/pom.xml
===================================================================
--- trunk/dna-cnd/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/dna-cnd/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -2,7 +2,7 @@
<parent>
<artifactId>dna</artifactId>
<groupId>org.jboss.dna</groupId>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.dna</groupId>
Modified: trunk/dna-common/pom.xml
===================================================================
--- trunk/dna-common/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/dna-common/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -3,7 +3,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
</parent>
<!-- The groupId and version values are inherited from parent -->
<artifactId>dna-common</artifactId>
Modified: trunk/dna-graph/pom.xml
===================================================================
--- trunk/dna-graph/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/dna-graph/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -3,7 +3,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
</parent>
<!-- The groupId and version values are inherited from parent -->
<artifactId>dna-graph</artifactId>
Modified: trunk/dna-integration-tests/pom.xml
===================================================================
--- trunk/dna-integration-tests/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/dna-integration-tests/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -1,10 +1,9 @@
-<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">
+<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.6-SNAPSHOT</version>
+ <version>0.6</version>
</parent>
<!-- The groupId and version values are inherited from parent -->
<artifactId>dna-integration-tests</artifactId>
Modified: trunk/dna-jcr/pom.xml
===================================================================
--- trunk/dna-jcr/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/dna-jcr/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -4,7 +4,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
</parent>
<!-- The groupId and version values are inherited from parent -->
<artifactId>dna-jcr</artifactId>
Modified: trunk/dna-repository/pom.xml
===================================================================
--- trunk/dna-repository/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/dna-repository/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -3,7 +3,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
</parent>
<!-- The groupId and version values are inherited from parent -->
<artifactId>dna-repository</artifactId>
Modified: trunk/docs/examples/gettingstarted/pom.xml
===================================================================
--- trunk/docs/examples/gettingstarted/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/docs/examples/gettingstarted/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -4,7 +4,7 @@
<groupId>org.jboss.dna.examples</groupId>
<artifactId>getting_started</artifactId>
<packaging>pom</packaging>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
<name>JBoss DNA Getting Started examples</name>
<description />
Modified: trunk/docs/examples/gettingstarted/repositories/pom.xml
===================================================================
--- trunk/docs/examples/gettingstarted/repositories/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/docs/examples/gettingstarted/repositories/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -3,14 +3,14 @@
<parent>
<groupId>org.jboss.dna.examples</groupId>
<artifactId>getting_started</artifactId>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
<relativePath>..</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.dna.examples</groupId>
<artifactId>dna-example-repositories</artifactId>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
<packaging>jar</packaging>
<name>JBoss DNA Repositories Examples</name>
<description>Examples that showcase how to use DNA repositories.</description>
Modified: trunk/docs/examples/gettingstarted/sequencers/pom.xml
===================================================================
--- trunk/docs/examples/gettingstarted/sequencers/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/docs/examples/gettingstarted/sequencers/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -3,14 +3,14 @@
<parent>
<groupId>org.jboss.dna.examples</groupId>
<artifactId>getting_started</artifactId>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
<relativePath>..</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.dna.examples</groupId>
<artifactId>dna-example-sequencers</artifactId>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
<packaging>jar</packaging>
<name>JBoss DNA Sequencer Examples</name>
<description>Examples that showcase how to use sequencers with a JCR repository.</description>
Modified: trunk/docs/gettingstarted/pom.xml
===================================================================
--- trunk/docs/gettingstarted/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/docs/gettingstarted/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -4,7 +4,7 @@
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.6-SNAPSHOT</version>
+ <version>0.6</version>
<packaging>jdocbook</packaging>
<name>JBoss DNA Getting Started manual</name>
<description>The JBoss DNA Getting Started manual</description>
Modified: trunk/docs/pom.xml
===================================================================
--- trunk/docs/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/docs/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -2,7 +2,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.dna.docs</groupId>
Modified: trunk/docs/reference/pom.xml
===================================================================
--- trunk/docs/reference/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/docs/reference/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -4,7 +4,7 @@
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.6-SNAPSHOT</version>
+ <version>0.6</version>
<packaging>jdocbook</packaging>
<name>JBoss DNA Reference Guide</name>
<description>The reference guide for JBoss DNA developers and advanced users</description>
Modified: trunk/extensions/dna-classloader-maven/pom.xml
===================================================================
--- trunk/extensions/dna-classloader-maven/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/extensions/dna-classloader-maven/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -3,7 +3,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
<relativePath>../..</relativePath>
</parent>
<!-- The groupId and version values are inherited from parent -->
Modified: trunk/extensions/dna-connector-filesystem/pom.xml
===================================================================
--- trunk/extensions/dna-connector-filesystem/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/extensions/dna-connector-filesystem/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -4,7 +4,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
<relativePath>../..</relativePath>
</parent>
<!-- The groupId and version values are inherited from parent -->
Modified: trunk/extensions/dna-connector-infinispan/pom.xml
===================================================================
--- trunk/extensions/dna-connector-infinispan/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/extensions/dna-connector-infinispan/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -4,7 +4,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
<relativePath>../..</relativePath>
</parent>
<!-- The groupId and version values are inherited from parent -->
Modified: trunk/extensions/dna-connector-jbosscache/pom.xml
===================================================================
--- trunk/extensions/dna-connector-jbosscache/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/extensions/dna-connector-jbosscache/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -4,7 +4,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
<relativePath>../..</relativePath>
</parent>
<!-- The groupId and version values are inherited from parent -->
Modified: trunk/extensions/dna-connector-store-jpa/pom.xml
===================================================================
--- trunk/extensions/dna-connector-store-jpa/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/extensions/dna-connector-store-jpa/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -4,7 +4,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
<relativePath>../..</relativePath>
</parent>
<!-- The groupId and version values are inherited from parent -->
Modified: trunk/extensions/dna-connector-svn/pom.xml
===================================================================
--- trunk/extensions/dna-connector-svn/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/extensions/dna-connector-svn/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -3,7 +3,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
<relativePath>../..</relativePath>
</parent>
<artifactId>dna-connector-svn</artifactId>
Modified: trunk/extensions/dna-mimetype-detector-aperture/pom.xml
===================================================================
--- trunk/extensions/dna-mimetype-detector-aperture/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/extensions/dna-mimetype-detector-aperture/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -3,7 +3,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
<relativePath>../..</relativePath>
</parent>
<!-- The groupId and version values are inherited from parent -->
Modified: trunk/extensions/dna-sequencer-cnd/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-cnd/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/extensions/dna-sequencer-cnd/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -2,7 +2,7 @@
<parent>
<artifactId>dna</artifactId>
<groupId>org.jboss.dna</groupId>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
<relativePath>../..</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: trunk/extensions/dna-sequencer-images/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-images/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/extensions/dna-sequencer-images/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -3,7 +3,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
<relativePath>../..</relativePath>
</parent>
<!-- The groupId and version values are inherited from parent -->
Modified: trunk/extensions/dna-sequencer-java/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-java/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/extensions/dna-sequencer-java/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -3,7 +3,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
<relativePath>../..</relativePath>
</parent>
<!-- The groupId and version values are inherited from parent -->
Modified: trunk/extensions/dna-sequencer-jbpm-jpdl/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-jbpm-jpdl/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/extensions/dna-sequencer-jbpm-jpdl/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -3,12 +3,12 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
<relativePath>../..</relativePath>
</parent>
<artifactId>dna-sequencer-jbpm-jpdl</artifactId>
<packaging>jar</packaging>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
<name>JBoss DNA jBPM jPDL Sequencer</name>
<description>
JBoss DNA Sequencer that processes jPDL XML document
Modified: trunk/extensions/dna-sequencer-mp3/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-mp3/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/extensions/dna-sequencer-mp3/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -3,7 +3,7 @@
<parent>
<artifactId>dna</artifactId>
<groupId>org.jboss.dna</groupId>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
<relativePath>../..</relativePath>
</parent>
<!-- The groupId and version values are inherited from parent -->
Modified: trunk/extensions/dna-sequencer-msoffice/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-msoffice/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/extensions/dna-sequencer-msoffice/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -3,7 +3,7 @@
<parent>
<artifactId>dna</artifactId>
<groupId>org.jboss.dna</groupId>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
<relativePath>../..</relativePath>
</parent>
<!-- The groupId and version values are inherited from parent -->
Modified: trunk/extensions/dna-sequencer-xml/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-xml/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/extensions/dna-sequencer-xml/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -3,7 +3,7 @@
<parent>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
<relativePath>../..</relativePath>
</parent>
<!-- The groupId and version values are inherited from parent -->
Modified: trunk/extensions/dna-sequencer-zip/pom.xml
===================================================================
--- trunk/extensions/dna-sequencer-zip/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/extensions/dna-sequencer-zip/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -3,7 +3,7 @@
<parent>
<artifactId>dna</artifactId>
<groupId>org.jboss.dna</groupId>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
<relativePath>../..</relativePath>
</parent>
<!-- The groupId and version values are inherited from parent -->
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -2,7 +2,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.dna</groupId>
<artifactId>dna</artifactId>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
<packaging>pom</packaging>
<name>JBoss DNA</name>
<url>http://www.jboss.org/dna</url>
@@ -11,7 +11,7 @@
JBoss DNA provides tools for working with JCR repositories.
</description>
<scm>
- <connection>scm:svn:https://svn.jboss.org/repos/dna/trunk</connection>
+ <connection>scm:svn:https://svn.jboss.org/repos/dna/tags/dna-0.6</connection>
</scm>
<licenses>
<license>
Modified: trunk/web/dna-web-jcr-rest/pom.xml
===================================================================
--- trunk/web/dna-web-jcr-rest/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/web/dna-web-jcr-rest/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -1,10 +1,9 @@
-<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">
+<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.6-SNAPSHOT</version>
+ <version>0.6</version>
<relativePath>../..</relativePath>
</parent>
<artifactId>dna-web-jcr-rest</artifactId>
Modified: trunk/web/dna-web-jcr-rest-war/pom.xml
===================================================================
--- trunk/web/dna-web-jcr-rest-war/pom.xml 2009-09-12 18:00:16 UTC (rev 1219)
+++ trunk/web/dna-web-jcr-rest-war/pom.xml 2009-09-13 15:10:05 UTC (rev 1220)
@@ -3,7 +3,7 @@
<parent>
<artifactId>dna</artifactId>
<groupId>org.jboss.dna</groupId>
- <version>0.6-SNAPSHOT</version>
+ <version>0.6</version>
<relativePath>../..</relativePath>
</parent>
<artifactId>dna-web-jcr-rest-war</artifactId>
16 years, 7 months
DNA SVN: r1219 - trunk/extensions.
by dna-commits@lists.jboss.org
Author: rhauch
Date: 2009-09-12 14:00:16 -0400 (Sat, 12 Sep 2009)
New Revision: 1219
Removed:
trunk/extensions/dna-connector-federation/
Log:
Completed removal of 'dna-connector-federation' project
16 years, 7 months
DNA SVN: r1218 - in trunk: dna-cnd/src/main/java/org/jboss/dna/cnd and 73 other directories.
by dna-commits@lists.jboss.org
Author: rhauch
Date: 2009-09-12 13:55:25 -0400 (Sat, 12 Sep 2009)
New Revision: 1218
Added:
trunk/dna-cnd/src/main/java/org/jboss/dna/cnd/package-info.java
trunk/dna-common/src/main/java/org/jboss/dna/common/collection/package-info.java
trunk/dna-common/src/main/java/org/jboss/dna/common/component/package-info.java
trunk/dna-common/src/main/java/org/jboss/dna/common/i18n/package-info.java
trunk/dna-common/src/main/java/org/jboss/dna/common/math/package-info.java
trunk/dna-common/src/main/java/org/jboss/dna/common/package-info.java
trunk/dna-common/src/main/java/org/jboss/dna/common/statistic/package-info.java
trunk/dna-common/src/main/java/org/jboss/dna/common/text/package-info.java
trunk/dna-common/src/main/java/org/jboss/dna/common/util/package-info.java
trunk/dna-common/src/main/java/org/jboss/dna/common/xml/package-info.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/session/package-info.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/nodetype/package-info.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/package-info.java
trunk/dna-repository/src/main/java/org/jboss/dna/repository/package-info.java
trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/package-info.java
trunk/dna-repository/src/main/java/org/jboss/dna/repository/service/package-info.java
trunk/dna-repository/src/main/java/org/jboss/dna/repository/util/package-info.java
trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/package-info.java
trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/spi/package-info.java
trunk/extensions/dna-connector-filesystem/src/main/java/org/jboss/dna/connector/filesystem/package-info.java
trunk/extensions/dna-connector-infinispan/src/main/java/org/jboss/dna/connector/infinispan/package-info.java
trunk/extensions/dna-connector-jbosscache/src/main/java/org/jboss/dna/connector/jbosscache/package-info.java
trunk/extensions/dna-connector-jdbc-metadata/src/main/java/org/jboss/dna/connector/jdbc/package-info.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/package-info.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/common/package-info.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/package-info.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/util/package-info.java
trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/scm/package-info.java
trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/package-info.java
trunk/extensions/dna-mimetype-detector-aperture/src/main/java/org/jboss/dna/mimetype/aperture/package-info.java
trunk/extensions/dna-sequencer-cnd/src/main/java/org/jboss/dna/sequencer/cnd/package-info.java
trunk/extensions/dna-sequencer-images/src/main/java/org/jboss/dna/sequencer/image/package-info.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/package-info.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/package-info.java
trunk/extensions/dna-sequencer-jbpm-jpdl/src/main/java/org/jboss/dna/sequencer/jpdl3/package-info.java
trunk/extensions/dna-sequencer-mp3/src/main/java/org/jboss/dna/sequencer/mp3/package-info.java
trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/excel/package-info.java
trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/package-info.java
trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/powerpoint/package-info.java
trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/word/package-info.java
trunk/extensions/dna-sequencer-xml/src/main/java/org/jboss/dna/sequencer/xml/package-info.java
trunk/extensions/dna-sequencer-zip/src/main/java/org/jboss/dna/sequencer/zip/package-info.java
Removed:
trunk/dna-common/src/main/java/org/jboss/dna/common/component/AbstractComponent.java
trunk/extensions/dna-connector-federation/.classpath
trunk/extensions/dna-connector-federation/.project
trunk/extensions/dna-connector-federation/pom.xml
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedLexicon.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedRepository.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedRepositoryConnection.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedRepositorySource.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedWorkspace.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatingRequestProcessor.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederationException.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederationI18n.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/Projection.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/ProjectionParser.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/Contribution.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/ContributionStatistics.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/EmptyContribution.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/MultiChildContribution.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/MultiPropertyContribution.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/NodeContribution.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/NonEmptyContribution.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/OneChildContribution.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/OnePropertyContribution.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/PlaceholderContribution.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/ThreePropertyContribution.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/TwoChildContribution.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/TwoPropertyContribution.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/FederatedNode.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/FiveContributionMergePlan.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/FourContributionMergePlan.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/MergePlan.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/MultipleContributionMergePlan.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/OneContributionMergePlan.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/ThreeContributionMergePlan.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/TwoContributionMergePlan.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/strategy/MergeStrategy.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/strategy/OneContributionMergeStrategy.java
trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/strategy/SimpleMergeStrategy.java
trunk/extensions/dna-connector-federation/src/main/resources/org/jboss/dna/connector/federation/FederationI18n.properties
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatedRepositoryConnectionTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatedRepositorySourceIntegrationTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatedRepositorySourceTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatedRepositoryTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatingRequestProcessorTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederationI18nTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/ProjectionParserTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/ProjectionPathRuleTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/ProjectionTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/ContributionStatisticsTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/EmptyContributionTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/MultiChildContributionTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/MultiPropertyContributionTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/NodeContributionTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/OneChildContributionTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/OnePropertyContributionTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/ThreePropertyContributionTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/TwoChildContributionTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/TwoPropertyContributionTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/FederatedNodeTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/FiveContributionMergePlanTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/FourContributionMergePlanTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/MergePlanTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/MultipleContributionMergePlanTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/OneContributionMergePlanTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/ThreeContributionMergePlanTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/TwoContributionMergePlanTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/strategy/OneContributionMergeStrategyTest.java
trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/strategy/SimpleMergeStrategyTest.java
trunk/extensions/dna-connector-federation/src/test/resources/log4j.properties
Modified:
trunk/dna-cnd/src/main/java/org/jboss/dna/cnd/CndI18n.java
trunk/dna-common/src/main/java/org/jboss/dna/common/CommonI18n.java
trunk/dna-common/src/main/java/org/jboss/dna/common/SystemFailureException.java
trunk/dna-common/src/main/java/org/jboss/dna/common/collection/AbstractProblems.java
trunk/dna-common/src/main/java/org/jboss/dna/common/collection/EmptyIterator.java
trunk/dna-common/src/main/java/org/jboss/dna/common/collection/ImmutableAppendedList.java
trunk/dna-common/src/main/java/org/jboss/dna/common/collection/Problem.java
trunk/dna-common/src/main/java/org/jboss/dna/common/collection/Problems.java
trunk/dna-common/src/main/java/org/jboss/dna/common/collection/ReadOnlyIterator.java
trunk/dna-common/src/main/java/org/jboss/dna/common/collection/SimpleProblems.java
trunk/dna-common/src/main/java/org/jboss/dna/common/collection/ThreadSafeProblems.java
trunk/dna-common/src/main/java/org/jboss/dna/common/collection/UnmodifiableProperties.java
trunk/dna-common/src/main/java/org/jboss/dna/common/component/ClassLoaderFactory.java
trunk/dna-common/src/main/java/org/jboss/dna/common/component/Component.java
trunk/dna-common/src/main/java/org/jboss/dna/common/component/ComponentConfig.java
trunk/dna-common/src/main/java/org/jboss/dna/common/component/ComponentLibrary.java
trunk/dna-common/src/main/java/org/jboss/dna/common/component/StandardClassLoaderFactory.java
trunk/dna-common/src/main/java/org/jboss/dna/common/i18n/ClasspathLocalizationRepository.java
trunk/dna-common/src/main/java/org/jboss/dna/common/i18n/I18n.java
trunk/dna-common/src/main/java/org/jboss/dna/common/i18n/LocalizationRepository.java
trunk/dna-common/src/main/java/org/jboss/dna/common/math/DoubleOperations.java
trunk/dna-common/src/main/java/org/jboss/dna/common/math/Duration.java
trunk/dna-common/src/main/java/org/jboss/dna/common/math/DurationOperations.java
trunk/dna-common/src/main/java/org/jboss/dna/common/math/FloatOperations.java
trunk/dna-common/src/main/java/org/jboss/dna/common/math/IntegerOperations.java
trunk/dna-common/src/main/java/org/jboss/dna/common/math/LongOperations.java
trunk/dna-common/src/main/java/org/jboss/dna/common/math/MathOperations.java
trunk/dna-common/src/main/java/org/jboss/dna/common/math/ShortOperations.java
trunk/dna-common/src/main/java/org/jboss/dna/common/statistic/Histogram.java
trunk/dna-common/src/main/java/org/jboss/dna/common/statistic/SimpleStatistics.java
trunk/dna-common/src/main/java/org/jboss/dna/common/statistic/Stopwatch.java
trunk/dna-common/src/main/java/org/jboss/dna/common/text/Inflector.java
trunk/dna-common/src/main/java/org/jboss/dna/common/text/Jsr283Encoder.java
trunk/dna-common/src/main/java/org/jboss/dna/common/text/NoOpEncoder.java
trunk/dna-common/src/main/java/org/jboss/dna/common/text/TextDecoder.java
trunk/dna-common/src/main/java/org/jboss/dna/common/text/TextEncoder.java
trunk/dna-common/src/main/java/org/jboss/dna/common/text/UrlEncoder.java
trunk/dna-common/src/main/java/org/jboss/dna/common/text/XmlNameEncoder.java
trunk/dna-common/src/main/java/org/jboss/dna/common/text/XmlValueEncoder.java
trunk/dna-common/src/main/java/org/jboss/dna/common/util/CheckArg.java
trunk/dna-common/src/main/java/org/jboss/dna/common/util/ClassUtil.java
trunk/dna-common/src/main/java/org/jboss/dna/common/util/FileUtil.java
trunk/dna-common/src/main/java/org/jboss/dna/common/util/HashCode.java
trunk/dna-common/src/main/java/org/jboss/dna/common/util/IoUtil.java
trunk/dna-common/src/main/java/org/jboss/dna/common/util/LogContext.java
trunk/dna-common/src/main/java/org/jboss/dna/common/util/Reflection.java
trunk/dna-common/src/main/java/org/jboss/dna/common/util/SecureHash.java
trunk/dna-common/src/main/java/org/jboss/dna/common/util/StringUtil.java
trunk/dna-common/src/main/java/org/jboss/dna/common/xml/SimpleNamespaceContext.java
trunk/dna-common/src/main/java/org/jboss/dna/common/xml/XmlCharacters.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/DnaIntLexicon.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/DnaLexicon.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/ExecutionContext.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/Graph.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/GraphI18n.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/JaasSecurityContext.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/JcrLexicon.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/JcrMixLexicon.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/JcrNtLexicon.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/Location.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/Locations.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/Node.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/NodeConflictBehavior.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/Results.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/SecurityContext.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/Subgraph.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/cache/BasicCachePolicy.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/cache/CachePolicy.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/cache/Cacheable.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/cache/ImmutableCachePolicy.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositoryConnection.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositoryConnectionFactory.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositoryConnectionPool.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositoryContext.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositorySource.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositorySourceCapabilities.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositorySourceException.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/UuidAlreadyExistsException.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/federation/FederatedRepositorySource.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/federation/JoinRequestProcessor.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/inmemory/InMemoryRepository.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/inmemory/InMemoryRepositorySource.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/map/MapNode.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/map/MapRepositoryConnection.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/io/Destination.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/io/GraphImporter.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/mimetype/MimeTypeDetector.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/mimetype/MimeTypeDetectorConfig.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/mimetype/MimeTypeDetectors.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/observe/NetChangeObserver.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/observe/ObservationBus.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/observe/Observer.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/Binary.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/BinaryFactory.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/DateTime.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/DateTimeFactory.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/InvalidPathException.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/InvalidPathExpressionException.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/IoException.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/Name.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/NameFactory.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/NamespaceException.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/NamespaceRegistry.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/Path.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/PathExpression.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/PathFactory.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/PathNotFoundException.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/Property.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/PropertyFactory.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/PropertyType.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/Reference.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/ReferentialIntegrityException.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/UuidFactory.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/ValueComparators.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/ValueFactories.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/ValueFactory.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/ValueFormatException.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/AbstractBinary.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/AbstractBinaryValueFactory.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/AbstractPath.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/AbstractValueFactories.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/AbstractValueFactory.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicEmptyProperty.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicMultiValueProperty.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicName.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicNamespace.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicPath.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicPathSegment.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicProperty.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicPropertyFactory.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicSingleValueProperty.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BooleanValueFactory.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/ChildPath.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/DecimalValueFactory.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/DelegatingValueFactories.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/DoubleValueFactory.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/InMemoryBinary.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/InMemoryBinaryValueFactory.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/JodaDateTime.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/JodaDateTimeValueFactory.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/LocalNamespaceRegistry.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/LongValueFactory.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/NameValueFactory.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/ObjectValueFactory.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/PathValueFactory.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/RootPath.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/SimpleNamespaceRegistry.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/StandardValueFactories.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/StringValueFactory.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/ThreadSafeNamespaceRegistry.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/UriValueFactory.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/UuidReference.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/UuidReferenceValueFactory.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/UuidValueFactory.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/BatchRequestBuilder.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/CacheableRequest.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/CloneBranchRequest.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/CompositeRequest.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/CopyBranchRequest.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/CreateNodeRequest.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/DeleteBranchRequest.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/InvalidRequestException.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/InvalidWorkspaceException.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/MoveBranchRequest.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/ReadAllChildrenRequest.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/ReadAllPropertiesRequest.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/ReadBlockOfChildrenRequest.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/ReadBranchRequest.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/ReadNextBlockOfChildrenRequest.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/ReadNodeRequest.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/ReadPropertyRequest.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/RemovePropertyRequest.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/RenameNodeRequest.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/Request.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/RequestException.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/SetPropertyRequest.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/UnsupportedRequestException.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/UpdatePropertiesRequest.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/VerifyNodeExistsRequest.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/processor/LoggingRequestProcessor.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/sequencer/SequencerOutput.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/sequencer/StreamSequencer.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/sequencer/StreamSequencerContext.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/session/InvalidStateException.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/session/ValidationException.java
trunk/dna-graph/src/main/java/org/jboss/dna/graph/xml/XmlHandler.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/AbstractJcrItem.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/AbstractJcrProperty.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/DnaIntLexicon.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/DnaLexicon.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrChildNodeIterator.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrEmptyNodeIterator.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrEmptyPropertyIterator.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrEngine.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrI18n.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrLexicon.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrMixLexicon.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrMultiValueProperty.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrNode.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrPropertyIterator.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrRepository.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrRootNode.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrSession.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrSingleValueProperty.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrSvLexicon.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrValue.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrWorkspace.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/PropertyTypeUtil.java
trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/nodetype/NodeTypeExistsException.java
trunk/dna-repository/pom.xml
trunk/dna-repository/src/main/java/org/jboss/dna/repository/DnaConfigurationException.java
trunk/dna-repository/src/main/java/org/jboss/dna/repository/DnaLexicon.java
trunk/dna-repository/src/main/java/org/jboss/dna/repository/RepositoryI18n.java
trunk/dna-repository/src/main/java/org/jboss/dna/repository/RepositoryLibrary.java
trunk/dna-repository/src/main/java/org/jboss/dna/repository/RepositoryService.java
trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/InvalidSequencerPathExpression.java
trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/Sequencer.java
trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/SequencerConfig.java
trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/SequencerException.java
trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/SequencerLibrary.java
trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/SequencerOutputMap.java
trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/SequencerPathExpression.java
trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/SequencingService.java
trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/StreamSequencerAdapter.java
trunk/dna-repository/src/main/java/org/jboss/dna/repository/service/AbstractServiceAdministrator.java
trunk/dna-repository/src/main/java/org/jboss/dna/repository/service/AdministeredService.java
trunk/dna-repository/src/main/java/org/jboss/dna/repository/service/ServiceAdministrator.java
trunk/dna-repository/src/main/java/org/jboss/dna/repository/util/AbstractSessionFactory.java
trunk/dna-repository/src/main/java/org/jboss/dna/repository/util/RepositoryNodePath.java
trunk/dna-repository/src/main/java/org/jboss/dna/repository/util/SessionFactory.java
trunk/dna-repository/src/main/java/org/jboss/dna/repository/util/SimpleSessionFactory.java
trunk/docs/examples/gettingstarted/repositories/src/main/java/org/jboss/example/dna/repository/ConsoleInput.java
trunk/docs/examples/gettingstarted/repositories/src/main/java/org/jboss/example/dna/repository/RepositoryClient.java
trunk/docs/examples/gettingstarted/repositories/src/main/java/org/jboss/example/dna/repository/UserInterface.java
trunk/docs/examples/gettingstarted/sequencers/src/main/java/org/jboss/example/dna/sequencer/ConsoleInput.java
trunk/docs/examples/gettingstarted/sequencers/src/main/java/org/jboss/example/dna/sequencer/ContentInfo.java
trunk/docs/examples/gettingstarted/sequencers/src/main/java/org/jboss/example/dna/sequencer/JavaInfo.java
trunk/docs/examples/gettingstarted/sequencers/src/main/java/org/jboss/example/dna/sequencer/JcrTools.java
trunk/docs/examples/gettingstarted/sequencers/src/main/java/org/jboss/example/dna/sequencer/MediaInfo.java
trunk/docs/examples/gettingstarted/sequencers/src/main/java/org/jboss/example/dna/sequencer/SequencingClient.java
trunk/docs/examples/gettingstarted/sequencers/src/main/java/org/jboss/example/dna/sequencer/UserInterface.java
trunk/docs/reference/src/main/docbook/en-US/content/introduction.xml
trunk/docs/reference/src/main/docbook/en-US/master.xml
trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/ArtifactType.java
trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/MavenClassLoaders.java
trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/MavenDependency.java
trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/MavenI18n.java
trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/MavenRepository.java
trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/MavenRepositoryException.java
trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/MavenUrl.java
trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/SignatureType.java
trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/spi/AbstractMavenUrlProvider.java
trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/spi/JcrMavenUrlProvider.java
trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/spi/MavenUrlProvider.java
trunk/extensions/dna-common-jdbc/src/main/java/org/jboss/dna/common/jdbc/JdbcMetadataI18n.java
trunk/extensions/dna-connector-filesystem/src/main/java/org/jboss/dna/connector/filesystem/FileSystemConnection.java
trunk/extensions/dna-connector-filesystem/src/main/java/org/jboss/dna/connector/filesystem/FileSystemI18n.java
trunk/extensions/dna-connector-filesystem/src/main/java/org/jboss/dna/connector/filesystem/FileSystemRequestProcessor.java
trunk/extensions/dna-connector-filesystem/src/main/java/org/jboss/dna/connector/filesystem/FileSystemSource.java
trunk/extensions/dna-connector-infinispan/src/main/java/org/jboss/dna/connector/infinispan/InfinispanConnectorI18n.java
trunk/extensions/dna-connector-infinispan/src/main/java/org/jboss/dna/connector/infinispan/InfinispanRepository.java
trunk/extensions/dna-connector-jbosscache/src/main/java/org/jboss/dna/connector/jbosscache/JBossCacheConnectorI18n.java
trunk/extensions/dna-connector-jbosscache/src/main/java/org/jboss/dna/connector/jbosscache/JBossCacheRepository.java
trunk/extensions/dna-connector-jbosscache/src/main/java/org/jboss/dna/connector/jbosscache/JBossCacheSource.java
trunk/extensions/dna-connector-jdbc-metadata/src/main/java/org/jboss/dna/connector/jdbc/JdbcMetadataI18n.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/JpaConnection.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/JpaConnectorI18n.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/JpaSource.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/Model.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/BasicModel.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/BasicRequestProcessor.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/ChildEntity.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/ChildId.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/LargeValueEntity.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/LargeValueId.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/NodeId.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/PropertiesEntity.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/ReferenceEntity.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/ReferenceId.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/SubgraphNodeEntity.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/SubgraphQuery.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/SubgraphQueryEntity.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/common/ChangeLogEntity.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/common/NamespaceEntity.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/common/WorkspaceEntity.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/util/Namespaces.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/util/RequestProcessorCache.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/util/Serializer.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/util/StoreOptionEntity.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/util/StoreOptions.java
trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/util/Workspaces.java
trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/scm/ScmAction.java
trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/scm/ScmActionExecutor.java
trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/scm/ScmActionFactory.java
trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNActionExecutor.java
trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNProtocol.java
trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNRepositoryConnection.java
trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNRepositoryConnectorI18n.java
trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNRepositoryLexicon.java
trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNRepositoryRequestProcessor.java
trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNRepositorySource.java
trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNRepositoryUtil.java
trunk/extensions/dna-mimetype-detector-aperture/src/main/java/org/jboss/dna/mimetype/aperture/ApertureMimeTypeDetector.java
trunk/extensions/dna-sequencer-cnd/src/main/java/org/jboss/dna/sequencer/cnd/CndSequencer.java
trunk/extensions/dna-sequencer-cnd/src/main/java/org/jboss/dna/sequencer/cnd/CndSequencerI18n.java
trunk/extensions/dna-sequencer-images/src/main/java/org/jboss/dna/sequencer/image/ImageMetadataSequencer.java
trunk/extensions/dna-sequencer-images/src/main/java/org/jboss/dna/sequencer/image/ImageSequencerI18n.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/AbstractJavaMetadata.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/ArrayTypeFieldMetadataSequencer.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/CompilationUnitParser.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/JavaMetadataI18n.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/JavaMetadataSequencer.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/JavaMetadataUtil.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/JavaSourceCndDefinition.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/MethodMetadataSequencer.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/ParameterizedTypeFieldMetadataSequencer.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/SimpleTypeMetadataSequencer.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/VariableSequencer.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/AnnotationMetadata.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ArrayTypeFieldMetadata.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ClassMetadata.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ConstructorMetadata.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/FieldMetadata.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ImportMetadata.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ImportOnDemandMetadata.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/InterfaceMetadata.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/JavaMetadata.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/JavadocMetadata.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/MarkerAnnotationMetadata.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/MethodTypeMemberMetadata.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ModifierMetadata.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/NormalAnnotationMetadata.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/PackageMetadata.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ParameterizedTypeFieldMetadata.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/QualifiedTypeFieldMetadata.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/SimpleTypeFieldMetadata.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/SingleImportMetadata.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/SingleMemberAnnotationMetadata.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/TypeMetadata.java
trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/WildcardTypeFieldMetadata.java
trunk/extensions/dna-sequencer-mp3/src/main/java/org/jboss/dna/sequencer/mp3/Mp3Metadata.java
trunk/extensions/dna-sequencer-mp3/src/main/java/org/jboss/dna/sequencer/mp3/Mp3MetadataSequencer.java
trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/MSOfficeMetadata.java
trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/MSOfficeMetadataI18n.java
trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/MSOfficeMetadataReader.java
trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/MSOfficeMetadataSequencer.java
trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/excel/ExcelMetadata.java
trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/excel/ExcelMetadataReader.java
trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/powerpoint/PowerPointMetadataReader.java
trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/powerpoint/SlideMetadata.java
trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/word/WordMetadata.java
trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/word/WordMetadataReader.java
trunk/extensions/dna-sequencer-xml/src/main/java/org/jboss/dna/sequencer/xml/DnaDtdLexicon.java
trunk/extensions/dna-sequencer-xml/src/main/java/org/jboss/dna/sequencer/xml/DnaXmlLexicon.java
trunk/extensions/dna-sequencer-xml/src/main/java/org/jboss/dna/sequencer/xml/InheritingXmlSequencer.java
trunk/extensions/dna-sequencer-xml/src/main/java/org/jboss/dna/sequencer/xml/XmlSequencer.java
trunk/extensions/dna-sequencer-xml/src/main/java/org/jboss/dna/sequencer/xml/XmlSequencerHandler.java
trunk/extensions/dna-sequencer-xml/src/main/java/org/jboss/dna/sequencer/xml/XmlSequencerI18n.java
trunk/extensions/dna-sequencer-zip/src/main/java/org/jboss/dna/sequencer/zip/ZipSequencer.java
trunk/pom.xml
Log:
Changed to a newer version of the Maven JavaDoc plugin, and configured the JavaDoc to be a little different (with hopefully better organization). Quite a few of our classes had no JavaDoc at all (at the class level), so I went through and made sure that every class has at least one (accurate) sentence and that every package has a package-info.java. While I was there, I also removed all (or most?) of the @author tags in the non-test code, per the discussion thread a few months ago. Finally, I removed the 'extensions/dna-connector-federation' project, which is the old implementation that is no longer used, and updated the Reference Guide accordingly.
Modified: trunk/dna-cnd/src/main/java/org/jboss/dna/cnd/CndI18n.java
===================================================================
--- trunk/dna-cnd/src/main/java/org/jboss/dna/cnd/CndI18n.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-cnd/src/main/java/org/jboss/dna/cnd/CndI18n.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -26,8 +26,7 @@
import org.jboss.dna.common.i18n.I18n;
/**
- * @author John Verhaeg
- * @author Randall Hauch
+ * The internationalized string constants for the <code>org.jboss.dna.cnd*</code> packages.
*/
public final class CndI18n {
Copied: trunk/dna-cnd/src/main/java/org/jboss/dna/cnd/package-info.java (from rev 1217, trunk/dna-common/src/main/java/org/jboss/dna/common/component/ClassLoaderFactory.java)
===================================================================
--- trunk/dna-cnd/src/main/java/org/jboss/dna/cnd/package-info.java (rev 0)
+++ trunk/dna-cnd/src/main/java/org/jboss/dna/cnd/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,32 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * Compact Node Definition (CND) defines JCR node types, property definitions, and child node definitions
+ * in a concise and easy-to-read form. The CND format was originally defined by the
+ * <a href="http://jackrabbit.apache.org/">Apache Jackrabbit</a> project, which is the reference implementation
+ * of the JCR 1.0 specification. However, the format has since been adopted as a repository-neutral format
+ * and defined as part of the JCR 2.0 specification.
+ */
+
+package org.jboss.dna.cnd;
\ No newline at end of file
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/CommonI18n.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/CommonI18n.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/CommonI18n.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,8 +28,7 @@
import org.jboss.dna.common.i18n.I18n;
/**
- * @author John Verhaeg
- * @author Randall Hauch
+ * The internationalized string constants for the <code>org.jboss.dna.common*</code> packages.
*/
public final class CommonI18n {
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/SystemFailureException.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/SystemFailureException.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/SystemFailureException.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,10 +24,8 @@
package org.jboss.dna.common;
-
/**
- *
- * @author Randall Hauch
+ * A generic {@link RuntimeException runtime exception} representing a catastrophic and/or unrecoverable failure of the system.
*/
public class SystemFailureException extends RuntimeException {
@@ -36,13 +34,15 @@
private static final long serialVersionUID = 8281373010920861138L;
/**
- *
+ * Construct a system failure exception with no message.
*/
public SystemFailureException() {
}
/**
- * @param message
+ * Construct a system failure exception with a single message.
+ *
+ * @param message the message describing the failure
*/
public SystemFailureException( String message ) {
super(message);
@@ -50,7 +50,9 @@
}
/**
- * @param cause
+ * Construct a system failure exception with another exception that is the cause of the failure.
+ *
+ * @param cause the original cause of the failure
*/
public SystemFailureException( Throwable cause ) {
super(cause);
@@ -58,10 +60,13 @@
}
/**
- * @param message
- * @param cause
+ * Construct a system failure exception with a single message and another exception that is the cause of the failure.
+ *
+ * @param message the message describing the failure
+ * @param cause the original cause of the failure
*/
- public SystemFailureException( String message, Throwable cause ) {
+ public SystemFailureException( String message,
+ Throwable cause ) {
super(message, cause);
}
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/collection/AbstractProblems.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/collection/AbstractProblems.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/collection/AbstractProblems.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -31,9 +31,6 @@
/**
* A list of problems for some execution context. The problems will be {@link #iterator() returned} in the order in which they
* were encountered (although this cannot be guaranteed in contexts involving multiple threads or processes).
- *
- * @author Randall Hauch
- * @author John Verhaeg
*/
public abstract class AbstractProblems implements Problems {
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/collection/EmptyIterator.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/collection/EmptyIterator.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/collection/EmptyIterator.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -25,11 +25,15 @@
import java.util.Iterator;
import java.util.NoSuchElementException;
+import net.jcip.annotations.Immutable;
/**
- * @author jverhaeg
- * @param <T> some type
+ * A reusuable {@link Iterator} implementation that has no elements. Note that the objects are immutable, and therefore may be
+ * shared and reused.
+ *
+ * @param <T> the type of the elements over which the iteration is being performed
*/
+@Immutable
public final class EmptyIterator<T> implements Iterator<T> {
/**
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/collection/ImmutableAppendedList.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/collection/ImmutableAppendedList.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/collection/ImmutableAppendedList.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -37,7 +37,6 @@
* that contains all of the elements in the parent list as well as the last appended element, but while reusing the existing
* parent list and without having to create a copy of the parent list.
*
- * @author Randall Hauch
* @param <T> the type of element
*/
@Immutable
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/collection/Problem.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/collection/Problem.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/collection/Problem.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -29,7 +29,10 @@
import org.jboss.dna.common.util.HashCode;
/**
- * @author Randall Hauch
+ * An immutable representation of a problem, with a status, code, internationalized and parameterized message, values for the
+ * parameters, information about the resource and location, and an optional exception. The use of internationalized messages
+ * allows for automatic localization of the messages (and substitution of the parameter values) via the
+ * {@link #getMessageString()} method.
*/
@Immutable
public class Problem {
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/collection/Problems.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/collection/Problems.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/collection/Problems.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -27,43 +27,112 @@
import org.jboss.dna.common.i18n.I18n;
/**
- * @author John Verhaeg
+ * An interface for a collection of {@link Problem} objects, with multiple overloaded methods for adding errors, warnings, and
+ * informational messages.
*/
public interface Problems extends Iterable<Problem> {
+ /**
+ * Add an error message with the parameters that should be used when localizing the message.
+ *
+ * @param message the internationalized message describing the problem
+ * @param params the values for the parameters in the message
+ */
void addError( I18n message,
Object... params );
+ /**
+ * Add an error exception and message with the parameters that should be used when localizing the message.
+ *
+ * @param throwable the exception that represents the error; may be null
+ * @param message the internationalized message describing the problem
+ * @param params the values for the parameters in the message
+ */
void addError( Throwable throwable,
I18n message,
Object... params );
+ /**
+ * Add an error message with a description of the resource, its location, and the parameters that should be used when
+ * localizing the message
+ *
+ * @param message the internationalized message describing the problem
+ * @param resource the description of the resource; may be null
+ * @param location the location of the resource; may be null
+ * @param params the values for the parameters in the message
+ */
void addError( I18n message,
String resource,
String location,
Object... params );
+ /**
+ * Add an error exception and message with a description of the resource, its location, and the parameters that should be used
+ * when localizing the message
+ *
+ * @param throwable the exception that represents the error; may be null
+ * @param message the internationalized message describing the problem
+ * @param resource the description of the resource; may be null
+ * @param location the location of the resource; may be null
+ * @param params the values for the parameters in the message
+ */
void addError( Throwable throwable,
I18n message,
String resource,
String location,
Object... params );
+ /**
+ * Add an error message with the parameters that should be used when localizing the message.
+ *
+ * @param code the error code
+ * @param message the internationalized message describing the problem
+ * @param params the values for the parameters in the message
+ */
void addError( int code,
I18n message,
Object... params );
+ /**
+ * Add an error exception and message with the parameters that should be used when localizing the message.
+ *
+ * @param throwable the exception that represents the error; may be null
+ * @param code the error code
+ * @param message the internationalized message describing the problem
+ * @param params the values for the parameters in the message
+ */
void addError( Throwable throwable,
int code,
I18n message,
Object... params );
+ /**
+ * Add an error message with a description of the resource, its location, and the parameters that should be used when
+ * localizing the message
+ *
+ * @param code the error code
+ * @param message the internationalized message describing the problem
+ * @param resource the description of the resource; may be null
+ * @param location the location of the resource; may be null
+ * @param params the values for the parameters in the message
+ */
void addError( int code,
I18n message,
String resource,
String location,
Object... params );
+ /**
+ * Add an error exception and message with a description of the resource, its location, and the parameters that should be used
+ * when localizing the message
+ *
+ * @param throwable the exception that represents the error; may be null
+ * @param code the error code
+ * @param message the internationalized message describing the problem
+ * @param resource the description of the resource; may be null
+ * @param location the location of the resource; may be null
+ * @param params the values for the parameters in the message
+ */
void addError( Throwable throwable,
int code,
I18n message,
@@ -71,39 +140,107 @@
String location,
Object... params );
+ /**
+ * Add a warning message with the parameters that should be used when localizing the message.
+ *
+ * @param message the internationalized message describing the problem
+ * @param params the values for the parameters in the message
+ */
void addWarning( I18n message,
Object... params );
+ /**
+ * Add a warning exception and message with the parameters that should be used when localizing the message.
+ *
+ * @param throwable the exception that represents the error; may be null
+ * @param message the internationalized message describing the problem
+ * @param params the values for the parameters in the message
+ */
void addWarning( Throwable throwable,
I18n message,
Object... params );
+ /**
+ * Add a warning message with a description of the resource, its location, and the parameters that should be used when
+ * localizing the message
+ *
+ * @param message the internationalized message describing the problem
+ * @param resource the description of the resource; may be null
+ * @param location the location of the resource; may be null
+ * @param params the values for the parameters in the message
+ */
void addWarning( I18n message,
String resource,
String location,
Object... params );
+ /**
+ * Add a warning exception and message with a description of the resource, its location, and the parameters that should be
+ * used when localizing the message
+ *
+ * @param throwable the exception that represents the warning; may be null
+ * @param message the internationalized message describing the problem
+ * @param resource the description of the resource; may be null
+ * @param location the location of the resource; may be null
+ * @param params the values for the parameters in the message
+ */
void addWarning( Throwable throwable,
I18n message,
String resource,
String location,
Object... params );
+ /**
+ * Add a warning message with the parameters that should be used when localizing the message.
+ *
+ * @param code the problem code
+ * @param message the internationalized message describing the problem
+ * @param params the values for the parameters in the message
+ */
void addWarning( int code,
I18n message,
Object... params );
+ /**
+ * Add a warning exception and message with the parameters that should be used when localizing the message.
+ *
+ * @param throwable the exception that represents the warning; may be null
+ * @param code the problem code
+ * @param message the internationalized message describing the problem
+ * @param params the values for the parameters in the message
+ */
void addWarning( Throwable throwable,
int code,
I18n message,
Object... params );
+ /**
+ * Add a warning message with a description of the resource, its location, and the parameters that should be used when
+ * localizing the message
+ *
+ * @param code the problem code
+ * @param message the internationalized message describing the problem
+ * @param resource the description of the resource; may be null
+ * @param location the location of the resource; may be null
+ * @param params the values for the parameters in the message
+ */
void addWarning( int code,
I18n message,
String resource,
String location,
Object... params );
+ /**
+ * Add a warning exception and message with a description of the resource, its location, and the parameters that should be
+ * used when localizing the message
+ *
+ * @param throwable the exception that represents the warning; may be null
+ * @param code the problem code
+ * @param message the internationalized message describing the problem
+ * @param resource the description of the resource; may be null
+ * @param location the location of the resource; may be null
+ * @param params the values for the parameters in the message
+ */
void addWarning( Throwable throwable,
int code,
I18n message,
@@ -111,39 +248,107 @@
String location,
Object... params );
+ /**
+ * Add a informational message with the parameters that should be used when localizing the message.
+ *
+ * @param message the internationalized message describing the problem
+ * @param params the values for the parameters in the message
+ */
void addInfo( I18n message,
Object... params );
+ /**
+ * Add an informational exception and message with the parameters that should be used when localizing the message.
+ *
+ * @param throwable the exception that represents the warning; may be null
+ * @param message the internationalized message describing the problem
+ * @param params the values for the parameters in the message
+ */
void addInfo( Throwable throwable,
I18n message,
Object... params );
+ /**
+ * Add an informational message with a description of the resource, its location, and the parameters that should be used when
+ * localizing the message
+ *
+ * @param message the internationalized message describing the problem
+ * @param resource the description of the resource; may be null
+ * @param location the location of the resource; may be null
+ * @param params the values for the parameters in the message
+ */
void addInfo( I18n message,
String resource,
String location,
Object... params );
+ /**
+ * Add an informational exception and message with a description of the resource, its location, and the parameters that should
+ * be used when localizing the message
+ *
+ * @param throwable the exception that represents the problem; may be null
+ * @param message the internationalized message describing the problem
+ * @param resource the description of the resource; may be null
+ * @param location the location of the resource; may be null
+ * @param params the values for the parameters in the message
+ */
void addInfo( Throwable throwable,
I18n message,
String resource,
String location,
Object... params );
+ /**
+ * Add a informational message with the parameters that should be used when localizing the message.
+ *
+ * @param code the problem code
+ * @param message the internationalized message describing the problem
+ * @param params the values for the parameters in the message
+ */
void addInfo( int code,
I18n message,
Object... params );
+ /**
+ * Add a informational exception and message with the parameters that should be used when localizing the message.
+ *
+ * @param throwable the exception that represents the warning; may be null
+ * @param code the problem code
+ * @param message the internationalized message describing the problem
+ * @param params the values for the parameters in the message
+ */
void addInfo( Throwable throwable,
int code,
I18n message,
Object... params );
+ /**
+ * Add an informational message with a description of the resource, its location, and the parameters that should be used when
+ * localizing the message
+ *
+ * @param code the problem code
+ * @param message the internationalized message describing the problem
+ * @param resource the description of the resource; may be null
+ * @param location the location of the resource; may be null
+ * @param params the values for the parameters in the message
+ */
void addInfo( int code,
I18n message,
String resource,
String location,
Object... params );
+ /**
+ * Add an informational exception and message with a description of the resource, its location, and the parameters that should
+ * be used when localizing the message
+ *
+ * @param throwable the exception that represents the problem; may be null
+ * @param code the problem code
+ * @param message the internationalized message describing the problem
+ * @param resource the description of the resource; may be null
+ * @param location the location of the resource; may be null
+ * @param params the values for the parameters in the message
+ */
void addInfo( Throwable throwable,
int code,
I18n message,
@@ -151,18 +356,55 @@
String location,
Object... params );
+ /**
+ * Get the number of problems that are in this collection
+ *
+ * @return the number of problems; never negative
+ * @see #hasProblems()
+ * @see #isEmpty()
+ */
+ int size();
+
+ /**
+ * Determine if this collection is empty.
+ *
+ * @return true if the there are no problems, or false if there is at least one
+ * @see #hasProblems()
+ * @see #size()
+ */
+ boolean isEmpty();
+
+ /**
+ * Determine if there are problems in this collection.
+ *
+ * @return true if there is at least one problem, or false if it is empty
+ * @see #isEmpty()
+ * @see #size()
+ */
boolean hasProblems();
+ /**
+ * Determine if there is at least one error in this collection.
+ *
+ * @return true if there is at least one error in this collection, or false if there are no errors
+ */
boolean hasErrors();
+ /**
+ * Determine if there is at least one warning in this collection.
+ *
+ * @return true if there is at least one warning in this collection, or false if there are no warnings
+ */
boolean hasWarnings();
+ /**
+ * Determine if there is at least one informational problem in this collection.
+ *
+ * @return true if there is at least one informational problem in this collection, or false if there are no informational
+ * problems
+ */
boolean hasInfo();
- boolean isEmpty();
-
- int size();
-
/**
* <p>
* {@inheritDoc}
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/collection/ReadOnlyIterator.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/collection/ReadOnlyIterator.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/collection/ReadOnlyIterator.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -27,9 +27,9 @@
/**
* An {@link Iterator} implementation that only allows reading elements, used as a wrapper around another iterator to make the
- * contents appear to be immutable.
+ * contents immutable to the user of this iterator.
*
- * @param <T> the type that is being iterated over
+ * @param <T> the type of the elements over which the iteration is being performed
*/
public final class ReadOnlyIterator<T> implements Iterator<T> {
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/collection/SimpleProblems.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/collection/SimpleProblems.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/collection/SimpleProblems.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,11 +28,8 @@
import net.jcip.annotations.NotThreadSafe;
/**
- * A list of problems for some execution context. The problems will be {@link #iterator() returned} in the order in which they
- * were encountered (although this cannot be guaranteed in contexts involving multiple threads or processes).
- *
- * @author Randall Hauch
- * @author John Verhaeg
+ * A simple {@link Problems} collection. The problems will be {@link #iterator() returned} in the order in which they were
+ * encountered (although this cannot be guaranteed in contexts involving multiple threads or processes).
*/
@NotThreadSafe
public class SimpleProblems extends AbstractProblems {
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/collection/ThreadSafeProblems.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/collection/ThreadSafeProblems.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/collection/ThreadSafeProblems.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -32,10 +32,8 @@
import net.jcip.annotations.ThreadSafe;
/**
- * A thread-safe list of problems for some execution context. The problems will be {@link #iterator() returned} in the order in
- * which they were encountered.
- *
- * @author Randall Hauch
+ * A thread-safe {@link Problems} collection. The problems will be {@link #iterator() returned} in the order in which they were
+ * encountered.
*/
@ThreadSafe
public class ThreadSafeProblems extends AbstractProblems {
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/collection/UnmodifiableProperties.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/collection/UnmodifiableProperties.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/collection/UnmodifiableProperties.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -35,10 +35,12 @@
import java.util.Properties;
import java.util.Set;
import java.util.Map.Entry;
+import net.jcip.annotations.Immutable;
/**
- * @author Randall Hauch
+ * An immutable {@link Properties} implementation.
*/
+@Immutable
public class UnmodifiableProperties extends Properties {
/**
Copied: trunk/dna-common/src/main/java/org/jboss/dna/common/collection/package-info.java (from rev 1217, trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederationI18nTest.java)
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/collection/package-info.java (rev 0)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/collection/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,30 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * A set of common classes for dealing with collections of other objects. Some of these classes work with standard
+ * collections, while others represent {@link Problems} that record multiple warnings, errors, and informational
+ * messages.
+ */
+
+package org.jboss.dna.common.collection;
\ No newline at end of file
Property changes on: trunk/dna-common/src/main/java/org/jboss/dna/common/collection/package-info.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Deleted: trunk/dna-common/src/main/java/org/jboss/dna/common/component/AbstractComponent.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/component/AbstractComponent.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/component/AbstractComponent.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,45 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.common.component;
-
-/**
- * @param <T> the type of configuration
- * @author Randall Hauch
- */
-public class AbstractComponent<T extends ComponentConfig> implements Component<T> {
-
- /**
- * {@inheritDoc}
- */
- public T getConfiguration() {
- return null;
- }
-
- /**
- * {@inheritDoc}
- */
- public void setConfiguration( T configuration ) {
- }
-
-}
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/component/ClassLoaderFactory.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/component/ClassLoaderFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/component/ClassLoaderFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -25,12 +25,12 @@
/**
* Factory interface for creating class loaders.
- * @author Randall Hauch
*/
public interface ClassLoaderFactory {
/**
* Get a class loader for the supplied classpath.
+ *
* @param classpath the classpath to use
* @return the class loader; may not be null
*/
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/component/Component.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/component/Component.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/component/Component.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -29,7 +29,7 @@
* <p>
* Implementations must provide a no-argument constructor.
* </p>
- * @author Randall Hauch
+ *
* @param <T> the type of configuration
*/
public interface Component<T extends ComponentConfig> {
@@ -38,12 +38,14 @@
* This method allows the implementation to initialize and configure itself using the supplied {@link ComponentConfig}
* information, and is called prior to any other class to this object. When this method is called, the implementation must
* maintain a reference to the supplied configuration (which should then be returned in {@link #getConfiguration()}.
+ *
* @param configuration the configuration for the component
*/
void setConfiguration( T configuration );
/**
* Return the configuration for this component, as supplied to the last {@link #setConfiguration(ComponentConfig)} invocation.
+ *
* @return the configuration, or null if not yet configured
*/
T getConfiguration();
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/component/ComponentConfig.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/component/ComponentConfig.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/component/ComponentConfig.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -34,7 +34,7 @@
import org.jboss.dna.common.util.ClassUtil;
/**
- * @author Randall Hauch
+ * An immutable configuration for a {@link Component}.
*/
@Immutable
public class ComponentConfig implements Comparable<ComponentConfig> {
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/component/ComponentLibrary.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/component/ComponentLibrary.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/component/ComponentLibrary.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -48,7 +48,6 @@
* obtained} are always reflected by the configurations.
* </p>
*
- * @author Randall Hauch
* @param <ComponentType> the type of component being managed, which may be a subclass of {@link Component}
* @param <ConfigType> the configuration type describing the components
*/
@@ -257,7 +256,7 @@
if (newInstance instanceof Component) {
((Component<ConfigType>)newInstance).setConfiguration(config);
}
-
+
if (config.getProperties() != null) {
for (Map.Entry<String, Object> entry : config.getProperties().entrySet()) {
// Set the JavaBean-style property on the RepositorySource instance ...
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/component/StandardClassLoaderFactory.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/component/StandardClassLoaderFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/component/StandardClassLoaderFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -26,7 +26,8 @@
import net.jcip.annotations.Immutable;
/**
- * @author Randall Hauch
+ * A {@link ClassLoaderFactory} implementation that loads classes using the thread's {@link Thread#getContextClassLoader() context
+ * class loader} or (optionally) a supplied class loader.
*/
@Immutable
public class StandardClassLoaderFactory implements ClassLoaderFactory {
@@ -42,7 +43,8 @@
this(true, delegate);
}
- public StandardClassLoaderFactory( boolean useCurrentThreadContextClassLoader, final ClassLoader delegate ) {
+ public StandardClassLoaderFactory( boolean useCurrentThreadContextClassLoader,
+ final ClassLoader delegate ) {
this.delegate = delegate != null ? delegate : this.getClass().getClassLoader();
this.useCurrentThreadContextClassLoader = useCurrentThreadContextClassLoader;
}
Copied: trunk/dna-common/src/main/java/org/jboss/dna/common/component/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ClassMetadata.java)
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/component/package-info.java (rev 0)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/component/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,28 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * A simple framework for loading and managing {@link Component} objects that may be configured and used reflectively.
+ */
+
+package org.jboss.dna.common.component;
\ No newline at end of file
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/i18n/ClasspathLocalizationRepository.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/i18n/ClasspathLocalizationRepository.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/i18n/ClasspathLocalizationRepository.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -36,7 +36,6 @@
* returned immediately.
* </p>
* named with a name that matches
- * @author Randall Hauch
*/
public class ClasspathLocalizationRepository implements LocalizationRepository {
@@ -54,6 +53,7 @@
* Create a repository using the supplied class loader. Null may be passed if the class loader should be obtained from the
* current thread's {@link Thread#getContextClassLoader() context class loader} or, if that is null, the same class loader
* that loaded this class.
+ *
* @param classLoader the class loader to use; may be null
*/
public ClasspathLocalizationRepository( ClassLoader classLoader ) {
@@ -65,7 +65,8 @@
/**
* {@inheritDoc}
*/
- public URL getLocalizationBundle( String bundleName, Locale locale ) {
+ public URL getLocalizationBundle( String bundleName,
+ Locale locale ) {
URL url = null;
String pathPfx = bundleName.replaceAll("\\.", "/");
String variant = '_' + locale.toString();
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/i18n/I18n.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/i18n/I18n.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/i18n/I18n.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -46,11 +46,8 @@
import org.jboss.dna.common.util.StringUtil;
/**
- * Manages the initialization of internationalization (i18n) files, substitution of values within i18n message placeholders, and
- * dynamically reading properties from i18n property files.
- *
- * @author John Verhaeg
- * @author Randall Hauch
+ * An internalized string object, which manages the initialization of internationalization (i18n) files, substitution of values
+ * within i18n message placeholders, and dynamically reading properties from i18n property files.
*/
@ThreadSafe
public final class I18n {
@@ -101,8 +98,8 @@
* Note, calling this method will <em>not</em> trigger localization of the supplied internationalization class.
*
* @param i18nClass The internalization class for which localization problems should be returned.
- * @param locale The locale for which localization problems should be returned. If <code>null</code>, the default locale
- * will be used.
+ * @param locale The locale for which localization problems should be returned. If <code>null</code>, the default locale will
+ * be used.
* @return The localization problems encountered while localizing the supplied internationalization class to the supplied
* locale; never <code>null</code>.
*/
@@ -134,8 +131,8 @@
* Set the repository of localized messages. If <code>null</code>, a {@link ClasspathLocalizationRepository} instance that
* uses this class loader will be used.
*
- * @param localizationRepository the localization repository to use; may be <code>null</code> if the default repository
- * should be used.
+ * @param localizationRepository the localization repository to use; may be <code>null</code> if the default repository should
+ * be used.
*/
public static void setLocalizationRepository( LocalizationRepository localizationRepository ) {
I18n.localizationRepository = localizationRepository != null ? localizationRepository : DEFAULT_LOCALIZATION_REPOSITORY;
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/i18n/LocalizationRepository.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/i18n/LocalizationRepository.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/i18n/LocalizationRepository.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,7 +28,6 @@
/**
* A repository of localized property files used by the {@link I18n internationalization framework}.
- * @author Randall Hauch
*/
public interface LocalizationRepository {
@@ -36,11 +35,13 @@
* Obtain the URL to the properties file containing the localized messages given the supplied bundle name. This method is
* responsible for searching to find the most appropriate localized messages given the locale, but does not need to search
* using the {@link Locale#getDefault() default locale} (as that is done by the {@link I18n#text(Object...) calling} method.
+ *
* @param bundleName the name of the bundle of properties; never null
* @param locale the locale for which the properties file URL is desired
* @return the URL to the properties file containing the localized messages for the named bundle, or null if no such bundle
- * could be found
+ * could be found
*/
- URL getLocalizationBundle( String bundleName, Locale locale );
+ URL getLocalizationBundle( String bundleName,
+ Locale locale );
}
Copied: trunk/dna-common/src/main/java/org/jboss/dna/common/i18n/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ModifierMetadata.java)
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/i18n/package-info.java (rev 0)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/i18n/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,28 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * A simple framework for defining internationalized strings and the mechanism by which the strings are localized.
+ */
+
+package org.jboss.dna.common.i18n;
\ No newline at end of file
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/math/DoubleOperations.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/math/DoubleOperations.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/math/DoubleOperations.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -26,31 +26,40 @@
import java.math.BigDecimal;
import java.util.Comparator;
import java.util.Random;
+import net.jcip.annotations.Immutable;
+/**
+ * The {@link MathOperations math operations} for double numbers.
+ */
+@Immutable
public class DoubleOperations implements MathOperations<Double>, Comparator<Double> {
public Class<Double> getOperandClass() {
return Double.class;
}
- public Double add( Double value1, Double value2 ) {
+ public Double add( Double value1,
+ Double value2 ) {
if (value1 == null) return value2 != null ? value2 : createZeroValue();
if (value2 == null) return value1;
return (value1 + value2);
}
- public Double subtract( Double value1, Double value2 ) {
+ public Double subtract( Double value1,
+ Double value2 ) {
if (value1 == null) return negate(value2);
if (value2 == null) return value1;
return (value1 - value2);
}
- public Double multiply( Double value1, Double value2 ) {
+ public Double multiply( Double value1,
+ Double value2 ) {
if (value1 == null || value2 == null) return createZeroValue();
return (value1 * value2);
}
- public double divide( Double value1, Double value2 ) {
+ public double divide( Double value1,
+ Double value2 ) {
if (value1 == null || value2 == null) throw new IllegalArgumentException();
return value1 / value2;
}
@@ -65,19 +74,22 @@
return (value + 1);
}
- public Double maximum( Double value1, Double value2 ) {
+ public Double maximum( Double value1,
+ Double value2 ) {
if (value1 == null) return value2;
if (value2 == null) return value1;
return Math.max(value1, value2);
}
- public Double minimum( Double value1, Double value2 ) {
+ public Double minimum( Double value1,
+ Double value2 ) {
if (value1 == null) return value2;
if (value2 == null) return value1;
return Math.min(value1, value2);
}
- public int compare( Double value1, Double value2 ) {
+ public int compare( Double value1,
+ Double value2 ) {
if (value1 == null) return value2 != null ? -1 : 0;
if (value2 == null) return 1;
return value1.compareTo(value2);
@@ -115,7 +127,9 @@
return this;
}
- public Double random( Double minimum, Double maximum, Random rng ) {
+ public Double random( Double minimum,
+ Double maximum,
+ Random rng ) {
Double difference = subtract(maximum, minimum);
return minimum + difference.doubleValue() * rng.nextDouble();
}
@@ -158,21 +172,24 @@
return exp;
}
- public Double roundUp( Double value, int decimalShift ) {
+ public Double roundUp( Double value,
+ int decimalShift ) {
if (value == 0) return 0.0d;
double shiftedValue = (Math.abs(value) * Math.pow(10.0d, decimalShift) + 0.5d) * Math.signum(value);
double roundedValue = (int)shiftedValue;
return roundedValue * Math.pow(10.0d, -decimalShift);
}
- public Double roundDown( Double value, int decimalShift ) {
+ public Double roundDown( Double value,
+ int decimalShift ) {
if (value == 0) return 0.0d;
double shiftedValue = (Math.abs(value) * Math.pow(10.0d, decimalShift)) * Math.signum(value);
double roundedValue = (int)shiftedValue;
return roundedValue * Math.pow(10.0d, -decimalShift);
}
- public Double keepSignificantFigures( Double value, int numSigFigs ) {
+ public Double keepSignificantFigures( Double value,
+ int numSigFigs ) {
if (numSigFigs < 0) return value;
if (numSigFigs == 0) return 0.0d;
int currentExp = getExponentInScientificNotation(value);
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/math/Duration.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/math/Duration.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/math/Duration.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -26,11 +26,13 @@
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.concurrent.TimeUnit;
+import net.jcip.annotations.Immutable;
/**
* A number representing an immutable duration of time. This is intended to be used in the same manner as other {@link Number}
* subclasses.
*/
+@Immutable
public class Duration extends Number implements Comparable<Duration> {
private static final long serialVersionUID = 1L;
@@ -222,6 +224,8 @@
*/
public Components getComponents() {
if (this.components == null) {
+ // This is idempotent, so no need to synchronize ...
+
// Calculate how many seconds, and don't lose any information ...
BigDecimal bigSeconds = new BigDecimal(this.durationInNanos).divide(new BigDecimal(1000000000));
// Calculate the minutes, and round to lose the seconds
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/math/DurationOperations.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/math/DurationOperations.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/math/DurationOperations.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -27,31 +27,40 @@
import java.util.Comparator;
import java.util.Random;
import java.util.concurrent.TimeUnit;
+import net.jcip.annotations.Immutable;
+/**
+ * The {@link MathOperations math operations} for {@link Duration}s.
+ */
+@Immutable
public class DurationOperations implements MathOperations<Duration>, Comparator<Duration> {
public Class<Duration> getOperandClass() {
return Duration.class;
}
- public Duration add( Duration value1, Duration value2 ) {
+ public Duration add( Duration value1,
+ Duration value2 ) {
if (value1 == null) return value2 != null ? value2 : createZeroValue();
if (value2 == null) return value1;
return value1.add(value2);
}
- public Duration subtract( Duration value1, Duration value2 ) {
+ public Duration subtract( Duration value1,
+ Duration value2 ) {
if (value1 == null) return negate(value2);
if (value2 == null) return value1;
return value1.subtract(value2);
}
- public Duration multiply( Duration value1, Duration value2 ) {
+ public Duration multiply( Duration value1,
+ Duration value2 ) {
if (value1 == null || value2 == null) return createZeroValue();
return value1.multiply(value2.longValue());
}
- public double divide( Duration value1, Duration value2 ) {
+ public double divide( Duration value1,
+ Duration value2 ) {
if (value1 == null || value2 == null) throw new IllegalArgumentException();
return value1.divide(value2);
}
@@ -66,19 +75,22 @@
return value.add(1l, TimeUnit.NANOSECONDS);
}
- public Duration maximum( Duration value1, Duration value2 ) {
+ public Duration maximum( Duration value1,
+ Duration value2 ) {
if (value1 == null) return value2;
if (value2 == null) return value1;
return new Duration(Math.max(value1.longValue(), value2.longValue()));
}
- public Duration minimum( Duration value1, Duration value2 ) {
+ public Duration minimum( Duration value1,
+ Duration value2 ) {
if (value1 == null) return value2;
if (value2 == null) return value1;
return new Duration(Math.min(value1.longValue(), value2.longValue()));
}
- public int compare( Duration value1, Duration value2 ) {
+ public int compare( Duration value1,
+ Duration value2 ) {
if (value1 == null) return value2 != null ? -1 : 0;
if (value2 == null) return 1;
return value1.compareTo(value2);
@@ -116,7 +128,9 @@
return this;
}
- public Duration random( Duration minimum, Duration maximum, Random rng ) {
+ public Duration random( Duration minimum,
+ Duration maximum,
+ Random rng ) {
Duration difference = subtract(maximum, minimum);
return new Duration(minimum.getDuratinInNanoseconds() + rng.nextInt(difference.intValue()));
}
@@ -153,7 +167,8 @@
return exp;
}
- public Duration roundUp( Duration durationValue, int decimalShift ) {
+ public Duration roundUp( Duration durationValue,
+ int decimalShift ) {
long value = durationValue.longValue();
if (value == 0) return new Duration(0l);
if (decimalShift >= 0) return durationValue;
@@ -169,7 +184,8 @@
return new Duration(shiftedValue);
}
- public Duration roundDown( Duration durationValue, int decimalShift ) {
+ public Duration roundDown( Duration durationValue,
+ int decimalShift ) {
long value = durationValue.longValue();
if (value == 0) return new Duration(0l);
if (decimalShift >= 0) return durationValue;
@@ -182,7 +198,8 @@
return new Duration(shiftedValue);
}
- public Duration keepSignificantFigures( Duration value, int numSigFigs ) {
+ public Duration keepSignificantFigures( Duration value,
+ int numSigFigs ) {
if (numSigFigs < 0) return value;
if (numSigFigs == 0) return new Duration(0l);
int currentExp = getExponentInScientificNotation(value);
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/math/FloatOperations.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/math/FloatOperations.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/math/FloatOperations.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -26,31 +26,40 @@
import java.math.BigDecimal;
import java.util.Comparator;
import java.util.Random;
+import net.jcip.annotations.Immutable;
+/**
+ * The {@link MathOperations math operations} for float numbers.
+ */
+@Immutable
public class FloatOperations implements MathOperations<Float>, Comparator<Float> {
public Class<Float> getOperandClass() {
return Float.class;
}
- public Float add( Float value1, Float value2 ) {
+ public Float add( Float value1,
+ Float value2 ) {
if (value1 == null) return value2 != null ? value2 : createZeroValue();
if (value2 == null) return value1;
return (value1 + value2);
}
- public Float subtract( Float value1, Float value2 ) {
+ public Float subtract( Float value1,
+ Float value2 ) {
if (value1 == null) return negate(value2);
if (value2 == null) return value1;
return (value1 - value2);
}
- public Float multiply( Float value1, Float value2 ) {
+ public Float multiply( Float value1,
+ Float value2 ) {
if (value1 == null || value2 == null) return createZeroValue();
return (value1 * value2);
}
- public double divide( Float value1, Float value2 ) {
+ public double divide( Float value1,
+ Float value2 ) {
if (value1 == null || value2 == null) throw new IllegalArgumentException();
return value1 / value2;
}
@@ -65,19 +74,22 @@
return (value + 1);
}
- public Float maximum( Float value1, Float value2 ) {
+ public Float maximum( Float value1,
+ Float value2 ) {
if (value1 == null) return value2;
if (value2 == null) return value1;
return Math.max(value1, value2);
}
- public Float minimum( Float value1, Float value2 ) {
+ public Float minimum( Float value1,
+ Float value2 ) {
if (value1 == null) return value2;
if (value2 == null) return value1;
return Math.min(value1, value2);
}
- public int compare( Float value1, Float value2 ) {
+ public int compare( Float value1,
+ Float value2 ) {
if (value1 == null) return value2 != null ? -1 : 0;
if (value2 == null) return 1;
return value1.compareTo(value2);
@@ -115,7 +127,9 @@
return this;
}
- public Float random( Float minimum, Float maximum, Random rng ) {
+ public Float random( Float minimum,
+ Float maximum,
+ Random rng ) {
Float difference = subtract(maximum, minimum);
return minimum + difference.floatValue() * rng.nextFloat();
}
@@ -158,14 +172,16 @@
return exp;
}
- public Float roundUp( Float value, int decimalShift ) {
+ public Float roundUp( Float value,
+ int decimalShift ) {
if (value == 0) return 0.0f;
double shiftedValue = (Math.abs(value.doubleValue()) * Math.pow(10.0d, decimalShift) + 0.5d) * Math.signum(value);
double roundedValue = (long)shiftedValue;
return (float)(roundedValue * Math.pow(10.0d, -decimalShift));
}
- public Float roundDown( Float value, int decimalShift ) {
+ public Float roundDown( Float value,
+ int decimalShift ) {
if (value == 0) return 0.0f;
if (decimalShift > 0) return value;
double shiftedValue = (Math.abs(value.doubleValue()) * Math.pow(10.0d, decimalShift)) * Math.signum(value);
@@ -173,7 +189,8 @@
return (float)(roundedValue * Math.pow(10.0d, -decimalShift));
}
- public Float keepSignificantFigures( Float value, int numSigFigs ) {
+ public Float keepSignificantFigures( Float value,
+ int numSigFigs ) {
int currentExp = getExponentInScientificNotation(value);
int decimalShift = (int)Math.signum(currentExp) * (Math.abs(currentExp) + numSigFigs - 1);
return roundUp(value, decimalShift);
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/math/IntegerOperations.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/math/IntegerOperations.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/math/IntegerOperations.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -26,31 +26,40 @@
import java.math.BigDecimal;
import java.util.Comparator;
import java.util.Random;
+import net.jcip.annotations.Immutable;
+/**
+ * The {@link MathOperations math operations} for integer numbers.
+ */
+@Immutable
public class IntegerOperations implements MathOperations<Integer>, Comparator<Integer> {
public Class<Integer> getOperandClass() {
return Integer.class;
}
- public Integer add( Integer value1, Integer value2 ) {
+ public Integer add( Integer value1,
+ Integer value2 ) {
if (value1 == null) return value2 != null ? value2 : createZeroValue();
if (value2 == null) return value1;
return value1 + value2;
}
- public Integer subtract( Integer value1, Integer value2 ) {
+ public Integer subtract( Integer value1,
+ Integer value2 ) {
if (value1 == null) return negate(value2);
if (value2 == null) return value1;
return value1 - value2;
}
- public Integer multiply( Integer value1, Integer value2 ) {
+ public Integer multiply( Integer value1,
+ Integer value2 ) {
if (value1 == null || value2 == null) return createZeroValue();
return value1 * value2;
}
- public double divide( Integer value1, Integer value2 ) {
+ public double divide( Integer value1,
+ Integer value2 ) {
if (value1 == null || value2 == null) throw new IllegalArgumentException();
return value1 / value2;
}
@@ -65,19 +74,22 @@
return value + 1;
}
- public Integer maximum( Integer value1, Integer value2 ) {
+ public Integer maximum( Integer value1,
+ Integer value2 ) {
if (value1 == null) return value2;
if (value2 == null) return value1;
return Math.max(value1, value2);
}
- public Integer minimum( Integer value1, Integer value2 ) {
+ public Integer minimum( Integer value1,
+ Integer value2 ) {
if (value1 == null) return value2;
if (value2 == null) return value1;
return Math.min(value1, value2);
}
- public int compare( Integer value1, Integer value2 ) {
+ public int compare( Integer value1,
+ Integer value2 ) {
if (value1 == null) return value2 != null ? -1 : 0;
if (value2 == null) return 1;
return value1.compareTo(value2);
@@ -115,7 +127,9 @@
return this;
}
- public Integer random( Integer minimum, Integer maximum, Random rng ) {
+ public Integer random( Integer minimum,
+ Integer maximum,
+ Random rng ) {
Integer difference = subtract(maximum, minimum);
return minimum + rng.nextInt(difference);
}
@@ -152,7 +166,8 @@
return exp;
}
- public Integer roundUp( Integer value, int decimalShift ) {
+ public Integer roundUp( Integer value,
+ int decimalShift ) {
if (value == 0) return 0;
if (decimalShift >= 0) return value;
int shiftedValueP5 = Math.abs(value);
@@ -167,7 +182,8 @@
return shiftedValue;
}
- public Integer roundDown( Integer value, int decimalShift ) {
+ public Integer roundDown( Integer value,
+ int decimalShift ) {
if (value == 0) return 0;
if (decimalShift >= 0) return value;
int shiftedValue = Math.abs(value);
@@ -179,7 +195,8 @@
return shiftedValue;
}
- public Integer keepSignificantFigures( Integer value, int numSigFigs ) {
+ public Integer keepSignificantFigures( Integer value,
+ int numSigFigs ) {
if (numSigFigs < 0) return value;
if (numSigFigs == 0) return 0;
int currentExp = getExponentInScientificNotation(value);
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/math/LongOperations.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/math/LongOperations.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/math/LongOperations.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -26,31 +26,40 @@
import java.math.BigDecimal;
import java.util.Comparator;
import java.util.Random;
+import net.jcip.annotations.Immutable;
+/**
+ * The {@link MathOperations math operations} for long numbers.
+ */
+@Immutable
public class LongOperations implements MathOperations<Long>, Comparator<Long> {
public Class<Long> getOperandClass() {
return Long.class;
}
- public Long add( Long value1, Long value2 ) {
+ public Long add( Long value1,
+ Long value2 ) {
if (value1 == null) return value2 != null ? value2 : createZeroValue();
if (value2 == null) return value1;
return (value1 + value2);
}
- public Long subtract( Long value1, Long value2 ) {
+ public Long subtract( Long value1,
+ Long value2 ) {
if (value1 == null) return negate(value2);
if (value2 == null) return value1;
return (value1 - value2);
}
- public Long multiply( Long value1, Long value2 ) {
+ public Long multiply( Long value1,
+ Long value2 ) {
if (value1 == null || value2 == null) return createZeroValue();
return (value1 * value2);
}
- public double divide( Long value1, Long value2 ) {
+ public double divide( Long value1,
+ Long value2 ) {
if (value1 == null || value2 == null) throw new IllegalArgumentException();
return value1 / value2;
}
@@ -65,19 +74,22 @@
return (value + 1);
}
- public Long maximum( Long value1, Long value2 ) {
+ public Long maximum( Long value1,
+ Long value2 ) {
if (value1 == null) return value2;
if (value2 == null) return value1;
return Math.max(value1, value2);
}
- public Long minimum( Long value1, Long value2 ) {
+ public Long minimum( Long value1,
+ Long value2 ) {
if (value1 == null) return value2;
if (value2 == null) return value1;
return Math.min(value1, value2);
}
- public int compare( Long value1, Long value2 ) {
+ public int compare( Long value1,
+ Long value2 ) {
if (value1 == null) return value2 != null ? -1 : 0;
if (value2 == null) return 1;
return value1.compareTo(value2);
@@ -115,7 +127,9 @@
return this;
}
- public Long random( Long minimum, Long maximum, Random rng ) {
+ public Long random( Long minimum,
+ Long maximum,
+ Random rng ) {
Long difference = subtract(maximum, minimum);
return minimum + rng.nextInt(difference.intValue());
}
@@ -158,7 +172,8 @@
return exp;
}
- public Long roundUp( Long value, int decimalShift ) {
+ public Long roundUp( Long value,
+ int decimalShift ) {
if (value == 0) return 0l;
if (decimalShift >= 0) return value;
long shiftedValueP5 = Math.abs(value);
@@ -173,7 +188,8 @@
return shiftedValue;
}
- public Long roundDown( Long value, int decimalShift ) {
+ public Long roundDown( Long value,
+ int decimalShift ) {
if (value == 0) return 0l;
if (decimalShift >= 0) return value;
long shiftedValue = Math.abs(value);
@@ -185,7 +201,8 @@
return shiftedValue;
}
- public Long keepSignificantFigures( Long value, int numSigFigs ) {
+ public Long keepSignificantFigures( Long value,
+ int numSigFigs ) {
if (value == 0l) return value;
if (numSigFigs < 0) return value;
if (numSigFigs == 0) return 0l;
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/math/MathOperations.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/math/MathOperations.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/math/MathOperations.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -26,16 +26,20 @@
import java.math.BigDecimal;
import java.util.Comparator;
import java.util.Random;
+import net.jcip.annotations.Immutable;
/**
* The set of mathematic operations for a particular class of values. This is useful for generic classes that must work with one
* of the {@link Number} subclasses.
+ *
* @param <T> the numeric class, usually a subclass of {@link Number} (although this is not required)
*/
+@Immutable
public interface MathOperations<T> {
/**
* Return the class that these operations operate upon.
+ *
* @return the class
*/
public Class<T> getOperandClass();
@@ -43,41 +47,50 @@
/**
* Add the two operands and return the sum. The {@link #createZeroValue() zero value} is used in place of any operand that is
* null.
+ *
* @param value1 the first operand
* @param value2 the second operand
* @return the sum of the two operands.
*/
- public T add( T value1, T value2 );
+ public T add( T value1,
+ T value2 );
/**
* Subtract the second operand from the first, and return the difference. The {@link #createZeroValue() zero value} is used in
* place of any operand that is null.
+ *
* @param value1 the first operand
* @param value2 the second operand
* @return the difference between the two operands.
*/
- public T subtract( T value1, T value2 );
+ public T subtract( T value1,
+ T value2 );
/**
* Multiply the two operands and return the product. The {@link #createZeroValue() zero value} is used in place of any operand
* that is null.
+ *
* @param value1 the first operand
* @param value2 the second operand
* @return the product of the two operands.
*/
- public T multiply( T value1, T value2 );
+ public T multiply( T value1,
+ T value2 );
/**
* Divide the first operand by the second, and return the result. The {@link #createZeroValue() zero value} is used in place
* of any operand that is null.
+ *
* @param value1 the first operand
* @param value2 the second operand
* @return the result of the division
*/
- public double divide( T value1, T value2 );
+ public double divide( T value1,
+ T value2 );
/**
* Negate the supplied operand. The {@link #createZeroValue() zero value} is used in place of any operand that is null.
+ *
* @param value the value that is to be negated
* @return the result of the negation
*/
@@ -85,8 +98,9 @@
/**
* Increment the supplied operand by 1. (Note, the exact meaning of "1" is dependent upon the particular
- * {@link #getOperandClass() operand class}. The {@link #createZeroValue() zero value} is used in place of any operand that
- * is null.
+ * {@link #getOperandClass() operand class}. The {@link #createZeroValue() zero value} is used in place of any operand that is
+ * null.
+ *
* @param value the value that is to be incremented
* @return the incremented value
*/
@@ -95,34 +109,41 @@
/**
* Compare the two operands and return the one that is larger. A null value is considered smaller than non-null values
* (including 0).
+ *
* @param value1 the first operand
* @param value2 the second operand
* @return the larger of the two operands
*/
- public T maximum( T value1, T value2 );
+ public T maximum( T value1,
+ T value2 );
/**
* Compare the two operands and return the one that is smaller. A null value is considered larger than non-null values
* (including 0).
+ *
* @param value1 the first operand
* @param value2 the second operand
* @return the smaller of the two operands
*/
- public T minimum( T value1, T value2 );
+ public T minimum( T value1,
+ T value2 );
/**
* Compare the two operands and return an integer that describes whether the first value is larger, smaller or the same as the
- * second value. The semantics are identical to those of {@link Comparable}. The {@link #createZeroValue() zero value} is
- * used in place of any operand that is null.
+ * second value. The semantics are identical to those of {@link Comparable}. The {@link #createZeroValue() zero value} is used
+ * in place of any operand that is null.
+ *
* @param value1 the first operand
* @param value2 the second operand
* @return -1 if the first value is smaller than the second, 1 if the first value is larger than the second, or 0 if they are
- * equal.
+ * equal.
*/
- public int compare( T value1, T value2 );
+ public int compare( T value1,
+ T value2 );
/**
* Create a {@link BigDecimal} representation of the supplied value.
+ *
* @param value the value that is to be converted to a BigDecimal
* @return the BigDecimal representation, or null if <code>value</code> is null
*/
@@ -131,46 +152,52 @@
/**
* Convert the {@link BigDecimal} representation into the natural object representation. This may result in loss of some data
* (e.g., converting a decimal to an integer results in the loss of the fractional part of the number).
+ *
* @param value the BigDecimal value
* @return the natural representation, or null if <code>value</code> is null
*/
public T fromBigDecimal( BigDecimal value );
/**
- * Convert the value to a double. This may result in a loss of information depending upon the
- * {@link #getOperandClass() operand class}.
+ * Convert the value to a double. This may result in a loss of information depending upon the {@link #getOperandClass()
+ * operand class}.
+ *
* @param value the value
* @return the representation as a double
*/
public double doubleValue( T value );
/**
- * Convert the value to a float. This may result in a loss of information depending upon the
- * {@link #getOperandClass() operand class}.
+ * Convert the value to a float. This may result in a loss of information depending upon the {@link #getOperandClass() operand
+ * class}.
+ *
* @param value the value
* @return the representation as a float
*/
public float floatValue( T value );
/**
- * Convert the value to an integer. This may result in a loss of information depending upon the
- * {@link #getOperandClass() operand class}.
+ * Convert the value to an integer. This may result in a loss of information depending upon the {@link #getOperandClass()
+ * operand class}.
+ *
* @param value the value
* @return the representation as an integer
*/
public int intValue( T value );
/**
- * Convert the value to a short. This may result in a loss of information depending upon the
- * {@link #getOperandClass() operand class}.
+ * Convert the value to a short. This may result in a loss of information depending upon the {@link #getOperandClass() operand
+ * class}.
+ *
* @param value the value
* @return the representation as a short
*/
public short shortValue( T value );
/**
- * Convert the value to a long integer. This may result in a loss of information depending upon the
- * {@link #getOperandClass() operand class}.
+ * Convert the value to a long integer. This may result in a loss of information depending upon the {@link #getOperandClass()
+ * operand class}.
+ *
* @param value the value
* @return the representation as a long
*/
@@ -178,12 +205,14 @@
/**
* Create the object form of the "zero value". This is often used to create an uninitialized object.
+ *
* @return the object that represents zero.
*/
public T createZeroValue();
/**
* Convert the integer representation into the natural object representation.
+ *
* @param value the integer value
* @return the object representation of the integer
*/
@@ -191,6 +220,7 @@
/**
* Convert the long representation into the natural object representation.
+ *
* @param value the long value
* @return the object representation of the long integer
*/
@@ -198,6 +228,7 @@
/**
* Convert the double representation into the natural object representation.
+ *
* @param value the double value
* @return the object representation of the floating point number
*/
@@ -205,6 +236,7 @@
/**
* Return the square root of the supplied operand.
+ *
* @param value the value whose root is to be found; may not be null or 0
* @return the square root of the value
*/
@@ -213,12 +245,14 @@
/**
* Return a {@link Comparator Comparator<T>} for this {@link #getOperandClass() operand class}. The implementation is free to
* return the same comparator instance from multiple invocations of this method.
+ *
* @return a comparator
*/
public Comparator<T> getComparator();
/**
* Get the exponent if the number were written in exponential form.
+ *
* @param value the value
* @return the scale
*/
@@ -232,11 +266,13 @@
* For example, consider the number 10.000354. This can be rounded to 10.0004 by calling this method and supplying the value
* and an "exponentToKeep" value of -4.
* </p>
+ *
* @param value the value to be rounded
* @param decimalShift the number of places the decimal point should be shifted before rounding
* @return the rounded value
*/
- public T roundUp( T value, int decimalShift );
+ public T roundUp( T value,
+ int decimalShift );
/**
* Round down the supplied value to the desired scale. This process works (conceptually) by shifting the decimal point of the
@@ -246,21 +282,27 @@
* For example, consider the number 10.000354. This can be rounded to 10.0003 by calling this method and supplying the value
* and an "exponentToKeep" value of -4.
* </p>
+ *
* @param value the value to be rounded
* @param decimalShift the number of places the decimal point should be shifted before rounding
* @return the rounded value
*/
- public T roundDown( T value, int decimalShift );
+ public T roundDown( T value,
+ int decimalShift );
- public T keepSignificantFigures( T value, int numSigFigs );
+ public T keepSignificantFigures( T value,
+ int numSigFigs );
/**
* Generate a random instance within the specified range.
+ *
* @param minimum the minimum value, or null if the {@link #createZeroValue() zero-value} should be used for the minimum
* @param maximum the maximum value, or null if the {@link #createZeroValue() zero-value} should be used for the maximum
* @param rng the random number generator to use
* @return an instance of the {@link #getOperandClass() operand class} placed within the desired range using a random
- * distribution, or null if this class does not support generating random instances
+ * distribution, or null if this class does not support generating random instances
*/
- public T random( T minimum, T maximum, Random rng );
+ public T random( T minimum,
+ T maximum,
+ Random rng );
}
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/math/ShortOperations.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/math/ShortOperations.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/math/ShortOperations.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -26,31 +26,40 @@
import java.math.BigDecimal;
import java.util.Comparator;
import java.util.Random;
+import net.jcip.annotations.Immutable;
+/**
+ * The {@link MathOperations math operations} for short numbers.
+ */
+@Immutable
public class ShortOperations implements MathOperations<Short>, Comparator<Short> {
public Class<Short> getOperandClass() {
return Short.class;
}
- public Short add( Short value1, Short value2 ) {
+ public Short add( Short value1,
+ Short value2 ) {
if (value1 == null) return value2 != null ? value2 : createZeroValue();
if (value2 == null) return value1;
return (short)(value1 + value2);
}
- public Short subtract( Short value1, Short value2 ) {
+ public Short subtract( Short value1,
+ Short value2 ) {
if (value1 == null) return negate(value2);
if (value2 == null) return value1;
return (short)(value1 - value2);
}
- public Short multiply( Short value1, Short value2 ) {
+ public Short multiply( Short value1,
+ Short value2 ) {
if (value1 == null || value2 == null) return createZeroValue();
return (short)(value1 * value2);
}
- public double divide( Short value1, Short value2 ) {
+ public double divide( Short value1,
+ Short value2 ) {
if (value1 == null || value2 == null) throw new IllegalArgumentException();
return value1 / value2;
}
@@ -65,19 +74,22 @@
return (short)(value + 1);
}
- public Short maximum( Short value1, Short value2 ) {
+ public Short maximum( Short value1,
+ Short value2 ) {
if (value1 == null) return value2;
if (value2 == null) return value1;
return (short)Math.max(value1, value2);
}
- public Short minimum( Short value1, Short value2 ) {
+ public Short minimum( Short value1,
+ Short value2 ) {
if (value1 == null) return value2;
if (value2 == null) return value1;
return (short)Math.min(value1, value2);
}
- public int compare( Short value1, Short value2 ) {
+ public int compare( Short value1,
+ Short value2 ) {
if (value1 == null) return value2 != null ? -1 : 0;
if (value2 == null) return 1;
return value1.compareTo(value2);
@@ -115,7 +127,9 @@
return this;
}
- public Short random( Short minimum, Short maximum, Random rng ) {
+ public Short random( Short minimum,
+ Short maximum,
+ Random rng ) {
Short difference = subtract(maximum, minimum);
int increment = rng.nextInt(difference.intValue());
return new Integer(minimum + increment).shortValue();
@@ -158,7 +172,8 @@
return exp;
}
- public Short roundUp( Short value, int decimalShift ) {
+ public Short roundUp( Short value,
+ int decimalShift ) {
if (value == 0) return 0;
if (decimalShift >= 0) return value;
int shiftedValueP5 = Math.abs(value);
@@ -173,7 +188,8 @@
return (short)shiftedValue;
}
- public Short roundDown( Short value, int decimalShift ) {
+ public Short roundDown( Short value,
+ int decimalShift ) {
if (value == 0) return 0;
if (decimalShift >= 0) return value;
int shiftedValue = Math.abs(value);
@@ -185,7 +201,8 @@
return (short)shiftedValue;
}
- public Short keepSignificantFigures( Short value, int numSigFigs ) {
+ public Short keepSignificantFigures( Short value,
+ int numSigFigs ) {
if (numSigFigs < 0) return value;
if (numSigFigs == 0) return 0;
int currentExp = getExponentInScientificNotation(value);
Copied: trunk/dna-common/src/main/java/org/jboss/dna/common/math/package-info.java (from rev 1217, trunk/dna-repository/src/main/java/org/jboss/dna/repository/service/AdministeredService.java)
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/math/package-info.java (rev 0)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/math/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,29 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * A set of classes that define mathematic operations for a particular class of values.
+ * This is useful for generic classes that must work with one of the {@link Number} subclasses.
+ */
+
+package org.jboss.dna.common.math;
\ No newline at end of file
Copied: trunk/dna-common/src/main/java/org/jboss/dna/common/package-info.java (from rev 1217, trunk/dna-repository/src/main/java/org/jboss/dna/repository/util/SessionFactory.java)
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/package-info.java (rev 0)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,31 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The parent package for the common, low-level utilities and simple frameworks for all of JBoss DNA.
+ * These include the {@link org.jboss.dna.common.i18n.I18n internationalization framework},
+ * component management framework, and utilities for statistics, math, collections, text processing,
+ * XML, and general utilities.
+ */
+
+package org.jboss.dna.common;
\ No newline at end of file
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/statistic/Histogram.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/statistic/Histogram.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/statistic/Histogram.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -31,9 +31,16 @@
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
+import net.jcip.annotations.NotThreadSafe;
import org.jboss.dna.common.math.MathOperations;
import org.jboss.dna.common.util.StringUtil;
+/**
+ * A representation of a histogram of values.
+ *
+ * @param <T> the type of value
+ */
+@NotThreadSafe
public class Histogram<T extends Number> {
public static final int DEFAULT_BUCKET_COUNT = 10;
@@ -48,7 +55,8 @@
private BucketingStrategy actualValueStrategy = new DefaultBucketingStrategy();
private BucketingStrategy bucketingStrategy = actualValueStrategy;
- public Histogram( MathOperations<T> operations, List<T> values ) {
+ public Histogram( MathOperations<T> operations,
+ List<T> values ) {
this.math = operations;
this.values = new LinkedList<T>(values);
this.buckets = new LinkedList<Bucket>();
@@ -57,7 +65,8 @@
Collections.sort(this.values, this.math.getComparator());
}
- public Histogram( MathOperations<T> operations, T... values ) {
+ public Histogram( MathOperations<T> operations,
+ T... values ) {
this(operations, Arrays.asList(values));
}
@@ -74,21 +83,26 @@
/**
* Set the histogram to use the standard deviation to determine the bucket sizes.
+ *
* @param median
* @param standardDeviation
* @param sigma
*/
- public void setStrategy( double median, double standardDeviation, int sigma ) {
+ public void setStrategy( double median,
+ double standardDeviation,
+ int sigma ) {
this.bucketingStrategy = new StandardDeviationBucketingStrategy(median, standardDeviation, sigma);
this.bucketWidth = null;
}
/**
* Set the histogram to use the supplied minimum and maximum values to determine the bucket size.
+ *
* @param minimum
* @param maximum
*/
- public void setStrategy( T minimum, T maximum ) {
+ public void setStrategy( T minimum,
+ T maximum ) {
this.bucketingStrategy = new ExplicitBucketingStrategy(minimum, maximum);
this.bucketWidth = null;
}
@@ -107,6 +121,7 @@
/**
* Set the number of significant figures used in the calculation of the bucket widths.
+ *
* @param significantFigures the number of significant figures for the bucket widths
* @return this histogram, useful for method-chaining
* @see #DEFAULT_SIGNIFICANT_FIGURES
@@ -122,6 +137,7 @@
/**
* Return the number of buckets in this histogram.
+ *
* @return the number of buckets.
*/
public int getBucketCount() {
@@ -130,6 +146,7 @@
/**
* Set the number of buckets that this histogram will use.
+ *
* @param count the number of buckets
* @return this histogram, useful for method-chaining
* @see #DEFAULT_BUCKET_COUNT
@@ -146,6 +163,7 @@
/**
* Get the buckets in this histogram. If the histogram has not yet been computed, this method will cause it to be generated.
* The resulting list should not be modified.
+ *
* @return the histogram buckets.
*/
public List<Bucket> getBuckets() {
@@ -166,7 +184,13 @@
T actualMaximum = this.actualValueStrategy.getUpperBound();
// Create the buckets ...
- List<T> boundaries = getBucketBoundaries(this.math, lowerBound, upperBound, actualMinimum, actualMaximum, this.bucketCount, this.significantFigures);
+ List<T> boundaries = getBucketBoundaries(this.math,
+ lowerBound,
+ upperBound,
+ actualMinimum,
+ actualMaximum,
+ this.bucketCount,
+ this.significantFigures);
this.buckets.clear();
int numBuckets = boundaries.isEmpty() ? 0 : boundaries.size() - 1;
for (int i = 0; i != numBuckets; ++i) {
@@ -187,6 +211,7 @@
/**
* Return the total number of values that have gone into this histogram.
+ *
* @return the total number of values
* @see Bucket#getPercentageOfValues()
*/
@@ -212,13 +237,15 @@
/**
* Generate a textual (horizontal) bar graph of this histogram.
+ *
* @param maxBarLength the maximum bar length, or 0 if the bar length is to represent actual counts
* @return the strings that make up the histogram
*/
public List<String> getTextGraph( int maxBarLength ) {
compute();
if (maxBarLength < 1) maxBarLength = (int)this.getMaximumCount();
- final float barLengthForHundredPercent = this.buckets.isEmpty() ? maxBarLength : 100.0f * maxBarLength / getMaximumPercentage();
+ final float barLengthForHundredPercent = this.buckets.isEmpty() ? maxBarLength : 100.0f * maxBarLength
+ / getMaximumPercentage();
final String fullLengthBar = StringUtil.createString('*', (int)barLengthForHundredPercent);
List<String> result = new LinkedList<String>();
// First calculate the labels and the max length ...
@@ -258,7 +285,13 @@
return result;
}
- protected static <T> List<T> getBucketBoundaries( MathOperations<T> math, T lowerBound, T upperBound, T actualMinimum, T actualMaximum, int bucketCount, int bucketWidthSigFigs ) {
+ protected static <T> List<T> getBucketBoundaries( MathOperations<T> math,
+ T lowerBound,
+ T upperBound,
+ T actualMinimum,
+ T actualMaximum,
+ int bucketCount,
+ int bucketWidthSigFigs ) {
lowerBound = math.compare(lowerBound, actualMinimum) < 0 ? actualMinimum : lowerBound;
upperBound = math.compare(actualMaximum, upperBound) < 0 ? actualMaximum : upperBound;
if (math.compare(lowerBound, upperBound) == 0) {
@@ -315,7 +348,8 @@
private final T width;
private long numValues;
- protected Bucket( T lowerBound, T upperBound ) {
+ protected Bucket( T lowerBound,
+ T upperBound ) {
this.lowerBound = lowerBound;
this.upperBound = upperBound;
this.width = Histogram.this.math.subtract(upperBound, lowerBound);
@@ -323,6 +357,7 @@
/**
* Get the lower bound of this bucket.
+ *
* @return the lower bound
*/
public T getLowerBound() {
@@ -331,6 +366,7 @@
/**
* Get the upper bound of this bucket.
+ *
* @return the upper bound
*/
public T getUpperBound() {
@@ -339,6 +375,7 @@
/**
* Get the width of this bucket.
+ *
* @return the width
*/
public T getWidth() {
@@ -347,6 +384,7 @@
/**
* Return the percentage of values in the histogram that appear in this bucket.
+ *
* @return the percentage of all values in the histogram that appear in this bucket.
*/
public float getPercentageOfValues() {
@@ -358,6 +396,7 @@
/**
* Add a value to this bucket
+ *
* @param value
*/
protected void addValue( T value ) {
@@ -366,6 +405,7 @@
/**
* Get the number of values in this bucket.
+ *
* @return the number of values
*/
public long getNumberOfValues() {
@@ -374,12 +414,14 @@
/**
* Check whether the value fits in this bucket.
+ *
* @param value the value to check
* @param isLast
* @return 0 if the value fits in this bucket, -1 if the value fits in a prior bucket, or 1 if the value fits in a later
- * bucket
+ * bucket
*/
- public int checkValue( T value, boolean isLast ) {
+ public int checkValue( T value,
+ boolean isLast ) {
if (Histogram.this.math.compare(this.lowerBound, value) > 0) return -1;
if (isLast) {
if (Histogram.this.math.compare(value, this.upperBound) > 0) return 1;
@@ -456,7 +498,8 @@
private final T lowerBound;
private final T upperBound;
- protected ExplicitBucketingStrategy( T lowerBound, T upperBound ) {
+ protected ExplicitBucketingStrategy( T lowerBound,
+ T upperBound ) {
this.lowerBound = lowerBound;
this.upperBound = upperBound;
}
@@ -478,7 +521,9 @@
private final double standardDeviation;
private final int numberOfDeviationsAboveAndBelow;
- protected StandardDeviationBucketingStrategy( double median, double standardDeviation, int numDeviationsAboveAndBelow ) {
+ protected StandardDeviationBucketingStrategy( double median,
+ double standardDeviation,
+ int numDeviationsAboveAndBelow ) {
this.median = median;
this.standardDeviation = Math.abs(standardDeviation);
this.numberOfDeviationsAboveAndBelow = Math.abs(numDeviationsAboveAndBelow);
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/statistic/SimpleStatistics.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/statistic/SimpleStatistics.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/statistic/SimpleStatistics.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -33,15 +33,15 @@
/**
* Encapsulation of the statistics for a series of values to which new values are frequently added. The statistics include the
- * {@link #getMinimum() minimum}, {@link #getMaximum() maximum}, {@link #getTotal() total (aggregate sum)}, and
- * {@link #getMean() mean (average)}. See {@link DetailedStatistics} for a subclass that also calculates the
- * {@link DetailedStatistics#getMedian() median}, {@link DetailedStatistics#getStandardDeviation() standard deviation} and the
- * {@link DetailedStatistics#getHistogram() histogram} of the values.
+ * {@link #getMinimum() minimum}, {@link #getMaximum() maximum}, {@link #getTotal() total (aggregate sum)}, and {@link #getMean()
+ * mean (average)}. See {@link DetailedStatistics} for a subclass that also calculates the {@link DetailedStatistics#getMedian()
+ * median}, {@link DetailedStatistics#getStandardDeviation() standard deviation} and the {@link DetailedStatistics#getHistogram()
+ * histogram} of the values.
* <p>
* This class is threadsafe.
* </p>
+ *
* @param <T> the number type used in these statistics
- * @author Randall Hauch
*/
@ThreadSafe
public class SimpleStatistics<T extends Number> {
@@ -66,6 +66,7 @@
/**
* Add a new value to these statistics.
+ *
* @param value the new value
*/
public void add( T value ) {
@@ -81,6 +82,7 @@
/**
* A method that can be overridden by subclasses when {@link #add(Number) add} is called. This method is called within the
* write lock, and does real work. Therefore, subclasses should call this method when they overwrite it.
+ *
* @param value the value already added
*/
protected void doAddValue( T value ) {
@@ -107,6 +109,7 @@
/**
* Get the aggregate sum of the values in the series.
+ *
* @return the total of the values, or 0.0 if the {@link #getCount() count} is 0
*/
public T getTotal() {
@@ -121,6 +124,7 @@
/**
* Get the maximum value in the series.
+ *
* @return the maximum value, or 0.0 if the {@link #getCount() count} is 0
*/
public T getMaximum() {
@@ -135,6 +139,7 @@
/**
* Get the minimum value in the series.
+ *
* @return the minimum value, or 0.0 if the {@link #getCount() count} is 0
*/
public T getMinimum() {
@@ -149,6 +154,7 @@
/**
* Get the number of values that have been measured.
+ *
* @return the count
*/
public int getCount() {
@@ -164,6 +170,7 @@
/**
* Return the approximate mean (average) value represented as an instance of the operand type. Note that this may truncate if
* the operand type is not able to have the required precision. For the accurate mean, see {@link #getMeanValue() }.
+ *
* @return the mean (average), or 0.0 if the {@link #getCount() count} is 0
*/
public T getMean() {
@@ -178,6 +185,7 @@
/**
* Return the mean (average) value.
+ *
* @return the mean (average), or 0.0 if the {@link #getCount() count} is 0
* @see #getMean()
*/
@@ -229,7 +237,12 @@
public String toString() {
int count = this.getCount();
String samples = Inflector.getInstance().pluralize("sample", count);
- return StringUtil.createString("{0} {1}: min={2}; avg={3}; max={4}", count, samples, this.minimum, this.mean, this.maximum);
+ return StringUtil.createString("{0} {1}: min={2}; avg={3}; max={4}",
+ count,
+ samples,
+ this.minimum,
+ this.mean,
+ this.maximum);
}
}
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/statistic/Stopwatch.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/statistic/Stopwatch.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/statistic/Stopwatch.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,8 +28,7 @@
import org.jboss.dna.common.math.DurationOperations;
/**
- * Provides a mechanism to measure time in the same was as a physical stopwatch.
- * @author Randall Hauch
+ * Provides a mechanism to measure time in the same way as a physical stopwatch.
*/
@NotThreadSafe
public class Stopwatch implements Comparable<Stopwatch> {
@@ -47,7 +46,8 @@
this(detailedStats, null);
}
- public Stopwatch( boolean detailedStats, String description ) {
+ public Stopwatch( boolean detailedStats,
+ String description ) {
this.description = description != null ? description : "";
this.detailedStats = detailedStats ? new DetailedStatistics<Duration>(new DurationOperations()) : null;
this.stats = detailedStats ? this.detailedStats : new SimpleStatistics<Duration>(new DurationOperations());
@@ -61,6 +61,7 @@
/**
* Start the stopwatch and begin recording the statistics a new run. This method does nothing if the stopwatch is already
* {@link #isRunning() running}
+ *
* @see #isRunning()
*/
public void start() {
@@ -72,6 +73,7 @@
/**
* Stop the stopwatch and record the statistics for the latest run. This method does nothing if the stopwatch is not currently
* {@link #isRunning() running}
+ *
* @see #isRunning()
*/
public void stop() {
@@ -84,6 +86,7 @@
/**
* Return the number of runs (complete starts and stops) this stopwatch has undergone.
+ *
* @return the number of runs.
* @see #isRunning()
*/
@@ -93,6 +96,7 @@
/**
* Return whether this stopwatch is currently running.
+ *
* @return true if running, or false if not
*/
public boolean isRunning() {
@@ -101,8 +105,9 @@
/**
* Get the total duration that this stopwatch has recorded.
+ *
* @return the total duration, or an empty duration if this stopwatch has not been used since creation or being
- * {@link #reset() reset}
+ * {@link #reset() reset}
*/
public Duration getTotalDuration() {
return this.stats.getTotal();
@@ -110,8 +115,9 @@
/**
* Get the average duration that this stopwatch has recorded.
+ *
* @return the average duration, or an empty duration if this stopwatch has not been used since creation or being
- * {@link #reset() reset}
+ * {@link #reset() reset}
*/
public Duration getAverageDuration() {
return this.stats.getMean();
@@ -119,8 +125,9 @@
/**
* Get the median duration that this stopwatch has recorded.
+ *
* @return the median duration, or an empty duration if this stopwatch has not been used since creation or being
- * {@link #reset() reset}
+ * {@link #reset() reset}
*/
public Duration getMedianDuration() {
return this.detailedStats != null ? this.detailedStats.getMedian() : new Duration(0l);
@@ -128,8 +135,9 @@
/**
* Get the minimum duration that this stopwatch has recorded.
+ *
* @return the total minimum, or an empty duration if this stopwatch has not been used since creation or being
- * {@link #reset() reset}
+ * {@link #reset() reset}
*/
public Duration getMinimumDuration() {
return this.stats.getMinimum();
@@ -137,8 +145,9 @@
/**
* Get the maximum duration that this stopwatch has recorded.
+ *
* @return the maximum duration, or an empty duration if this stopwatch has not been used since creation or being
- * {@link #reset() reset}
+ * {@link #reset() reset}
*/
public Duration getMaximumDuration() {
return this.stats.getMaximum();
@@ -146,6 +155,7 @@
/**
* Return this stopwatch's simple statistics.
+ *
* @return the statistics
* @see #getDetailedStatistics()
*/
@@ -155,6 +165,7 @@
/**
* Return this stopwatch's detailed statistics, if they are being kept.
+ *
* @return the statistics
* @see #getSimpleStatistics()
*/
@@ -164,8 +175,9 @@
/**
* Return true if detailed statistics are being kept.
+ *
* @return true if {@link #getDetailedStatistics() detailed statistics} are being kept, or false if only
- * {@link #getSimpleStatistics() simple statistics} are being kept.
+ * {@link #getSimpleStatistics() simple statistics} are being kept.
*/
public boolean isDetailedStatistics() {
return this.detailedStats != null;
@@ -182,12 +194,14 @@
* focused around the values that are up to 'numSigmas' above and below the {@link #getMedianDuration() median}, and all
* values outside of this range are placed in the first and last bucket.
* </p>
- * @param numSigmas the number of standard deviations from the {@link #getMedianDuration() median}, or 0 if the buckets of
- * the histogram should be evenly distributed
+ *
+ * @param numSigmas the number of standard deviations from the {@link #getMedianDuration() median}, or 0 if the buckets of the
+ * histogram should be evenly distributed
* @return the histogram
*/
public Histogram<Duration> getHistogram( int numSigmas ) {
- return this.detailedStats != null ? this.detailedStats.getHistogram(numSigmas) : new Histogram<Duration>(this.stats.getMathOperations());
+ return this.detailedStats != null ? this.detailedStats.getHistogram(numSigmas) : new Histogram<Duration>(
+ this.stats.getMathOperations());
}
/**
Copied: trunk/dna-common/src/main/java/org/jboss/dna/common/statistic/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/InterfaceMetadata.java)
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/statistic/package-info.java (rev 0)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/statistic/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,28 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * A set of utilities for working with statistics, including a {@link Stopwatch} and {@link Histogram}s.
+ */
+
+package org.jboss.dna.common.statistic;
\ No newline at end of file
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/text/Inflector.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/text/Inflector.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/text/Inflector.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,6 +28,7 @@
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import net.jcip.annotations.ThreadSafe;
import org.jboss.dna.common.util.CheckArg;
/**
@@ -35,9 +36,8 @@
* the <a href="http://api.rubyonrails.org/classes/Inflector.html">Inflector</a> class in <a
* href="http://www.rubyonrails.org">Ruby on Rails</a>, which is distributed under the <a
* href="http://wiki.rubyonrails.org/rails/pages/License">Rails license</a>.
- *
- * @author Randall Hauch
*/
+@ThreadSafe
public class Inflector {
protected static final Inflector INSTANCE = new Inflector();
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/text/Jsr283Encoder.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/text/Jsr283Encoder.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/text/Jsr283Encoder.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -25,43 +25,44 @@
import java.text.CharacterIterator;
import java.text.StringCharacterIterator;
+import net.jcip.annotations.Immutable;
/**
* Encoder that escapes characters that are not allowed in JCR names. The mapping defined in Section 3.6.3 of the JSR-283 public
- * review document: <table cellspacing="0" cellpadding="1" border="1">
+ * review document:
+ * <table cellspacing="0" cellpadding="1" border="1">
* <tr>
* <th>Non-JCR character<br/>(Unicode code point)</th>
- * <th>Private use<br/>Unicode code point </th>
+ * <th>Private use<br/>Unicode code point</th>
* </tr>
* <tr>
- * <td>* (U+002A)</td>
- * <td> U+F02A </td>
+ * <td>(U+002A)</td>
+ * <td>U+F02A</td>
* </tr>
* <tr>
* <td>/ (U+002F)</td>
- * <td> U+F02F </td>
+ * <td>U+F02F</td>
* </tr>
* <tr>
* <td>: (U+003A)</td>
- * <td> U+F03A </td>
+ * <td>U+F03A</td>
* </tr>
* <tr>
* <td>[ (U+005B)</td>
- * <td> U+F05B </td>
+ * <td>U+F05B</td>
* </tr>
* <tr>
* <td>] (U+005D)</td>
- * <td> U+F05D </td>
+ * <td>U+F05D</td>
* </tr>
* <tr>
* <td>| (U+007C)</td>
- * <td> U+F07C </td>
+ * <td>U+F07C</td>
* </tr>
* </table>
* </p>
- *
- * @author Randall Hauch
*/
+@Immutable
public class Jsr283Encoder implements TextEncoder, TextDecoder {
/**
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/text/NoOpEncoder.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/text/NoOpEncoder.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/text/NoOpEncoder.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,12 +23,13 @@
*/
package org.jboss.dna.common.text;
+import net.jcip.annotations.Immutable;
+
/**
* An encoder implementation that does nothing. This is useful when a {@link TextEncoder encoder} is optional but the code is
* easier to write when there is always an encoder.
- *
- * @author Randall Hauch
*/
+@Immutable
public class NoOpEncoder implements TextEncoder, TextDecoder {
private static final NoOpEncoder INSTANCE = new NoOpEncoder();
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/text/TextDecoder.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/text/TextDecoder.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/text/TextDecoder.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,12 +23,14 @@
*/
package org.jboss.dna.common.text;
+import net.jcip.annotations.Immutable;
+
/**
* Interface for components that can decode text. This is the counterpart to {@link TextEncoder}.
*
- * @author Randall Hauch
* @see TextEncoder
*/
+@Immutable
public interface TextDecoder {
/**
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/text/TextEncoder.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/text/TextEncoder.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/text/TextEncoder.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,12 +23,14 @@
*/
package org.jboss.dna.common.text;
+import net.jcip.annotations.Immutable;
+
/**
* Interface for components that can encode text. This is the counterpart to {@link TextDecoder}.
*
- * @author Randall Hauch
* @see TextDecoder
*/
+@Immutable
public interface TextEncoder {
/**
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/text/UrlEncoder.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/text/UrlEncoder.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/text/UrlEncoder.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -26,14 +26,14 @@
import java.text.CharacterIterator;
import java.text.StringCharacterIterator;
import java.util.BitSet;
+import net.jcip.annotations.Immutable;
/**
* An encoder useful for converting text to be used within a URL, as defined by Section 2.3 of <a
- * href="http://www.ietf.org/rfc/rfc2396.txt">RFC 2396</a>. Note that this class does not encode a complete URL ({@link java.net.URLEncoder}
- * and {@link java.net.URLDecoder} should be used for such purposes).
- *
- * @author Randall Hauch
+ * href="http://www.ietf.org/rfc/rfc2396.txt">RFC 2396</a>. Note that this class does not encode a complete URL (
+ * {@link java.net.URLEncoder} and {@link java.net.URLDecoder} should be used for such purposes).
*/
+@Immutable
public class UrlEncoder implements TextEncoder, TextDecoder {
/**
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/text/XmlNameEncoder.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/text/XmlNameEncoder.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/text/XmlNameEncoder.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -26,6 +26,7 @@
import java.text.CharacterIterator;
import java.text.StringCharacterIterator;
import java.util.BitSet;
+import net.jcip.annotations.Immutable;
/**
* An {@link TextEncoder encoder} and {@link TextDecoder decoder} for XML element and attribute names.
@@ -40,9 +41,8 @@
* Decoding transforms every <code>_xHHHH_</code> encoding sequences back into the UTF-16 character. Note that
* {@link #decode(String) decoding} can be safely done on any XML name, even if the name does not contain any encoded sequences.
* </p>
- *
- * @author Randall Hauch
*/
+@Immutable
public class XmlNameEncoder implements TextDecoder, TextEncoder {
private static final BitSet XML_NAME_ALLOWED_CHARACTERS = new BitSet(2 ^ 16);
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/text/XmlValueEncoder.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/text/XmlValueEncoder.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/text/XmlValueEncoder.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -27,34 +27,34 @@
import java.text.StringCharacterIterator;
import java.util.HashMap;
import java.util.Map;
+import net.jcip.annotations.Immutable;
/**
- * An encoder useful for converting text to be used within XML attribute values.
- * The following translations will be performed:
+ * An encoder useful for converting text to be used within XML attribute values. The following translations will be performed:
* <table cellspacing="0" cellpadding="1" border="1">
* <tr>
* <th>Raw (Unencoded)<br/>Character</th>
* <th>Translated (Encoded)<br/>Entity</th>
* </tr>
* <tr>
- * <td> & </td>
- * <td> &amp; </td>
+ * <td>&</td>
+ * <td>&amp;</td>
* </tr>
* <tr>
- * <td> < </td>
- * <td> &lt; </td>
+ * <td><</td>
+ * <td>&lt;</td>
* </tr>
* <tr>
- * <td> > </td>
- * <td> &gt; </td>
+ * <td>></td>
+ * <td>&gt;</td>
* </tr>
* <tr>
- * <td> " </td>
- * <td> &quot; </td>
+ * <td>"</td>
+ * <td>&quot;</td>
* </tr>
* <tr>
- * <td> ' </td>
- * <td> &#039; </td>
+ * <td>'</td>
+ * <td>&#039;</td>
* </tr>
* <tr>
* <td>All Others</td>
@@ -63,23 +63,24 @@
* </table>
* </p>
*/
+@Immutable
public class XmlValueEncoder implements TextEncoder, TextDecoder {
-
+
private static final Map<String, Character> SPECIAL_ENTITIES;
-
+
static {
SPECIAL_ENTITIES = new HashMap<String, Character>();
-
+
SPECIAL_ENTITIES.put("quot", '"');
SPECIAL_ENTITIES.put("gt", '>');
SPECIAL_ENTITIES.put("lt", '<');
SPECIAL_ENTITIES.put("amp", '&');
-
+
}
-
+
/**
* {@inheritDoc}
- *
+ *
* @see org.jboss.dna.common.text.TextEncoder#encode(java.lang.String)
*/
public String encode( String text ) {
@@ -112,7 +113,7 @@
/**
* {@inheritDoc}
- *
+ *
* @see org.jboss.dna.common.text.TextDecoder#decode(java.lang.String)
*/
public String decode( String encodedText ) {
@@ -122,36 +123,34 @@
for (char c = iter.first(); c != CharacterIterator.DONE; c = iter.next()) {
if (c == '&') {
int index = iter.getIndex();
-
+
do {
c = iter.next();
- }
- while (c != CharacterIterator.DONE && c != ';');
+ } while (c != CharacterIterator.DONE && c != ';');
// We found a closing semicolon
if (c == ';') {
String s = encodedText.substring(index + 1, iter.getIndex());
-
+
if (SPECIAL_ENTITIES.containsKey(s)) {
sb.append(SPECIAL_ENTITIES.get(s));
continue;
-
+
}
-
+
if (s.length() > 0 && s.charAt(0) == '#') {
try {
- sb.append((char) Short.parseShort(s.substring(1, s.length())));
+ sb.append((char)Short.parseShort(s.substring(1, s.length())));
continue;
- }
- catch (NumberFormatException nfe) {
+ } catch (NumberFormatException nfe) {
// This is possible in malformed encodings, but let it fall through
}
}
}
-
+
// Malformed encoding, restore state and pass poorly encoded data back
c = '&';
- iter.setIndex(index);
+ iter.setIndex(index);
}
sb.append(c);
Copied: trunk/dna-common/src/main/java/org/jboss/dna/common/text/package-info.java (from rev 1217, trunk/dna-common/src/main/java/org/jboss/dna/common/component/AbstractComponent.java)
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/text/package-info.java (rev 0)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/text/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,32 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * A set of utilities for working with text. Included is an {@link Inflector} class that transforms (English) works into singular,
+ * plural, and human-readable forms, and is capable of transforming between camel-case, whitespace-delimited, or underscore-delimited
+ * forms. There is also components that can {@link TextEncoder encode} and {@link TextDecoder decode} text.
+ * Finally, this package defines a simple framework for {@link TokenStream tokenizing text} (e.g., from files or stream)
+ * making it very easy to create very straightforward parsers.
+ */
+
+package org.jboss.dna.common.text;
\ No newline at end of file
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/util/CheckArg.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/util/CheckArg.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/util/CheckArg.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -26,12 +26,14 @@
import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
+import net.jcip.annotations.Immutable;
import org.jboss.dna.common.CommonI18n;
/**
* Utility class that checks arguments to methods. This class is to be used only in API methods, where failure to supply correct
* arguments should result in a useful error message. In all cases, use the <code>assert</code> statement.
*/
+@Immutable
public final class CheckArg {
// ########################## int METHODS ###################################
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/util/ClassUtil.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/util/ClassUtil.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/util/ClassUtil.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -30,12 +30,12 @@
import java.security.PrivilegedAction;
import java.text.CharacterIterator;
import java.text.StringCharacterIterator;
+import net.jcip.annotations.Immutable;
/**
* Static utilities for working with classes.
- *
- * @author John Verhaeg
*/
+@Immutable
public final class ClassUtil {
private static void addObjectString( Object object,
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/util/FileUtil.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/util/FileUtil.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/util/FileUtil.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -34,7 +34,12 @@
import java.io.OutputStream;
import java.net.MalformedURLException;
import java.net.URL;
+import net.jcip.annotations.Immutable;
+/**
+ * A set of utilities for working with files and directories.
+ */
+@Immutable
public class FileUtil {
/**
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/util/HashCode.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/util/HashCode.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/util/HashCode.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,12 +24,13 @@
package org.jboss.dna.common.util;
import java.util.Arrays;
+import net.jcip.annotations.Immutable;
/**
* Utilities for easily computing hash codes. The algorithm should generally produce good distributions for use in hash-based
* containers or collections, but as expected does always result in repeatable hash codes given the inputs.
- * @author Randall Hauch
*/
+@Immutable
public class HashCode {
// Prime number used in improving distribution: 1,000,003
@@ -37,6 +38,7 @@
/**
* Compute a combined hash code from the supplied objects. This method always returns 0 if no objects are supplied.
+ *
* @param objects the objects that should be used to compute the hash code
* @return the hash code
*/
@@ -46,11 +48,13 @@
/**
* Compute a combined hash code from the supplied objects using the supplied seed.
+ *
* @param seed a value upon which the hash code will be based; may be 0
* @param objects the objects that should be used to compute the hash code
* @return the hash code
*/
- protected static int compute( int seed, Object... objects ) {
+ protected static int compute( int seed,
+ Object... objects ) {
if (objects == null || objects.length == 0) {
return seed * HashCode.PRIME;
}
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/util/IoUtil.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/util/IoUtil.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/util/IoUtil.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -35,10 +35,12 @@
import java.io.Reader;
import java.io.Writer;
import java.util.Arrays;
+import net.jcip.annotations.Immutable;
/**
- * @author Randall Hauch
+ * A set of utilities for more easily performing I/O.
*/
+@Immutable
public class IoUtil {
/**
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/util/LogContext.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/util/LogContext.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/util/LogContext.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,13 +23,14 @@
*/
package org.jboss.dna.common.util;
+import net.jcip.annotations.Immutable;
import org.slf4j.MDC;
/**
* Provides a "mapped diagnostic context" (MDC) for use in capturing extra context information to be included in logs of
* multithreaded applications. Not all logging implementations support MDC, although a few do (including <a
- * href="http://logging.apache.org/log4j/1.3/index.html">Log4J</a> and <a href="http://logback.qos.ch/">Logback</a>). Note that
- * if the logging implementation does not support MDC, this information is ignored.
+ * href="http://logging.apache.org/log4j/1.3/index.html">Log4J</a> and <a href="http://logback.qos.ch/">Logback</a>). Note that if
+ * the logging implementation does not support MDC, this information is ignored.
* <p>
* It can be difficult to understand what is going on within a multithreaded application. When multiple threads are working
* simultaneously, their log messages are mixed together. Thus, it's difficult to follow the log messages of a single thread. Log
@@ -61,19 +62,22 @@
* the values for those keys.
* </p>
*/
+@Immutable
public class LogContext {
/**
* Put a context value (the <code>val</code> parameter) as identified with the <code>key</code> parameter into the current
- * thread's context map. The <code>key</code> parameter cannot be null. The code>val</code> parameter can be null only if
- * the underlying implementation supports it.
+ * thread's context map. The <code>key</code> parameter cannot be null. The code>val</code> parameter can be null only if the
+ * underlying implementation supports it.
* <p>
* This method delegates all work to the MDC of the underlying logging system.
+ *
* @param key the key
* @param value the value
* @throws IllegalArgumentException in case the "key" parameter is null
*/
- public static void set( String key, String value ) {
+ public static void set( String key,
+ String value ) {
MDC.put(key, value);
}
@@ -81,6 +85,7 @@
* Get the context identified by the <code>key</code> parameter. The <code>key</code> parameter cannot be null.
* <p>
* This method delegates all work to the MDC of the underlying logging system.
+ *
* @param key the key
* @return the string value identified by the <code>key</code> parameter.
* @throws IllegalArgumentException in case the "key" parameter is null
@@ -93,6 +98,7 @@
* Remove the the context identified by the <code>key</code> parameter using the underlying system's MDC implementation. The
* <code>key</code> parameter cannot be null. This method does nothing if there is no previous value associated with
* <code>key</code>.
+ *
* @param key the key
* @throws IllegalArgumentException in case the "key" parameter is null
*/
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/util/Reflection.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/util/Reflection.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/util/Reflection.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -35,12 +35,12 @@
import java.util.Map;
import java.util.Set;
import java.util.regex.Pattern;
+import net.jcip.annotations.Immutable;
/**
* Utility class for working reflectively with objects.
- *
- * @author Randall Hauch
*/
+@Immutable
public class Reflection {
/**
@@ -196,7 +196,7 @@
private static final Class<?>[] EMPTY_CLASS_ARRAY = new Class[] {};
private static final String[] BRACKETS_PAIR = new String[] {"", "[]", "[][]", "[][][]", "[][][][]", "[][][][][]"};
- private Class<?> targetClass;
+ private final Class<?> targetClass;
private Map<String, LinkedList<Method>> methodMap = null; // used for the brute-force method finder
/**
@@ -497,6 +497,7 @@
Method method;
LinkedList<Method> methodsWithSameName;
if (this.methodMap == null) {
+ // This is idempotent, so no need to lock or synchronize ...
this.methodMap = new HashMap<String, LinkedList<Method>>();
Method[] methods = this.targetClass.getMethods();
for (int i = 0; i != methods.length; ++i) {
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/util/SecureHash.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/util/SecureHash.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/util/SecureHash.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -30,10 +30,12 @@
import java.io.InputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
+import net.jcip.annotations.Immutable;
/**
- * @author Randall Hauch
+ * A simple utility to generate various kinds of secure hashes.
*/
+@Immutable
public class SecureHash {
/**
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/util/StringUtil.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/util/StringUtil.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/util/StringUtil.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -36,11 +36,13 @@
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import net.jcip.annotations.Immutable;
import org.jboss.dna.common.CommonI18n;
/**
* Utilities for string processing and manipulation.
*/
+@Immutable
public class StringUtil {
public static final String[] EMPTY_STRING_ARRAY = new String[0];
@@ -123,12 +125,12 @@
matcher.appendReplacement(text, matcher.group());
} else {
Object parameter = parameters[ndx];
-
+
// Automatically pretty-print arrays
if (parameter != null && parameter.getClass().isArray()) {
parameter = Arrays.asList((Object[])parameter);
}
-
+
matcher.appendReplacement(text, Matcher.quoteReplacement(parameter == null ? "null" : parameter.toString()));
}
}
Copied: trunk/dna-common/src/main/java/org/jboss/dna/common/util/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/JavadocMetadata.java)
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/util/package-info.java (rev 0)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/util/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,28 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * A set of miscellaneous utilities.
+ */
+
+package org.jboss.dna.common.util;
\ No newline at end of file
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/xml/SimpleNamespaceContext.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/xml/SimpleNamespaceContext.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/xml/SimpleNamespaceContext.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -29,7 +29,8 @@
import javax.xml.namespace.NamespaceContext;
/**
- * @author Randall Hauch
+ * A simple {@link NamespaceContext} implementation that maintains the namespace and prefix mappings discovered within an XML
+ * document.
*/
public class SimpleNamespaceContext implements NamespaceContext {
Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/xml/XmlCharacters.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/xml/XmlCharacters.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/xml/XmlCharacters.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -25,29 +25,31 @@
import java.text.CharacterIterator;
import java.text.StringCharacterIterator;
+import net.jcip.annotations.Immutable;
/**
- * A utility class for determining the validity of various XML names, per the
- * <a href="http://www.w3.org/TR/REC-xml/">XML 1.0 Specification</a>.
+ * A utility class for determining the validity of various XML names, per the <a href="http://www.w3.org/TR/REC-xml/">XML 1.0
+ * Specification</a>.
*/
+@Immutable
public class XmlCharacters {
private static final int NUMBER_OF_CHARACTERS = 1 << 16; // 65536 or 0x10000
/**
- * This implementation uses an array that captures for each character the XML classifications.
- * An array is used because it is a fast way of looking up each character.
+ * This implementation uses an array that captures for each character the XML classifications. An array is used because it is
+ * a fast way of looking up each character.
*/
private static final char[] MASKS = new char[NUMBER_OF_CHARACTERS];
private static final int VALID_CHARACTER = 1;
- private static final int CONTENT_CHARACTER = 1 <<1;
- private static final int SPACE_CHARACTER = 1 <<2;
- private static final int NAME_START_CHARACTER = 1<<3;
- private static final int NAME_CHARACTER = 1<<4;
- private static final int NCNAME_START_CHARACTER = 1<<5;
- private static final int NCNAME_CHARACTER = 1<<6;
- private static final int PUBID_CHARACTER = 1<<7;
+ private static final int CONTENT_CHARACTER = 1 << 1;
+ private static final int SPACE_CHARACTER = 1 << 2;
+ private static final int NAME_START_CHARACTER = 1 << 3;
+ private static final int NAME_CHARACTER = 1 << 4;
+ private static final int NCNAME_START_CHARACTER = 1 << 5;
+ private static final int NCNAME_CHARACTER = 1 << 6;
+ private static final int PUBID_CHARACTER = 1 << 7;
static {
@@ -59,9 +61,11 @@
MASKS[0x9] |= VALID_CHARACTER | CONTENT_CHARACTER;
MASKS[0xA] |= VALID_CHARACTER | CONTENT_CHARACTER;
MASKS[0xD] |= VALID_CHARACTER | CONTENT_CHARACTER;
- for (int i = 0x20; i <= 0xD7FF; ++i) MASKS[i] |= VALID_CHARACTER | CONTENT_CHARACTER;
- for (int i = 0xE000; i <= 0xFFFD; ++i) MASKS[i] |= VALID_CHARACTER | CONTENT_CHARACTER;
- // Last range is bigger than our character array, so we'll handle in the 'isValid' method ...
+ for (int i = 0x20; i <= 0xD7FF; ++i)
+ MASKS[i] |= VALID_CHARACTER | CONTENT_CHARACTER;
+ for (int i = 0xE000; i <= 0xFFFD; ++i)
+ MASKS[i] |= VALID_CHARACTER | CONTENT_CHARACTER;
+ // Last range is bigger than our character array, so we'll handle in the 'isValid' method ...
// for ( int i=0x10000; i<=0x10FFFF; ++i ) MASKS[i] = VALID_CHARACTER_MASK | CONTENT_CHARACTER;
// Remove the other characters that are not allowed in XML content:
@@ -71,7 +75,7 @@
MASKS['\n'] &= ~(CONTENT_CHARACTER);
MASKS['\r'] &= ~(CONTENT_CHARACTER);
MASKS[']'] &= ~(CONTENT_CHARACTER);
-
+
// ---------------------
// Whitespace Characters
// ---------------------
@@ -95,21 +99,34 @@
int nameStartMask = NAME_START_CHARACTER | NCNAME_START_CHARACTER | NAME_CHARACTER | NCNAME_CHARACTER;
MASKS[':'] |= nameStartMask;
MASKS['_'] |= nameStartMask;
- for (int i = 'A'; i <= 'Z'; ++i) MASKS[i] |= nameStartMask;
- for (int i = 'a'; i <= 'z'; ++i) MASKS[i] |= nameStartMask;
- for (int i = 0xC0; i <= 0xD6; ++i) MASKS[i] |= nameStartMask;
- for (int i = 0xD8; i <= 0xF6; ++i) MASKS[i] |= nameStartMask;
- for (int i = 0xF8; i <= 0x2FF; ++i) MASKS[i] |= nameStartMask;
- for (int i = 0x370; i <= 0x37D; ++i) MASKS[i] |= nameStartMask;
- for (int i = 0x37F; i <= 0x1FFF; ++i) MASKS[i] |= nameStartMask;
- for (int i = 0x200C; i <= 0x200D; ++i) MASKS[i] |= nameStartMask;
- for (int i = 0x2070; i <= 0x218F; ++i) MASKS[i] |= nameStartMask;
- for (int i = 0x2C00; i <= 0x2FEF; ++i) MASKS[i] |= nameStartMask;
- for (int i = 0x3001; i <= 0xD7FF; ++i) MASKS[i] |= nameStartMask;
- for (int i = 0xF900; i <= 0xFDCF; ++i) MASKS[i] |= nameStartMask;
- for (int i = 0xFDF0; i <= 0xFFFD; ++i) MASKS[i] |= nameStartMask;
+ for (int i = 'A'; i <= 'Z'; ++i)
+ MASKS[i] |= nameStartMask;
+ for (int i = 'a'; i <= 'z'; ++i)
+ MASKS[i] |= nameStartMask;
+ for (int i = 0xC0; i <= 0xD6; ++i)
+ MASKS[i] |= nameStartMask;
+ for (int i = 0xD8; i <= 0xF6; ++i)
+ MASKS[i] |= nameStartMask;
+ for (int i = 0xF8; i <= 0x2FF; ++i)
+ MASKS[i] |= nameStartMask;
+ for (int i = 0x370; i <= 0x37D; ++i)
+ MASKS[i] |= nameStartMask;
+ for (int i = 0x37F; i <= 0x1FFF; ++i)
+ MASKS[i] |= nameStartMask;
+ for (int i = 0x200C; i <= 0x200D; ++i)
+ MASKS[i] |= nameStartMask;
+ for (int i = 0x2070; i <= 0x218F; ++i)
+ MASKS[i] |= nameStartMask;
+ for (int i = 0x2C00; i <= 0x2FEF; ++i)
+ MASKS[i] |= nameStartMask;
+ for (int i = 0x3001; i <= 0xD7FF; ++i)
+ MASKS[i] |= nameStartMask;
+ for (int i = 0xF900; i <= 0xFDCF; ++i)
+ MASKS[i] |= nameStartMask;
+ for (int i = 0xFDF0; i <= 0xFFFD; ++i)
+ MASKS[i] |= nameStartMask;
// Last range is bigger than our character array ...
- //for (int i = 0x10000; i <= 0xEFFFF; ++i) MASKS[i] |= nameStartMask;
+ // for (int i = 0x10000; i <= 0xEFFFF; ++i) MASKS[i] |= nameStartMask;
// ---------------
// Name Characters
@@ -122,10 +139,13 @@
MASKS['-'] |= nameMask;
MASKS['.'] |= nameMask;
MASKS[0xB7] |= nameMask;
- for (int i = '0'; i <= '9'; ++i) MASKS[i] |= nameMask;
- for (int i = 0x0300; i <= 0x036F; ++i) MASKS[i] |= nameStartMask;
- for (int i = 0x203F; i <= 0x2040; ++i) MASKS[i] |= nameStartMask;
-
+ for (int i = '0'; i <= '9'; ++i)
+ MASKS[i] |= nameMask;
+ for (int i = 0x0300; i <= 0x036F; ++i)
+ MASKS[i] |= nameStartMask;
+ for (int i = 0x203F; i <= 0x2040; ++i)
+ MASKS[i] |= nameStartMask;
+
// --------
// NC Names
// --------
@@ -134,7 +154,7 @@
// See http://www.w3.org/TR/REC-xml-names/#ns-decl
// So, remove the NCNAME_CHARACTER and NCNAME_START_CHARACTER masks from ':' ...
MASKS[':'] &= ~(NCNAME_START_CHARACTER | NCNAME_CHARACTER);
-
+
// --------------------
// Public ID characters
// --------------------
@@ -142,9 +162,12 @@
MASKS[0x20] |= PUBID_CHARACTER;
MASKS[0xA] |= PUBID_CHARACTER;
MASKS[0xD] |= PUBID_CHARACTER;
- for (int i = 'A'; i <= 'Z'; ++i) MASKS[i] |= PUBID_CHARACTER;
- for (int i = 'a'; i <= 'z'; ++i) MASKS[i] |= PUBID_CHARACTER;
- for (int i = '0'; i <= '9'; ++i) MASKS[i] |= PUBID_CHARACTER;
+ for (int i = 'A'; i <= 'Z'; ++i)
+ MASKS[i] |= PUBID_CHARACTER;
+ for (int i = 'a'; i <= 'z'; ++i)
+ MASKS[i] |= PUBID_CHARACTER;
+ for (int i = '0'; i <= '9'; ++i)
+ MASKS[i] |= PUBID_CHARACTER;
MASKS['-'] |= PUBID_CHARACTER;
MASKS['\''] |= PUBID_CHARACTER;
MASKS['('] |= PUBID_CHARACTER;
@@ -171,47 +194,47 @@
}
/**
- * Determine whether the supplied character is a valid first character in an XML Name.
- * The first character in an XML name is more restrictive than the {@link #isValidName(int) remaining characters}.
+ * Determine whether the supplied character is a valid first character in an XML Name. The first character in an XML name is
+ * more restrictive than the {@link #isValidName(int) remaining characters}.
*
* @param c the character
* @return true if the character is valid for an XML Name's first character
*/
public static boolean isValidNameStart( int c ) {
- return c < NUMBER_OF_CHARACTERS && ( MASKS[c] & NAME_START_CHARACTER ) != 0;
+ return c < NUMBER_OF_CHARACTERS && (MASKS[c] & NAME_START_CHARACTER) != 0;
}
/**
- * Determine whether the supplied character is a valid first character in an XML NCName.
- * The first character in an XML NCName is more restrictive than the {@link #isValidName(int) remaining characters}.
+ * Determine whether the supplied character is a valid first character in an XML NCName. The first character in an XML NCName
+ * is more restrictive than the {@link #isValidName(int) remaining characters}.
*
* @param c the character
* @return true if the character is valid for an XML NCName's first character
*/
public static boolean isValidNcNameStart( int c ) {
- return c < NUMBER_OF_CHARACTERS && ( MASKS[c] & NCNAME_START_CHARACTER ) != 0;
+ return c < NUMBER_OF_CHARACTERS && (MASKS[c] & NCNAME_START_CHARACTER) != 0;
}
/**
- * Determine whether the supplied character is a valid non-first character in an XML Name.
- * The {@link #isValidNameStart(int) first character} in an XML name is more restrictive than the remaining characters.
+ * Determine whether the supplied character is a valid non-first character in an XML Name. The {@link #isValidNameStart(int)
+ * first character} in an XML name is more restrictive than the remaining characters.
*
* @param c the character
* @return true if the character is valid character in an XML Name
*/
public static boolean isValidName( int c ) {
- return c < NUMBER_OF_CHARACTERS && ( MASKS[c] & NAME_CHARACTER ) != 0;
+ return c < NUMBER_OF_CHARACTERS && (MASKS[c] & NAME_CHARACTER) != 0;
}
/**
- * Determine whether the supplied character is a valid non-first character in an XML NCName.
- * The {@link #isValidNcNameStart(int) first character} in an XML NCName is more restrictive than the remaining characters.
+ * Determine whether the supplied character is a valid non-first character in an XML NCName. The
+ * {@link #isValidNcNameStart(int) first character} in an XML NCName is more restrictive than the remaining characters.
*
* @param c the character
* @return true if the character is valid character in an XML NCName
*/
public static boolean isValidNcName( int c ) {
- return c < NUMBER_OF_CHARACTERS && ( MASKS[c] & NCNAME_CHARACTER ) != 0;
+ return c < NUMBER_OF_CHARACTERS && (MASKS[c] & NCNAME_CHARACTER) != 0;
}
/**
@@ -221,7 +244,7 @@
* @return true if the character is valid character in an XML Pubid
*/
public static boolean isValidPubid( int c ) {
- return c < NUMBER_OF_CHARACTERS && ( MASKS[c] & PUBID_CHARACTER ) != 0;
+ return c < NUMBER_OF_CHARACTERS && (MASKS[c] & PUBID_CHARACTER) != 0;
}
/**
@@ -231,7 +254,7 @@
* @return true if the character is valid character in XML
*/
public static boolean isValid( int c ) {
- return (c < NUMBER_OF_CHARACTERS && ( MASKS[c] & VALID_CHARACTER ) != 0) || ( 0x10000 <= c && c <= 0x10FFFF);
+ return (c < NUMBER_OF_CHARACTERS && (MASKS[c] & VALID_CHARACTER) != 0) || (0x10000 <= c && c <= 0x10FFFF);
}
/**
@@ -241,7 +264,7 @@
* @return true if the character is valid character in XML content
*/
public static boolean isValidContent( int c ) {
- return (c < NUMBER_OF_CHARACTERS && ( MASKS[c] & CONTENT_CHARACTER ) != 0) || ( 0x10000 <= c && c <= 0x10FFFF);
+ return (c < NUMBER_OF_CHARACTERS && (MASKS[c] & CONTENT_CHARACTER) != 0) || (0x10000 <= c && c <= 0x10FFFF);
}
/**
@@ -251,9 +274,9 @@
* @return true if the character is valid whitespace character in XML
*/
public static boolean isValidSpace( int c ) {
- return c <= 0x20 && ( MASKS[c] & SPACE_CHARACTER ) != 0;
+ return c <= 0x20 && (MASKS[c] & SPACE_CHARACTER) != 0;
}
-
+
/**
* Determine if the supplied name is a valid XML Name.
*
@@ -261,17 +284,17 @@
* @return true if the supplied name is indeed a valid XML Name, or false otherwise
*/
public static boolean isValidName( String name ) {
- if ( name == null || name.length() == 0 ) return false;
+ if (name == null || name.length() == 0) return false;
CharacterIterator iter = new StringCharacterIterator(name);
char c = iter.first();
- if ( !isValidNameStart(c) ) return false;
- while ( c != CharacterIterator.DONE ) {
- if ( !isValidName(c) ) return false;
+ if (!isValidNameStart(c)) return false;
+ while (c != CharacterIterator.DONE) {
+ if (!isValidName(c)) return false;
c = iter.next();
}
return true;
}
-
+
/**
* Determine if the supplied name is a valid XML NCName.
*
@@ -279,12 +302,12 @@
* @return true if the supplied name is indeed a valid XML NCName, or false otherwise
*/
public static boolean isValidNcName( String name ) {
- if ( name == null || name.length() == 0 ) return false;
+ if (name == null || name.length() == 0) return false;
CharacterIterator iter = new StringCharacterIterator(name);
char c = iter.first();
- if ( !isValidNcNameStart(c) ) return false;
- while ( c != CharacterIterator.DONE ) {
- if ( !isValidNcName(c) ) return false;
+ if (!isValidNcNameStart(c)) return false;
+ while (c != CharacterIterator.DONE) {
+ if (!isValidNcName(c)) return false;
c = iter.next();
}
return true;
Copied: trunk/dna-common/src/main/java/org/jboss/dna/common/xml/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/JavadocMetadata.java)
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/xml/package-info.java (rev 0)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/xml/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,28 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * A set of utilities for working with XML documents.
+ */
+
+package org.jboss.dna.common.xml;
\ No newline at end of file
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/DnaIntLexicon.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/DnaIntLexicon.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/DnaIntLexicon.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,20 +23,21 @@
*/
package org.jboss.dna.graph;
+import net.jcip.annotations.Immutable;
import org.jboss.dna.graph.property.Name;
import org.jboss.dna.graph.property.basic.BasicName;
-
/**
* A lexicon of internal and implementation-specific information
*/
+@Immutable
public class DnaIntLexicon {
public static class Namespace {
public static final String URI = "http://www.jboss.org/dna/internal/1.0";
public static final String PREFIX = "dnaint";
}
-
+
public static final Name NODE_DEFINITON = new BasicName(Namespace.URI, "nodeDefinition");
-
+
}
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/DnaLexicon.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/DnaLexicon.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/DnaLexicon.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,12 +23,14 @@
*/
package org.jboss.dna.graph;
+import net.jcip.annotations.Immutable;
import org.jboss.dna.graph.property.Name;
import org.jboss.dna.graph.property.basic.BasicName;
/**
- * @author Randall Hauch
+ * A lexicon of names used within JBoss DNA.
*/
+@Immutable
public class DnaLexicon {
public static class Namespace {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/ExecutionContext.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/ExecutionContext.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/ExecutionContext.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -53,9 +53,6 @@
* example, an ExecutionContext could be used to create another context that references the same {@link #getNamespaceRegistry()
* namespace registry} but which has a different {@link #getSecurityContext() security context}.
* </p>
- *
- * @author Randall Hauch
- * @author John Verhaeg
*/
@Immutable
public class ExecutionContext implements ClassLoaderFactory, Cloneable {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/Graph.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/Graph.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/Graph.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -90,8 +90,6 @@
* content. The graph is designed to be an <i><a href="http://en.wikipedia.org/wiki/Domain_Specific_Language">embedded domain
* specific language</a></i>, meaning calls to it are designed to read like sentences even though they are really just Java
* methods. And to be more readable, methods can be chained together.
- *
- * @author Randall Hauch
*/
@NotThreadSafe
public class Graph {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/GraphI18n.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/GraphI18n.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/GraphI18n.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -29,8 +29,7 @@
import org.jboss.dna.common.i18n.I18n;
/**
- * @author Randall Hauch
- * @author John Verhaeg
+ * The internationalized string constants for the <code>org.jboss.dna.graph*</code> packages.
*/
public final class GraphI18n {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/JaasSecurityContext.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/JaasSecurityContext.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/JaasSecurityContext.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -16,6 +16,7 @@
import javax.security.auth.login.Configuration;
import javax.security.auth.login.LoginContext;
import javax.security.auth.login.LoginException;
+import net.jcip.annotations.NotThreadSafe;
import org.jboss.dna.common.util.CheckArg;
import org.jboss.dna.common.util.Logger;
import org.jboss.dna.common.util.Reflection;
@@ -24,6 +25,7 @@
* JAAS-based {@link SecurityContext security context} that provides authentication and authorization through the JAAS
* {@link LoginContext login context}.
*/
+@NotThreadSafe
public final class JaasSecurityContext implements SecurityContext {
private final Logger log = Logger.getLogger(getClass());
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/JcrLexicon.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/JcrLexicon.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/JcrLexicon.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,12 +23,14 @@
*/
package org.jboss.dna.graph;
+import net.jcip.annotations.Immutable;
import org.jboss.dna.graph.property.Name;
import org.jboss.dna.graph.property.basic.BasicName;
/**
- * @author Randall Hauch
+ * A lexicon of names with the JCR namespace.
*/
+@Immutable
public class JcrLexicon {
public static class Namespace {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/JcrMixLexicon.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/JcrMixLexicon.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/JcrMixLexicon.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -27,7 +27,7 @@
import org.jboss.dna.graph.property.basic.BasicName;
/**
- * @author Randall Hauch
+ * A lexicon of names with the JCR "mix" namespace.
*/
public class JcrMixLexicon {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/JcrNtLexicon.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/JcrNtLexicon.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/JcrNtLexicon.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -27,7 +27,7 @@
import org.jboss.dna.graph.property.basic.BasicName;
/**
- * @author Randall Hauch
+ * A lexicon of names with the JCR "nt" namespace.
*/
public class JcrNtLexicon {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/Location.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/Location.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/Location.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -41,8 +41,6 @@
/**
* The location of a node, as specified by either its path, UUID, and/or identification properties.
- *
- * @author Randall Hauch
*/
@Immutable
public abstract class Location implements Iterable<Property>, Comparable<Location> {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/Locations.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/Locations.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/Locations.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -29,8 +29,6 @@
* A class used by this package to manage a single {@link Location} or multiple {@link Location} objects, without having the
* overhead of a collection (when only one is needed) and which can grow efficiently as new locations are added. This is achieved
* through an effective linked list.
- *
- * @author Randall Hauch
*/
@NotThreadSafe
class Locations {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/Node.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/Node.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/Node.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -34,8 +34,6 @@
/**
* A node in a {@link Graph graph}, with methods to access the properties and children.
- *
- * @author Randall Hauch
*/
@Immutable
public interface Node extends Iterable<Location> {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/NodeConflictBehavior.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/NodeConflictBehavior.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/NodeConflictBehavior.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -26,8 +26,6 @@
/**
* An enumeration used by several commands for the choice of handling duplicate nodes, such as when a node is to be copied to
* another location where a node already exists.
- *
- * @author Randall Hauch
*/
public enum NodeConflictBehavior {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/Results.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/Results.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/Results.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -31,8 +31,6 @@
/**
* A set of nodes returned from a {@link Graph graph}, with methods to access the properties and children of the nodes in the
* result. The {@link #iterator()} method can be used to iterate all over the nodes in the result.
- *
- * @author Randall Hauch
*/
@Immutable
public interface Results extends Graph.BaseResults<Node> {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/SecurityContext.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/SecurityContext.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/SecurityContext.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,12 +1,15 @@
package org.jboss.dna.graph;
+import net.jcip.annotations.NotThreadSafe;
+
/**
- * A security context provides a pluggable means to support disparate authentication and authorization
- * mechanisms that specify the user name and roles.
+ * A security context provides a pluggable means to support disparate authentication and authorization mechanisms that specify the
+ * user name and roles.
* <p>
* A security context should only be associated with the execution context <b>after</b> authentication has occurred.
* </p>
*/
+@NotThreadSafe
public interface SecurityContext {
/**
@@ -23,7 +26,7 @@
* @return true if the user has the role and is logged in; false otherwise
*/
boolean hasRole( String roleName );
-
+
/**
* Logs the user out of the authentication mechanism.
* <p>
@@ -31,5 +34,5 @@
* </p>
*/
void logout();
-
+
}
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/Subgraph.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/Subgraph.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/Subgraph.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -40,8 +40,6 @@
* of the subgraph will contain the locations for child nodes that are below the maximum depth and therefore not included in this
* subgraph.
* </p>
- *
- * @author Randall Hauch
*/
@Immutable
public interface Subgraph extends Graph.BaseResults<SubgraphNode> {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/cache/BasicCachePolicy.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/cache/BasicCachePolicy.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/cache/BasicCachePolicy.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,11 +24,13 @@
package org.jboss.dna.graph.cache;
import java.util.concurrent.TimeUnit;
+import net.jcip.annotations.NotThreadSafe;
import org.jboss.dna.common.util.CheckArg;
/**
- * @author Randall Hauch
+ * A basic mutable {@link CachePolicy} implementation.
*/
+@NotThreadSafe
public class BasicCachePolicy implements CachePolicy {
private static final long serialVersionUID = 1L;
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/cache/CachePolicy.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/cache/CachePolicy.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/cache/CachePolicy.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -29,8 +29,6 @@
/**
* The specification of how node data is to be cached. The time values provided are relative, allowing the same cache policy
* instance to be shared among multiple {@link Cacheable} objects.
- *
- * @author Randall Hauch
*/
@Immutable
public interface CachePolicy extends Serializable {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/cache/Cacheable.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/cache/Cacheable.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/cache/Cacheable.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,8 +28,6 @@
/**
* Interface defining an object that can be cached according to a {@link CachePolicy}.
- *
- * @author Randall Hauch
*/
public interface Cacheable extends Serializable {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/cache/ImmutableCachePolicy.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/cache/ImmutableCachePolicy.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/cache/ImmutableCachePolicy.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,9 +23,12 @@
*/
package org.jboss.dna.graph.cache;
+import net.jcip.annotations.Immutable;
+
/**
- * @author Randall Hauch
+ * A basic {@link CachePolicy} implementation with a fixed {@link #getTimeToLive() time to live}.
*/
+@Immutable
public class ImmutableCachePolicy implements CachePolicy {
private static final long serialVersionUID = 1L;
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositoryConnection.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositoryConnection.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositoryConnection.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -110,8 +110,6 @@
* However, it is perfectly acceptable to throw an exception if the connection becomes invalid (e.g., there is a communication
* failure) or if a fatal error would prevent subsequent requests from being processed.
* </p>
- *
- * @author Randall Hauch
*/
@NotThreadSafe
public interface RepositoryConnection {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositoryConnectionFactory.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositoryConnectionFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositoryConnectionFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,13 +23,14 @@
*/
package org.jboss.dna.graph.connector;
+import net.jcip.annotations.ThreadSafe;
+
/**
* An interface for a factory of {@link RepositoryConnection}s using the names of the {@link RepositorySource} from which the
* connections are to be obtained. This interface need not be implemented by a {@link RepositorySource}, as implementations are
* usually provided by the system.
- *
- * @author Randall Hauch
*/
+@ThreadSafe
public interface RepositoryConnectionFactory {
/**
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositoryConnectionPool.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositoryConnectionPool.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositoryConnectionPool.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -47,8 +47,6 @@
/**
* A reusable implementation of a managed pool of connections that is optimized for safe concurrent operations.
- *
- * @author Randall Hauch
*/
@ThreadSafe
public class RepositoryConnectionPool {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositoryContext.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositoryContext.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositoryContext.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,6 +23,7 @@
*/
package org.jboss.dna.graph.connector;
+import net.jcip.annotations.ThreadSafe;
import org.jboss.dna.graph.ExecutionContext;
import org.jboss.dna.graph.Subgraph;
import org.jboss.dna.graph.observe.Observer;
@@ -30,9 +31,8 @@
/**
* The context for a repository. This interface need not be implemented by a {@link RepositorySource}, as it is normally provided
* to the source when {@link RepositorySource#initialize(RepositoryContext) initialized}.
- *
- * @author Randall Hauch
*/
+@ThreadSafe
public interface RepositoryContext {
/**
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositorySource.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositorySource.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositorySource.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,6 +28,7 @@
import java.net.URI;
import java.util.UUID;
import javax.naming.Referenceable;
+import net.jcip.annotations.NotThreadSafe;
import org.jboss.dna.graph.ExecutionContext;
import org.jboss.dna.graph.property.Binary;
import org.jboss.dna.graph.property.DateTime;
@@ -133,9 +134,8 @@
* delegate authentication to JAAS. Either way, just realize that it's perfectly acceptable for the connector to require its own
* security properties.
* </p>
- *
- * @author Randall Hauch
*/
+@NotThreadSafe
public interface RepositorySource extends Referenceable, Serializable {
/**
@@ -160,7 +160,8 @@
String getName();
/**
- * Get a connection from this source.
+ * Get a connection from this source. Even though each RepositorySource need not be thread safe, this method should be safe to
+ * be called concurrently by multiple threads.
*
* @return a connection
* @throws RepositorySourceException if there is a problem obtaining a connection
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositorySourceCapabilities.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositorySourceCapabilities.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositorySourceCapabilities.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -30,7 +30,6 @@
* complex behavior.
*
* @see RepositorySource#getCapabilities()
- * @author Randall Hauch
*/
@Immutable
public class RepositorySourceCapabilities {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositorySourceException.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositorySourceException.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositorySourceException.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,9 +23,12 @@
*/
package org.jboss.dna.graph.connector;
+import net.jcip.annotations.Immutable;
+
/**
- * @author Randall Hauch
+ * A runtime exception signalling an error within a {@link RepositorySource}.
*/
+@Immutable
public class RepositorySourceException extends RuntimeException {
/**
@@ -44,7 +47,8 @@
* @param sourceName the identifier of the source from which this exception eminates
* @param message
*/
- public RepositorySourceException( String sourceName, String message ) {
+ public RepositorySourceException( String sourceName,
+ String message ) {
super(message);
this.sourceName = sourceName;
}
@@ -53,7 +57,8 @@
* @param sourceName the identifier of the source from which this exception eminates
* @param cause
*/
- public RepositorySourceException( String sourceName, Throwable cause ) {
+ public RepositorySourceException( String sourceName,
+ Throwable cause ) {
super(cause);
this.sourceName = sourceName;
}
@@ -63,7 +68,9 @@
* @param message
* @param cause
*/
- public RepositorySourceException( String sourceName, String message, Throwable cause ) {
+ public RepositorySourceException( String sourceName,
+ String message,
+ Throwable cause ) {
super(message, cause);
this.sourceName = sourceName;
}
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/UuidAlreadyExistsException.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/UuidAlreadyExistsException.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/UuidAlreadyExistsException.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,6 +24,7 @@
package org.jboss.dna.graph.connector;
import java.util.UUID;
+import net.jcip.annotations.Immutable;
import org.jboss.dna.graph.GraphI18n;
import org.jboss.dna.graph.request.CloneBranchRequest;
@@ -32,6 +33,7 @@
* workspace and the {@link CloneBranchRequest#removeExisting() UUID conflict behavior} is set to throw an exception instead of
* removing the existing nodes.
*/
+@Immutable
public class UuidAlreadyExistsException extends RepositorySourceException {
private static final long serialVersionUID = 1L;
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/federation/FederatedRepositorySource.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/federation/FederatedRepositorySource.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/federation/FederatedRepositorySource.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -39,6 +39,7 @@
import javax.naming.StringRefAddr;
import javax.naming.spi.ObjectFactory;
import net.jcip.annotations.GuardedBy;
+import net.jcip.annotations.NotThreadSafe;
import org.jboss.dna.common.i18n.I18n;
import org.jboss.dna.common.util.CheckArg;
import org.jboss.dna.common.util.HashCode;
@@ -65,8 +66,9 @@
import org.jboss.dna.graph.property.ValueFactory;
/**
- *
+ * A {@link RepositorySource} for a federated repository.
*/
+@NotThreadSafe
public class FederatedRepositorySource implements RepositorySource, ObjectFactory {
/**
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/federation/JoinRequestProcessor.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/federation/JoinRequestProcessor.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/federation/JoinRequestProcessor.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -74,7 +74,7 @@
import org.jboss.dna.graph.request.processor.RequestProcessor;
/**
- *
+ * A {@link RequestProcessor} that performs the join portion of the fork-join operation.
*/
@NotThreadSafe
class JoinRequestProcessor extends RequestProcessor {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/inmemory/InMemoryRepository.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/inmemory/InMemoryRepository.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/inmemory/InMemoryRepository.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -36,7 +36,7 @@
import org.jboss.dna.graph.property.Name;
/**
- * @author Randall Hauch
+ * A specialized {@link MapRepository} that represents an in-memory repository.
*/
@NotThreadSafe
public class InMemoryRepository extends MapRepository {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/inmemory/InMemoryRepositorySource.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/inmemory/InMemoryRepositorySource.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/inmemory/InMemoryRepositorySource.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -58,8 +58,6 @@
/**
* A {@link RepositorySource} for an in-memory repository. Each {@link InMemoryRepositorySource} instance contains its own
* repository, and the lifetime of the source dictates the lifetime of the repository and its content.
- *
- * @author Randall Hauch
*/
public class InMemoryRepositorySource implements MapRepositorySource, ObjectFactory {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/map/MapNode.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/map/MapNode.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/map/MapNode.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -36,6 +36,9 @@
import org.jboss.dna.graph.property.Property;
import org.jboss.dna.graph.property.PropertyFactory;
+/**
+ * A node within a {@link MapRepository}.
+ */
public class MapNode {
private final UUID uuid;
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/map/MapRepositoryConnection.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/map/MapRepositoryConnection.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/map/MapRepositoryConnection.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -35,12 +35,15 @@
import org.jboss.dna.graph.request.Request;
import org.jboss.dna.graph.request.processor.RequestProcessor;
+/**
+ * A connection to a {@link MapRepository}.
+ */
public class MapRepositoryConnection implements RepositoryConnection {
private final MapRepositorySource source;
private final MapRepository repository;
public MapRepositoryConnection( MapRepositorySource source,
- MapRepository repository ) {
+ MapRepository repository ) {
assert source != null;
assert repository != null;
this.source = source;
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/io/Destination.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/io/Destination.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/io/Destination.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -32,8 +32,6 @@
/**
* Interface used internally as the destination for the requests. This is used to abstract whether the requests should be
* submitted immediately or in a single batch.
- *
- * @author Randall Hauch
*/
@NotThreadSafe
public interface Destination {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/io/GraphImporter.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/io/GraphImporter.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/io/GraphImporter.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -45,8 +45,8 @@
import org.xml.sax.helpers.XMLReaderFactory;
/**
- * @author Randall Hauch
- * @author John Verhaeg
+ * An importer of graph content. This class can be used directly, or the import can be done via the {@link Graph} using the
+ * {@link Graph#importXmlFrom(java.io.File)} (and similar) methods.
*/
public class GraphImporter {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/mimetype/MimeTypeDetector.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/mimetype/MimeTypeDetector.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/mimetype/MimeTypeDetector.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -30,8 +30,6 @@
/**
* MIME-type detection libraries must provide thread-safe implementations of this interface to enable DNA to use the libraries to
* return MIME-types for data sources.
- *
- * @author jverhaeg
*/
@ThreadSafe
public interface MimeTypeDetector {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/mimetype/MimeTypeDetectorConfig.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/mimetype/MimeTypeDetectorConfig.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/mimetype/MimeTypeDetectorConfig.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,12 +24,13 @@
package org.jboss.dna.graph.mimetype;
import java.util.Map;
+import net.jcip.annotations.Immutable;
import org.jboss.dna.common.component.ComponentConfig;
-import org.jboss.dna.graph.mimetype.MimeTypeDetector;
/**
- * @author jverhaeg
+ * A configuration for a {@link MimeTypeDetector} component.
*/
+@Immutable
public class MimeTypeDetectorConfig extends ComponentConfig {
public MimeTypeDetectorConfig( String name,
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/mimetype/MimeTypeDetectors.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/mimetype/MimeTypeDetectors.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/mimetype/MimeTypeDetectors.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -31,12 +31,9 @@
import org.jboss.dna.common.component.ComponentLibrary;
import org.jboss.dna.common.component.StandardClassLoaderFactory;
import org.jboss.dna.common.util.Logger;
-import org.jboss.dna.graph.mimetype.MimeTypeDetector;
/**
* Facility for managing {@link MimeTypeDetectorConfig}s.
- *
- * @author jverhaeg
*/
@ThreadSafe
public final class MimeTypeDetectors implements MimeTypeDetector {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/observe/NetChangeObserver.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/observe/NetChangeObserver.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/observe/NetChangeObserver.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -32,6 +32,7 @@
import java.util.TreeMap;
import net.jcip.annotations.Immutable;
import net.jcip.annotations.NotThreadSafe;
+import net.jcip.annotations.ThreadSafe;
import org.jboss.dna.common.util.HashCode;
import org.jboss.dna.graph.Location;
import org.jboss.dna.graph.property.Name;
@@ -50,6 +51,7 @@
* example, if a property is updated and then updated again, the net change will be a single change. Or, if a node is created and
* then deleted, no net change will be observed.
*/
+@ThreadSafe
public abstract class NetChangeObserver extends ChangeObserver {
public enum ChangeType {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/observe/ObservationBus.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/observe/ObservationBus.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/observe/ObservationBus.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,10 +23,13 @@
*/
package org.jboss.dna.graph.observe;
+import net.jcip.annotations.ThreadSafe;
+
/**
* A simple {@link Observer} that is itself {@link Observable}. This class essentially multiplexes the events from a single
* Observable to disseminate each event to multiple Observers.
*/
+@ThreadSafe
public class ObservationBus implements Observable, Observer {
private final ChangeObservers observers = new ChangeObservers();
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/observe/Observer.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/observe/Observer.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/observe/Observer.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,7 +24,7 @@
package org.jboss.dna.graph.observe;
/**
- *
+ * The interface for an observer of graph changes.
*/
public interface Observer {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/Binary.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/Binary.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/Binary.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -30,8 +30,6 @@
/**
* Value holder for binary data. Binary instances are not mutable.
- *
- * @author Randall Hauch
*/
@Immutable
public interface Binary extends Comparable<Binary>, Serializable {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/BinaryFactory.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/BinaryFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/BinaryFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -27,13 +27,13 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
+import net.jcip.annotations.ThreadSafe;
/**
* A factory for creating {@link Binary} instances. This interface extends the {@link ValueFactory} generic interface and adds
* specific methods for creating binary objects.
- *
- * @author Randall Hauch
*/
+@ThreadSafe
public interface BinaryFactory extends ValueFactory<Binary> {
/**
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/DateTime.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/DateTime.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/DateTime.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -34,8 +34,6 @@
* href="http://jcp.org/en/jsr/detail?id=310">JSR-310</a>, which will be based upon <a
* href="http://joda-time.sourceforge.net/">Joda-Time</a>. This class serves as a stable migration path toward the new JSR 310
* classes.
- *
- * @author Randall Hauch
*/
@Immutable
public interface DateTime extends Comparable<DateTime>, Serializable {
@@ -57,7 +55,7 @@
* <li>two digit minute, from 00 to 59;</li>
* <li>two digit second, from 00 to 59;</li>
* <li>three decimal places for milliseconds, if required;</li>
- * <li>time zone offset of the form <code>�HH:mm</code> (or '0' if UTC)</li>
+ * <li>time zone offset of the form <code>�HH:mm</code> (or '0' if UTC)</li>
* </ul>
*
* @return the string representation; never null
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/DateTimeFactory.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/DateTimeFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/DateTimeFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,7 +23,6 @@
*/
package org.jboss.dna.graph.property;
-
/**
* A factory for creating {@link DateTime date-time instants}. This interface extends the {@link ValueFactory} generic interface
* and adds specific methods for creating instants for the current time (and time zone) as well as various combinations of
@@ -50,7 +49,7 @@
* <li>two digit minute, from 00 to 59;</li>
* <li>two digit second, from 00 to 59;</li>
* <li>three decimal places for milliseconds, if required;</li>
- * <li>time zone offset of the form <code>�HH:mm</code> (or '0' if UTC)</li>
+ * <li>time zone offset of the form <code>�HH:mm</code> (or '0' if UTC)</li>
* </ul>
* </p>
* <h3>Day of Year Based</h3>
@@ -69,7 +68,7 @@
* <li>two digit minute, from 00 to 59;</li>
* <li>two digit second, from 00 to 59;</li>
* <li>three decimal places for milliseconds, if required;</li>
- * <li>time zone offset of the form <code>�HH:mm</code> (or '0' if UTC)</li>
+ * <li>time zone offset of the form <code>�HH:mm</code> (or '0' if UTC)</li>
* </ul>
* </p>
* <h3>Week Based</h3>
@@ -89,7 +88,7 @@
* <li>two digit minute, from 00 to 59;</li>
* <li>two digit second, from 00 to 59;</li>
* <li>three decimal places for milliseconds, if required;</li>
- * <li>time zone offset of the form <code>�HH:mm</code> (or '0' if UTC)</li>
+ * <li>time zone offset of the form <code>�HH:mm</code> (or '0' if UTC)</li>
* </ul>
* </p>
* <p>
@@ -98,8 +97,6 @@
* the previous year, and the last week finishes in the next year. The weekyear field is defined to refer to the year that owns
* the week, which may differ from the actual year.
* </p>
- *
- * @author Randall Hauch
*/
public interface DateTimeFactory extends ValueFactory<DateTime> {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/InvalidPathException.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/InvalidPathException.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/InvalidPathException.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,9 +23,12 @@
*/
package org.jboss.dna.graph.property;
+import net.jcip.annotations.Immutable;
+
/**
- * @author Randall Hauch
+ * A runtime exception that represents that an invalid {@link Path path} was specified.
*/
+@Immutable
public class InvalidPathException extends RuntimeException {
/**
@@ -58,7 +61,8 @@
* @param message
* @param cause
*/
- public InvalidPathException( String message, Throwable cause ) {
+ public InvalidPathException( String message,
+ Throwable cause ) {
super(message, cause);
}
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/InvalidPathExpressionException.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/InvalidPathExpressionException.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/InvalidPathExpressionException.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,9 +23,12 @@
*/
package org.jboss.dna.graph.property;
+import net.jcip.annotations.Immutable;
+
/**
- * @author Randall Hauch
+ * A runtime exception that represents that an invalid {@link PathExpression path expression} was specified.
*/
+@Immutable
public class InvalidPathExpressionException extends RuntimeException {
/**
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/IoException.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/IoException.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/IoException.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,10 +23,12 @@
*/
package org.jboss.dna.graph.property;
+import net.jcip.annotations.Immutable;
+
/**
- * @author Randall Hauch
- * @author John Verhaeg
+ * A runtime exception that represents that an error occurred during input/output.
*/
+@Immutable
public class IoException extends RuntimeException {
/**
@@ -60,7 +62,7 @@
* @param cause
*/
public IoException( String message,
- Throwable cause ) {
+ Throwable cause ) {
super(message, cause);
}
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/Name.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/Name.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/Name.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,8 +28,6 @@
/**
* A qualified name consisting of a namespace and a local name.
- *
- * @author Randall Hauch
*/
@Immutable
public interface Name extends Comparable<Name>, Serializable, Readable {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/NameFactory.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/NameFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/NameFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,13 +23,13 @@
*/
package org.jboss.dna.graph.property;
+import net.jcip.annotations.ThreadSafe;
import org.jboss.dna.common.text.TextDecoder;
/**
* A factory for creating {@link Name names}.
- *
- * @author Randall Hauch
*/
+@ThreadSafe
public interface NameFactory extends ValueFactory<Name> {
/**
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/NamespaceException.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/NamespaceException.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/NamespaceException.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,9 +23,12 @@
*/
package org.jboss.dna.graph.property;
+import net.jcip.annotations.Immutable;
+
/**
- * @author Randall Hauch
+ * A runtime exception denoting that a namespace was invalid or not found.
*/
+@Immutable
public class NamespaceException extends RuntimeException {
/**
@@ -58,7 +61,8 @@
* @param message
* @param cause
*/
- public NamespaceException( String message, Throwable cause ) {
+ public NamespaceException( String message,
+ Throwable cause ) {
super(message, cause);
}
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/NamespaceRegistry.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/NamespaceRegistry.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/NamespaceRegistry.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -29,8 +29,6 @@
/**
* Registry of namespaces, which are used to provide isolated and independent domains for {@link Name names}.
- *
- * @author Randall Hauch
*/
@ThreadSafe
public interface NamespaceRegistry {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/Path.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/Path.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/Path.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -69,9 +69,6 @@
* {@link #isAncestorOf(Path) ancestor} or {@link #isDecendantOf(Path) decendent} of another path, and
* {@link #getCommonAncestor(Path) finding a common ancestor}.
* </p>
- *
- * @author Randall Hauch
- * @author John Verhaeg
*/
@Immutable
public interface Path extends Comparable<Path>, Iterable<Path.Segment>, Serializable, Readable {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/PathExpression.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/PathExpression.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/PathExpression.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -142,8 +142,6 @@
* 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.
* </p>
- *
- * @author Randall Hauch
*/
@Immutable
public class PathExpression implements Serializable {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/PathFactory.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/PathFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/PathFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,15 +23,14 @@
*/
package org.jboss.dna.graph.property;
+import net.jcip.annotations.ThreadSafe;
import org.jboss.dna.common.text.TextDecoder;
/**
* A factory for creating {@link Path paths}. This interface extends the {@link ValueFactory} generic interface and adds specific
* methods for creating paths (and relative paths) from a series of names, segments, or combinations.
- *
- * @author Randall Hauch
- * @author John Verhaeg
*/
+@ThreadSafe
public interface PathFactory extends ValueFactory<Path> {
/**
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/PathNotFoundException.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/PathNotFoundException.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/PathNotFoundException.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,12 +23,15 @@
*/
package org.jboss.dna.graph.property;
+import net.jcip.annotations.Immutable;
import org.jboss.dna.graph.GraphI18n;
import org.jboss.dna.graph.Location;
/**
- * @author Randall Hauch
+ * A runtime exception denoting that a node or property at a supplied {@link Path path} was not found. This exception does contain
+ * the lowest ancestor of the path that was found to exist.
*/
+@Immutable
public class PathNotFoundException extends RuntimeException {
/**
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/Property.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/Property.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/Property.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -54,8 +54,6 @@
* heterogeneous values, so casting may not always work. Also, this technique guarantees that the values are properly converted if
* the type is not what you expected.
* </p>
- *
- * @author Randall Hauch
*/
@Immutable
public interface Property extends Iterable<Object>, Comparable<Property>, Readable {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/PropertyFactory.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/PropertyFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/PropertyFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,10 +24,12 @@
package org.jboss.dna.graph.property;
import java.util.Iterator;
+import net.jcip.annotations.ThreadSafe;
/**
- * @author Randall Hauch
+ * A factory for creating {@link Property} objects.
*/
+@ThreadSafe
public interface PropertyFactory {
/**
* Create a property with the supplied name and values
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/PropertyType.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/PropertyType.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/PropertyType.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -39,8 +39,7 @@
import org.jboss.dna.graph.GraphI18n;
/**
- * @author Randall Hauch
- * @author John Verhaeg
+ * The data types for property values.
*/
@Immutable
public enum PropertyType {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/Reference.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/Reference.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/Reference.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -29,7 +29,6 @@
/**
* A representation of a reference to another node. Node references may not necessarily resolve to an existing node.
- * @author Randall Hauch
*/
@Immutable
public interface Reference extends Comparable<Reference>, Serializable {
@@ -37,6 +36,7 @@
/**
* Get the string form of the Reference. The {@link Path#DEFAULT_ENCODER default encoder} is used to encode characters in the
* reference.
+ *
* @return the encoded string
* @see #getString(TextEncoder)
*/
@@ -44,6 +44,7 @@
/**
* Get the encoded string form of the Reference, using the supplied encoder to encode characters in the reference.
+ *
* @param encoder the encoder to use, or null if the {@link Path#DEFAULT_ENCODER default encoder} should be used
* @return the encoded string
* @see #getString()
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/ReferentialIntegrityException.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/ReferentialIntegrityException.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/ReferentialIntegrityException.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,11 +28,13 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import net.jcip.annotations.Immutable;
import org.jboss.dna.graph.Location;
/**
- * @author Randall Hauch
+ * A runtime exception denoting that an operation could not be performed because it would leave references in an invalid state.
*/
+@Immutable
public class ReferentialIntegrityException extends RuntimeException {
/**
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/UuidFactory.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/UuidFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/UuidFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,13 +24,13 @@
package org.jboss.dna.graph.property;
import java.util.UUID;
+import net.jcip.annotations.ThreadSafe;
/**
* A factory for creating {@link UUID UUID instances}. This interface extends the {@link ValueFactory} generic interface and adds
* specific methods for creating UUIDs.
- *
- * @author Randall Hauch
*/
+@ThreadSafe
public interface UuidFactory extends ValueFactory<UUID> {
/**
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/ValueComparators.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/ValueComparators.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/ValueComparators.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -31,13 +31,17 @@
import java.util.Comparator;
import java.util.Date;
import java.util.UUID;
+import net.jcip.annotations.Immutable;
import org.jboss.dna.common.util.SecureHash;
import org.jboss.dna.graph.GraphI18n;
import org.jboss.dna.graph.property.basic.StringValueFactory;
/**
- * @author Randall Hauch
+ * A set of {@link Comparator} objects for the different kinds of property values.
+ *
+ * @see PropertyType#getComparator()
*/
+@Immutable
public class ValueComparators {
/**
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/ValueFactories.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/ValueFactories.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/ValueFactories.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -25,12 +25,12 @@
import java.math.BigDecimal;
import java.net.URI;
+import net.jcip.annotations.ThreadSafe;
/**
* The set of standard {@link ValueFactory} instances.
- *
- * @author Randall Hauch
*/
+@ThreadSafe
public interface ValueFactories extends Iterable<ValueFactory<?>> {
/**
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/ValueFactory.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/ValueFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/ValueFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -32,6 +32,7 @@
import java.util.Date;
import java.util.Iterator;
import java.util.UUID;
+import net.jcip.annotations.ThreadSafe;
import org.jboss.dna.common.text.TextDecoder;
import org.jboss.dna.common.text.TextEncoder;
@@ -44,10 +45,9 @@
* <li>{@link IoException} - If an unexpected problem occurs during the conversion (such as an {@link IOException}).</li>
* </ul>
*
- * @author Randall Hauch
- * @author John Verhaeg
* @param <T> the type of value to create
*/
+@ThreadSafe
public interface ValueFactory<T> {
static final TextDecoder DEFAULT_DECODER = Path.NO_OP_DECODER;
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/ValueFormatException.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/ValueFormatException.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/ValueFormatException.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,9 +23,12 @@
*/
package org.jboss.dna.graph.property;
+import net.jcip.annotations.Immutable;
+
/**
- * @author Randall Hauch
+ * A runtime exception denoting that a value could not be converted to a specific type because of the value's format.
*/
+@Immutable
public class ValueFormatException extends RuntimeException {
/**
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/AbstractBinary.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/AbstractBinary.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/AbstractBinary.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -39,8 +39,6 @@
/**
* An abstract implementation of {@link Binary} that provides some common capabilities for other implementations.
- *
- * @author Randall Hauch
*/
@Immutable
public abstract class AbstractBinary implements Binary {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/AbstractBinaryValueFactory.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/AbstractBinaryValueFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/AbstractBinaryValueFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -51,9 +51,6 @@
/**
* An abstract {@link BinaryFactory} implementation that contains many general methods that are likely to be appropriate for many
* concrete implementations.
- *
- * @author Randall Hauch
- * @author John Verhaeg
*/
@Immutable
public abstract class AbstractBinaryValueFactory extends AbstractValueFactory<Binary> implements BinaryFactory {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/AbstractPath.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/AbstractPath.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/AbstractPath.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -29,6 +29,7 @@
import java.util.LinkedList;
import java.util.List;
import java.util.NoSuchElementException;
+import net.jcip.annotations.Immutable;
import net.jcip.annotations.NotThreadSafe;
import org.jboss.dna.common.CommonI18n;
import org.jboss.dna.common.text.TextEncoder;
@@ -44,9 +45,8 @@
* but it does provide implementations for most of the methods based upon a few abstract methods. For example, any implementaton
* that requires the {@link Path.Segment path's segments} are written to use the {@link #iterator()}, since that is likely more
* efficient for the majority of implementations.
- *
- * @author Randall Hauch
*/
+@Immutable
public abstract class AbstractPath implements Path {
/**
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/AbstractValueFactories.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/AbstractValueFactories.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/AbstractValueFactories.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,6 +24,7 @@
package org.jboss.dna.graph.property.basic;
import java.util.Iterator;
+import net.jcip.annotations.ThreadSafe;
import org.jboss.dna.common.util.CheckArg;
import org.jboss.dna.graph.property.PropertyType;
import org.jboss.dna.graph.property.ValueFactories;
@@ -33,9 +34,8 @@
* Abstract implementation of {@link ValueFactories} that implements all the methods other than the <code>get*Factory()</code>
* methods. Subclasses can simply implement these methods and inherit the {@link #iterator()}, {@link #getValueFactory(Object)}
* and {@link #getValueFactory(PropertyType)} method implementations.
- *
- * @author Randall Hauch
*/
+@ThreadSafe
public abstract class AbstractValueFactories implements ValueFactories {
/**
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/AbstractValueFactory.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/AbstractValueFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/AbstractValueFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -47,8 +47,6 @@
/**
* Abstract {@link ValueFactory}.
*
- * @author Randall Hauch
- * @author John Verhaeg
* @param <T> the property type
*/
@Immutable
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicEmptyProperty.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicEmptyProperty.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicEmptyProperty.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -31,8 +31,6 @@
/**
* An immutable version of a property that has no values. This is done for efficiency of the in-memory representation, since many
* properties will have just a single value, while others will have multiple values.
- *
- * @author Randall Hauch
*/
@Immutable
public class BasicEmptyProperty extends BasicProperty {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicMultiValueProperty.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicMultiValueProperty.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicMultiValueProperty.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -33,8 +33,6 @@
/**
* An immutable version of a property that has 2 or more values. This is done for efficiency of the in-memory representation,
* since many properties will have just a single value, while others will have multiple values.
- *
- * @author Randall Hauch
*/
@Immutable
public class BasicMultiValueProperty extends BasicProperty {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicName.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicName.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicName.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -33,9 +33,6 @@
/**
* A basic implementation of {@link Name}.
- *
- * @author Randall Hauch
- * @author John Verhaeg
*/
@Immutable
public class BasicName implements Name {
@@ -91,7 +88,7 @@
if (this.getLocalName().equals(Path.PARENT)) return Path.PARENT;
}
if (encoder == null) encoder = Path.DEFAULT_ENCODER;
-
+
if (namespaceUri.length() > 0) {
return "{" + encoder.encode(this.namespaceUri) + "}" + encoder.encode(this.localName);
}
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicNamespace.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicNamespace.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicNamespace.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,7 +28,7 @@
import org.jboss.dna.graph.property.NamespaceRegistry.Namespace;
/**
- * @author Randall Hauch
+ * Basic implementation of a {@link NamespaceRegistry} namespace.
*/
@Immutable
public class BasicNamespace implements NamespaceRegistry.Namespace {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicPath.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicPath.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicPath.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -35,9 +35,6 @@
/**
* A basic implementation of {@link Path}.
- *
- * @author Randall Hauch
- * @author John Verhaeg
*/
@Immutable
public class BasicPath extends AbstractPath {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicPathSegment.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicPathSegment.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicPathSegment.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -32,8 +32,6 @@
/**
* A basic implementation of {@link Path.Segment}.
- *
- * @author Randall Hauch
*/
@Immutable
public class BasicPathSegment implements Path.Segment {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicProperty.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicProperty.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicProperty.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -35,7 +35,7 @@
import org.jboss.dna.graph.property.ValueComparators;
/**
- * @author Randall Hauch
+ * An abstract {@link Property} implementation.
*/
@Immutable
public abstract class BasicProperty implements Property {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicPropertyFactory.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicPropertyFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicPropertyFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -27,6 +27,7 @@
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
+import net.jcip.annotations.Immutable;
import org.jboss.dna.common.util.CheckArg;
import org.jboss.dna.graph.property.Name;
import org.jboss.dna.graph.property.Property;
@@ -36,8 +37,9 @@
import org.jboss.dna.graph.property.ValueFactory;
/**
- * @author Randall Hauch
+ * A basic {@link PropertyFactory} implementation.
*/
+@Immutable
public class BasicPropertyFactory implements PropertyFactory {
private final ValueFactories factories;
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicSingleValueProperty.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicSingleValueProperty.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BasicSingleValueProperty.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -31,8 +31,6 @@
/**
* An immutable version of a property that has exactly 1 value. This is done for efficiency of the in-memory representation, since
* many properties will have just a single value, while others will have multiple values.
- *
- * @author Randall Hauch
*/
@Immutable
public class BasicSingleValueProperty extends BasicProperty {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BooleanValueFactory.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BooleanValueFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/BooleanValueFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -45,9 +45,6 @@
/**
* The standard {@link ValueFactory} for {@link PropertyType#BOOLEAN} values.
- *
- * @author Randall Hauch
- * @author John Verhaeg
*/
@Immutable
public class BooleanValueFactory extends AbstractValueFactory<Boolean> {
@@ -78,9 +75,10 @@
* {@inheritDoc}
*/
public Boolean create( int value ) {
- throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Integer.class.getSimpleName(),
- value));
+ throw new ValueFormatException(value, getPropertyType(),
+ GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
+ Integer.class.getSimpleName(),
+ value));
}
/**
@@ -88,8 +86,8 @@
*/
public Boolean create( long value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Long.class.getSimpleName(),
- value));
+ Long.class.getSimpleName(),
+ value));
}
/**
@@ -104,8 +102,8 @@
*/
public Boolean create( float value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Float.class.getSimpleName(),
- value));
+ Float.class.getSimpleName(),
+ value));
}
/**
@@ -113,8 +111,8 @@
*/
public Boolean create( double value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Double.class.getSimpleName(),
- value));
+ Double.class.getSimpleName(),
+ value));
}
/**
@@ -123,17 +121,18 @@
public Boolean create( BigDecimal value ) {
throw new ValueFormatException(value, getPropertyType(),
GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- BigDecimal.class.getSimpleName(),
- value));
+ BigDecimal.class.getSimpleName(),
+ value));
}
/**
* {@inheritDoc}
*/
public Boolean create( Calendar value ) {
- throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Calendar.class.getSimpleName(),
- value));
+ throw new ValueFormatException(value, getPropertyType(),
+ GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
+ Calendar.class.getSimpleName(),
+ value));
}
/**
@@ -141,8 +140,8 @@
*/
public Boolean create( Date value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Date.class.getSimpleName(),
- value));
+ Date.class.getSimpleName(),
+ value));
}
/**
@@ -151,9 +150,10 @@
* @see org.jboss.dna.graph.property.ValueFactory#create(org.jboss.dna.graph.property.DateTime)
*/
public Boolean create( DateTime value ) throws ValueFormatException {
- throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- DateTime.class.getSimpleName(),
- value));
+ throw new ValueFormatException(value, getPropertyType(),
+ GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
+ DateTime.class.getSimpleName(),
+ value));
}
/**
@@ -161,8 +161,8 @@
*/
public Boolean create( Name value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Name.class.getSimpleName(),
- value));
+ Name.class.getSimpleName(),
+ value));
}
/**
@@ -170,8 +170,8 @@
*/
public Boolean create( Path value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Path.class.getSimpleName(),
- value));
+ Path.class.getSimpleName(),
+ value));
}
/**
@@ -180,8 +180,8 @@
public Boolean create( Reference value ) {
throw new ValueFormatException(value, getPropertyType(),
GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Reference.class.getSimpleName(),
- value));
+ Reference.class.getSimpleName(),
+ value));
}
/**
@@ -189,8 +189,8 @@
*/
public Boolean create( URI value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- URI.class.getSimpleName(),
- value));
+ URI.class.getSimpleName(),
+ value));
}
/**
@@ -200,8 +200,8 @@
*/
public Boolean create( UUID value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- UUID.class.getSimpleName(),
- value));
+ UUID.class.getSimpleName(),
+ value));
}
/**
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/ChildPath.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/ChildPath.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/ChildPath.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,6 +28,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.NoSuchElementException;
+import net.jcip.annotations.Immutable;
import org.jboss.dna.common.collection.ImmutableAppendedList;
import org.jboss.dna.common.util.CheckArg;
import org.jboss.dna.graph.property.Path;
@@ -35,9 +36,8 @@
/**
* Implementation of a {@link Path} that has the information for the last segment but that points to another Path for the parent
* information.
- *
- * @author Randall Hauch
*/
+@Immutable
public class ChildPath extends AbstractPath {
/**
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/DecimalValueFactory.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/DecimalValueFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/DecimalValueFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -45,9 +45,6 @@
/**
* The standard {@link ValueFactory} for {@link PropertyType#DECIMAL} values.
- *
- * @author Randall Hauch
- * @author John Verhaeg
*/
@Immutable
public class DecimalValueFactory extends AbstractValueFactory<BigDecimal> {
@@ -67,8 +64,8 @@
} catch (NumberFormatException err) {
throw new ValueFormatException(value, getPropertyType(),
GraphI18n.errorConvertingType.text(String.class.getSimpleName(),
- BigDecimal.class.getSimpleName(),
- value), err);
+ BigDecimal.class.getSimpleName(),
+ value), err);
}
}
@@ -99,9 +96,10 @@
* {@inheritDoc}
*/
public BigDecimal create( boolean value ) {
- throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Boolean.class.getSimpleName(),
- value));
+ throw new ValueFormatException(value, getPropertyType(),
+ GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
+ Boolean.class.getSimpleName(),
+ value));
}
/**
@@ -156,8 +154,8 @@
*/
public BigDecimal create( Name value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Name.class.getSimpleName(),
- value));
+ Name.class.getSimpleName(),
+ value));
}
/**
@@ -165,8 +163,8 @@
*/
public BigDecimal create( Path value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Path.class.getSimpleName(),
- value));
+ Path.class.getSimpleName(),
+ value));
}
/**
@@ -175,8 +173,8 @@
public BigDecimal create( Reference value ) {
throw new ValueFormatException(value, getPropertyType(),
GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Reference.class.getSimpleName(),
- value));
+ Reference.class.getSimpleName(),
+ value));
}
/**
@@ -184,8 +182,8 @@
*/
public BigDecimal create( URI value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- URI.class.getSimpleName(),
- value));
+ URI.class.getSimpleName(),
+ value));
}
/**
@@ -195,8 +193,8 @@
*/
public BigDecimal create( UUID value ) throws IoException {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- UUID.class.getSimpleName(),
- value));
+ UUID.class.getSimpleName(),
+ value));
}
/**
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/DelegatingValueFactories.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/DelegatingValueFactories.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/DelegatingValueFactories.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -25,6 +25,7 @@
import java.math.BigDecimal;
import java.net.URI;
+import net.jcip.annotations.Immutable;
import org.jboss.dna.graph.property.BinaryFactory;
import org.jboss.dna.graph.property.DateTimeFactory;
import org.jboss.dna.graph.property.NameFactory;
@@ -35,8 +36,9 @@
import org.jboss.dna.graph.property.ValueFactory;
/**
- * @author Randall Hauch
+ * A {@link ValueFactories} implementation that delegates to another instance, and that is often useful for subclassing.
*/
+@Immutable
public class DelegatingValueFactories extends AbstractValueFactories {
private final ValueFactories delegate;
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/DoubleValueFactory.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/DoubleValueFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/DoubleValueFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -45,9 +45,6 @@
/**
* The standard {@link ValueFactory} for {@link PropertyType#DOUBLE} values.
- *
- * @author Randall Hauch
- * @author John Verhaeg
*/
@Immutable
public class DoubleValueFactory extends AbstractValueFactory<Double> {
@@ -67,8 +64,8 @@
} catch (NumberFormatException err) {
throw new ValueFormatException(value, getPropertyType(),
GraphI18n.errorConvertingType.text(String.class.getSimpleName(),
- Double.class.getSimpleName(),
- value), err);
+ Double.class.getSimpleName(),
+ value), err);
}
}
@@ -100,8 +97,8 @@
*/
public Double create( boolean value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Double.class.getSimpleName(),
- value));
+ Double.class.getSimpleName(),
+ value));
}
/**
@@ -127,8 +124,8 @@
if (result == Double.NEGATIVE_INFINITY || result == Double.POSITIVE_INFINITY) {
throw new ValueFormatException(value, getPropertyType(),
GraphI18n.errorConvertingType.text(BigDecimal.class.getSimpleName(),
- Double.class.getSimpleName(),
- value));
+ Double.class.getSimpleName(),
+ value));
}
return result;
}
@@ -164,8 +161,8 @@
*/
public Double create( Name value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Name.class.getSimpleName(),
- value));
+ Name.class.getSimpleName(),
+ value));
}
/**
@@ -173,8 +170,8 @@
*/
public Double create( Path value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Path.class.getSimpleName(),
- value));
+ Path.class.getSimpleName(),
+ value));
}
/**
@@ -183,8 +180,8 @@
public Double create( Reference value ) {
throw new ValueFormatException(value, getPropertyType(),
GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Reference.class.getSimpleName(),
- value));
+ Reference.class.getSimpleName(),
+ value));
}
/**
@@ -192,8 +189,8 @@
*/
public Double create( URI value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- URI.class.getSimpleName(),
- value));
+ URI.class.getSimpleName(),
+ value));
}
/**
@@ -203,8 +200,8 @@
*/
public Double create( UUID value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- UUID.class.getSimpleName(),
- value));
+ UUID.class.getSimpleName(),
+ value));
}
/**
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/InMemoryBinary.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/InMemoryBinary.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/InMemoryBinary.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -31,8 +31,6 @@
/**
* An implementation of {@link Binary} that keeps the binary data in-memory.
- *
- * @author Randall Hauch
*/
@Immutable
public class InMemoryBinary extends AbstractBinary {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/InMemoryBinaryValueFactory.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/InMemoryBinaryValueFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/InMemoryBinaryValueFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -34,8 +34,6 @@
* <p>
* This factory does not {@link #find(byte[]) reuse} any instances.
* </p>
- *
- * @author Randall Hauch
*/
@Immutable
public class InMemoryBinaryValueFactory extends AbstractBinaryValueFactory {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/JodaDateTime.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/JodaDateTime.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/JodaDateTime.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -36,8 +36,6 @@
/**
* Implementation of DateTime based upon the Joda-Time library.
- *
- * @author Randall Hauch
*/
@Immutable
public class JodaDateTime implements org.jboss.dna.graph.property.DateTime {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/JodaDateTimeValueFactory.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/JodaDateTimeValueFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/JodaDateTimeValueFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -47,9 +47,6 @@
/**
* The standard {@link ValueFactory} for {@link PropertyType#DATE} values.
- *
- * @author Randall Hauch
- * @author John Verhaeg
*/
@Immutable
public class JodaDateTimeValueFactory extends AbstractValueFactory<DateTime> implements DateTimeFactory {
@@ -69,8 +66,8 @@
} catch (IllegalArgumentException err) {
throw new ValueFormatException(value, getPropertyType(),
GraphI18n.errorConvertingType.text(String.class.getSimpleName(),
- DateTime.class.getSimpleName(),
- value), err);
+ DateTime.class.getSimpleName(),
+ value), err);
}
}
@@ -102,8 +99,8 @@
*/
public DateTime create( boolean value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Date.class.getSimpleName(),
- value));
+ Date.class.getSimpleName(),
+ value));
}
/**
@@ -158,8 +155,8 @@
*/
public DateTime create( Name value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Name.class.getSimpleName(),
- value));
+ Name.class.getSimpleName(),
+ value));
}
/**
@@ -167,8 +164,8 @@
*/
public DateTime create( Path value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Path.class.getSimpleName(),
- value));
+ Path.class.getSimpleName(),
+ value));
}
/**
@@ -177,8 +174,8 @@
public DateTime create( Reference value ) {
throw new ValueFormatException(value, getPropertyType(),
GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Reference.class.getSimpleName(),
- value));
+ Reference.class.getSimpleName(),
+ value));
}
/**
@@ -186,8 +183,8 @@
*/
public DateTime create( URI value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- URI.class.getSimpleName(),
- value));
+ URI.class.getSimpleName(),
+ value));
}
/**
@@ -197,8 +194,8 @@
*/
public DateTime create( UUID value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- UUID.class.getSimpleName(),
- value));
+ UUID.class.getSimpleName(),
+ value));
}
/**
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/LocalNamespaceRegistry.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/LocalNamespaceRegistry.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/LocalNamespaceRegistry.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -33,7 +33,8 @@
import org.jboss.dna.graph.property.NamespaceRegistry;
/**
- * @author Randall Hauch
+ * A special {@link NamespaceRegistry} implementation that can be used to track transient registrations for another delegate
+ * registry.
*/
@ThreadSafe
public class LocalNamespaceRegistry extends SimpleNamespaceRegistry {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/LongValueFactory.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/LongValueFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/LongValueFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -45,9 +45,6 @@
/**
* The standard {@link ValueFactory} for {@link PropertyType#LONG} values.
- *
- * @author Randall Hauch
- * @author John Verhaeg
*/
@Immutable
public class LongValueFactory extends AbstractValueFactory<Long> {
@@ -67,8 +64,8 @@
} catch (NumberFormatException err) {
throw new ValueFormatException(value, getPropertyType(),
GraphI18n.errorConvertingType.text(String.class.getSimpleName(),
- Long.class.getSimpleName(),
- value), err);
+ Long.class.getSimpleName(),
+ value), err);
}
}
@@ -100,8 +97,8 @@
*/
public Long create( boolean value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Long.class.getSimpleName(),
- value));
+ Long.class.getSimpleName(),
+ value));
}
/**
@@ -157,8 +154,8 @@
*/
public Long create( Name value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Name.class.getSimpleName(),
- value));
+ Name.class.getSimpleName(),
+ value));
}
/**
@@ -166,8 +163,8 @@
*/
public Long create( Path value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Path.class.getSimpleName(),
- value));
+ Path.class.getSimpleName(),
+ value));
}
/**
@@ -176,8 +173,8 @@
public Long create( Reference value ) {
throw new ValueFormatException(value, getPropertyType(),
GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Reference.class.getSimpleName(),
- value));
+ Reference.class.getSimpleName(),
+ value));
}
/**
@@ -185,8 +182,8 @@
*/
public Long create( URI value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- URI.class.getSimpleName(),
- value));
+ URI.class.getSimpleName(),
+ value));
}
/**
@@ -196,8 +193,8 @@
*/
public Long create( UUID value ) throws IoException {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- UUID.class.getSimpleName(),
- value));
+ UUID.class.getSimpleName(),
+ value));
}
/**
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/NameValueFactory.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/NameValueFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/NameValueFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -51,9 +51,6 @@
/**
* The standard {@link ValueFactory} for {@link PropertyType#NAME} values.
- *
- * @author Randall Hauch
- * @author John Verhaeg
*/
@Immutable
public class NameValueFactory extends AbstractValueFactory<Name> implements NameFactory {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/ObjectValueFactory.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/ObjectValueFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/ObjectValueFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -45,9 +45,6 @@
/**
* The standard {@link ValueFactory} for {@link PropertyType#OBJECT} values.
- *
- * @author Randall Hauch
- * @author John Verhaeg
*/
@Immutable
public class ObjectValueFactory extends AbstractValueFactory<Object> {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/PathValueFactory.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/PathValueFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/PathValueFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -52,9 +52,6 @@
/**
* The standard {@link ValueFactory} for {@link PropertyType#NAME} values.
- *
- * @author Randall Hauch
- * @author John Verhaeg
*/
@Immutable
public class PathValueFactory extends AbstractValueFactory<Path> implements PathFactory {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/RootPath.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/RootPath.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/RootPath.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -38,8 +38,6 @@
/**
* Optimized implementation of {@link Path} that serves as the root path.
- *
- * @author Randall Hauch
*/
@Immutable
public class RootPath extends AbstractPath {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/SimpleNamespaceRegistry.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/SimpleNamespaceRegistry.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/SimpleNamespaceRegistry.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -37,8 +37,6 @@
/**
* A simple {@link NamespaceRegistry} implementation that is not thread-safe, but that provides all the basic functionality.
- *
- * @author Randall Hauch
*/
@NotThreadSafe
public class SimpleNamespaceRegistry implements NamespaceRegistry {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/StandardValueFactories.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/StandardValueFactories.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/StandardValueFactories.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -43,8 +43,6 @@
/**
* The standard set of {@link ValueFactory value factories}.
- *
- * @author Randall Hauch
*/
@Immutable
public class StandardValueFactories extends AbstractValueFactories {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/StringValueFactory.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/StringValueFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/StringValueFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -52,9 +52,6 @@
/**
* The standard {@link ValueFactory} for {@link PropertyType#STRING} values.
- *
- * @author Randall Hauch
- * @author John Verhaeg
*/
@Immutable
public class StringValueFactory extends AbstractValueFactory<String> {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/ThreadSafeNamespaceRegistry.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/ThreadSafeNamespaceRegistry.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/ThreadSafeNamespaceRegistry.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -37,8 +37,6 @@
/**
* A thread-safe {@link NamespaceRegistry} that may be used as a thread-safe wrapper around another non-thread-safe
* implementation.
- *
- * @author Randall Hauch
*/
@ThreadSafe
public class ThreadSafeNamespaceRegistry implements NamespaceRegistry {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/UriValueFactory.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/UriValueFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/UriValueFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -48,9 +48,6 @@
/**
* The standard {@link ValueFactory} for {@link PropertyType#URI} values.
- *
- * @author Randall Hauch
- * @author John Verhaeg
*/
@Immutable
public class UriValueFactory extends AbstractValueFactory<URI> {
@@ -75,8 +72,8 @@
} catch (URISyntaxException err) {
throw new ValueFormatException(value, getPropertyType(),
GraphI18n.errorConvertingType.text(String.class.getSimpleName(),
- URI.class.getSimpleName(),
- value), err);
+ URI.class.getSimpleName(),
+ value), err);
}
}
@@ -93,9 +90,10 @@
* {@inheritDoc}
*/
public URI create( int value ) {
- throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Integer.class.getSimpleName(),
- value));
+ throw new ValueFormatException(value, getPropertyType(),
+ GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
+ Integer.class.getSimpleName(),
+ value));
}
/**
@@ -103,17 +101,18 @@
*/
public URI create( long value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Long.class.getSimpleName(),
- value));
+ Long.class.getSimpleName(),
+ value));
}
/**
* {@inheritDoc}
*/
public URI create( boolean value ) {
- throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Boolean.class.getSimpleName(),
- value));
+ throw new ValueFormatException(value, getPropertyType(),
+ GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
+ Boolean.class.getSimpleName(),
+ value));
}
/**
@@ -121,8 +120,8 @@
*/
public URI create( float value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Float.class.getSimpleName(),
- value));
+ Float.class.getSimpleName(),
+ value));
}
/**
@@ -130,8 +129,8 @@
*/
public URI create( double value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Double.class.getSimpleName(),
- value));
+ Double.class.getSimpleName(),
+ value));
}
/**
@@ -140,17 +139,18 @@
public URI create( BigDecimal value ) {
throw new ValueFormatException(value, getPropertyType(),
GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- BigDecimal.class.getSimpleName(),
- value));
+ BigDecimal.class.getSimpleName(),
+ value));
}
/**
* {@inheritDoc}
*/
public URI create( Calendar value ) {
- throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Calendar.class.getSimpleName(),
- value));
+ throw new ValueFormatException(value, getPropertyType(),
+ GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
+ Calendar.class.getSimpleName(),
+ value));
}
/**
@@ -158,8 +158,8 @@
*/
public URI create( Date value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Date.class.getSimpleName(),
- value));
+ Date.class.getSimpleName(),
+ value));
}
/**
@@ -168,9 +168,10 @@
* @see org.jboss.dna.graph.property.ValueFactory#create(org.jboss.dna.graph.property.DateTime)
*/
public URI create( DateTime value ) throws ValueFormatException {
- throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- DateTime.class.getSimpleName(),
- value));
+ throw new ValueFormatException(value, getPropertyType(),
+ GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
+ DateTime.class.getSimpleName(),
+ value));
}
/**
@@ -198,8 +199,8 @@
public URI create( Reference value ) {
throw new ValueFormatException(value, getPropertyType(),
GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Reference.class.getSimpleName(),
- value));
+ Reference.class.getSimpleName(),
+ value));
}
/**
@@ -209,8 +210,8 @@
*/
public URI create( UUID value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- UUID.class.getSimpleName(),
- value));
+ UUID.class.getSimpleName(),
+ value));
}
/**
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/UuidReference.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/UuidReference.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/UuidReference.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -30,7 +30,7 @@
import org.jboss.dna.graph.property.Reference;
/**
- * @author Randall Hauch
+ * A {@link Reference} implementation that uses a single {@link UUID} as the pointer.
*/
@Immutable
public class UuidReference implements Reference {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/UuidReferenceValueFactory.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/UuidReferenceValueFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/UuidReferenceValueFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -45,9 +45,6 @@
/**
* The standard {@link ValueFactory} for {@link PropertyType#REFERENCE} values.
- *
- * @author Randall Hauch
- * @author John Verhaeg
*/
@Immutable
public class UuidReferenceValueFactory extends AbstractValueFactory<Reference> {
@@ -68,8 +65,8 @@
} catch (IllegalArgumentException err) {
throw new ValueFormatException(value, getPropertyType(),
GraphI18n.errorConvertingType.text(String.class.getSimpleName(),
- Reference.class.getSimpleName(),
- value), err);
+ Reference.class.getSimpleName(),
+ value), err);
}
}
@@ -86,9 +83,10 @@
* {@inheritDoc}
*/
public Reference create( int value ) {
- throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Integer.class.getSimpleName(),
- value));
+ throw new ValueFormatException(value, getPropertyType(),
+ GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
+ Integer.class.getSimpleName(),
+ value));
}
/**
@@ -96,17 +94,18 @@
*/
public Reference create( long value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Long.class.getSimpleName(),
- value));
+ Long.class.getSimpleName(),
+ value));
}
/**
* {@inheritDoc}
*/
public Reference create( boolean value ) {
- throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Boolean.class.getSimpleName(),
- value));
+ throw new ValueFormatException(value, getPropertyType(),
+ GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
+ Boolean.class.getSimpleName(),
+ value));
}
/**
@@ -114,8 +113,8 @@
*/
public Reference create( float value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Float.class.getSimpleName(),
- value));
+ Float.class.getSimpleName(),
+ value));
}
/**
@@ -123,8 +122,8 @@
*/
public Reference create( double value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Double.class.getSimpleName(),
- value));
+ Double.class.getSimpleName(),
+ value));
}
/**
@@ -133,17 +132,18 @@
public Reference create( BigDecimal value ) {
throw new ValueFormatException(value, getPropertyType(),
GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- BigDecimal.class.getSimpleName(),
- value));
+ BigDecimal.class.getSimpleName(),
+ value));
}
/**
* {@inheritDoc}
*/
public Reference create( Calendar value ) {
- throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Calendar.class.getSimpleName(),
- value));
+ throw new ValueFormatException(value, getPropertyType(),
+ GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
+ Calendar.class.getSimpleName(),
+ value));
}
/**
@@ -151,8 +151,8 @@
*/
public Reference create( Date value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Date.class.getSimpleName(),
- value));
+ Date.class.getSimpleName(),
+ value));
}
/**
@@ -161,9 +161,10 @@
* @see org.jboss.dna.graph.property.ValueFactory#create(org.jboss.dna.graph.property.DateTime)
*/
public Reference create( DateTime value ) throws ValueFormatException {
- throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- DateTime.class.getSimpleName(),
- value));
+ throw new ValueFormatException(value, getPropertyType(),
+ GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
+ DateTime.class.getSimpleName(),
+ value));
}
/**
@@ -171,8 +172,8 @@
*/
public Reference create( Name value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Name.class.getSimpleName(),
- value));
+ Name.class.getSimpleName(),
+ value));
}
/**
@@ -180,8 +181,8 @@
*/
public Reference create( Path value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Path.class.getSimpleName(),
- value));
+ Path.class.getSimpleName(),
+ value));
}
/**
@@ -206,8 +207,8 @@
*/
public Reference create( URI value ) {
throw new ValueFormatException(value, getPropertyType(), GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Date.class.getSimpleName(),
- value));
+ Date.class.getSimpleName(),
+ value));
}
/**
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/UuidValueFactory.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/UuidValueFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/basic/UuidValueFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -46,9 +46,6 @@
/**
* The standard {@link ValueFactory} for {@link PropertyType#URI} values.
- *
- * @author Randall Hauch
- * @author John Verhaeg
*/
@Immutable
public class UuidValueFactory extends AbstractValueFactory<UUID> implements UuidFactory {
@@ -78,8 +75,8 @@
} catch (IllegalArgumentException err) {
throw new ValueFormatException(value, PropertyType.UUID,
GraphI18n.errorConvertingType.text(String.class.getSimpleName(),
- URI.class.getSimpleName(),
- value), err);
+ URI.class.getSimpleName(),
+ value), err);
}
}
@@ -96,9 +93,10 @@
* {@inheritDoc}
*/
public UUID create( int value ) {
- throw new ValueFormatException(value, PropertyType.UUID, GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Integer.class.getSimpleName(),
- value));
+ throw new ValueFormatException(value, PropertyType.UUID,
+ GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
+ Integer.class.getSimpleName(),
+ value));
}
/**
@@ -106,17 +104,18 @@
*/
public UUID create( long value ) {
throw new ValueFormatException(value, PropertyType.UUID, GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Long.class.getSimpleName(),
- value));
+ Long.class.getSimpleName(),
+ value));
}
/**
* {@inheritDoc}
*/
public UUID create( boolean value ) {
- throw new ValueFormatException(value, PropertyType.UUID, GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Boolean.class.getSimpleName(),
- value));
+ throw new ValueFormatException(value, PropertyType.UUID,
+ GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
+ Boolean.class.getSimpleName(),
+ value));
}
/**
@@ -124,8 +123,8 @@
*/
public UUID create( float value ) {
throw new ValueFormatException(value, PropertyType.UUID, GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Float.class.getSimpleName(),
- value));
+ Float.class.getSimpleName(),
+ value));
}
/**
@@ -133,8 +132,8 @@
*/
public UUID create( double value ) {
throw new ValueFormatException(value, PropertyType.UUID, GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Double.class.getSimpleName(),
- value));
+ Double.class.getSimpleName(),
+ value));
}
/**
@@ -143,17 +142,18 @@
public UUID create( BigDecimal value ) {
throw new ValueFormatException(value, PropertyType.UUID,
GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- BigDecimal.class.getSimpleName(),
- value));
+ BigDecimal.class.getSimpleName(),
+ value));
}
/**
* {@inheritDoc}
*/
public UUID create( Calendar value ) {
- throw new ValueFormatException(value, PropertyType.UUID, GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Calendar.class.getSimpleName(),
- value));
+ throw new ValueFormatException(value, PropertyType.UUID,
+ GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
+ Calendar.class.getSimpleName(),
+ value));
}
/**
@@ -161,8 +161,8 @@
*/
public UUID create( Date value ) {
throw new ValueFormatException(value, PropertyType.UUID, GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Date.class.getSimpleName(),
- value));
+ Date.class.getSimpleName(),
+ value));
}
/**
@@ -171,9 +171,10 @@
* @see org.jboss.dna.graph.property.ValueFactory#create(org.jboss.dna.graph.property.DateTime)
*/
public UUID create( DateTime value ) throws ValueFormatException {
- throw new ValueFormatException(value, PropertyType.UUID, GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- DateTime.class.getSimpleName(),
- value));
+ throw new ValueFormatException(value, PropertyType.UUID,
+ GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
+ DateTime.class.getSimpleName(),
+ value));
}
/**
@@ -181,8 +182,8 @@
*/
public UUID create( Name value ) {
throw new ValueFormatException(value, PropertyType.UUID, GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Name.class.getSimpleName(),
- value));
+ Name.class.getSimpleName(),
+ value));
}
/**
@@ -190,8 +191,8 @@
*/
public UUID create( Path value ) {
throw new ValueFormatException(value, PropertyType.UUID, GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Path.class.getSimpleName(),
- value));
+ Path.class.getSimpleName(),
+ value));
}
/**
@@ -204,8 +205,8 @@
}
throw new ValueFormatException(value, PropertyType.UUID,
GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- Reference.class.getSimpleName(),
- value));
+ Reference.class.getSimpleName(),
+ value));
}
/**
@@ -213,8 +214,8 @@
*/
public UUID create( URI value ) {
throw new ValueFormatException(value, PropertyType.UUID, GraphI18n.unableToCreateValue.text(getPropertyType().getName(),
- URI.class.getSimpleName(),
- value));
+ URI.class.getSimpleName(),
+ value));
}
/**
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/BatchRequestBuilder.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/BatchRequestBuilder.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/BatchRequestBuilder.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -27,6 +27,7 @@
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Map;
+import net.jcip.annotations.NotThreadSafe;
import org.jboss.dna.graph.Location;
import org.jboss.dna.graph.NodeConflictBehavior;
import org.jboss.dna.graph.connector.UuidAlreadyExistsException;
@@ -44,6 +45,7 @@
* remove and return the enqueued requests (as a {@link CompositeRequest} if there is more than one enqueued request).
* </p>
*/
+@NotThreadSafe
public class BatchRequestBuilder {
private LinkedList<Request> requests;
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/CacheableRequest.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/CacheableRequest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/CacheableRequest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -30,8 +30,6 @@
/**
* A request that contains results that may be cached.
- *
- * @author Randall Hauch
*/
@ThreadSafe
public abstract class CacheableRequest extends Request implements Cacheable {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/CloneBranchRequest.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/CloneBranchRequest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/CloneBranchRequest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -21,8 +21,6 @@
* new parent's children; nodes can be cloned to an exact location among the parent's children, replacing the existing node at
* that location.</li>
* </ol>
- *
- * @author Brian Carothers
*/
public class CloneBranchRequest extends ChangeRequest {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/CompositeRequest.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/CompositeRequest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/CompositeRequest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -41,8 +41,6 @@
* request has the effect of cancelling all other requests in the composite, including the composite. (This is implemented by
* having all {@link Request} objects in the composite share the same cancelled flag object.)
* </p>
- *
- * @author Randall Hauch
*/
@Immutable
public class CompositeRequest extends Request implements Iterable<Request> {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/CopyBranchRequest.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/CopyBranchRequest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/CopyBranchRequest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -37,7 +37,6 @@
* UUIDs for the copied nodes. {@link CloneBranchRequest Cloning a branch} provides functionality similar to copy, but with the
* ability to preserve UUIDs in the move.
*
- * @author Randall Hauch
* @see CloneBranchRequest
*/
public class CopyBranchRequest extends ChangeRequest {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/CreateNodeRequest.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/CreateNodeRequest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/CreateNodeRequest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -40,8 +40,6 @@
/**
* Instruction to create the node under the specified location. This command will create the node and set the initial properties.
- *
- * @author Randall Hauch
*/
public class CreateNodeRequest extends ChangeRequest implements Iterable<Property> {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/DeleteBranchRequest.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/DeleteBranchRequest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/DeleteBranchRequest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -31,8 +31,6 @@
/**
* Instruction that a branch be deleted.
- *
- * @author Randall Hauch
*/
public class DeleteBranchRequest extends ChangeRequest {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/InvalidRequestException.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/InvalidRequestException.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/InvalidRequestException.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,11 +23,12 @@
*/
package org.jboss.dna.graph.request;
+import net.jcip.annotations.Immutable;
+
/**
* Specifies that the request was invalid and could not be completed.
- *
- * @author Randall Hauch
*/
+@Immutable
public class InvalidRequestException extends RequestException {
/**
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/InvalidWorkspaceException.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/InvalidWorkspaceException.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/InvalidWorkspaceException.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,11 +23,12 @@
*/
package org.jboss.dna.graph.request;
+import net.jcip.annotations.Immutable;
+
/**
* Specifies that the request was invalid and could not be completed.
- *
- * @author Randall Hauch
*/
+@Immutable
public class InvalidWorkspaceException extends RequestException {
/**
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/MoveBranchRequest.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/MoveBranchRequest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/MoveBranchRequest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -33,8 +33,6 @@
/**
* Instruction that a branch be moved from one location into another.
- *
- * @author Randall Hauch
*/
public class MoveBranchRequest extends ChangeRequest {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/ReadAllChildrenRequest.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/ReadAllChildrenRequest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/ReadAllChildrenRequest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -36,8 +36,6 @@
/**
* Instruction to read all of the children of a node at a specific location.
- *
- * @author Randall Hauch
*/
public class ReadAllChildrenRequest extends CacheableRequest implements Iterable<Location> {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/ReadAllPropertiesRequest.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/ReadAllPropertiesRequest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/ReadAllPropertiesRequest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -37,8 +37,6 @@
/**
* Instruction to read the properties and the number of children of the node at the specifed location.
- *
- * @author Randall Hauch
*/
public class ReadAllPropertiesRequest extends CacheableRequest implements Iterable<Property> {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/ReadBlockOfChildrenRequest.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/ReadBlockOfChildrenRequest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/ReadBlockOfChildrenRequest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -40,7 +40,6 @@
* a large number of children.
*
* @see ReadNextBlockOfChildrenRequest
- * @author Randall Hauch
*/
public class ReadBlockOfChildrenRequest extends CacheableRequest {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/ReadBranchRequest.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/ReadBranchRequest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/ReadBranchRequest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -43,8 +43,6 @@
/**
* Instruction to read the properties and children of the nodes in the branch at the supplied location. The children of the nodes
* at the bottom of the branch are not read.
- *
- * @author Randall Hauch
*/
@NotThreadSafe
public class ReadBranchRequest extends CacheableRequest implements Iterable<Location> {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/ReadNextBlockOfChildrenRequest.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/ReadNextBlockOfChildrenRequest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/ReadNextBlockOfChildrenRequest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -40,7 +40,6 @@
* to be read.
*
* @see ReadBlockOfChildrenRequest
- * @author Randall Hauch
*/
public class ReadNextBlockOfChildrenRequest extends CacheableRequest {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/ReadNodeRequest.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/ReadNodeRequest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/ReadNodeRequest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -40,8 +40,6 @@
/**
* Instruction to read the properties and children of the node at the specifed location.
- *
- * @author Randall Hauch
*/
public class ReadNodeRequest extends CacheableRequest implements Iterable<Location> {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/ReadPropertyRequest.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/ReadPropertyRequest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/ReadPropertyRequest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -33,8 +33,6 @@
/**
* Instruction to read a single property on the node at the specified location.
- *
- * @author Randall Hauch
*/
public class ReadPropertyRequest extends CacheableRequest {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/RemovePropertyRequest.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/RemovePropertyRequest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/RemovePropertyRequest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -33,8 +33,6 @@
/**
* Instruction to remove the property with the supplied name from the node at the given location. This request has no net effect
* if the node does not contain a property with the supplied name.
- *
- * @author Randall Hauch
*/
public class RemovePropertyRequest extends ChangeRequest {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/RenameNodeRequest.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/RenameNodeRequest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/RenameNodeRequest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -33,8 +33,6 @@
/**
* Instruction to rename an existing node (but keep it under the same parent). The same-name-sibling index will be determined
* automatically, based upon it's current location within the list of children.
- *
- * @author Randall Hauch
*/
public class RenameNodeRequest extends ChangeRequest {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/Request.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/Request.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/Request.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -31,8 +31,6 @@
/**
* The abstract base class for all classes representing requests to be executed against a {@link RepositoryConnection}.
- *
- * @author Randall Hauch
*/
public abstract class Request implements Serializable {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/RequestException.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/RequestException.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/RequestException.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,11 +23,12 @@
*/
package org.jboss.dna.graph.request;
+import net.jcip.annotations.Immutable;
+
/**
* Specifies that the request was invalid and could not be completed.
- *
- * @author Randall Hauch
*/
+@Immutable
public class RequestException extends RuntimeException {
/**
@@ -61,7 +62,7 @@
* @param cause
*/
public RequestException( String message,
- Throwable cause ) {
+ Throwable cause ) {
super(message, cause);
}
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/SetPropertyRequest.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/SetPropertyRequest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/SetPropertyRequest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -34,8 +34,6 @@
/**
* Instruction to set a particular property on the node at the specified location. This request <i>never</i> removes the node,
* even if the property is empty.
- *
- * @author Randall Hauch
*/
public class SetPropertyRequest extends ChangeRequest {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/UnsupportedRequestException.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/UnsupportedRequestException.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/UnsupportedRequestException.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,11 +23,12 @@
*/
package org.jboss.dna.graph.request;
+import net.jcip.annotations.Immutable;
+
/**
* Specifies that the request was a type that is not supported.
- *
- * @author Randall Hauch
*/
+@Immutable
public class UnsupportedRequestException extends RequestException {
/**
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/UpdatePropertiesRequest.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/UpdatePropertiesRequest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/UpdatePropertiesRequest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -50,8 +50,6 @@
* {@link Property#isSingle()}, and {@link Property#isMultiple()}) has no influence on whether the property should be removed. It
* is possible for a property to have no values.
* </p>
- *
- * @author Randall Hauch
*/
public class UpdatePropertiesRequest extends ChangeRequest {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/VerifyNodeExistsRequest.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/VerifyNodeExistsRequest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/VerifyNodeExistsRequest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -30,8 +30,6 @@
/**
* Instruction to verify the existance of a node at the specified location. This request also returns the actual location.
- *
- * @author Randall Hauch
*/
public class VerifyNodeExistsRequest extends CacheableRequest {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/processor/LoggingRequestProcessor.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/processor/LoggingRequestProcessor.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/processor/LoggingRequestProcessor.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,6 +23,7 @@
*/
package org.jboss.dna.graph.request.processor;
+import net.jcip.annotations.Immutable;
import org.jboss.dna.common.util.CheckArg;
import org.jboss.dna.common.util.Logger;
import org.jboss.dna.graph.GraphI18n;
@@ -53,9 +54,8 @@
/**
* A {@link RequestProcessor} implementation that wraps another and that logs messages at the supplied level.
- *
- * @author Randall Hauch
*/
+@Immutable
public class LoggingRequestProcessor extends RequestProcessor {
private final RequestProcessor delegate;
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/sequencer/SequencerOutput.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/sequencer/SequencerOutput.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/sequencer/SequencerOutput.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,18 +28,15 @@
/**
* Interface for sequencers to use to generate their output.
- *
- * @author Randall Hauch
- * @author John Verhaeg
*/
public interface SequencerOutput {
/**
* Set the supplied property on the supplied node.
* <p>
- * The {@link StreamSequencerContext#getValueFactories() value factories} should be used to create paths, names, and values. These
- * factories can be used to create new values or convert values from one property type to another. (Note that each of the
- * factories have methods that create values from all of the property types.)
+ * The {@link StreamSequencerContext#getValueFactories() value factories} should be used to create paths, names, and values.
+ * These factories can be used to create new values or convert values from one property type to another. (Note that each of
+ * the factories have methods that create values from all of the property types.)
* </p>
* <p>
* This method is provided as a convenience, but it identical to creating a {@link Path} and {@link Name} using the
@@ -73,9 +70,9 @@
/**
* Set the supplied property on the supplied node.
* <p>
- * The {@link StreamSequencerContext#getValueFactories() value factories} should be used to create paths, names, and values. These
- * factories can be used to create new values or convert values from one property type to another. (Note that each of the
- * factories have methods that create values from all of the property types.)
+ * The {@link StreamSequencerContext#getValueFactories() value factories} should be used to create paths, names, and values.
+ * These factories can be used to create new values or convert values from one property type to another. (Note that each of
+ * the factories have methods that create values from all of the property types.)
* </p>
*
* @param nodePath the path to the node containing the property; may not be null
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/sequencer/StreamSequencer.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/sequencer/StreamSequencer.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/sequencer/StreamSequencer.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -31,9 +31,6 @@
* <p>
* Implementations must provide a no-argument constructor.
* </p>
- *
- * @author Randall Hauch
- * @author John Verhaeg
*/
public interface StreamSequencer {
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/sequencer/StreamSequencerContext.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/sequencer/StreamSequencerContext.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/sequencer/StreamSequencerContext.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,6 +28,7 @@
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
+import net.jcip.annotations.ThreadSafe;
import org.jboss.dna.common.collection.Problems;
import org.jboss.dna.common.collection.SimpleProblems;
import org.jboss.dna.graph.ExecutionContext;
@@ -36,8 +37,9 @@
import org.jboss.dna.graph.property.Property;
/**
- * @author John Verhaeg
+ * A special {@link ExecutionContext} that is used for sequencing streams.
*/
+@ThreadSafe
public class StreamSequencerContext extends ExecutionContext {
private final Path inputPath;
@@ -47,10 +49,10 @@
private final String mimeType;
public StreamSequencerContext( ExecutionContext context,
- Path inputPath,
- Set<Property> inputProperties,
- String mimeType,
- Problems problems ) {
+ Path inputPath,
+ Set<Property> inputProperties,
+ String mimeType,
+ Problems problems ) {
super(context);
this.inputPath = inputPath;
this.inputProperties = inputProperties != null ? new HashSet<Property>(inputProperties) : new HashSet<Property>();
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/session/InvalidStateException.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/session/InvalidStateException.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/session/InvalidStateException.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,9 +23,12 @@
*/
package org.jboss.dna.graph.session;
+import net.jcip.annotations.Immutable;
+
/**
- *
+ * A runtime exception signaling an invalid state of a graph session.
*/
+@Immutable
public class InvalidStateException extends RuntimeException {
private static final long serialVersionUID = 1L;
@@ -57,7 +60,7 @@
* @param cause
*/
public InvalidStateException( String message,
- Throwable cause ) {
+ Throwable cause ) {
super(message, cause);
}
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/session/ValidationException.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/session/ValidationException.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/session/ValidationException.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,9 +23,12 @@
*/
package org.jboss.dna.graph.session;
+import net.jcip.annotations.Immutable;
+
/**
- *
+ * A runtime exception signaling failed validation within a graph session.
*/
+@Immutable
public class ValidationException extends RuntimeException {
private static final long serialVersionUID = 1L;
Copied: trunk/dna-graph/src/main/java/org/jboss/dna/graph/session/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/JavadocMetadata.java)
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/session/package-info.java (rev 0)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/session/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,30 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * A graph session provides a stateful environment in which graph operations can be enqueued and the state
+ * and structure of the graph are cached.
+ */
+
+package org.jboss.dna.graph.session;
+
Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/xml/XmlHandler.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/xml/XmlHandler.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/xml/XmlHandler.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -60,8 +60,6 @@
* This class can be passed to the {@link SAXParser}'s {@link SAXParser#parse(java.io.File, org.xml.sax.helpers.DefaultHandler)
* parse(..,DefaultHandler)} methods.
* </p>
- *
- * @author Randall Hauch
*/
@NotThreadSafe
public class XmlHandler extends DefaultHandler2 {
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/AbstractJcrItem.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/AbstractJcrItem.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/AbstractJcrItem.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -27,14 +27,16 @@
import javax.jcr.ItemNotFoundException;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
+import net.jcip.annotations.Immutable;
import org.jboss.dna.graph.ExecutionContext;
import org.jboss.dna.graph.property.Name;
import org.jboss.dna.graph.property.NamespaceRegistry;
import org.jboss.dna.graph.property.Path;
/**
- * @author jverhaeg
+ * An abstract {@link Item} implementation.
*/
+@Immutable
abstract class AbstractJcrItem implements Item {
protected final SessionCache cache;
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/AbstractJcrProperty.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/AbstractJcrProperty.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/AbstractJcrProperty.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -44,7 +44,7 @@
import org.jboss.dna.jcr.SessionCache.NodeEditor;
/**
- * @author jverhaeg
+ * An abstract {@link Property JCR Property} implementation.
*/
@NotThreadSafe
abstract class AbstractJcrProperty extends AbstractJcrItem implements Property, Comparable<Property> {
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/DnaIntLexicon.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/DnaIntLexicon.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/DnaIntLexicon.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,12 +23,14 @@
*/
package org.jboss.dna.jcr;
+import net.jcip.annotations.Immutable;
import org.jboss.dna.graph.property.Name;
import org.jboss.dna.graph.property.basic.BasicName;
/**
* A lexicon of internal and implementation-specific information
*/
+@Immutable
public class DnaIntLexicon extends org.jboss.dna.graph.DnaIntLexicon {
public static final Name MULTI_VALUED_PROPERTIES = new BasicName(Namespace.URI, "multiValuedProperties");
}
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/DnaLexicon.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/DnaLexicon.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/DnaLexicon.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,12 +23,14 @@
*/
package org.jboss.dna.jcr;
+import net.jcip.annotations.Immutable;
import org.jboss.dna.graph.property.Name;
import org.jboss.dna.graph.property.basic.BasicName;
/**
- * @author Randall Hauch
+ * A lexicon of names used within JBoss DNA.
*/
+@Immutable
public class DnaLexicon extends org.jboss.dna.repository.DnaLexicon {
public static final Name BASE = new BasicName(Namespace.URI, "base");
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrChildNodeIterator.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrChildNodeIterator.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrChildNodeIterator.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -29,6 +29,7 @@
import org.jboss.dna.common.util.CheckArg;
/**
+ * A concrete {@link NodeIterator} implementation.
*/
@Immutable
final class JcrChildNodeIterator implements NodeIterator {
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrEmptyNodeIterator.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrEmptyNodeIterator.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrEmptyNodeIterator.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -26,11 +26,13 @@
import java.util.NoSuchElementException;
import javax.jcr.Node;
import javax.jcr.NodeIterator;
+import net.jcip.annotations.Immutable;
import org.jboss.dna.common.util.CheckArg;
/**
- *
+ * A concrete {@link NodeIterator} that is always empty.
*/
+@Immutable
class JcrEmptyNodeIterator implements NodeIterator {
/**
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrEmptyPropertyIterator.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrEmptyPropertyIterator.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrEmptyPropertyIterator.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -26,11 +26,13 @@
import java.util.NoSuchElementException;
import javax.jcr.Property;
import javax.jcr.PropertyIterator;
+import net.jcip.annotations.Immutable;
import org.jboss.dna.common.util.CheckArg;
/**
- *
+ * A concrete {@link PropertyIterator}.
*/
+@Immutable
class JcrEmptyPropertyIterator implements PropertyIterator {
/**
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrEngine.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrEngine.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrEngine.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -32,6 +32,7 @@
import java.util.concurrent.locks.ReentrantLock;
import javax.jcr.Repository;
import javax.jcr.RepositoryException;
+import net.jcip.annotations.ThreadSafe;
import org.jboss.dna.common.util.CheckArg;
import org.jboss.dna.graph.ExecutionContext;
import org.jboss.dna.graph.Graph;
@@ -53,6 +54,7 @@
/**
* The basic component that encapsulates the JBoss DNA services, including the {@link Repository} instances.
*/
+@ThreadSafe
public class JcrEngine extends DnaEngine {
private final Map<String, JcrRepository> repositories;
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrI18n.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrI18n.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrI18n.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,12 +23,13 @@
*/
package org.jboss.dna.jcr;
+import net.jcip.annotations.Immutable;
import org.jboss.dna.common.i18n.I18n;
/**
- * @author John Verhaeg
- * @author Randall Hauch
+ * The internationalized string constants for the <code>org.jboss.dna.jcr*</code> packages.
*/
+@Immutable
public final class JcrI18n {
public static I18n cannotConvertValue;
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrLexicon.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrLexicon.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrLexicon.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,12 +23,14 @@
*/
package org.jboss.dna.jcr;
+import net.jcip.annotations.Immutable;
import org.jboss.dna.graph.property.Name;
import org.jboss.dna.graph.property.basic.BasicName;
/**
* Lexicon of names from the standard JCR "<code>http://www.jcp.org/jcr/1.0</code>" namespace.
*/
+@Immutable
public class JcrLexicon extends org.jboss.dna.graph.JcrLexicon {
public static final Name BASE_VERSION = new BasicName(Namespace.URI, "baseVersion");
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrMixLexicon.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrMixLexicon.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrMixLexicon.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,9 +23,12 @@
*/
package org.jboss.dna.jcr;
+import net.jcip.annotations.Immutable;
+
/**
* Lexicon of names from the standard JCR "<code>http://www.jcp.org/jcr/mix/1.0</code>" namespace.
*/
+@Immutable
public class JcrMixLexicon extends org.jboss.dna.graph.JcrMixLexicon {
}
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrMultiValueProperty.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrMultiValueProperty.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrMultiValueProperty.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -41,7 +41,9 @@
import org.jboss.dna.graph.property.Property;
/**
+ * A {@link javax.jcr.Property JCR Property} implementation that has multiple values.
*
+ * @see JcrSingleValueProperty
*/
@NotThreadSafe
final class JcrMultiValueProperty extends AbstractJcrProperty {
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrNode.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrNode.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrNode.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,13 +24,16 @@
package org.jboss.dna.jcr;
import javax.jcr.ItemNotFoundException;
+import javax.jcr.Node;
import javax.jcr.RepositoryException;
import net.jcip.annotations.NotThreadSafe;
import org.jboss.dna.graph.Location;
import org.jboss.dna.graph.session.GraphSession.NodeId;
/**
- *
+ * A concrete {@link Node JCR Node} implementation.
+ *
+ * @see JcrRootNode
*/
@NotThreadSafe
final class JcrNode extends AbstractJcrNode {
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrPropertyIterator.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrPropertyIterator.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrPropertyIterator.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -31,6 +31,7 @@
import org.jboss.dna.common.util.CheckArg;
/**
+ * DNA implementation of a {@link PropertyIterator}.
*/
@Immutable
final class JcrPropertyIterator implements PropertyIterator {
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrRepository.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrRepository.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrRepository.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -95,9 +95,6 @@
* Note, {@link Session#getAttributeNames() attributes} on credentials are not supported. JCR {@link SimpleCredentials} are also
* not supported.
* </p>
- *
- * @author John Verhaeg
- * @author Randall Hauch
*/
@ThreadSafe
public class JcrRepository implements Repository {
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrRootNode.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrRootNode.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrRootNode.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -25,16 +25,17 @@
import javax.jcr.Item;
import javax.jcr.ItemNotFoundException;
+import javax.jcr.Node;
import javax.jcr.RepositoryException;
import javax.jcr.nodetype.ConstraintViolationException;
-import net.jcip.annotations.NotThreadSafe;
+import net.jcip.annotations.Immutable;
import org.jboss.dna.graph.Location;
import org.jboss.dna.graph.session.GraphSession.NodeId;
/**
- * @author jverhaeg
+ * A concrete implementation of a root {@link Node JCR Node}.
*/
-@NotThreadSafe
+@Immutable
final class JcrRootNode extends AbstractJcrNode {
JcrRootNode( SessionCache cache,
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrSession.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrSession.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrSession.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -76,8 +76,7 @@
import org.xml.sax.helpers.XMLReaderFactory;
/**
- * @author John Verhaeg
- * @author Randall Hauch
+ * The DNA implementation of a {@link Session JCR Session}.
*/
@NotThreadSafe
class JcrSession implements Session {
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrSingleValueProperty.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrSingleValueProperty.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrSingleValueProperty.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -27,6 +27,7 @@
import java.util.Calendar;
import java.util.UUID;
import javax.jcr.Node;
+import javax.jcr.Property;
import javax.jcr.PropertyType;
import javax.jcr.RepositoryException;
import javax.jcr.Value;
@@ -34,6 +35,7 @@
import javax.jcr.lock.LockException;
import javax.jcr.nodetype.ConstraintViolationException;
import javax.jcr.version.VersionException;
+import net.jcip.annotations.NotThreadSafe;
import org.jboss.dna.graph.Location;
import org.jboss.dna.graph.property.Binary;
import org.jboss.dna.graph.property.Name;
@@ -41,8 +43,11 @@
import org.jboss.dna.graph.property.ValueFactories;
/**
- *
+ * DNA implementation of a {@link Property JCR Property} with a single value.
+ *
+ * @see JcrMultiValueProperty
*/
+@NotThreadSafe
final class JcrSingleValueProperty extends AbstractJcrProperty {
JcrSingleValueProperty( SessionCache cache,
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrSvLexicon.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrSvLexicon.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrSvLexicon.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,12 +23,14 @@
*/
package org.jboss.dna.jcr;
+import net.jcip.annotations.Immutable;
import org.jboss.dna.graph.property.Name;
import org.jboss.dna.graph.property.basic.BasicName;
/**
* Lexicon of names from the standard JCR "<code>http://www.jcp.org/jcr/sv/1.0</code>" namespace.
*/
+@Immutable
public class JcrSvLexicon {
public static class Namespace {
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrValue.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrValue.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrValue.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -45,7 +45,7 @@
import org.jboss.dna.graph.property.ValueFactories;
/**
- *
+ * DNA implementation of a {@link Value JCR Value}.
*/
@NotThreadSafe
final class JcrValue implements Value {
@@ -449,7 +449,7 @@
public String toString() {
return (value == null ? "null" : value.toString()) + " (" + PropertyType.nameFromValue(type) + ")";
}
-
+
private enum State {
NEVER_CONSUMED,
INPUT_STREAM_CONSUMED,
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrWorkspace.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrWorkspace.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/JcrWorkspace.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -79,7 +79,7 @@
import org.xml.sax.helpers.XMLReaderFactory;
/**
- *
+ * DNA implementation of a {@link Workspace JCR Workspace}.
*/
@NotThreadSafe
final class JcrWorkspace implements Workspace {
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/PropertyTypeUtil.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/PropertyTypeUtil.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/PropertyTypeUtil.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,10 +24,13 @@
package org.jboss.dna.jcr;
import javax.jcr.PropertyType;
+import net.jcip.annotations.Immutable;
/**
- *
+ * A utility for working with {@link PropertyType JCR property types} and {@link org.jboss.dna.graph.property.PropertyType DNA
+ * property types}.
*/
+@Immutable
class PropertyTypeUtil {
/**
Modified: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/nodetype/NodeTypeExistsException.java
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/nodetype/NodeTypeExistsException.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/nodetype/NodeTypeExistsException.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,12 +24,14 @@
package org.jboss.dna.jcr.nodetype;
import javax.jcr.RepositoryException;
+import net.jcip.annotations.Immutable;
import org.jboss.dna.common.util.CheckArg;
import org.jboss.dna.graph.property.Name;
/**
* An exception that captures the error condition that a referenced node type already exists.
*/
+@Immutable
public class NodeTypeExistsException extends RepositoryException {
/**
Copied: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/nodetype/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/VariableSequencer.java)
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/nodetype/package-info.java (rev 0)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/nodetype/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,39 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The DNA specification for programmatically creating JCR {@link javax.jcr.nodetype.NodeDefinition}s.
+ * To use, simply obtain the JCR {@link javax.jcr.nodetype.NodeTypeManager} from the {@link javax.jcr.Workspace#getNodeTypeManager() workspace}
+ * and cast to a {@link org.jboss.dna.jcr.JcrNodeTypeManager}. That object can then be used to create new
+ * {@link org.jboss.dna.jcr.JcrNodeTypeManager#createNodeDefinitionTemplate() node definition templates},
+ * {@link org.jboss.dna.jcr.JcrNodeTypeManager#createNodeTypeTemplate() node type templates},
+ * and {@link org.jboss.dna.jcr.JcrNodeTypeManager#createPropertyDefinitionTemplate() property definition templates},
+ * and to then {@link org.jboss.dna.jcr.JcrNodeTypeManager#registerNodeType(NodeTypeDefinition, boolean) register} the new node types.
+ * <p>
+ * This design is patterned after the similar funcationality in the JCR 2.0 Public Final Draft (PFD), and will
+ * eventually be migrated to implement the specification when JBoss DNA supports the final JCR 2.0 final specification.
+ * </p>
+ */
+
+package org.jboss.dna.jcr.nodetype;
+
Copied: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/package-info.java (from rev 1217, trunk/dna-common/src/main/java/org/jboss/dna/common/component/AbstractComponent.java)
===================================================================
--- trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/package-info.java (rev 0)
+++ trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,32 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The DNA implementation of the JCR API. To use, first create a {@link JcrConfiguration} to represent the desired
+ * configuration, and then use the configuration to {@link JcrConfiguration#build() build} a {@link JcrEngine} instance.
+ * This engine must be {@link JcrEngine#start() started}, used to obtain {@link JcrEngine#getRepository(String) JCR Repository} instances,
+ * and then {@link JcrEngine#shutdown() shutdown} when no longer needed.
+ */
+
+package org.jboss.dna.jcr;
+
Property changes on: trunk/dna-jcr/src/main/java/org/jboss/dna/jcr/package-info.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: trunk/dna-repository/pom.xml
===================================================================
--- trunk/dna-repository/pom.xml 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-repository/pom.xml 2009-09-12 17:55:25 UTC (rev 1218)
@@ -39,17 +39,6 @@
<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>
<!--
Testing (note the scope)
-->
Modified: trunk/dna-repository/src/main/java/org/jboss/dna/repository/DnaConfigurationException.java
===================================================================
--- trunk/dna-repository/src/main/java/org/jboss/dna/repository/DnaConfigurationException.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-repository/src/main/java/org/jboss/dna/repository/DnaConfigurationException.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -21,9 +21,12 @@
*/
package org.jboss.dna.repository;
+import net.jcip.annotations.Immutable;
+
/**
- * @author Randall Hauch
+ * A runtime exception that denotes an error within the configuration for JBoss DNA.
*/
+@Immutable
public class DnaConfigurationException extends RuntimeException {
/**
Modified: trunk/dna-repository/src/main/java/org/jboss/dna/repository/DnaLexicon.java
===================================================================
--- trunk/dna-repository/src/main/java/org/jboss/dna/repository/DnaLexicon.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-repository/src/main/java/org/jboss/dna/repository/DnaLexicon.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,12 +23,14 @@
*/
package org.jboss.dna.repository;
+import net.jcip.annotations.Immutable;
import org.jboss.dna.graph.property.Name;
import org.jboss.dna.graph.property.basic.BasicName;
/**
- * @author Randall Hauch
+ * A lexicon of names used within JBoss DNA.
*/
+@Immutable
public class DnaLexicon extends org.jboss.dna.graph.DnaLexicon {
public static final Name SOURCES = new BasicName(Namespace.URI, "sources");
Modified: trunk/dna-repository/src/main/java/org/jboss/dna/repository/RepositoryI18n.java
===================================================================
--- trunk/dna-repository/src/main/java/org/jboss/dna/repository/RepositoryI18n.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-repository/src/main/java/org/jboss/dna/repository/RepositoryI18n.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -25,12 +25,13 @@
import java.util.Locale;
import java.util.Set;
+import net.jcip.annotations.Immutable;
import org.jboss.dna.common.i18n.I18n;
/**
- * @author Randall Hauch
- * @author John Verhaeg
+ * The internationalized string constants for the <code>org.jboss.dna.repository*</code> packages.
*/
+@Immutable
public final class RepositoryI18n {
// Configuration
Modified: trunk/dna-repository/src/main/java/org/jboss/dna/repository/RepositoryLibrary.java
===================================================================
--- trunk/dna-repository/src/main/java/org/jboss/dna/repository/RepositoryLibrary.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-repository/src/main/java/org/jboss/dna/repository/RepositoryLibrary.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -53,8 +53,6 @@
/**
* A library of {@link RepositorySource} instances and the {@link RepositoryConnectionPool} used to manage the connections for
* each.
- *
- * @author Randall Hauch
*/
@ThreadSafe
public class RepositoryLibrary implements RepositoryConnectionFactory, Observable {
Modified: trunk/dna-repository/src/main/java/org/jboss/dna/repository/RepositoryService.java
===================================================================
--- trunk/dna-repository/src/main/java/org/jboss/dna/repository/RepositoryService.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-repository/src/main/java/org/jboss/dna/repository/RepositoryService.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -34,7 +34,6 @@
import org.jboss.dna.common.util.CheckArg;
import org.jboss.dna.common.util.Logger;
import org.jboss.dna.common.util.Reflection;
-import org.jboss.dna.connector.federation.FederationException;
import org.jboss.dna.graph.ExecutionContext;
import org.jboss.dna.graph.Graph;
import org.jboss.dna.graph.JcrLexicon;
@@ -58,7 +57,7 @@
import org.jboss.dna.repository.service.ServiceAdministrator;
/**
- * @author Randall Hauch
+ * A service that manages the {@link RepositorySource}es defined within a configuration repository.
*/
@ThreadSafe
public class RepositoryService implements AdministeredService, Observer {
@@ -232,7 +231,7 @@
} catch (PathNotFoundException e) {
// No sources were found, and this is okay!
} catch (Throwable err) {
- throw new FederationException(RepositoryI18n.errorStartingRepositoryService.text(), err);
+ throw new DnaConfigurationException(RepositoryI18n.errorStartingRepositoryService.text(), err);
}
this.started.set(true);
Copied: trunk/dna-repository/src/main/java/org/jboss/dna/repository/package-info.java (from rev 1217, trunk/dna-graph/src/main/java/org/jboss/dna/graph/property/UuidFactory.java)
===================================================================
--- trunk/dna-repository/src/main/java/org/jboss/dna/repository/package-info.java (rev 0)
+++ trunk/dna-repository/src/main/java/org/jboss/dna/repository/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,33 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The components and services that make up the JBoss DNA repository engine.
+ * To use, first create a {@link DnaConfiguration} to represent the desired
+ * configuration, and then use the configuration to {@link DnaConfiguration#build() build} a {@link DnaEngine} instance.
+ * This engine must be {@link DnaEngine#start() started}, used to obtain {@link DnaEngine#getGraph(String) graph} instances,
+ * and then {@link DnaEngine#shutdown() shutdown} when no longer needed.
+ */
+
+package org.jboss.dna.repository;
+
Modified: trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/InvalidSequencerPathExpression.java
===================================================================
--- trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/InvalidSequencerPathExpression.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/InvalidSequencerPathExpression.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,11 +23,13 @@
*/
package org.jboss.dna.repository.sequencer;
+import net.jcip.annotations.Immutable;
+import org.jboss.dna.graph.property.PathExpression;
/**
- *
- * @author Randall Hauch
+ * A runtime exception that denotes an invalid {@link PathExpression} for a sequencer.
*/
+@Immutable
public class InvalidSequencerPathExpression extends RuntimeException {
/**
@@ -60,7 +62,8 @@
* @param message
* @param cause
*/
- public InvalidSequencerPathExpression( String message, Throwable cause ) {
+ public InvalidSequencerPathExpression( String message,
+ Throwable cause ) {
super(message, cause);
}
Modified: trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/Sequencer.java
===================================================================
--- trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/Sequencer.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/Sequencer.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -40,9 +40,6 @@
* <p>
* Implementations must provide a no-argument constructor.
* </p>
- *
- * @author Randall Hauch
- * @author John Verhaeg
*/
@ThreadSafe
public interface Sequencer extends Component<SequencerConfig> {
Modified: trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/SequencerConfig.java
===================================================================
--- trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/SequencerConfig.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/SequencerConfig.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -32,7 +32,7 @@
import org.jboss.dna.common.component.ComponentConfig;
/**
- * @author Randall Hauch
+ * A configuration for a sequencer.
*/
@Immutable
public class SequencerConfig extends ComponentConfig {
Modified: trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/SequencerException.java
===================================================================
--- trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/SequencerException.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/SequencerException.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,9 +23,12 @@
*/
package org.jboss.dna.repository.sequencer;
+import net.jcip.annotations.Immutable;
+
/**
- * @author Randall Hauch
+ * A runtime exception that denotes an error within a sequencer.
*/
+@Immutable
public class SequencerException extends RuntimeException {
/**
@@ -55,7 +58,8 @@
* @param message
* @param cause
*/
- public SequencerException( String message, Throwable cause ) {
+ public SequencerException( String message,
+ Throwable cause ) {
super(message, cause);
}
Modified: trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/SequencerLibrary.java
===================================================================
--- trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/SequencerLibrary.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/SequencerLibrary.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,12 +23,14 @@
*/
package org.jboss.dna.repository.sequencer;
+import net.jcip.annotations.ThreadSafe;
import org.jboss.dna.common.component.ComponentLibrary;
import org.jboss.dna.graph.sequencer.StreamSequencer;
/**
- * @author Randall Hauch
+ * A library of {@link Sequencer} components.
*/
+@ThreadSafe
public class SequencerLibrary extends ComponentLibrary<Sequencer, SequencerConfig> {
/**
Modified: trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/SequencerOutputMap.java
===================================================================
--- trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/SequencerOutputMap.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/SequencerOutputMap.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -43,9 +43,6 @@
/**
* A basic {@link SequencerOutput} that records all information in-memory and which organizes the properties by {@link Path node
* paths} and provides access to the nodes in a natural path-order.
- *
- * @author Randall Hauch
- * @author John Verhaeg
*/
@NotThreadSafe
public class SequencerOutputMap implements SequencerOutput, Iterable<SequencerOutputMap.Entry> {
Modified: trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/SequencerPathExpression.java
===================================================================
--- trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/SequencerPathExpression.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/SequencerPathExpression.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -49,8 +49,6 @@
* <code>title</code> property on the <code>/a/b/c</code> node, and that the output of the sequencing should be placed at
* <code>/d/e/f</code>.
* </p>
- *
- * @author Randall Hauch
*/
@Immutable
public class SequencerPathExpression implements Serializable {
Modified: trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/SequencingService.java
===================================================================
--- trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/SequencingService.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/SequencingService.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -63,9 +63,6 @@
/**
* A sequencing system is used to monitor changes in the content of DNA repositories and to sequence the content to extract or to
* generate structured information.
- *
- * @author Randall Hauch
- * @author John Verhaeg
*/
public class SequencingService implements AdministeredService {
Modified: trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/StreamSequencerAdapter.java
===================================================================
--- trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/StreamSequencerAdapter.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/StreamSequencerAdapter.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -50,9 +50,6 @@
/**
* An adapter class that wraps a {@link StreamSequencer} instance to be a {@link Sequencer}.
- *
- * @author Randall Hauch
- * @author John Verhaeg
*/
public class StreamSequencerAdapter implements Sequencer {
Copied: trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ModifierMetadata.java)
===================================================================
--- trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/package-info.java (rev 0)
+++ trunk/dna-repository/src/main/java/org/jboss/dna/repository/sequencer/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,29 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The classes that make up the sequencing service and its configuration.
+ */
+
+package org.jboss.dna.repository.sequencer;
+
Modified: trunk/dna-repository/src/main/java/org/jboss/dna/repository/service/AbstractServiceAdministrator.java
===================================================================
--- trunk/dna-repository/src/main/java/org/jboss/dna/repository/service/AbstractServiceAdministrator.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-repository/src/main/java/org/jboss/dna/repository/service/AbstractServiceAdministrator.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -33,8 +33,6 @@
/**
* Simple abstract implementation of the service administrator interface that can be easily subclassed by services that require an
* administrative interface.
- *
- * @author Randall Hauch
*/
@ThreadSafe
public abstract class AbstractServiceAdministrator implements ServiceAdministrator {
Modified: trunk/dna-repository/src/main/java/org/jboss/dna/repository/service/AdministeredService.java
===================================================================
--- trunk/dna-repository/src/main/java/org/jboss/dna/repository/service/AdministeredService.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-repository/src/main/java/org/jboss/dna/repository/service/AdministeredService.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,7 +24,7 @@
package org.jboss.dna.repository.service;
/**
- * @author Randall Hauch
+ * A simple interface for an administered service.
*/
public interface AdministeredService {
Modified: trunk/dna-repository/src/main/java/org/jboss/dna/repository/service/ServiceAdministrator.java
===================================================================
--- trunk/dna-repository/src/main/java/org/jboss/dna/repository/service/ServiceAdministrator.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-repository/src/main/java/org/jboss/dna/repository/service/ServiceAdministrator.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,8 +28,6 @@
/**
* Contract defining an administrative interface for controlling the running state of a service.
- *
- * @author Randall Hauch
*/
@ThreadSafe
public interface ServiceAdministrator {
@@ -71,7 +69,7 @@
* @param state the desired state in string form
* @return this object for method chaining purposes
* @throws IllegalArgumentException if the specified state string is null or does not match one of the predefined
- * {@link State predefined enumerated values}
+ * {@link State predefined enumerated values}
* @see #setState(State)
* @see #start()
* @see #pause()
@@ -120,11 +118,12 @@
*
* @param timeout the maximum time to wait
* @param unit the time unit of the timeout argument
- * @return <tt>true</tt> if this service complete shut down and <tt>false</tt> if the timeout elapsed before it was shut
- * down completely
+ * @return <tt>true</tt> if this service complete shut down and <tt>false</tt> if the timeout elapsed before it was shut down
+ * completely
* @throws InterruptedException if interrupted while waiting
*/
- boolean awaitTermination( long timeout, TimeUnit unit ) throws InterruptedException;
+ boolean awaitTermination( long timeout,
+ TimeUnit unit ) throws InterruptedException;
/**
* Return whether this system has been started and is currently running.
Copied: trunk/dna-repository/src/main/java/org/jboss/dna/repository/service/package-info.java (from rev 1217, trunk/dna-repository/src/main/java/org/jboss/dna/repository/service/AdministeredService.java)
===================================================================
--- trunk/dna-repository/src/main/java/org/jboss/dna/repository/service/package-info.java (rev 0)
+++ trunk/dna-repository/src/main/java/org/jboss/dna/repository/service/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,29 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The definition of common interfaces and classes for DNA services.
+ */
+
+package org.jboss.dna.repository.service;
+
Modified: trunk/dna-repository/src/main/java/org/jboss/dna/repository/util/AbstractSessionFactory.java
===================================================================
--- trunk/dna-repository/src/main/java/org/jboss/dna/repository/util/AbstractSessionFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-repository/src/main/java/org/jboss/dna/repository/util/AbstractSessionFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -39,21 +39,21 @@
* <p>
* This factory using a naming convention where the name supplied to the {@link #createSession(String)} contains both the name of
* the repository and the name of the workspace. Typically, this is <i><code>repositoryName/workspaceName</code></i>, where
- * <code>repositoryName</code> is the name under which the Repository instance was bound, and <code>workspaceName</code> is
- * the name of the workspace. Note that this method looks for the last delimiter in the whole name to distinguish between the
+ * <code>repositoryName</code> is the name under which the Repository instance was bound, and <code>workspaceName</code> is the
+ * name of the workspace. Note that this method looks for the last delimiter in the whole name to distinguish between the
* repository and workspace names.
* </p>
* <p>
* For example, if "<code>java:comp/env/repository/dataRepository/myWorkspace</code>" is passed to the
- * {@link #createSession(String)} method, this factory will look for a {@link Repository} instance registered with the name "<code>java:comp/env/repository/dataRepository</code>"
- * and use it to {@link Repository#login(String) create a session} to the workspace named "<code>myWorkspace</code>".
+ * {@link #createSession(String)} method, this factory will look for a {@link Repository} instance registered with the name "
+ * <code>java:comp/env/repository/dataRepository</code>" and use it to {@link Repository#login(String) create a session} to the
+ * workspace named "<code>myWorkspace</code>".
* </p>
* <p>
* By default, this factory creates an anonymous JCR session. To use sessions with specific {@link Credentials}, simply
* {@link #registerCredentials(String, Credentials) register} credentials for the appropriate repository/workspace name. For
* security reasons, it is not possible to retrieve the Credentials once registered with this factory.
* </p>
- * @author Randall Hauch
*/
public abstract class AbstractSessionFactory implements SessionFactory {
@@ -73,6 +73,7 @@
/**
* Create an instance of the factory by supplying naming context and the characters that may be used to delimit the workspace
* name from the repository name.
+ *
* @param workspaceDelimiters the delimiters, or null/empty if the default delimiter of '/' should be used.
* @throws IllegalArgumentException if the context parameter is null
*/
@@ -104,10 +105,12 @@
/**
* Convenience method to bind a repository in JNDI. Repository instances can be bound into JNDI using any technique, so this
* method need not be used. <i>Note that the name should not contain the workspace part.</i>
+ *
* @param name the name of the repository, without the workspace name component.
* @param repository the repository to be bound, or null if an existing repository should be unbound.
*/
- public void registerRepository( String name, Repository repository ) {
+ public void registerRepository( String name,
+ Repository repository ) {
assert name != null;
// Remove all trailing delimiters ...
name = name.replaceAll("[" + this.workspaceDelimsRegexCharacterSet + "]+$", "");
@@ -118,7 +121,8 @@
}
}
- protected abstract void doRegisterRepository( String name, Repository repository ) throws SystemFailureException;
+ protected abstract void doRegisterRepository( String name,
+ Repository repository ) throws SystemFailureException;
protected abstract void doUnregisterRepository( String name ) throws SystemFailureException;
@@ -128,6 +132,7 @@
* Register the credentials for the repository and workspace given by the supplied name, username and password. This is
* equivalent to calling <code>registerCredentials(name, new SimpleCredentials(username,password))</code>, although if
* <code>username</code> is null then this is equivalent to <code>registerCredentials(name,null)</code>.
+ *
* @param name the name of the repository and workspace
* @param username the username to use, or null if the existing credentials for the named workspace should be removed
* @param password the password, may be null or empty
@@ -135,7 +140,9 @@
* @see #registerCredentials(String, Credentials)
* @see #removeCredentials(String)
*/
- public boolean registerCredentials( String name, String username, char[] password ) {
+ public boolean registerCredentials( String name,
+ String username,
+ char[] password ) {
if (password == null && username != null) password = new char[] {};
Credentials creds = username == null ? null : new SimpleCredentials(username, password);
return registerCredentials(name, creds);
@@ -144,13 +151,15 @@
/**
* Register the credentials to be used for the named repository and workspace. Use the same name as used to
* {@link #createSession(String) create sessions}.
+ *
* @param name the name of the repository and workspace
* @param credentials the credentials to use, or null if the existing credentials for the named workspace should be removed
* @return true if this overwrote existing credentials
* @see #registerCredentials(String, String, char[])
* @see #removeCredentials(String)
*/
- public boolean registerCredentials( String name, Credentials credentials ) {
+ public boolean registerCredentials( String name,
+ Credentials credentials ) {
boolean foundExisting = false;
name = name != null ? name.trim() : null;
if (credentials == null) {
@@ -164,6 +173,7 @@
/**
* Remove any credentials associated with the named repository and workspace. This is equivalent to calling
* <code>registerCredentials(name,null)</code>.
+ *
* @param name the name of the repository and workspace
* @return true if existing credentials were found and removed, or false if no such credentials existed
* @see #registerCredentials(String, Credentials)
Modified: trunk/dna-repository/src/main/java/org/jboss/dna/repository/util/RepositoryNodePath.java
===================================================================
--- trunk/dna-repository/src/main/java/org/jboss/dna/repository/util/RepositoryNodePath.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-repository/src/main/java/org/jboss/dna/repository/util/RepositoryNodePath.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -30,14 +30,16 @@
import org.jboss.dna.repository.RepositoryI18n;
/**
- * @author Randall Hauch
+ * An immutable representation of a path to a node within the named workspace of a named repository source.
*/
@Immutable
public class RepositoryNodePath {
protected static final Pattern PATTERN = Pattern.compile("([^:/]):(/.*)");
- public static RepositoryNodePath parse( String path, String repositorySourceName, String defaultRepositoryWorkspaceName ) {
+ public static RepositoryNodePath parse( String path,
+ String repositorySourceName,
+ String defaultRepositoryWorkspaceName ) {
Matcher matcher = PATTERN.matcher(path);
if (matcher.matches()) {
try {
@@ -55,7 +57,9 @@
private final String nodePath;
private final int hc;
- public RepositoryNodePath( String repositorySourceName, String workspaceName, String nodePath ) {
+ public RepositoryNodePath( String repositorySourceName,
+ String workspaceName,
+ String nodePath ) {
this.repositorySourceName = repositorySourceName;
this.workspaceName = workspaceName;
this.nodePath = nodePath;
@@ -77,13 +81,12 @@
}
/**
- *
* @return the workspace name
*/
public String getWorkspaceName() {
return this.workspaceName;
}
-
+
/**
* {@inheritDoc}
*/
Modified: trunk/dna-repository/src/main/java/org/jboss/dna/repository/util/SessionFactory.java
===================================================================
--- trunk/dna-repository/src/main/java/org/jboss/dna/repository/util/SessionFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-repository/src/main/java/org/jboss/dna/repository/util/SessionFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,7 +28,7 @@
import javax.jcr.Session;
/**
- * @author Randall Hauch
+ * An interface for creating JCR Session objects.
*/
public interface SessionFactory {
Modified: trunk/dna-repository/src/main/java/org/jboss/dna/repository/util/SimpleSessionFactory.java
===================================================================
--- trunk/dna-repository/src/main/java/org/jboss/dna/repository/util/SimpleSessionFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/dna-repository/src/main/java/org/jboss/dna/repository/util/SimpleSessionFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -41,8 +41,6 @@
* {@link #registerCredentials(String, Credentials) register} credentials for the appropriate repository/workspace name. For
* security reasons, it is not possible to retrieve the Credentials once registered with this factory.
* </p>
- *
- * @author Randall Hauch
*/
public class SimpleSessionFactory extends AbstractSessionFactory {
Copied: trunk/dna-repository/src/main/java/org/jboss/dna/repository/util/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/JavadocMetadata.java)
===================================================================
--- trunk/dna-repository/src/main/java/org/jboss/dna/repository/util/package-info.java (rev 0)
+++ trunk/dna-repository/src/main/java/org/jboss/dna/repository/util/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,29 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * Utility classes and methods for the JBoss DNA repository system.
+ */
+
+package org.jboss.dna.repository.util;
+
Modified: trunk/docs/examples/gettingstarted/repositories/src/main/java/org/jboss/example/dna/repository/ConsoleInput.java
===================================================================
--- trunk/docs/examples/gettingstarted/repositories/src/main/java/org/jboss/example/dna/repository/ConsoleInput.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/docs/examples/gettingstarted/repositories/src/main/java/org/jboss/example/dna/repository/ConsoleInput.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -37,7 +37,7 @@
import com.sun.security.auth.callback.TextCallbackHandler;
/**
- * @author Randall Hauch
+ * The {@link UserInterface} implementation that uses the console.
*/
public class ConsoleInput implements UserInterface {
Modified: trunk/docs/examples/gettingstarted/repositories/src/main/java/org/jboss/example/dna/repository/RepositoryClient.java
===================================================================
--- trunk/docs/examples/gettingstarted/repositories/src/main/java/org/jboss/example/dna/repository/RepositoryClient.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/docs/examples/gettingstarted/repositories/src/main/java/org/jboss/example/dna/repository/RepositoryClient.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -57,7 +57,7 @@
import org.xml.sax.SAXException;
/**
- * @author Randall Hauch
+ * The repository client, with the main application.
*/
public class RepositoryClient {
Modified: trunk/docs/examples/gettingstarted/repositories/src/main/java/org/jboss/example/dna/repository/UserInterface.java
===================================================================
--- trunk/docs/examples/gettingstarted/repositories/src/main/java/org/jboss/example/dna/repository/UserInterface.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/docs/examples/gettingstarted/repositories/src/main/java/org/jboss/example/dna/repository/UserInterface.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -27,7 +27,7 @@
import javax.security.auth.callback.CallbackHandler;
/**
- * @author Randall Hauch
+ * The methods to interact with the user.
*/
public interface UserInterface {
Modified: trunk/docs/examples/gettingstarted/sequencers/src/main/java/org/jboss/example/dna/sequencer/ConsoleInput.java
===================================================================
--- trunk/docs/examples/gettingstarted/sequencers/src/main/java/org/jboss/example/dna/sequencer/ConsoleInput.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/docs/examples/gettingstarted/sequencers/src/main/java/org/jboss/example/dna/sequencer/ConsoleInput.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -32,7 +32,7 @@
import org.jboss.dna.repository.sequencer.SequencingService;
/**
- * @author Randall Hauch
+ * The {@link UserInterface} implementation that uses the console to interact with a user.
*/
public class ConsoleInput implements UserInterface {
Modified: trunk/docs/examples/gettingstarted/sequencers/src/main/java/org/jboss/example/dna/sequencer/ContentInfo.java
===================================================================
--- trunk/docs/examples/gettingstarted/sequencers/src/main/java/org/jboss/example/dna/sequencer/ContentInfo.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/docs/examples/gettingstarted/sequencers/src/main/java/org/jboss/example/dna/sequencer/ContentInfo.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,7 +28,7 @@
import net.jcip.annotations.Immutable;
/**
- * @author Randall Hauch
+ * The information about content.
*/
@Immutable
public class ContentInfo {
Modified: trunk/docs/examples/gettingstarted/sequencers/src/main/java/org/jboss/example/dna/sequencer/JavaInfo.java
===================================================================
--- trunk/docs/examples/gettingstarted/sequencers/src/main/java/org/jboss/example/dna/sequencer/JavaInfo.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/docs/examples/gettingstarted/sequencers/src/main/java/org/jboss/example/dna/sequencer/JavaInfo.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -30,8 +30,7 @@
import net.jcip.annotations.Immutable;
/**
- * @author Serge Pagop
- * @author Randall Hauch
+ * The information about Java source.
*/
@Immutable
public class JavaInfo extends ContentInfo {
Modified: trunk/docs/examples/gettingstarted/sequencers/src/main/java/org/jboss/example/dna/sequencer/JcrTools.java
===================================================================
--- trunk/docs/examples/gettingstarted/sequencers/src/main/java/org/jboss/example/dna/sequencer/JcrTools.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/docs/examples/gettingstarted/sequencers/src/main/java/org/jboss/example/dna/sequencer/JcrTools.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -44,15 +44,18 @@
import org.jboss.dna.repository.RepositoryI18n;
/**
- * @author Randall Hauch
+ * Utility methods for working with JCR.
*/
public class JcrTools {
- public Map<String, Object> loadProperties( Node propertyContainer, Problems problems ) {
+ public Map<String, Object> loadProperties( Node propertyContainer,
+ Problems problems ) {
return loadProperties(propertyContainer, null, problems);
}
- public Map<String, Object> loadProperties( Node propertyContainer, Map<String, Object> properties, Problems problems ) {
+ public Map<String, Object> loadProperties( Node propertyContainer,
+ Map<String, Object> properties,
+ Problems problems ) {
if (properties == null) properties = new HashMap<String, Object>();
if (propertyContainer != null) {
try {
@@ -83,7 +86,8 @@
return false;
}
- public boolean storeProblems( Node parent, Problems problems ) throws RepositoryException {
+ public boolean storeProblems( Node parent,
+ Problems problems ) throws RepositoryException {
Node problemsNode = null;
if (parent.hasNode("dna:problems")) {
problemsNode = parent.getNode("dna:problems");
@@ -141,19 +145,32 @@
return childrenRemoved;
}
- public String getPropertyAsString( Node node, String propertyName, boolean required, Problems problems ) {
+ public String getPropertyAsString( Node node,
+ String propertyName,
+ boolean required,
+ Problems problems ) {
return getPropertyAsString(node, propertyName, required, null);
}
- public String getPropertyAsString( Node node, String propertyName, boolean required, String defaultValue, Problems problems ) {
+ public String getPropertyAsString( Node node,
+ String propertyName,
+ boolean required,
+ String defaultValue,
+ Problems problems ) {
try {
Property property = node.getProperty(propertyName);
return property.getString();
} catch (ValueFormatException e) {
if (required) {
- problems.addError(e, RepositoryI18n.requiredPropertyOnNodeWasExpectedToBeStringValue, propertyName, getReadable(node));
+ problems.addError(e,
+ RepositoryI18n.requiredPropertyOnNodeWasExpectedToBeStringValue,
+ propertyName,
+ getReadable(node));
} else {
- problems.addError(e, RepositoryI18n.optionalPropertyOnNodeWasExpectedToBeStringValue, propertyName, getReadable(node));
+ problems.addError(e,
+ RepositoryI18n.optionalPropertyOnNodeWasExpectedToBeStringValue,
+ propertyName,
+ getReadable(node));
}
} catch (PathNotFoundException e) {
if (required) {
@@ -170,7 +187,10 @@
return null;
}
- public Object getPropertyValue( Node node, String propertyName, boolean required, Problems problems ) {
+ public Object getPropertyValue( Node node,
+ String propertyName,
+ boolean required,
+ Problems problems ) {
try {
Property property = node.getProperty(propertyName);
switch (property.getType()) {
@@ -185,7 +205,11 @@
stream.close();
} catch (IOException e) {
// Log ...
- Logger.getLogger(this.getClass()).error(e, RepositoryI18n.errorClosingBinaryStreamForPropertyFromNode, propertyName, node.getPath());
+ Logger.getLogger(this.getClass())
+ .error(e,
+ RepositoryI18n.errorClosingBinaryStreamForPropertyFromNode,
+ propertyName,
+ node.getPath());
}
}
}
@@ -214,7 +238,11 @@
return null;
}
- public String[] getPropertyAsStringArray( Node node, String propertyName, boolean required, Problems problems, String... defaultValues ) {
+ public String[] getPropertyAsStringArray( Node node,
+ String propertyName,
+ boolean required,
+ Problems problems,
+ String... defaultValues ) {
String[] result = defaultValues;
try {
Property property = node.getProperty(propertyName);
@@ -230,9 +258,15 @@
}
} catch (ValueFormatException e) {
if (required) {
- problems.addError(e, RepositoryI18n.requiredPropertyOnNodeWasExpectedToBeStringArrayValue, propertyName, getReadable(node));
+ problems.addError(e,
+ RepositoryI18n.requiredPropertyOnNodeWasExpectedToBeStringArrayValue,
+ propertyName,
+ getReadable(node));
} else {
- problems.addError(e, RepositoryI18n.optionalPropertyOnNodeWasExpectedToBeStringArrayValue, propertyName, getReadable(node));
+ problems.addError(e,
+ RepositoryI18n.optionalPropertyOnNodeWasExpectedToBeStringArrayValue,
+ propertyName,
+ getReadable(node));
}
} catch (PathNotFoundException e) {
if (required) {
@@ -248,12 +282,18 @@
return result;
}
- public Node getNode( Node node, String relativePath, boolean required, Problems problems ) {
+ public Node getNode( Node node,
+ String relativePath,
+ boolean required,
+ Problems problems ) {
Node result = null;
try {
result = node.getNode(relativePath);
} catch (PathNotFoundException e) {
- if (required) problems.addError(e, RepositoryI18n.requiredNodeDoesNotExistRelativeToNode, relativePath, getReadable(node));
+ if (required) problems.addError(e,
+ RepositoryI18n.requiredNodeDoesNotExistRelativeToNode,
+ relativePath,
+ getReadable(node));
} catch (RepositoryException err) {
problems.addError(err, RepositoryI18n.errorGettingNodeRelativeToNode, relativePath, getReadable(node));
}
@@ -269,20 +309,30 @@
}
}
- public Node findOrCreateNode( Session session, String path ) throws RepositoryException {
+ public Node findOrCreateNode( Session session,
+ String path ) throws RepositoryException {
return findOrCreateNode(session, path, null, null);
}
- public Node findOrCreateNode( Session session, String path, String nodeType ) throws RepositoryException {
+ public Node findOrCreateNode( Session session,
+ String path,
+ String nodeType ) throws RepositoryException {
return findOrCreateNode(session, path, nodeType, nodeType);
}
- public Node findOrCreateNode( Session session, String path, String defaultNodeType, String finalNodeType ) throws RepositoryException {
+ public Node findOrCreateNode( Session session,
+ String path,
+ String defaultNodeType,
+ String finalNodeType ) throws RepositoryException {
Node root = session.getRootNode();
return findOrCreateNode(session, root, path, defaultNodeType, finalNodeType);
}
- public Node findOrCreateNode( Session session, Node parentNode, String path, String defaultNodeType, String finalNodeType ) throws RepositoryException {
+ public Node findOrCreateNode( Session session,
+ Node parentNode,
+ String path,
+ String defaultNodeType,
+ String finalNodeType ) throws RepositoryException {
// Remove leading and trailing slashes ...
String relPath = path.replaceAll("^/+", "").replaceAll("/+$", "");
@@ -318,11 +368,16 @@
return node;
}
- public Node findOrCreateChild( Session session, Node parent, String name ) throws RepositoryException {
+ public Node findOrCreateChild( Session session,
+ Node parent,
+ String name ) throws RepositoryException {
return findOrCreateChild(session, parent, name, null);
}
- public Node findOrCreateChild( Session session, Node parent, String name, String nodeType ) throws RepositoryException {
+ public Node findOrCreateChild( Session session,
+ Node parent,
+ String name,
+ String nodeType ) throws RepositoryException {
return findOrCreateNode(session, parent, name, nodeType, nodeType);
}
Modified: trunk/docs/examples/gettingstarted/sequencers/src/main/java/org/jboss/example/dna/sequencer/MediaInfo.java
===================================================================
--- trunk/docs/examples/gettingstarted/sequencers/src/main/java/org/jboss/example/dna/sequencer/MediaInfo.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/docs/examples/gettingstarted/sequencers/src/main/java/org/jboss/example/dna/sequencer/MediaInfo.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,7 +28,7 @@
import net.jcip.annotations.Immutable;
/**
- * @author Randall Hauch
+ * Information about a media file.
*/
@Immutable
public class MediaInfo extends ContentInfo {
Modified: trunk/docs/examples/gettingstarted/sequencers/src/main/java/org/jboss/example/dna/sequencer/SequencingClient.java
===================================================================
--- trunk/docs/examples/gettingstarted/sequencers/src/main/java/org/jboss/example/dna/sequencer/SequencingClient.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/docs/examples/gettingstarted/sequencers/src/main/java/org/jboss/example/dna/sequencer/SequencingClient.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -51,7 +51,7 @@
import org.jboss.dna.repository.util.SessionFactory;
/**
- * @author Randall Hauch
+ * The main application for running the sequencers.
*/
public class SequencingClient {
@@ -252,17 +252,17 @@
for (NodeIterator i = root.getNode("zips").getNodes(); i.hasNext();) {
nodesToVisit.addLast(i.nextNode());
}
-
+
while (!nodesToVisit.isEmpty()) {
Node node = nodesToVisit.remove();
-
+
String nodeType = "nt:file".equals(node.getPrimaryNodeType()) ? "file" : "folder";
infos.add(new MediaInfo(node.getPath(), node.getName(), nodeType, new Properties()));
for (NodeIterator i = node.getNodes(); i.hasNext();) {
nodesToVisit.addLast(i.nextNode());
}
-
+
}
}
if (root.hasNode("java")) {
Modified: trunk/docs/examples/gettingstarted/sequencers/src/main/java/org/jboss/example/dna/sequencer/UserInterface.java
===================================================================
--- trunk/docs/examples/gettingstarted/sequencers/src/main/java/org/jboss/example/dna/sequencer/UserInterface.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/docs/examples/gettingstarted/sequencers/src/main/java/org/jboss/example/dna/sequencer/UserInterface.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,7 +28,7 @@
import java.util.List;
/**
- * @author Randall Hauch
+ * The methods to interact with the user.
*/
public interface UserInterface {
Modified: trunk/docs/reference/src/main/docbook/en-US/content/introduction.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/content/introduction.xml 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/docs/reference/src/main/docbook/en-US/content/introduction.xml 2009-09-12 17:55:25 UTC (rev 1218)
@@ -381,14 +381,14 @@
viewed as repository content.
</para>
</listitem>
- <listitem>
+ <!--listitem>
<para>
<emphasis role="strong">dna-connector-jdbc-metadata</emphasis>
is a prototype DNA repository connector that provides read-only access to metadata from relational databases through a JDBC
connection.
<emphasis>This is still under development.</emphasis>
</para>
- </listitem>
+ </listitem-->
<listitem>
<para>
<emphasis role="strong">dna-connector-jbosscache</emphasis>
Modified: trunk/docs/reference/src/main/docbook/en-US/master.xml
===================================================================
--- trunk/docs/reference/src/main/docbook/en-US/master.xml 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/docs/reference/src/main/docbook/en-US/master.xml 2009-09-12 17:55:25 UTC (rev 1218)
@@ -111,7 +111,7 @@
</partintro>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/connectors/in_memory.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/connectors/file_system.xml"/>
- <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/connectors/jdbc_storage.xml"/>
+ <!--xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/connectors/jdbc_storage.xml"/-->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/connectors/federation.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/connectors/subversion.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="content/connectors/jboss_cache.xml"/>
Modified: trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/ArtifactType.java
===================================================================
--- trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/ArtifactType.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/ArtifactType.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,7 +24,7 @@
package org.jboss.dna.maven;
/**
- * @author Randall Hauch
+ * The type of artifacts in a Maven 2 repository.
*/
public enum ArtifactType {
METADATA("maven-metadata.xml"),
Modified: trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/MavenClassLoaders.java
===================================================================
--- trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/MavenClassLoaders.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/MavenClassLoaders.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -47,8 +47,6 @@
* dependency rules</a>. Each {@link MavenRepository} instance owns an instance of this class, which provides a cached set of
* class loaders and a facility for {@link MavenRepository#getClassLoader(ClassLoader, MavenId...) getting class loaders} based
* upon a set of one or more versioned libraries.
- *
- * @author Randall Hauch
*/
/* package */class MavenClassLoaders {
Modified: trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/MavenDependency.java
===================================================================
--- trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/MavenDependency.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/MavenDependency.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -33,14 +33,13 @@
* Maven does for you is manage this list for you, you have gained a lot. Maven downloads and links the dependencies for you on
* compilation and other goals that require them. As an added bonus, Maven brings in the dependencies of those dependencies
* (transitive dependencies), allowing your list to focus solely on the dependencies your project requires.
- * @author Randall Hauch
*/
public class MavenDependency {
/**
- * The scope of the dependency - <code>compile</code>, <code>runtime</code>, <code>test</code>, <code>system</code>,
- * and <code>provided</code>. Used to calculate the various classpaths used for compilation, testing, and so on. It also
- * assists in determining which artifacts to include in a distribution of this project. For more information, see <a
+ * The scope of the dependency - <code>compile</code>, <code>runtime</code>, <code>test</code>, <code>system</code>, and
+ * <code>provided</code>. Used to calculate the various classpaths used for compilation, testing, and so on. It also assists
+ * in determining which artifacts to include in a distribution of this project. For more information, see <a
* href="http://maven.apache.org/guides/introduction/introduction-to-dependency-me...">the dependency mechanism</a>.
*/
public enum Scope {
@@ -60,7 +59,8 @@
return this.suffix;
}
- public static Scope valueByText( String suffix, boolean useDefault ) {
+ public static Scope valueByText( String suffix,
+ boolean useDefault ) {
for (Scope type : Scope.values()) {
if (type.suffix.equalsIgnoreCase(suffix)) return type;
}
@@ -95,16 +95,22 @@
this.id = id;
}
- public MavenDependency( String groupId, String artifactId, String version ) {
+ public MavenDependency( String groupId,
+ String artifactId,
+ String version ) {
this.id = new MavenId(groupId, artifactId, version);
}
- public MavenDependency( String groupId, String artifactId, String version, String classifier ) {
+ public MavenDependency( String groupId,
+ String artifactId,
+ String version,
+ String classifier ) {
this.id = new MavenId(groupId, artifactId, version, classifier);
}
/**
* The identifier of the artifact for this dependency.
+ *
* @return the identifier
*/
public MavenId getId() {
@@ -112,11 +118,12 @@
}
/**
- * The type of dependency. This defaults to <code>jar</code>. While it usually represents the extension on the filename of
- * the dependency, that is not always the case. A type can be mapped to a different extension and a classifier. The type often
+ * The type of dependency. This defaults to <code>jar</code>. While it usually represents the extension on the filename of the
+ * dependency, that is not always the case. A type can be mapped to a different extension and a classifier. The type often
* correspongs to the packaging used, though this is also not always the case. Some examples are <code>jar</code>,
* <code>war</code>, <code>ejb-client</code> and <code>test-jar</code>. New types can be defined by plugins that set
* <code>extensions</code> to <code>true</code>, so this is not a complete list.
+ *
* @return the dependency type
*/
public String getType() {
@@ -125,18 +132,20 @@
/**
* Set the type of dependency.
- * @param type the new dependency type. If null, then the type will be set to the
- * {@link #DEFAULT_TYPE default dependency type}.
+ *
+ * @param type the new dependency type. If null, then the type will be set to the {@link #DEFAULT_TYPE default dependency
+ * type}.
*/
public void setType( String type ) {
this.type = type != null ? type.trim() : DEFAULT_TYPE;
}
/**
- * The scope of the dependency - <code>compile</code>, <code>runtime</code>, <code>test</code>, <code>system</code>,
- * and <code>provided</code>. Used to calculate the various classpaths used for compilation, testing, and so on. It also
- * assists in determining which artifacts to include in a distribution of this project. For more information, see <a
+ * The scope of the dependency - <code>compile</code>, <code>runtime</code>, <code>test</code>, <code>system</code>, and
+ * <code>provided</code>. Used to calculate the various classpaths used for compilation, testing, and so on. It also assists
+ * in determining which artifacts to include in a distribution of this project. For more information, see <a
* href="http://maven.apache.org/guides/introduction/introduction-to-dependency-me...">the dependency mechanism</a>.
+ *
* @return the scope
*/
public Scope getScope() {
@@ -158,6 +167,7 @@
* FOR SYSTEM SCOPE ONLY. Note that use of this property is <b>discouraged</b> and may be replaced in later versions. This
* specifies the path on the filesystem for this dependency. Requires an absolute path for the value, not relative. Use a
* property that gives the machine specific absolute path, e.g. <code>${java.home}</code>.
+ *
* @return systemPath
*/
public String getSystemPath() {
@@ -174,6 +184,7 @@
/**
* Indicates the dependency is optional for use of this library. While the version of the dependency will be taken into
* account for dependency calculation if the library is used elsewhere, it will not be passed on transitively.
+ *
* @return true if this is an optional dependency, or false otherwise
*/
public boolean isOptional() {
@@ -191,6 +202,7 @@
* Exclusions explicitly tell Maven that you don't want to include the specified project that is a dependency of this
* dependency (in other words, its transitive dependency). For example, the maven-embedder requires maven-core , and we do not
* wish to use it or its dependencies, then we would add it as an exclusion .
+ *
* @return the set of exclusions
*/
public Set<MavenId> getExclusions() {
Modified: trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/MavenI18n.java
===================================================================
--- trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/MavenI18n.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/MavenI18n.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,52 +28,52 @@
import org.jboss.dna.common.i18n.I18n;
/**
- * @author Randall Hauch
+ * The internationalized string constants for the <code>org.jboss.dna.maven*</code> packages.
*/
public final class MavenI18n {
- public static I18n errorGettingUrlForMavenProject;
- public static I18n unsupportedMavenCoordinateFormat;
- public static I18n errorCreatingUrlForMavenId;
- public static I18n errorGettingPomFileForMavenIdAtUrl;
- public static I18n pomFileIsInvalid;
- public static I18n pomFileContainsUnexpectedId;
- public static I18n errorCreatingXpathStatementsToEvaluatePom;
- public static I18n errorCreatingXpathParserToEvaluatePom;
- public static I18n errorReadingXmlDocumentToEvaluatePom;
- public static I18n errorClosingUrlStreamToPom;
+ public static I18n errorGettingUrlForMavenProject;
+ public static I18n unsupportedMavenCoordinateFormat;
+ public static I18n errorCreatingUrlForMavenId;
+ public static I18n errorGettingPomFileForMavenIdAtUrl;
+ public static I18n pomFileIsInvalid;
+ public static I18n pomFileContainsUnexpectedId;
+ public static I18n errorCreatingXpathStatementsToEvaluatePom;
+ public static I18n errorCreatingXpathParserToEvaluatePom;
+ public static I18n errorReadingXmlDocumentToEvaluatePom;
+ public static I18n errorClosingUrlStreamToPom;
- public static I18n unableToOpenSessiontoRepositoryWhenCreatingNode;
- public static I18n unableToFindWorkspaceWhenCreatingNode;
- public static I18n errorCreatingNode;
- public static I18n unableToOpenSessiontoRepositoryWhenReadingNode;
- public static I18n unableToFindWorkspaceWhenReadingNode;
- public static I18n errorReadingNode;
- public static I18n unableToOpenSessiontoRepositoryWhenWritingNode;
- public static I18n unableToFindWorkspaceWhenWritingNode;
- public static I18n errorWritingNode;
+ public static I18n unableToOpenSessiontoRepositoryWhenCreatingNode;
+ public static I18n unableToFindWorkspaceWhenCreatingNode;
+ public static I18n errorCreatingNode;
+ public static I18n unableToOpenSessiontoRepositoryWhenReadingNode;
+ public static I18n unableToFindWorkspaceWhenReadingNode;
+ public static I18n errorReadingNode;
+ public static I18n unableToOpenSessiontoRepositoryWhenWritingNode;
+ public static I18n unableToFindWorkspaceWhenWritingNode;
+ public static I18n errorWritingNode;
- public static I18n unableToWriteToClosedStream;
- public static I18n errorClosingTempFileStreamAfterWritingContent;
- public static I18n errorDeletingTempFileStreamAfterWritingContent;
+ public static I18n unableToWriteToClosedStream;
+ public static I18n errorClosingTempFileStreamAfterWritingContent;
+ public static I18n errorDeletingTempFileStreamAfterWritingContent;
- static {
- try {
- I18n.initialize(MavenI18n.class);
- } catch (final Exception err) {
- System.err.println(err);
- }
- }
+ static {
+ try {
+ I18n.initialize(MavenI18n.class);
+ } catch (final Exception err) {
+ System.err.println(err);
+ }
+ }
- public static Set<Locale> getLocalizationProblemLocales() {
- return I18n.getLocalizationProblemLocales(MavenI18n.class);
- }
+ public static Set<Locale> getLocalizationProblemLocales() {
+ return I18n.getLocalizationProblemLocales(MavenI18n.class);
+ }
- public static Set<String> getLocalizationProblems() {
- return I18n.getLocalizationProblems(MavenI18n.class);
- }
+ public static Set<String> getLocalizationProblems() {
+ return I18n.getLocalizationProblems(MavenI18n.class);
+ }
- public static Set<String> getLocalizationProblems( Locale locale ) {
- return I18n.getLocalizationProblems(MavenI18n.class, locale);
- }
+ public static Set<String> getLocalizationProblems( Locale locale ) {
+ return I18n.getLocalizationProblems(MavenI18n.class, locale);
+ }
}
Modified: trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/MavenRepository.java
===================================================================
--- trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/MavenRepository.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/MavenRepository.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -66,7 +66,6 @@
* {@link #getClassLoader(ClassLoader,MavenId...) class loader} by specifying the {@link MavenId artifact identifiers} for the
* libraries used directly by your code. This class loader will add any libraries that are required by those you supply.
* </p>
- * @author Randall Hauch
*/
public class MavenRepository implements ClassLoaderFactory {
@@ -86,16 +85,18 @@
/**
* Get a class loader that has as its classpath the JARs for the libraries identified by the supplied IDs. This method always
* returns a class loader, even when none of the specified libraries {@link #exists(MavenId) exist} in this repository.
+ *
* @param parent the parent class loader that will be consulted before any project class loaders; may be null if the
- * {@link Thread#getContextClassLoader() current thread's context class loader} or the class loader that loaded this class
- * should be used
+ * {@link Thread#getContextClassLoader() current thread's context class loader} or the class loader that loaded this
+ * class should be used
* @param mavenIds the IDs of the libraries in this Maven repository
* @return the class loader
* @see #exists(MavenId)
* @see #exists(MavenId,MavenId...)
* @throws IllegalArgumentException if no Maven IDs are passed in or if any of the IDs are null
*/
- public ClassLoader getClassLoader( ClassLoader parent, MavenId... mavenIds ) {
+ public ClassLoader getClassLoader( ClassLoader parent,
+ MavenId... mavenIds ) {
CheckArg.isNotEmpty(mavenIds, "mavenIds");
CheckArg.containsNoNulls(mavenIds, "mavenIds");
return this.classLoaders.getClassLoader(parent, mavenIds);
@@ -104,6 +105,7 @@
/**
* Get a class loader that has as its classpath the JARs for the libraries identified by the supplied IDs. This method always
* returns a class loader, even when none of the specified libraries {@link #exists(MavenId) exist} in this repository.
+ *
* @param coordinates the IDs of the libraries in this Maven repository
* @return the class loader
* @throws IllegalArgumentException if no coordinates are passed in or if any of the coordinate references is null
@@ -115,14 +117,16 @@
/**
* Get a class loader that has as its classpath the JARs for the libraries identified by the supplied IDs. This method always
* returns a class loader, even when none of the specified libraries {@link #exists(MavenId) exist} in this repository.
+ *
* @param parent the parent class loader that will be consulted before any project class loaders; may be null if the
- * {@link Thread#getContextClassLoader() current thread's context class loader} or the class loader that loaded this class
- * should be used
+ * {@link Thread#getContextClassLoader() current thread's context class loader} or the class loader that loaded this
+ * class should be used
* @param coordinates the IDs of the libraries in this Maven repository
* @return the class loader
* @throws IllegalArgumentException if no coordinates are passed in or if any of the coordinate references is null
*/
- public ClassLoader getClassLoader( ClassLoader parent, String... coordinates ) {
+ public ClassLoader getClassLoader( ClassLoader parent,
+ String... coordinates ) {
CheckArg.isNotEmpty(coordinates, "coordinates");
CheckArg.containsNoNulls(coordinates, "coordinates");
MavenId[] mavenIds = new MavenId[coordinates.length];
@@ -135,6 +139,7 @@
/**
* Determine whether the identified library exists in this Maven repository.
+ *
* @param mavenId the ID of the library
* @return true if this repository contains the library, or false if it does not exist (or the ID is null)
* @throws MavenRepositoryException if there is a problem connecting to or using the Maven repository, as configured
@@ -148,13 +153,15 @@
/**
* Determine which of the identified libraries exist in this Maven repository.
+ *
* @param firstId the first ID of the library to check
* @param mavenIds the IDs of the libraries; any null IDs will be ignored
* @return the set of IDs for libraries that do exist in this repository; never null
* @throws MavenRepositoryException if there is a problem connecting to or using the Maven repository, as configured
* @see #exists(MavenId)
*/
- public Set<MavenId> exists( MavenId firstId, MavenId... mavenIds ) throws MavenRepositoryException {
+ public Set<MavenId> exists( MavenId firstId,
+ MavenId... mavenIds ) throws MavenRepositoryException {
if (mavenIds == null || mavenIds.length == 0) return Collections.emptySet();
// Find the set of MavenIds that are not null ...
@@ -184,6 +191,7 @@
* <p>
* This implementation downloads the POM file for the specified project to extract the dependencies and exclusions.
* </p>
+ *
* @param mavenId the ID of the project; may not be null
* @return the list of dependencies
* @throws IllegalArgumentException if the MavenId reference is null
@@ -204,16 +212,19 @@
* <p>
* This implementation downloads the POM file for the specified project to extract the dependencies and exclusions.
* </p>
+ *
* @param mavenId the ID of the Maven project for which the dependencies are to be obtained
* @param pomStream the stream to the POM file
* @param allowedScopes the set of scopes that are to be allowed in the dependency list; if null, the default scopes of
- * {@link MavenDependency.Scope#getRuntimeScopes()} are used
+ * {@link MavenDependency.Scope#getRuntimeScopes()} are used
* @return the list of dependencies; never null
* @throws IllegalArgumentException if the MavenId or InputStream references are null
* @throws IOException if an error occurs reading the stream
* @throws MavenRepositoryException if there is a problem reading the POM file given the supplied stream and MavenId
*/
- protected List<MavenDependency> getDependencies( MavenId mavenId, InputStream pomStream, MavenDependency.Scope... allowedScopes ) throws IOException {
+ protected List<MavenDependency> getDependencies( MavenId mavenId,
+ InputStream pomStream,
+ MavenDependency.Scope... allowedScopes ) throws IOException {
CheckArg.isNotNull(mavenId, "mavenId");
CheckArg.isNotNull(pomStream, "pomStream");
EnumSet<MavenDependency.Scope> includedScopes = MavenDependency.Scope.getRuntimeScopes();
@@ -271,7 +282,9 @@
// Extract the Maven dependency ...
if (depGroupId == null || depArtifactId == null || depVersion == null) {
- this.logger.trace("Skipping dependency of {1} due to missing groupId, artifactId or version: {2}", mavenId, dependencyNode);
+ this.logger.trace("Skipping dependency of {1} due to missing groupId, artifactId or version: {2}",
+ mavenId,
+ dependencyNode);
continue; // not enough information, so skip
}
MavenDependency dependency = new MavenDependency(depGroupId, depArtifactId, depVersion, depClassifier);
@@ -290,7 +303,9 @@
String excludedArtifactId = (String)artifactIdExpression.evaluate(exclusionNode, XPathConstants.STRING);
if (excludedGroupId == null || excludedArtifactId == null) {
- this.logger.trace("Skipping exclusion in dependency of {1} due to missing exclusion groupId or artifactId: {2} ", mavenId, exclusionNode);
+ this.logger.trace("Skipping exclusion in dependency of {1} due to missing exclusion groupId or artifactId: {2} ",
+ mavenId,
+ exclusionNode);
continue; // not enough information, so skip
}
MavenId excludedId = new MavenId(excludedGroupId, excludedArtifactId);
@@ -319,13 +334,16 @@
* Get the URL for the artifact with the specified type in the given Maven project. The resulting URL can be used to
* {@link URL#openConnection() connect} to the repository to {@link URLConnection#getInputStream() read} or
* {@link URLConnection#getOutputStream() write} the artifact's content.
+ *
* @param mavenId the ID of the Maven project; may not be null
* @param artifactType the type of artifact; may be null, but the URL will not be able to be read or written to
* @param signatureType the type of signature; may be null if the signature file is not desired
* @return the URL to this artifact; never null
* @throws MalformedURLException if the supplied information cannot be turned into a valid URL
*/
- public URL getUrl( MavenId mavenId, ArtifactType artifactType, SignatureType signatureType ) throws MalformedURLException {
+ public URL getUrl( MavenId mavenId,
+ ArtifactType artifactType,
+ SignatureType signatureType ) throws MalformedURLException {
return this.urlProvider.getUrl(mavenId, artifactType, signatureType, false);
}
@@ -333,21 +351,26 @@
* Get the URL for the artifact with the specified type in the given Maven project. The resulting URL can be used to
* {@link URL#openConnection() connect} to the repository to {@link URLConnection#getInputStream() read} or
* {@link URLConnection#getOutputStream() write} the artifact's content.
+ *
* @param mavenId the ID of the Maven project; may not be null
* @param artifactType the type of artifact; may be null, but the URL will not be able to be read or written to
* @param signatureType the type of signature; may be null if the signature file is not desired
* @param createIfRequired true if the node structure should be created if any part of it does not exist; this always expects
- * that the path to the top of the repository tree exists.
+ * that the path to the top of the repository tree exists.
* @return the URL to this artifact; never null
* @throws MalformedURLException if the supplied information cannot be turned into a valid URL
*/
- public URL getUrl( MavenId mavenId, ArtifactType artifactType, SignatureType signatureType, boolean createIfRequired ) throws MalformedURLException {
+ public URL getUrl( MavenId mavenId,
+ ArtifactType artifactType,
+ SignatureType signatureType,
+ boolean createIfRequired ) throws MalformedURLException {
return this.urlProvider.getUrl(mavenId, artifactType, signatureType, createIfRequired);
}
/**
* This method is called to signal this repository that the POM file for a project has been updated. This method notifies the
* associated class loader of the change, which will adapt appropriately.
+ *
* @param mavenId
*/
protected void notifyUpdatedPom( MavenId mavenId ) {
Modified: trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/MavenRepositoryException.java
===================================================================
--- trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/MavenRepositoryException.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/MavenRepositoryException.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -25,7 +25,6 @@
/**
* An configuration or system failure exception.
- * @author Randall Hauch
*/
public class MavenRepositoryException extends RuntimeException {
@@ -45,7 +44,8 @@
* @param message
* @param cause
*/
- public MavenRepositoryException( String message, Throwable cause ) {
+ public MavenRepositoryException( String message,
+ Throwable cause ) {
super(message, cause);
}
Modified: trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/MavenUrl.java
===================================================================
--- trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/MavenUrl.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/MavenUrl.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -34,8 +34,6 @@
/**
* Wrapper for a URL that uses a format for referencing JCR nodes and content.
- *
- * @author Randall Hauch
*/
public class MavenUrl {
@@ -104,7 +102,9 @@
this.workspaceName = trimDelimiters(this.workspaceName, true, true);
}
- protected String trimDelimiters( String string, boolean removeLeading, boolean removeTrailing ) {
+ protected String trimDelimiters( String string,
+ boolean removeLeading,
+ boolean removeTrailing ) {
if (string == null || string.length() == 0) return "";
if (removeLeading) string = string.replaceAll("^/+", "");
if (removeTrailing) string = string.replaceAll("/+$", "");
@@ -132,13 +132,14 @@
* Get a URL that corresponds to the information in this object.
*
* @param handler the URL stream handler that will be used to handle obtaining an input stream or an output stream on the
- * resulting URL
+ * resulting URL
* @param encoder an encoder that will be used to escape any characters that are not allowed in URLs; {@link UrlEncoder} will
- * be used if no encoder is specified
+ * be used if no encoder is specified
* @return the URL
* @throws MalformedURLException if the resulting URL would be malformed
*/
- public URL getUrl( URLStreamHandler handler, TextEncoder encoder ) throws MalformedURLException {
+ public URL getUrl( URLStreamHandler handler,
+ TextEncoder encoder ) throws MalformedURLException {
if (encoder == null) {
encoder = new UrlEncoder().setSlashEncoded(false);
}
@@ -210,7 +211,8 @@
* @return the object representing the JCR information contained in the URL
* @see #parse(URL, TextDecoder)
*/
- public static MavenUrl parse( String url, TextDecoder decoder ) {
+ public static MavenUrl parse( String url,
+ TextDecoder decoder ) {
if (decoder == null) decoder = new UrlEncoder();
// This regular expression has the following groups:
// 1) //hostname:port
@@ -247,7 +249,8 @@
* @return the object representing the JCR information contained in the URL
* @see #parse(String,TextDecoder)
*/
- public static MavenUrl parse( URL url, TextDecoder decoder ) {
+ public static MavenUrl parse( URL url,
+ TextDecoder decoder ) {
if (url == null) return null;
return parse(url.toExternalForm(), decoder);
}
Modified: trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/SignatureType.java
===================================================================
--- trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/SignatureType.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/SignatureType.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,7 +24,7 @@
package org.jboss.dna.maven;
/**
- * @author Randall Hauch
+ * The type of signatures used by a Maven 2 repository.
*/
public enum SignatureType {
MD5(".md5"),
Copied: trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/JavadocMetadata.java)
===================================================================
--- trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/package-info.java (rev 0)
+++ trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,29 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The classes that make up the Maven classloader system.
+ */
+
+package org.jboss.dna.maven;
+
Modified: trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/spi/AbstractMavenUrlProvider.java
===================================================================
--- trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/spi/AbstractMavenUrlProvider.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/spi/AbstractMavenUrlProvider.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -27,7 +27,7 @@
import org.jboss.dna.common.collection.UnmodifiableProperties;
/**
- * @author Randall Hauch
+ * An abstract URL provider for Maven 2 repositories.
*/
public abstract class AbstractMavenUrlProvider implements MavenUrlProvider {
@@ -45,6 +45,7 @@
/**
* Get the properties for this provider.
+ *
* @return the properties
*/
public Properties getProperties() {
Modified: trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/spi/JcrMavenUrlProvider.java
===================================================================
--- trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/spi/JcrMavenUrlProvider.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/spi/JcrMavenUrlProvider.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -82,8 +82,6 @@
* }
* }
* </pre>
- *
- * @author Randall Hauch
*/
public class JcrMavenUrlProvider extends AbstractMavenUrlProvider {
@@ -349,9 +347,8 @@
}
/**
- * Obtain an input stream to the existing content at the location given by the supplied {@link MavenUrl}. The Maven URL
- * should have a path that points to the node where the content is stored in the
- * {@link #CONTENT_PROPERTY_NAME content property}.
+ * Obtain an input stream to the existing content at the location given by the supplied {@link MavenUrl}. The Maven URL should
+ * have a path that points to the node where the content is stored in the {@link #CONTENT_PROPERTY_NAME content property}.
*
* @param mavenUrl the Maven URL to the content; may not be null
* @return the input stream to the content, or null if there is no existing content
@@ -589,8 +586,8 @@
/**
* A URLConnection with support for obtaining content from a node in a JCR repository.
* <p>
- * Each JcrUrlConnection is used to make a single request to read or write the <code>jcr:content</code> property value on
- * the {@link javax.jcr.Node node} that corresponds to the given URL. The node must already exist.
+ * Each JcrUrlConnection is used to make a single request to read or write the <code>jcr:content</code> property value on the
+ * {@link javax.jcr.Node node} that corresponds to the given URL. The node must already exist.
* </p>
*
* @author Randall Hauch
Modified: trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/spi/MavenUrlProvider.java
===================================================================
--- trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/spi/MavenUrlProvider.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/spi/MavenUrlProvider.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -34,7 +34,7 @@
import org.jboss.dna.maven.SignatureType;
/**
- * @author Randall Hauch
+ * The definition of a URL provider for Maven 2 repositories.
*/
public interface MavenUrlProvider {
@@ -42,6 +42,7 @@
* Configure this provider given the configuration properties. This method is intended to be called by the
* {@link MavenRepository} that instantiates this provider, and only once immediately after instantiation and before any calls
* to {@link #getUrl(MavenId, ArtifactType, SignatureType, boolean)}.
+ *
* @param properties the configuration properties
* @throws MavenRepositoryException if there is a problem connecting to or using the Maven repository, as configured
*/
@@ -51,15 +52,19 @@
* Get the URL for the artifact with the specified type in the given Maven project. The resulting URL can be used to
* {@link URL#openConnection() connect} to the repository to {@link URLConnection#getInputStream() read} or
* {@link URLConnection#getOutputStream() write} the artifact's content.
+ *
* @param mavenId the ID of the Maven project; may not be null
* @param artifactType the type of artifact; may be null, but the URL will not be able to be read or written to
* @param signatureType the type of signature; may be null if the signature file is not desired
* @param createIfRequired true if the node structure should be created if any part of it does not exist; this always expects
- * that the path to the top of the repository tree exists.
+ * that the path to the top of the repository tree exists.
* @return the URL to this artifact, or null if the artifact does not exist
* @throws MalformedURLException if the supplied information cannot be turned into a valid URL
* @throws MavenRepositoryException if there is a problem connecting to or using the Maven repository, as configured
*/
- public URL getUrl( MavenId mavenId, ArtifactType artifactType, SignatureType signatureType, boolean createIfRequired ) throws MalformedURLException, MavenRepositoryException;
+ public URL getUrl( MavenId mavenId,
+ ArtifactType artifactType,
+ SignatureType signatureType,
+ boolean createIfRequired ) throws MalformedURLException, MavenRepositoryException;
}
Copied: trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/spi/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/JavadocMetadata.java)
===================================================================
--- trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/spi/package-info.java (rev 0)
+++ trunk/extensions/dna-classloader-maven/src/main/java/org/jboss/dna/maven/spi/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,29 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The classes that define the SPI for the Maven classloader system.
+ */
+
+package org.jboss.dna.maven.spi;
+
Modified: trunk/extensions/dna-common-jdbc/src/main/java/org/jboss/dna/common/jdbc/JdbcMetadataI18n.java
===================================================================
--- trunk/extensions/dna-common-jdbc/src/main/java/org/jboss/dna/common/jdbc/JdbcMetadataI18n.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-common-jdbc/src/main/java/org/jboss/dna/common/jdbc/JdbcMetadataI18n.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,7 +28,7 @@
import org.jboss.dna.common.i18n.I18n;
/**
- * <a href="mailto:litsenko_sergey@yahoo.com">Sergiy Litsenko</a>
+ * The internationalized string constants for the <code>org.jboss.dna.common.jdbc*</code> packages.
*/
public final class JdbcMetadataI18n {
public static I18n databaseConnectionHasBeenReleased;
Deleted: trunk/extensions/dna-connector-federation/.classpath
===================================================================
--- trunk/extensions/dna-connector-federation/.classpath 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/.classpath 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" path="src/main/resources"/>
- <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
- <classpathentry kind="src" output="target/test-classes" path="src/test/resources"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
Deleted: trunk/extensions/dna-connector-federation/.project
===================================================================
--- trunk/extensions/dna-connector-federation/.project 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/.project 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>dna-connector-federation</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.maven.ide.eclipse.maven2Builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.maven.ide.eclipse.maven2Nature</nature>
- </natures>
-</projectDescription>
Deleted: trunk/extensions/dna-connector-federation/pom.xml
===================================================================
--- trunk/extensions/dna-connector-federation/pom.xml 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/pom.xml 2009-09-12 17:55:25 UTC (rev 1218)
@@ -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.6-SNAPSHOT</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: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedLexicon.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedLexicon.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedLexicon.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,42 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation;
-
-import org.jboss.dna.graph.DnaLexicon;
-import org.jboss.dna.graph.property.Name;
-import org.jboss.dna.graph.property.basic.BasicName;
-
-/**
- * @author Randall Hauch
- */
-public class FederatedLexicon extends DnaLexicon {
-
- public static final Name WORKSPACES = new BasicName(Namespace.URI, "workspaces");
- public static final Name CACHE = new BasicName(Namespace.URI, "cache");
- public static final Name PROJECTION = new BasicName(Namespace.URI, "projection");
- public static final Name PROJECTIONS = new BasicName(Namespace.URI, "projections");
- public static final Name SOURCE_NAME = new BasicName(Namespace.URI, "sourceName");
- public static final Name WORKSPACE_NAME = new BasicName(Namespace.URI, "workspaceName");
- public static final Name DEFAULT_WORKSPACE_NAME = new BasicName(Namespace.URI, "defaultWorkspaceName");
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedRepository.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedRepository.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedRepository.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,220 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.atomic.AtomicInteger;
-import net.jcip.annotations.ThreadSafe;
-import org.jboss.dna.common.util.CheckArg;
-import org.jboss.dna.graph.ExecutionContext;
-import org.jboss.dna.graph.connector.RepositoryConnection;
-import org.jboss.dna.graph.connector.RepositoryConnectionFactory;
-import org.jboss.dna.graph.connector.RepositorySource;
-import org.jboss.dna.graph.request.processor.RequestProcessor;
-
-/**
- * The component that represents a single federated repository. The federated repository uses a set of {@link RepositorySource
- * federated connectionFactory} as designated by name through the {@link #getWorkspaceConfigurations() configurations}, and
- * provides the logic of interacting with those connectionFactory and presenting a single unified graph.
- *
- * @author Randall Hauch
- */
-@ThreadSafe
-public class FederatedRepository {
-
- private final String name;
- private final ExecutionContext context;
- private final RepositoryConnectionFactory connectionFactory;
- private final Map<String, FederatedWorkspace> workspaceConfigsByName;
- private final FederatedWorkspace defaultWorkspace;
- private final AtomicInteger openExecutors = new AtomicInteger(0);
- private final CountDownLatch shutdownLatch = new CountDownLatch(1);
- private final AtomicBoolean shutdownRequested = new AtomicBoolean(false);
-
- /**
- * Create a federated repository instance.
- *
- * @param repositoryName the name of the repository
- * @param context the execution context
- * @param connectionFactory the factory for {@link RepositoryConnection} instances that should be used
- * @param workspaces the workspace configurations for this repository, with the default workspace being first; may not be null
- * @throws IllegalArgumentException if any of the parameters are null, or if the name is blank
- */
- public FederatedRepository( String repositoryName,
- ExecutionContext context,
- RepositoryConnectionFactory connectionFactory,
- Iterable<FederatedWorkspace> workspaces ) {
- CheckArg.isNotEmpty(repositoryName, "repositoryName");
- CheckArg.isNotNull(connectionFactory, "connectionFactory");
- CheckArg.isNotNull(context, "context");
- CheckArg.isNotNull(workspaces, "workspaces");
- this.name = repositoryName;
- this.context = context;
- this.connectionFactory = connectionFactory;
- FederatedWorkspace defaultWorkspace = null;
- Map<String, FederatedWorkspace> configsByName = new HashMap<String, FederatedWorkspace>();
- for (FederatedWorkspace workspace : workspaces) {
- if (defaultWorkspace == null) defaultWorkspace = workspace;
- configsByName.put(workspace.getName(), workspace);
- }
- this.workspaceConfigsByName = Collections.unmodifiableMap(configsByName);
- this.defaultWorkspace = defaultWorkspace;
- }
-
- /**
- * Get the name of this repository
- *
- * @return name
- */
- public String getName() {
- return name;
- }
-
- /**
- * @return the execution context
- */
- public ExecutionContext getExecutionContext() {
- return context;
- }
-
- /**
- * @return the connectionFactory
- */
- protected RepositoryConnectionFactory getConnectionFactory() {
- return connectionFactory;
- }
-
- /**
- * Utility method called by the administrator.
- */
- public synchronized void start() {
- // Do not establish connections to the connectionFactory; these will be established as needed
- }
-
- /**
- * Return true if this federated repository is running and ready for connections.
- *
- * @return true if running, or false otherwise
- */
- public boolean isRunning() {
- return this.shutdownRequested.get() != true;
- }
-
- /**
- * Utility method called by the administrator.
- */
- public synchronized void shutdown() {
- this.shutdownRequested.set(true);
- if (this.openExecutors.get() <= 0) shutdownLatch.countDown();
- }
-
- /**
- * Utility method called by the administrator.
- *
- * @param timeout
- * @param unit
- * @return true if all connections open at the time this method is called were {@link RepositoryConnection#close() closed} in
- * the supplied time, or false if the timeout occurred before all the connections were closed
- * @throws InterruptedException
- */
- public boolean awaitTermination( long timeout,
- TimeUnit unit ) throws InterruptedException {
- // Await until all connections have been closed, or until the timeout occurs
- return shutdownLatch.await(timeout, unit);
- }
-
- /**
- * Return true if this federated repository has completed its termination and no longer has any open connections.
- *
- * @return true if terminated, or false otherwise
- */
- public boolean isTerminated() {
- return this.openExecutors.get() != 0;
- }
-
- /**
- * Authenticate the supplied username with the supplied credentials, and return whether authentication was successful.
- *
- * @param source the {@link RepositorySource} that should be affiliated with the resulting connection
- * @param username the username
- * @param credentials the credentials
- * @return the repository connection if authentication succeeded, or null otherwise
- */
- public RepositoryConnection createConnection( RepositorySource source,
- String username,
- Object credentials ) {
- return new FederatedRepositoryConnection(this, source.getName());
- }
-
- /**
- * Get the configuration of this repository's workspaces. This set of configurations (as well as each configuration) is
- * immutable. Therefore, when using a configuration and needing a consistent configuration, maintain a reference to the
- * configuration during that time (as the actual configuration may be replaced at any time).
- *
- * @return the repository's worksapce configuration at the time this method is called.
- */
- public Map<String, FederatedWorkspace> getWorkspaceConfigurations() {
- return workspaceConfigsByName;
- }
-
- /**
- * Called by {@link FederatedRepositoryConnection#execute(ExecutionContext, org.jboss.dna.graph.request.Request)}.
- *
- * @param context the execution context in which the executor will be run; may not be null
- * @param sourceName the name of the {@link RepositorySource} that is making use of this executor; may not be null or empty
- * @return the executor
- */
- protected RequestProcessor getProcessor( ExecutionContext context,
- String sourceName ) {
- Map<String, FederatedWorkspace> workspaces = this.getWorkspaceConfigurations();
- return new FederatingRequestProcessor(context, sourceName, workspaces, defaultWorkspace, getConnectionFactory());
- }
-
- /**
- * Called by {@link FederatedRepositoryConnection#FederatedRepositoryConnection(FederatedRepository, String)}.
- *
- * @param connection the connection being opened
- */
- /*package*/void register( FederatedRepositoryConnection connection ) {
- openExecutors.incrementAndGet();
- }
-
- /**
- * Called by {@link FederatedRepositoryConnection#close()}.
- *
- * @param connection the connection being closed
- */
- /*package*/void unregister( FederatedRepositoryConnection connection ) {
- if (openExecutors.decrementAndGet() <= 0 && shutdownRequested.get()) {
- // Last connection, so turn out the lights ...
- shutdownLatch.countDown();
- }
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedRepositoryConnection.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedRepositoryConnection.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedRepositoryConnection.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,118 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation;
-
-import java.util.concurrent.TimeUnit;
-import javax.transaction.xa.XAResource;
-import net.jcip.annotations.ThreadSafe;
-import org.jboss.dna.graph.ExecutionContext;
-import org.jboss.dna.graph.cache.CachePolicy;
-import org.jboss.dna.graph.connector.RepositoryConnection;
-import org.jboss.dna.graph.connector.RepositorySourceException;
-import org.jboss.dna.graph.request.Request;
-import org.jboss.dna.graph.request.processor.RequestProcessor;
-
-/**
- * @author Randall Hauch
- */
-@ThreadSafe
-public class FederatedRepositoryConnection implements RepositoryConnection {
-
- private final FederatedRepository repository;
- private final String sourceName;
-
- protected FederatedRepositoryConnection( FederatedRepository repository,
- String sourceName ) {
- assert sourceName != null;
- assert repository != null;
- this.sourceName = sourceName;
- this.repository = repository;
- this.repository.register(this);
- }
-
- /**
- * @return repository
- */
- protected FederatedRepository getRepository() {
- return this.repository;
- }
-
- /**
- * {@inheritDoc}
- */
- public String getSourceName() {
- return this.sourceName;
- }
-
- /**
- * {@inheritDoc}
- */
- public CachePolicy getDefaultCachePolicy() {
- return null;
- }
-
- /**
- * {@inheritDoc}
- */
- public XAResource getXAResource() {
- return null;
- }
-
- /**
- * {@inheritDoc}
- */
- public boolean ping( long time,
- TimeUnit unit ) {
- return this.repository.isRunning();
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.graph.connector.RepositoryConnection#execute(org.jboss.dna.graph.ExecutionContext,
- * org.jboss.dna.graph.request.Request)
- */
- public void execute( ExecutionContext context,
- Request request ) throws RepositorySourceException {
- if (!this.repository.isRunning()) {
- throw new RepositorySourceException(FederationI18n.repositoryHasBeenShutDown.text(this.repository.getName()));
- }
- if (request == null) return;
-
- RequestProcessor processor = this.repository.getProcessor(context, sourceName);
- assert processor != null;
- try {
- processor.process(request);
- } finally {
- processor.close();
- }
- }
-
- /**
- * {@inheritDoc}
- */
- public void close() {
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedRepositorySource.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedRepositorySource.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedRepositorySource.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,799 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation;
-
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicInteger;
-import javax.naming.Context;
-import javax.naming.RefAddr;
-import javax.naming.Reference;
-import javax.naming.StringRefAddr;
-import javax.naming.spi.ObjectFactory;
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.NameCallback;
-import javax.security.auth.callback.PasswordCallback;
-import javax.security.auth.login.LoginException;
-import net.jcip.annotations.ThreadSafe;
-import org.jboss.dna.common.collection.Problems;
-import org.jboss.dna.common.collection.SimpleProblems;
-import org.jboss.dna.common.i18n.I18n;
-import org.jboss.dna.common.util.CheckArg;
-import org.jboss.dna.graph.ExecutionContext;
-import org.jboss.dna.graph.Graph;
-import org.jboss.dna.graph.JaasSecurityContext;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.Node;
-import org.jboss.dna.graph.Subgraph;
-import org.jboss.dna.graph.SubgraphNode;
-import org.jboss.dna.graph.cache.BasicCachePolicy;
-import org.jboss.dna.graph.cache.CachePolicy;
-import org.jboss.dna.graph.connector.RepositoryConnection;
-import org.jboss.dna.graph.connector.RepositoryConnectionFactory;
-import org.jboss.dna.graph.connector.RepositoryContext;
-import org.jboss.dna.graph.connector.RepositorySource;
-import org.jboss.dna.graph.connector.RepositorySourceCapabilities;
-import org.jboss.dna.graph.connector.RepositorySourceException;
-import org.jboss.dna.graph.property.Path;
-import org.jboss.dna.graph.property.Property;
-import org.jboss.dna.graph.property.ValueFactories;
-import org.jboss.dna.graph.property.ValueFactory;
-
-/**
- * @author Randall Hauch
- */
-@ThreadSafe
-public class FederatedRepositorySource implements RepositorySource, ObjectFactory {
-
- /**
- */
- private static final long serialVersionUID = 7587346948013486977L;
-
- /**
- * The default limit is {@value} for retrying {@link RepositoryConnection connection} calls to the underlying source.
- */
- public static final int DEFAULT_RETRY_LIMIT = 0;
-
- public static final String DEFAULT_CONFIGURATION_SOURCE_PATH = "/";
-
- protected static final RepositorySourceCapabilities CAPABILITIES = new RepositorySourceCapabilities(true, true);
-
- protected static final String REPOSITORY_NAME = "repositoryName";
- protected static final String SOURCE_NAME = "sourceName";
- protected static final String USERNAME = "username";
- protected static final String PASSWORD = "password";
- protected static final String CONFIGURATION_SOURCE_NAME = "configurationSourceName";
- protected static final String CONFIGURATION_SOURCE_PATH = "configurationSourcePath";
- protected static final String SECURITY_DOMAIN = "securityDomain";
- protected static final String RETRY_LIMIT = "retryLimit";
-
- private String repositoryName;
- private String sourceName;
- private String username;
- private String password;
- private String configurationSourceName;
- private String configurationWorkspaceName;
- private String configurationSourcePath = DEFAULT_CONFIGURATION_SOURCE_PATH;
- private String securityDomain;
- private final AtomicInteger retryLimit = new AtomicInteger(DEFAULT_RETRY_LIMIT);
- private transient FederatedRepository repository;
- private transient RepositoryContext repositoryContext;
-
- /**
- * Create a new instance of the source, which must still be properly initialized with a {@link #setRepositoryName(String)
- * repository name}.
- */
- public FederatedRepositorySource() {
- super();
- }
-
- /**
- * Create a new instance of the source with the required repository name and federation service.
- *
- * @param repositoryName the repository name
- * @throws IllegalArgumentException if the federation service is null or the repository name is null or blank
- */
- public FederatedRepositorySource( String repositoryName ) {
- super();
- CheckArg.isNotNull(repositoryName, "repositoryName");
- this.repositoryName = repositoryName;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.graph.connector.RepositorySource#initialize(org.jboss.dna.graph.connector.RepositoryContext)
- */
- public void initialize( RepositoryContext context ) throws RepositorySourceException {
- this.repositoryContext = context;
- }
-
- /**
- * @return repositoryContext
- */
- public RepositoryContext getRepositoryContext() {
- return repositoryContext;
- }
-
- /**
- * {@inheritDoc}
- */
- public synchronized String getName() {
- return sourceName;
- }
-
- /**
- * Set the name of this source.
- * <p>
- * This is a required property.
- * </p>
- *
- * @param sourceName the name of this repository source
- * @see #setConfigurationSourceName(String)
- * @see #setConfigurationSourcePath(String)
- * @see #setPassword(String)
- * @see #setUsername(String)
- * @see #setRepositoryName(String)
- * @see #setPassword(String)
- * @see #setUsername(String)
- * @see #setName(String)
- */
- public synchronized void setName( String sourceName ) {
- if (this.sourceName == sourceName || this.sourceName != null && this.sourceName.equals(sourceName)) return; // unchanged
- this.sourceName = sourceName;
- changeRepositoryConfig();
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.graph.connector.RepositorySource#getRetryLimit()
- */
- public int getRetryLimit() {
- return retryLimit.get();
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.graph.connector.RepositorySource#setRetryLimit(int)
- */
- public void setRetryLimit( int limit ) {
- retryLimit.set(limit < 0 ? 0 : limit);
- }
-
- /**
- * Get the name in JNDI of a {@link RepositorySource} instance that should be used by the {@link FederatedRepository federated
- * repository} as the configuration repository.
- * <p>
- * This is a required property.
- * </p>
- *
- * @return the JNDI name of the {@link RepositorySource} instance that should be used for the configuration, or null if the
- * federated repository instance is to be found in JNDI
- * @see #setConfigurationSourceName(String)
- */
- public String getConfigurationSourceName() {
- return configurationSourceName;
- }
-
- /**
- * Get the name of a {@link RepositorySource} instance that should be used by the {@link FederatedRepository federated
- * repository} as the configuration repository. The instance will be retrieved from the {@link RepositoryConnectionFactory}
- * instance from the {@link RepositoryContext#getRepositoryConnectionFactory() repository context} supplied during
- * {@link RepositorySource#initialize(RepositoryContext) initialization}.
- * <p>
- * This is a required property.
- * </p>
- *
- * @param sourceName the name of the {@link RepositorySource} instance that should be used for the configuration, or null if
- * the federated repository instance is to be found in JNDI
- * @see #getConfigurationSourceName()
- * @see #setConfigurationSourcePath(String)
- * @see #setPassword(String)
- * @see #setUsername(String)
- * @see #setRepositoryName(String)
- * @see #setName(String)
- */
- public void setConfigurationSourceName( String sourceName ) {
- if (this.configurationSourceName == sourceName || this.configurationSourceName != null
- && this.configurationSourceName.equals(sourceName)) return; // unchanged
- this.configurationSourceName = sourceName;
- changeRepositoryConfig();
- }
-
- /**
- * Set the name of the workspace in the {@link #getConfigurationSourceName() source} used by the {@link FederatedRepository
- * federated repository} as the configuration repository. If this workspace name is null, the default workspace as defined by
- * that source will be used.
- *
- * @return the name of the configuration workspace, or null if the default workspace for the
- * {@link #getConfigurationSourceName() configuration source} should be used
- */
- public String getConfigurationWorkspaceName() {
- return configurationWorkspaceName;
- }
-
- /**
- * Set the name of the workspace in the {@link #getConfigurationSourceName() source} used by the {@link FederatedRepository
- * federated repository} as the configuration repository. If this workspace name is null, the default workspace as defined by
- * that source will be used.
- *
- * @param workspaceName the name of the configuration workspace, or null if the default workspace for the
- * {@link #getConfigurationSourceName() configuration source} should be used
- */
- public void setConfigurationWorkspaceName( String workspaceName ) {
- if (this.configurationWorkspaceName == workspaceName || this.configurationWorkspaceName != null
- && this.configurationWorkspaceName.equals(workspaceName)) return; // unchanged
- this.configurationWorkspaceName = workspaceName;
- changeRepositoryConfig();
- }
-
- /**
- * Get the path in the source that will be subgraph below the <code>/dna:system</code> branch of the repository.
- * <p>
- * This is a required property.
- * </p>
- *
- * @return the string array of projection rules, or null if the projection rules haven't yet been set or if the federated
- * repository instance is to be found in JNDI
- * @see #setConfigurationSourcePath(String)
- */
- public String getConfigurationSourcePath() {
- return configurationSourcePath;
- }
-
- /**
- * Set the path in the source that will be subgraph below the <code>/dna:system</code> branch of the repository.
- * <p>
- * This is a required property.
- * </p>
- *
- * @param pathInSourceToConfigurationRoot the path within the configuration source to the node that should be the root of the
- * configuration information, or null if the path hasn't yet been set or if the federated repository instance is to be
- * found in JNDI
- * @see #setConfigurationSourcePath(String)
- * @see #setConfigurationSourceName(String)
- * @see #setPassword(String)
- * @see #setUsername(String)
- * @see #setRepositoryName(String)
- * @see #setName(String)
- */
- public void setConfigurationSourcePath( String pathInSourceToConfigurationRoot ) {
- if (this.configurationSourcePath == pathInSourceToConfigurationRoot || this.configurationSourcePath != null
- && this.configurationSourcePath.equals(pathInSourceToConfigurationRoot)) return;
- String path = pathInSourceToConfigurationRoot != null ? pathInSourceToConfigurationRoot : DEFAULT_CONFIGURATION_SOURCE_PATH;
- // Ensure one leading slash and one trailing slashes ...
- this.configurationSourcePath = path = ("/" + path).replaceAll("^/+", "/").replaceAll("/+$", "") + "/";
- changeRepositoryConfig();
- }
-
- /**
- * Get the name of the security domain that should be used by JAAS to identify the application or security context. This
- * should correspond to the JAAS login configuration located within the JAAS login configuration file.
- *
- * @return securityDomain
- */
- public String getSecurityDomain() {
- return securityDomain;
- }
-
- /**
- * Set the name of the security domain that should be used by JAAS to identify the application or security context. This
- * should correspond to the JAAS login configuration located within the JAAS login configuration file.
- *
- * @param securityDomain Sets securityDomain to the specified value.
- */
- public void setSecurityDomain( String securityDomain ) {
- if (this.securityDomain != null && this.securityDomain.equals(securityDomain)) return; // unchanged
- this.securityDomain = securityDomain;
- changeRepositoryConfig();
- }
-
- /**
- * Get the name of the federated repository.
- * <p>
- * This is a required property.
- * </p>
- *
- * @return the name of the repository
- * @see #setRepositoryName(String)
- */
- public synchronized String getRepositoryName() {
- return this.repositoryName;
- }
-
- /**
- * Get the name of the federated repository.
- * <p>
- * This is a required property.
- * </p>
- *
- * @param repositoryName the new name of the repository
- * @throws IllegalArgumentException if the repository name is null, empty or blank
- * @see #getRepositoryName()
- * @see #setConfigurationSourceName(String)
- * @see #setConfigurationSourcePath(String)
- * @see #setPassword(String)
- * @see #setUsername(String)
- * @see #setName(String)
- */
- public synchronized void setRepositoryName( String repositoryName ) {
- CheckArg.isNotEmpty(repositoryName, "repositoryName");
- if (this.repositoryName != null && this.repositoryName.equals(repositoryName)) return; // unchanged
- this.repositoryName = repositoryName;
- changeRepositoryConfig();
- }
-
- /**
- * Get the username that should be used when authenticating and {@link #getConnection() creating connections}.
- * <p>
- * This is an optional property, required only when authentication is to be used.
- * </p>
- *
- * @return the username, or null if no username has been set or are not to be used
- * @see #setUsername(String)
- */
- public String getUsername() {
- return this.username;
- }
-
- /**
- * Set the username that should be used when authenticating and {@link #getConnection() creating connections}.
- * <p>
- * This is an optional property, required only when authentication is to be used.
- * </p>
- *
- * @param username the username, or null if no username has been set or are not to be used
- * @see #getUsername()
- * @see #setPassword(String)
- * @see #setConfigurationSourceName(String)
- * @see #setConfigurationSourcePath(String)
- * @see #setPassword(String)
- * @see #setRepositoryName(String)
- * @see #setName(String)
- */
- public void setUsername( String username ) {
- if (this.username != null && this.username.equals(username)) return; // unchanged
- this.username = username;
- changeRepositoryConfig();
- }
-
- /**
- * Get the password that should be used when authenticating and {@link #getConnection() creating connections}.
- * <p>
- * This is an optional property, required only when authentication is to be used.
- * </p>
- *
- * @return the password, or null if no password have been set or are not to be used
- * @see #setPassword(String)
- */
- public String getPassword() {
- return this.password;
- }
-
- /**
- * Get the password that should be used when authenticating and {@link #getConnection() creating connections}.
- * <p>
- * This is an optional property, required only when authentication is to be used.
- * </p>
- *
- * @param password the password, or null if no password have been set or are not to be used
- * @see #getPassword()
- * @see #setConfigurationSourceName(String)
- * @see #setConfigurationSourcePath(String)
- * @see #setUsername(String)
- * @see #setRepositoryName(String)
- * @see #setName(String)
- */
- public void setPassword( String password ) {
- if (this.password != null && this.password.equals(password)) return; // unchanged
- this.password = password;
- changeRepositoryConfig();
- }
-
- /**
- * This method is called to signal that some aspect of the configuration has changed. If a {@link #getRepository() repository}
- * instance has been created, it's configuration is
- * {@link #getWorkspaceConfigurations(ExecutionContext, RepositoryConnectionFactory) rebuilt} and updated. Nothing is done,
- * however, if there is currently no {@link #getRepository() repository}.
- */
- protected synchronized void changeRepositoryConfig() {
- if (this.repository != null) {
- RepositoryContext repositoryContext = getRepositoryContext();
- if (repositoryContext != null) {
- this.repository = getRepository();
- }
- }
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.graph.connector.RepositorySource#getConnection()
- */
- public RepositoryConnection getConnection() throws RepositorySourceException {
- if (getName() == null) {
- I18n msg = FederationI18n.propertyIsRequired;
- throw new RepositorySourceException(getName(), msg.text("name"));
- }
- if (getRepositoryContext() == null) {
- I18n msg = FederationI18n.propertyIsRequired;
- throw new RepositorySourceException(getName(), msg.text("repository context"));
- }
- if (getUsername() != null && getSecurityDomain() == null) {
- I18n msg = FederationI18n.propertyIsRequired;
- throw new RepositorySourceException(getName(), msg.text("security domain"));
- }
- // Find the repository ...
- FederatedRepository repository = getRepository();
- // Authenticate the user ...
- String username = this.username;
- Object credentials = this.password;
- RepositoryConnection connection = repository.createConnection(this, username, credentials);
- if (connection == null) {
- I18n msg = FederationI18n.unableToAuthenticateConnectionToFederatedRepository;
- throw new RepositorySourceException(msg.text(this.repositoryName, username));
- }
- // Return the new connection ...
- return connection;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.graph.connector.RepositorySource#close()
- */
- public void close() {
- // do nothing ...
- }
-
- /**
- * Get the {@link FederatedRepository} instance that this source is using. This method uses the following logic:
- * <ol>
- * <li>If a {@link FederatedRepository} already was obtained from a prior call, the same instance is returned.</li>
- * <li>A {@link FederatedRepository} is created using a {@link FederatedWorkspace} is created from this instance's properties
- * and {@link ExecutionContext} and {@link RepositoryConnectionFactory} instances obtained from JNDI.</li>
- * <li></li>
- * <li></li>
- * </ol>
- *
- * @return the federated repository instance
- * @throws RepositorySourceException
- */
- protected synchronized FederatedRepository getRepository() throws RepositorySourceException {
- if (repository == null) {
- ExecutionContext context = getExecutionContext();
- RepositoryConnectionFactory connectionFactory = getRepositoryContext().getRepositoryConnectionFactory();
- // And create the configuration and the repository ...
- List<FederatedWorkspace> configs = getWorkspaceConfigurations(context, connectionFactory);
- repository = new FederatedRepository(repositoryName, context, connectionFactory, configs);
- }
- return repository;
- }
-
- protected ExecutionContext getExecutionContext() {
- ExecutionContext factory = getRepositoryContext().getExecutionContext();
- CallbackHandler handler = createCallbackHandler();
- try {
- String securityDomain = getSecurityDomain();
- if (securityDomain != null || getUsername() != null) {
- return factory.with(new JaasSecurityContext(securityDomain, handler));
- }
- return factory;
- } catch (LoginException e) {
- I18n msg = FederationI18n.unableToCreateExecutionContext;
- throw new RepositorySourceException(getName(), msg.text(this.sourceName, securityDomain), e);
- }
- }
-
- protected CallbackHandler createCallbackHandler() {
- return new CallbackHandler() {
- public void handle( Callback[] callbacks ) {
- for (Callback callback : callbacks) {
- if (callback instanceof NameCallback) {
- NameCallback nameCallback = (NameCallback)callback;
- nameCallback.setName(FederatedRepositorySource.this.getUsername());
- }
- if (callback instanceof PasswordCallback) {
- PasswordCallback passwordCallback = (PasswordCallback)callback;
- passwordCallback.setPassword(FederatedRepositorySource.this.getPassword().toCharArray());
- }
- }
- }
- };
- }
-
- /**
- * Create a {@link FederatedWorkspace} instances from the current properties of this instance. This method does <i>not</i>
- * modify the state of this instance.
- *
- * @param context the execution context that should be used to read the configuration; may not be null
- * @param connectionFactory the factory for {@link RepositoryConnection}s can be obtained; may not be null
- * @return the collection of configurations reflecting the workspaces as currently defined, order such that the default
- * workspace is first; never null
- */
- protected synchronized List<FederatedWorkspace> getWorkspaceConfigurations( ExecutionContext context,
- RepositoryConnectionFactory connectionFactory ) {
- Problems problems = new SimpleProblems();
- ValueFactories valueFactories = context.getValueFactories();
- ValueFactory<String> strings = valueFactories.getStringFactory();
- ValueFactory<Long> longs = valueFactories.getLongFactory();
- ProjectionParser projectionParser = ProjectionParser.getInstance();
-
- // Create a graph to access the configuration ...
- Graph config = Graph.create(this.configurationSourceName, connectionFactory, context);
- if (this.configurationWorkspaceName != null) config.useWorkspace(this.configurationWorkspaceName);
- String configurationWorkspaceName = config.getCurrentWorkspaceName();
-
- // Read the federated repositories subgraph, of max depth 6:
- // Level 1: the node representing the federated repository
- // Level 2: the "dna:workspaces" node
- // Level 3: a node for each workspace in the federated repository
- // Level 4: the "dna:cache" project node, or the "dna:projections" nodes
- // Level 5: a node below "dna:projections" for each projection, with properties for the source name,
- // workspace name, cache expiration time, and projection rules
- Subgraph repositories = config.getSubgraphOfDepth(5).at(getConfigurationSourcePath());
-
- // Get the name of the default workspace ...
- String defaultWorkspaceName = null;
- Property defaultWorkspaceNameProperty = repositories.getRoot().getProperty(FederatedLexicon.DEFAULT_WORKSPACE_NAME);
- if (defaultWorkspaceNameProperty != null) {
- // Set the name using the property if there is one ...
- defaultWorkspaceName = strings.create(defaultWorkspaceNameProperty.getFirstValue());
- }
-
- Node workspacesNode = repositories.getNode(FederatedLexicon.WORKSPACES);
- if (workspacesNode == null) {
- I18n msg = FederationI18n.requiredNodeDoesNotExistRelativeToNode;
- String name = FederatedLexicon.WORKSPACES.getString(context.getNamespaceRegistry());
- String relativeTo = repositories.getLocation().getPath().getString(context.getNamespaceRegistry());
- throw new FederationException(msg.text(name, relativeTo, configurationWorkspaceName, configurationSourceName));
- }
- LinkedList<FederatedWorkspace> workspaces = new LinkedList<FederatedWorkspace>();
- for (Location workspace : workspacesNode) {
- // Get the name of the workspace ...
- String workspaceName = null;
- SubgraphNode workspaceNode = repositories.getNode(workspace);
- Property workspaceNameProperty = workspaceNode.getProperty(FederatedLexicon.WORKSPACE_NAME);
- if (workspaceNameProperty != null) {
- // Set the name using the property if there is one ...
- workspaceName = strings.create(workspaceNameProperty.getFirstValue());
- }
- if (workspaceName == null) {
- // Otherwise, set the name using the local name of the workspace node ...
- workspaceName = workspace.getPath().getLastSegment().getName().getLocalName();
- }
-
- // Get the cache projection ...
- Projection cacheProjection = null;
- CachePolicy cachePolicy = null;
- Node cacheNode = workspaceNode.getNode(FederatedLexicon.CACHE);
- if (cacheNode != null) {
- // Create the projection from the "dna:cache" node ...
- cacheProjection = createProjection(context, projectionParser, cacheNode, problems);
-
- // Get the cache expiration time for the cache ...
- Property timeToExpire = cacheNode.getProperty(FederatedLexicon.TIME_TO_EXPIRE);
- if (timeToExpire != null && !timeToExpire.isEmpty()) {
- long timeToCacheInMillis = longs.create(timeToExpire.getFirstValue());
- cachePolicy = new BasicCachePolicy(timeToCacheInMillis, TimeUnit.MILLISECONDS).getUnmodifiable();
- }
- }
-
- // Get the source projections ...
- Node projectionsNode = workspaceNode.getNode(FederatedLexicon.PROJECTIONS);
- if (projectionsNode == null) {
- I18n msg = FederationI18n.requiredNodeDoesNotExistRelativeToNode;
- String name = FederatedLexicon.PROJECTIONS.getString(context.getNamespaceRegistry());
- String relativeTo = workspaceNode.getLocation().getPath().getString(context.getNamespaceRegistry());
- throw new FederationException(msg.text(name, relativeTo, configurationWorkspaceName, configurationSourceName));
- }
- List<Projection> sourceProjections = new LinkedList<Projection>();
- for (Location projection : projectionsNode) {
- Node projectionNode = repositories.getNode(projection);
-
- // Create the projection ...
- sourceProjections.add(createProjection(context, projectionParser, projectionNode, problems));
- }
-
- // Create the federated workspace configuration ...
- FederatedWorkspace space = new FederatedWorkspace(workspaceName, cacheProjection, sourceProjections, cachePolicy);
- if (workspaceName.equals(defaultWorkspaceName)) {
- workspaces.addFirst(space);
- } else {
- workspaces.add(space);
- }
- }
-
- return workspaces;
- }
-
- /**
- * Instantiate the {@link Projection} described by the supplied properties.
- *
- * @param context the execution context that should be used to read the configuration; may not be null
- * @param projectionParser the projection rule parser that should be used; may not be null
- * @param node the node where these properties were found; never null
- * @param problems the problems container in which any problems should be reported; never null
- * @return the region instance, or null if it could not be created
- */
- protected Projection createProjection( ExecutionContext context,
- ProjectionParser projectionParser,
- Node node,
- Problems problems ) {
- ValueFactory<String> strings = context.getValueFactories().getStringFactory();
-
- Path path = node.getLocation().getPath();
-
- // Get the source name from the local name of the node ...
- String sourceName = path.getLastSegment().getName().getLocalName();
- Property sourceNameProperty = node.getProperty(FederatedLexicon.SOURCE_NAME);
- if (sourceNameProperty != null && !sourceNameProperty.isEmpty()) {
- // There is a "dna:sourceName" property, so use this instead ...
- sourceName = strings.create(sourceNameProperty.getFirstValue());
- }
- assert sourceName != null;
-
- // Get the workspace name ...
- String workspaceName = null;
- Property workspaceNameProperty = node.getProperty(FederatedLexicon.WORKSPACE_NAME);
- if (workspaceNameProperty != null && !workspaceNameProperty.isEmpty()) {
- // There is a "dna:workspaceName" property, so use this instead ...
- workspaceName = strings.create(workspaceNameProperty.getFirstValue());
- }
-
- // Get the projection rules ...
- Projection.Rule[] projectionRules = null;
- Property projectionRulesProperty = node.getProperty(FederatedLexicon.PROJECTION_RULES);
- if (projectionRulesProperty != null && !projectionRulesProperty.isEmpty()) {
- String[] projectionRuleStrs = strings.create(projectionRulesProperty.getValuesAsArray());
- if (projectionRuleStrs != null && projectionRuleStrs.length != 0) {
- projectionRules = projectionParser.rulesFromStrings(context, projectionRuleStrs);
- }
- }
- if (problems.hasErrors()) return null;
-
- return new Projection(sourceName, workspaceName, projectionRules);
- }
-
- /**
- * {@inheritDoc}
- */
- public synchronized Reference getReference() {
- String className = getClass().getName();
- String factoryClassName = this.getClass().getName();
- Reference ref = new Reference(className, factoryClassName, null);
-
- if (getRepositoryName() != null) {
- ref.add(new StringRefAddr(REPOSITORY_NAME, getRepositoryName()));
- }
- if (getName() != null) {
- ref.add(new StringRefAddr(SOURCE_NAME, getName()));
- }
- if (getUsername() != null) {
- ref.add(new StringRefAddr(USERNAME, getUsername()));
- }
- if (getPassword() != null) {
- ref.add(new StringRefAddr(PASSWORD, getPassword()));
- }
- if (getConfigurationSourceName() != null) {
- ref.add(new StringRefAddr(CONFIGURATION_SOURCE_NAME, getConfigurationSourceName()));
- }
- if (getConfigurationSourcePath() != null) {
- ref.add(new StringRefAddr(CONFIGURATION_SOURCE_PATH, getConfigurationSourcePath()));
- }
- if (getSecurityDomain() != null) {
- ref.add(new StringRefAddr(SECURITY_DOMAIN, getSecurityDomain()));
- }
- ref.add(new StringRefAddr(RETRY_LIMIT, Integer.toString(getRetryLimit())));
- return ref;
- }
-
- /**
- * {@inheritDoc}
- */
- public Object getObjectInstance( Object obj,
- javax.naming.Name name,
- Context nameCtx,
- Hashtable<?, ?> environment ) throws Exception {
- if (obj instanceof Reference) {
- Map<String, String> values = new HashMap<String, String>();
- Reference ref = (Reference)obj;
- Enumeration<?> en = ref.getAll();
- while (en.hasMoreElements()) {
- RefAddr subref = (RefAddr)en.nextElement();
- if (subref instanceof StringRefAddr) {
- String key = subref.getType();
- Object value = subref.getContent();
- if (value != null) values.put(key, value.toString());
- }
- }
- String repositoryName = values.get(FederatedRepositorySource.REPOSITORY_NAME);
- String sourceName = values.get(FederatedRepositorySource.SOURCE_NAME);
- String username = values.get(FederatedRepositorySource.USERNAME);
- String password = values.get(FederatedRepositorySource.PASSWORD);
- String configurationSourceName = values.get(FederatedRepositorySource.CONFIGURATION_SOURCE_NAME);
- String configurationSourcePath = values.get(FederatedRepositorySource.CONFIGURATION_SOURCE_PATH);
- String securityDomain = values.get(FederatedRepositorySource.SECURITY_DOMAIN);
- String retryLimit = values.get(FederatedRepositorySource.RETRY_LIMIT);
-
- // Create the source instance ...
- FederatedRepositorySource source = new FederatedRepositorySource();
- if (repositoryName != null) source.setRepositoryName(repositoryName);
- if (sourceName != null) source.setName(sourceName);
- if (username != null) source.setUsername(username);
- if (password != null) source.setPassword(password);
- if (configurationSourceName != null) source.setConfigurationSourceName(configurationSourceName);
- if (configurationSourcePath != null) source.setConfigurationSourcePath(configurationSourcePath);
- if (securityDomain != null) source.setSecurityDomain(securityDomain);
- if (retryLimit != null) source.setRetryLimit(Integer.parseInt(retryLimit));
- return source;
- }
- return null;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public int hashCode() {
- return repositoryName.hashCode();
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public boolean equals( Object obj ) {
- if (obj == this) return true;
- if (obj instanceof FederatedRepositorySource) {
- FederatedRepositorySource that = (FederatedRepositorySource)obj;
- // The repository name, source name, and federation service must all match
- if (!this.getRepositoryName().equals(that.getRepositoryName())) return false;
- if (this.getName() == null) {
- if (that.getName() != null) return false;
- } else {
- if (!this.getName().equals(that.getName())) return false;
- }
- return true;
- }
- return false;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.graph.connector.RepositorySource#getCapabilities()
- */
- public RepositorySourceCapabilities getCapabilities() {
- return CAPABILITIES;
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedWorkspace.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedWorkspace.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatedWorkspace.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,263 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import net.jcip.annotations.Immutable;
-import org.jboss.dna.common.collection.Problems;
-import org.jboss.dna.common.collection.ThreadSafeProblems;
-import org.jboss.dna.common.util.CheckArg;
-import org.jboss.dna.connector.federation.merge.strategy.MergeStrategy;
-import org.jboss.dna.connector.federation.merge.strategy.OneContributionMergeStrategy;
-import org.jboss.dna.connector.federation.merge.strategy.SimpleMergeStrategy;
-import org.jboss.dna.graph.cache.CachePolicy;
-import org.jboss.dna.graph.connector.RepositorySource;
-
-/**
- * The configuration of a federated repository. workspace The configuration defines, among other things, the set of
- * {@link #getSourceProjections() source projections} in the federated workspace that each specify how and where content from a
- * {@link RepositorySource source} is federated into the unified workspace.
- *
- * @author Randall Hauch
- */
-@Immutable
-public class FederatedWorkspace implements Comparable<FederatedWorkspace> {
-
- private final Projection cacheProjection;
- private final CachePolicy cachePolicy;
- private final List<Projection> sourceProjections;
- private final Map<String, List<Projection>> projectionsBySourceName;
- private final Problems problems;
- private final String name;
- private final MergeStrategy mergingStrategy;
-
- /**
- * Create a configuration for a federated workspace.
- *
- * @param workspaceName the name of the federated workspace; may not be null
- * @param cacheProjection the projection used for the cache; may not be null
- * @param sourceProjections the source projections; may not be null
- * @param cachePolicy the cache policy for this workspace; may be null if there is no policy
- * @throws IllegalArgumentException if the name is null or is blank
- */
- public FederatedWorkspace( String workspaceName,
- Projection cacheProjection,
- Iterable<Projection> sourceProjections,
- CachePolicy cachePolicy ) {
- this(workspaceName, cacheProjection, sourceProjections, cachePolicy, null);
- }
-
- /**
- * Create a configuration for a federated workspace.
- *
- * @param workspaceName the name of the federated workspace; may not be null
- * @param cacheProjection the projection used for the cache; may not be null
- * @param sourceProjections the source projections; may not be null
- * @param cachePolicy the cache policy for this workspace; may be null if there is no policy
- * @param mergeStrategy the strategy that should be used to merge nodes, or null if the strategy should be chosen based
- * automatically based upon the number of sources used by the projections
- * @throws IllegalArgumentException if the name is null or is blank
- */
- public FederatedWorkspace( String workspaceName,
- Projection cacheProjection,
- Iterable<Projection> sourceProjections,
- CachePolicy cachePolicy,
- MergeStrategy mergeStrategy ) {
- CheckArg.isNotNull(workspaceName, "workspaceName");
- CheckArg.isNotNull(cacheProjection, "cacheProjection");
- this.name = workspaceName;
- this.cachePolicy = cachePolicy;
- this.problems = new ThreadSafeProblems();
- this.cacheProjection = cacheProjection;
- List<Projection> projectionList = new ArrayList<Projection>();
- for (Projection projection : sourceProjections) {
- if (projection == null) continue;
- if (!projectionList.contains(projection)) {
- projectionList.add(projection);
- }
- }
- this.sourceProjections = Collections.unmodifiableList(projectionList);
- CheckArg.isNotEmpty(this.sourceProjections, "sourceProjections");
- this.projectionsBySourceName = new HashMap<String, List<Projection>>();
- for (Projection projection : this.sourceProjections) {
- String sourceName = projection.getSourceName();
- List<Projection> projectionsForSource = projectionsBySourceName.get(sourceName);
- if (projectionsForSource == null) {
- projectionsForSource = new LinkedList<Projection>();
- projectionsBySourceName.put(sourceName, projectionsForSource);
- }
- projectionsForSource.add(projection);
- }
- if (mergeStrategy != null) {
- this.mergingStrategy = mergeStrategy;
- } else {
- if (this.sourceProjections.size() == 1 && this.sourceProjections.get(0).isSimple()) {
- this.mergingStrategy = new OneContributionMergeStrategy();
- } else {
- this.mergingStrategy = new SimpleMergeStrategy();
- }
- }
- assert this.mergingStrategy != null;
- }
-
- /**
- * Get the name of this repository
- *
- * @return name
- */
- public String getName() {
- return this.name;
- }
-
- /**
- * Get the cache policy for this workspace
- *
- * @return the workspace's cache policy; may be null
- */
- public CachePolicy getCachePolicy() {
- return cachePolicy;
- }
-
- /**
- * Get the merging strategy used for this workspace
- *
- * @return the workspace's merging strategy; never null
- */
- public MergeStrategy getMergingStrategy() {
- return mergingStrategy;
- }
-
- /**
- * Return the problem associated with this configuration. These problems may change at any time, although the returned
- * {@link Problems} object is thread-safe.
- *
- * @return the thread-safe problems for this configuration
- */
- public Problems getProblems() {
- return problems;
- }
-
- /**
- * Get the projection that defines the cache for this repository. This projection does not exist in the
- * {@link #getSourceProjections() list of source projections}.
- *
- * @return the region used for caching; never null
- */
- public Projection getCacheProjection() {
- return cacheProjection;
- }
-
- /**
- * Return the unmodifiable list of source projections.
- *
- * @return the source projections; never null and never empty
- */
- public List<Projection> getSourceProjections() {
- return sourceProjections;
- }
-
- /**
- * Return the unmodifiable list of projections for the source name.
- *
- * @param sourceName the name of the source
- * @return the list of projections for this source, or null if there are none
- */
- public List<Projection> getProjectionsFor( String sourceName ) {
- return this.projectionsBySourceName.get(sourceName);
- }
-
- /**
- * Determine whether this workspace has a projection supplied contribution
- *
- * @param sourceName the name of the source
- * @param workspaceName the name of the workspace
- * @return true if this workspace contains a projection that uses the supplied source and workspace
- */
- public boolean contains( String sourceName,
- String workspaceName ) {
- List<Projection> projections = this.projectionsBySourceName.get(sourceName);
- if (projections != null) {
- for (Projection projection : sourceProjections) {
- if (projection.getWorkspaceName().equals(workspaceName)) return true;
- }
- }
- return false;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- return this.name.hashCode();
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals( Object obj ) {
- if (obj == this) return true;
- if (obj instanceof FederatedWorkspace) {
- FederatedWorkspace that = (FederatedWorkspace)obj;
- if (!this.getName().equals(that.getName())) return false;
- if (!this.getCacheProjection().equals(that.getCacheProjection())) return false;
- if (!this.getSourceProjections().equals(that.getSourceProjections())) return false;
- return true;
- }
- return false;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Comparable#compareTo(java.lang.Object)
- */
- public int compareTo( FederatedWorkspace that ) {
- if (that == this) return 0;
- int diff = this.getName().compareTo(that.getName());
- if (diff != 0) return diff;
- diff = this.getCacheProjection().compareTo(that.getCacheProjection());
- if (diff != 0) return diff;
- Iterator<Projection> thisIter = this.getSourceProjections().iterator();
- Iterator<Projection> thatIter = that.getSourceProjections().iterator();
- while (thisIter.hasNext() && thatIter.hasNext()) {
- diff = thisIter.next().compareTo(thatIter.next());
- if (diff != 0) return diff;
- }
- if (thisIter.hasNext()) return 1;
- if (thatIter.hasNext()) return -1;
- return 0;
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatingRequestProcessor.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatingRequestProcessor.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederatingRequestProcessor.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,1262 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-import java.util.concurrent.TimeUnit;
-import net.jcip.annotations.Immutable;
-import net.jcip.annotations.NotThreadSafe;
-import org.jboss.dna.common.i18n.I18n;
-import org.jboss.dna.common.util.CheckArg;
-import org.jboss.dna.common.util.Logger;
-import org.jboss.dna.connector.federation.contribution.Contribution;
-import org.jboss.dna.connector.federation.merge.FederatedNode;
-import org.jboss.dna.connector.federation.merge.MergePlan;
-import org.jboss.dna.graph.DnaLexicon;
-import org.jboss.dna.graph.ExecutionContext;
-import org.jboss.dna.graph.JcrLexicon;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.NodeConflictBehavior;
-import org.jboss.dna.graph.cache.CachePolicy;
-import org.jboss.dna.graph.connector.RepositoryConnection;
-import org.jboss.dna.graph.connector.RepositoryConnectionFactory;
-import org.jboss.dna.graph.connector.RepositorySource;
-import org.jboss.dna.graph.connector.RepositorySourceException;
-import org.jboss.dna.graph.property.DateTime;
-import org.jboss.dna.graph.property.Name;
-import org.jboss.dna.graph.property.NamespaceRegistry;
-import org.jboss.dna.graph.property.Path;
-import org.jboss.dna.graph.property.PathFactory;
-import org.jboss.dna.graph.property.PathNotFoundException;
-import org.jboss.dna.graph.property.Property;
-import org.jboss.dna.graph.property.PropertyFactory;
-import org.jboss.dna.graph.request.ChangeRequest;
-import org.jboss.dna.graph.request.CloneBranchRequest;
-import org.jboss.dna.graph.request.CloneWorkspaceRequest;
-import org.jboss.dna.graph.request.CompositeRequest;
-import org.jboss.dna.graph.request.CopyBranchRequest;
-import org.jboss.dna.graph.request.CreateNodeRequest;
-import org.jboss.dna.graph.request.CreateWorkspaceRequest;
-import org.jboss.dna.graph.request.DeleteBranchRequest;
-import org.jboss.dna.graph.request.DestroyWorkspaceRequest;
-import org.jboss.dna.graph.request.GetWorkspacesRequest;
-import org.jboss.dna.graph.request.InvalidWorkspaceException;
-import org.jboss.dna.graph.request.MoveBranchRequest;
-import org.jboss.dna.graph.request.ReadAllChildrenRequest;
-import org.jboss.dna.graph.request.ReadAllPropertiesRequest;
-import org.jboss.dna.graph.request.ReadNodeRequest;
-import org.jboss.dna.graph.request.Request;
-import org.jboss.dna.graph.request.UnsupportedRequestException;
-import org.jboss.dna.graph.request.UpdatePropertiesRequest;
-import org.jboss.dna.graph.request.VerifyWorkspaceRequest;
-import org.jboss.dna.graph.request.processor.RequestProcessor;
-
-/**
- * @author Randall Hauch
- */
-@NotThreadSafe
-public class FederatingRequestProcessor extends RequestProcessor {
-
- private static final Set<Name> HIDDEN_PROPERTIES = Collections.singleton(DnaLexicon.MERGE_PLAN);
-
- private final Map<String, FederatedWorkspace> workspaces;
- private final FederatedWorkspace defaultWorkspace;
- private final RepositoryConnectionFactory connectionFactory;
- /** The set of all connections, including the cache connection */
- private final Map<String, RepositoryConnection> connectionsBySourceName;
- protected final PathFactory pathFactory;
- private Logger logger;
-
- /**
- * Create a command executor that federates (merges) the information from multiple sources described by the source projections
- * for the particular workspace specified by the request(s). The request processor will use the {@link Projection cache
- * projection} of each {@link FederatedWorkspace workspace} to identify the {@link Projection#getSourceName() repository
- * source} for the cache as well as the {@link Projection#getRules() rules} for how the paths are mapped in the cache. This
- * cache will be consulted first for the requested information, and will be kept up to date as changes are made to the
- * federated information.
- *
- * @param context the execution context in which the executor will be run; may not be null
- * @param sourceName the name of the {@link RepositorySource} that is making use of this executor; may not be null or empty
- * @param workspaces the configuration for each workspace, keyed by workspace name; may not be null
- * @param defaultWorkspace the default workspace; null if there is no default
- * @param connectionFactory the factory for {@link RepositoryConnection} instances
- */
- public FederatingRequestProcessor( ExecutionContext context,
- String sourceName,
- Map<String, FederatedWorkspace> workspaces,
- FederatedWorkspace defaultWorkspace,
- RepositoryConnectionFactory connectionFactory ) {
- super(sourceName, context, null);
- CheckArg.isNotEmpty(workspaces, "workspaces");
- CheckArg.isNotNull(connectionFactory, "connectionFactory");
- this.workspaces = workspaces;
- this.connectionFactory = connectionFactory;
- this.logger = context.getLogger(getClass());
- this.connectionsBySourceName = new HashMap<String, RepositoryConnection>();
- this.defaultWorkspace = defaultWorkspace; // may be null
- this.pathFactory = context.getValueFactories().getPathFactory();
- }
-
- protected DateTime getCurrentTimeInUtc() {
- return getExecutionContext().getValueFactories().getDateFactory().createUtc();
- }
-
- /**
- * {@inheritDoc}
- *
- * @see RequestProcessor#close()
- */
- @Override
- public void close() {
- try {
- super.close();
- } finally {
- // Make sure to close ALL open connections ...
- for (RepositoryConnection connection : connectionsBySourceName.values()) {
- if (connection == null) continue;
- try {
- connection.close();
- } catch (Throwable t) {
- logger.debug("Error while closing connection to {0}", connection.getSourceName());
- }
- }
- connectionsBySourceName.clear();
- }
- }
-
- protected RepositoryConnection getConnectionToCacheFor( FederatedWorkspace workspace ) throws RepositorySourceException {
- return getConnection(workspace.getCacheProjection());
- }
-
- protected RepositoryConnection getConnection( Projection projection ) throws RepositorySourceException {
- String sourceName = projection.getSourceName();
- RepositoryConnection connection = connectionsBySourceName.get(sourceName);
- if (connection == null) {
- connection = connectionFactory.createConnection(sourceName);
- connectionsBySourceName.put(sourceName, connection);
- }
- return connection;
- }
-
- protected Set<String> getOpenConnections() {
- return connectionsBySourceName.keySet();
- }
-
- /**
- * Utility to obtain the federated workspace referenced by the request. This method supports using the default workspace if
- * the workspace name is null. If no such workspace, the request is marked with an appropriate error.
- *
- * @param request the request; may not be null
- * @param workspaceName the name of the workspace; may be null if the default workspace should be used
- * @return the federated workspace, or null if none was found
- */
- protected FederatedWorkspace getWorkspace( Request request,
- String workspaceName ) {
- FederatedWorkspace workspace = null;
- if (workspaceName == null) {
- if (defaultWorkspace != null) return defaultWorkspace;
- // There is no default, so record the error ...
- String msg = FederationI18n.noDefaultWorkspace.text(getSourceName());
- request.setError(new InvalidWorkspaceException(msg));
- }
- workspace = workspaces.get(workspaceName);
- if (workspace == null) {
- // There is no workspace with this name, so record an error ...
- String msg = FederationI18n.workspaceDoesNotExist.text(getSourceName(), workspaceName);
- request.setError(new InvalidWorkspaceException(msg));
- }
- return workspace;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.graph.request.processor.RequestProcessor#process(org.jboss.dna.graph.request.ReadAllChildrenRequest)
- */
- @Override
- public void process( ReadAllChildrenRequest request ) {
- FederatedWorkspace workspace = getWorkspace(request, request.inWorkspace());
- if (workspace == null) return;
- ReadNodeRequest nodeInfo = getNode(request.of(), workspace);
- if (nodeInfo.hasError()) return;
- for (Location child : nodeInfo.getChildren()) {
- request.addChild(child);
- }
- request.setActualLocationOfNode(nodeInfo.getActualLocationOfNode());
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.graph.request.processor.RequestProcessor#process(org.jboss.dna.graph.request.ReadAllPropertiesRequest)
- */
- @Override
- public void process( ReadAllPropertiesRequest request ) {
- FederatedWorkspace workspace = getWorkspace(request, request.inWorkspace());
- if (workspace == null) return;
- ReadNodeRequest nodeInfo = getNode(request.at(), workspace);
- if (nodeInfo.hasError()) return;
- for (Property property : nodeInfo.getProperties()) {
- if (HIDDEN_PROPERTIES.contains(property.getName())) continue;
- request.addProperty(property);
- }
- request.setActualLocationOfNode(nodeInfo.getActualLocationOfNode());
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.graph.request.processor.RequestProcessor#process(org.jboss.dna.graph.request.ReadNodeRequest)
- */
- @Override
- public void process( ReadNodeRequest request ) {
- FederatedWorkspace workspace = getWorkspace(request, request.inWorkspace());
- if (workspace == null) return;
- ReadNodeRequest nodeInfo = getNode(request.at(), workspace);
- if (nodeInfo.hasError()) return;
- for (Property property : nodeInfo.getProperties()) {
- if (HIDDEN_PROPERTIES.contains(property.getName())) continue;
- request.addProperty(property);
- }
- for (Location child : nodeInfo.getChildren()) {
- request.addChild(child);
- }
- request.setActualLocationOfNode(nodeInfo.getActualLocationOfNode());
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.graph.request.processor.RequestProcessor#process(org.jboss.dna.graph.request.CreateNodeRequest)
- */
- @Override
- public void process( CreateNodeRequest request ) {
- FederatedWorkspace workspace = getWorkspace(request, request.inWorkspace());
- if (workspace == null) return;
-
- // Can push this down if and only if the entire request is within a single federated source ...
- SingleProjection projection = asSingleProjection(workspace, request.under(), request);
- if (projection == null) return;
-
- // Push down the request ...
- Location parentLocation = Location.create(projection.pathInSource);
- String workspaceName = projection.projection.getWorkspaceName();
- CreateNodeRequest sourceRequest = new CreateNodeRequest(parentLocation, workspaceName, request.named(),
- request.properties());
- execute(sourceRequest, projection.projection);
-
- // Copy/transform the results ...
- Location location = projection.convertToRepository(sourceRequest.getActualLocationOfNode());
- if (sourceRequest.hasError()) {
- request.setError(sourceRequest.getError());
- } else {
- request.setActualLocationOfNode(location);
- }
-
- // Add the cache ...
- Map<Name, Property> props = new HashMap<Name, Property>();
- for (Property property : request.properties()) {
- props.put(property.getName(), property);
- }
- for (Property idProperty : location) {
- props.put(idProperty.getName(), idProperty);
- }
- CreateNodeRequest cacheRequest = new CreateNodeRequest(parentLocation, workspace.getCacheProjection().getWorkspaceName(),
- request.named(), props.values());
- executeInCache(cacheRequest, workspace);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.graph.request.processor.RequestProcessor#process(org.jboss.dna.graph.request.DeleteBranchRequest)
- */
- @Override
- public void process( DeleteBranchRequest request ) {
- FederatedWorkspace workspace = getWorkspace(request, request.inWorkspace());
- if (workspace == null) return;
-
- // Can push this down if and only if the entire request is within a single federated source ...
- SingleProjection projection = asSingleProjection(workspace, request.at(), request);
- if (projection == null) return;
-
- // Push down the request ...
- Location sourceLocation = Location.create(projection.pathInSource);
- String workspaceName = projection.projection.getWorkspaceName();
- DeleteBranchRequest sourceRequest = new DeleteBranchRequest(sourceLocation, workspaceName);
- execute(sourceRequest, projection.projection);
-
- // Copy/transform the results ...
- if (sourceRequest.hasError()) {
- request.setError(sourceRequest.getError());
- } else {
- request.setActualLocationOfNode(projection.convertToRepository(sourceRequest.getActualLocationOfNode()));
- }
-
- // Delete in the cache ...
- DeleteBranchRequest cacheRequest = new DeleteBranchRequest(request.at(), workspace.getCacheProjection()
- .getWorkspaceName());
- executeInCache(cacheRequest, workspace);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.graph.request.processor.RequestProcessor#process(org.jboss.dna.graph.request.CopyBranchRequest)
- */
- @Override
- public void process( CopyBranchRequest request ) {
- FederatedWorkspace fromWorkspace = getWorkspace(request, request.fromWorkspace());
- if (fromWorkspace == null) return;
- FederatedWorkspace intoWorkspace = getWorkspace(request, request.intoWorkspace());
- if (intoWorkspace == null) return;
- if (!fromWorkspace.equals(intoWorkspace)) {
- // Otherwise there wasn't a single projection with a single path ...
- String msg = FederationI18n.unableToPerformOperationSpanningWorkspaces.text(fromWorkspace.getName(),
- intoWorkspace.getName());
- request.setError(new UnsupportedRequestException(msg));
- }
-
- // Can push this down if and only if the entire request is within a single federated source ...
- SingleProjection fromProjection = asSingleProjection(fromWorkspace, request.from(), request);
- if (fromProjection == null) return;
- SingleProjection intoProjection = asSingleProjection(intoWorkspace, request.into(), request);
- if (intoProjection == null) return;
- if (!intoProjection.projection.equals(fromProjection.projection)) {
- // Otherwise there wasn't a single projection with a single path ...
- String msg = FederationI18n.unableToPerformOperationUnlessLocationsAreFromSingleProjection.text(request.from(),
- request.into(),
- fromWorkspace.getName(),
- fromProjection.projection.getRules(),
- intoProjection.projection.getRules());
- request.setError(new UnsupportedRequestException(msg));
- }
-
- // Push down the request ...
- Location fromLocation = Location.create(fromProjection.pathInSource);
- Location intoLocation = Location.create(intoProjection.pathInSource);
- String workspaceName = fromProjection.projection.getWorkspaceName();
- CopyBranchRequest sourceRequest = new CopyBranchRequest(fromLocation, workspaceName, intoLocation, workspaceName,
- request.desiredName(), request.nodeConflictBehavior());
- execute(sourceRequest, fromProjection.projection);
-
- // Copy/transform the results ...
- if (sourceRequest.hasError()) {
- request.setError(sourceRequest.getError());
- } else {
- request.setActualLocations(fromProjection.convertToRepository(sourceRequest.getActualLocationBefore()),
- intoProjection.convertToRepository(sourceRequest.getActualLocationAfter()));
- }
-
- // Delete from the cache the parent of the new location ...
- DeleteBranchRequest cacheRequest = new DeleteBranchRequest(request.into(), fromWorkspace.getCacheProjection()
- .getWorkspaceName());
- executeInCache(cacheRequest, fromWorkspace);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.graph.request.processor.RequestProcessor#process(org.jboss.dna.graph.request.CloneBranchRequest)
- */
- @Override
- public void process( CloneBranchRequest request ) {
- FederatedWorkspace fromWorkspace = getWorkspace(request, request.fromWorkspace());
- if (fromWorkspace == null) return;
- FederatedWorkspace intoWorkspace = getWorkspace(request, request.intoWorkspace());
- if (intoWorkspace == null) return;
- if (!fromWorkspace.equals(intoWorkspace)) {
- // Otherwise there wasn't a single projection with a single path ...
- String msg = FederationI18n.unableToPerformOperationSpanningWorkspaces.text(fromWorkspace.getName(),
- intoWorkspace.getName());
- request.setError(new UnsupportedRequestException(msg));
- }
-
- // Can push this down if and only if the entire request is within a single federated source ...
- SingleProjection fromProjection = asSingleProjection(fromWorkspace, request.from(), request);
- if (fromProjection == null) return;
- SingleProjection intoProjection = asSingleProjection(intoWorkspace, request.into(), request);
- if (intoProjection == null) return;
- if (!intoProjection.projection.equals(fromProjection.projection)) {
- // Otherwise there wasn't a single projection with a single path ...
- String msg = FederationI18n.unableToPerformOperationUnlessLocationsAreFromSingleProjection.text(request.from(),
- request.into(),
- fromWorkspace.getName(),
- fromProjection.projection.getRules(),
- intoProjection.projection.getRules());
- request.setError(new UnsupportedRequestException(msg));
- }
-
- // Push down the request ...
- Location fromLocation = Location.create(fromProjection.pathInSource);
- Location intoLocation = Location.create(intoProjection.pathInSource);
- String workspaceName = fromProjection.projection.getWorkspaceName();
- CloneBranchRequest sourceRequest = new CloneBranchRequest(fromLocation, workspaceName, intoLocation, workspaceName,
- request.desiredName(), request.desiredSegment(),
- request.removeExisting());
- execute(sourceRequest, fromProjection.projection);
-
- // Copy/transform the results ...
- if (sourceRequest.hasError()) {
- request.setError(sourceRequest.getError());
- } else {
- request.setActualLocations(fromProjection.convertToRepository(sourceRequest.getActualLocationBefore()),
- intoProjection.convertToRepository(sourceRequest.getActualLocationAfter()));
- if (sourceRequest.removeExisting()) {
- request.setRemovedNodes(Collections.unmodifiableSet(intoProjection.convertToRepository(sourceRequest.getRemovedNodes())));
- }
- }
-
- // Delete from the cache the parent of the new location ...
- DeleteBranchRequest cacheRequest = new DeleteBranchRequest(request.into(), fromWorkspace.getCacheProjection()
- .getWorkspaceName());
- executeInCache(cacheRequest, fromWorkspace);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.graph.request.processor.RequestProcessor#process(org.jboss.dna.graph.request.MoveBranchRequest)
- */
- @Override
- public void process( MoveBranchRequest request ) {
- FederatedWorkspace workspace = getWorkspace(request, request.inWorkspace());
- if (workspace == null) return;
-
- // Can push this down if and only if the entire request is within a single federated source ...
- SingleProjection fromProjection = asSingleProjection(workspace, request.from(), request);
- if (fromProjection == null) return;
- SingleProjection intoProjection = asSingleProjection(workspace, request.into(), request);
- if (intoProjection == null) return;
- if (!intoProjection.projection.equals(fromProjection.projection)) {
- // Otherwise there wasn't a single projection with a single path ...
- String msg = FederationI18n.unableToPerformOperationUnlessLocationsAreFromSingleProjection.text(request.from(),
- request.into(),
- workspace.getName(),
- fromProjection.projection.getRules(),
- intoProjection.projection.getRules());
- request.setError(new UnsupportedRequestException(msg));
- }
- SingleProjection beforeProjection = request.before() != null ? asSingleProjection(workspace, request.before(), request) : null;
-
- // Push down the request ...
- Location fromLocation = Location.create(fromProjection.pathInSource);
- Location intoLocation = Location.create(intoProjection.pathInSource);
- Location beforeLocation = beforeProjection != null ? Location.create(beforeProjection.pathInSource) : null;
- String workspaceName = fromProjection.projection.getWorkspaceName();
- MoveBranchRequest sourceRequest = new MoveBranchRequest(fromLocation, intoLocation, beforeLocation, workspaceName,
- request.desiredName(), request.conflictBehavior());
- execute(sourceRequest, fromProjection.projection);
-
- // Copy/transform the results ...
- if (sourceRequest.hasError()) {
- request.setError(sourceRequest.getError());
- } else {
- request.setActualLocations(fromProjection.convertToRepository(sourceRequest.getActualLocationBefore()),
- intoProjection.convertToRepository(sourceRequest.getActualLocationAfter()));
- }
- // Delete from the cache ...
- DeleteBranchRequest cacheRequest = new DeleteBranchRequest(request.from(), workspace.getCacheProjection()
- .getWorkspaceName());
- executeInCache(cacheRequest, workspace);
- // Mark the new parent node as being expired ...
- cacheRequest = new DeleteBranchRequest(request.into(), workspace.getCacheProjection().getWorkspaceName());
- executeInCache(cacheRequest, workspace);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.graph.request.processor.RequestProcessor#process(org.jboss.dna.graph.request.UpdatePropertiesRequest)
- */
- @Override
- public void process( UpdatePropertiesRequest request ) {
- FederatedWorkspace workspace = getWorkspace(request, request.inWorkspace());
- if (workspace == null) return;
-
- // Can push this down if and only if the entire request is within a single federated source ...
- SingleProjection projection = asSingleProjection(workspace, request.on(), request);
- if (projection == null) return;
-
- // Push down the request ...
- Location sourceLocation = Location.create(projection.pathInSource);
- String workspaceName = projection.projection.getWorkspaceName();
- UpdatePropertiesRequest sourceRequest = new UpdatePropertiesRequest(sourceLocation, workspaceName, request.properties());
- execute(sourceRequest, projection.projection);
-
- // Copy/transform the results ...
- if (sourceRequest.hasError()) {
- request.setError(sourceRequest.getError());
- } else {
- request.setActualLocationOfNode(projection.convertToRepository(sourceRequest.getActualLocationOfNode()));
- }
-
- // Update the cache ...
- UpdatePropertiesRequest cacheRequest = new UpdatePropertiesRequest(request.on(), workspace.getCacheProjection()
- .getWorkspaceName(),
- request.properties());
- executeInCache(cacheRequest, workspace);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.graph.request.processor.RequestProcessor#process(org.jboss.dna.graph.request.VerifyWorkspaceRequest)
- */
- @Override
- public void process( VerifyWorkspaceRequest request ) {
- FederatedWorkspace workspace = getWorkspace(request, request.workspaceName());
- if (workspace != null) {
- request.setActualWorkspaceName(workspace.getName());
- Location root = Location.create(pathFactory.createRootPath());
- ReadNodeRequest nodeInfo = getNode(root, workspace);
- if (nodeInfo.hasError()) return;
- request.setActualRootLocation(nodeInfo.getActualLocationOfNode());
- }
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.graph.request.processor.RequestProcessor#process(org.jboss.dna.graph.request.GetWorkspacesRequest)
- */
- @Override
- public void process( GetWorkspacesRequest request ) {
- request.setAvailableWorkspaceNames(workspaces.keySet());
- super.setCacheableInfo(request);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.graph.request.processor.RequestProcessor#process(org.jboss.dna.graph.request.CreateWorkspaceRequest)
- */
- @Override
- public void process( CreateWorkspaceRequest request ) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.graph.request.processor.RequestProcessor#process(org.jboss.dna.graph.request.CloneWorkspaceRequest)
- */
- @Override
- public void process( CloneWorkspaceRequest request ) {
- throw new UnsupportedOperationException();
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.graph.request.processor.RequestProcessor#process(org.jboss.dna.graph.request.DestroyWorkspaceRequest)
- */
- @Override
- public void process( DestroyWorkspaceRequest request ) {
- throw new UnsupportedOperationException();
- }
-
- @Immutable
- protected class SingleProjection {
- protected final Projection projection;
- protected final Path pathInSource;
- protected final Location federatedLocation;
-
- protected SingleProjection( Projection projection,
- Path pathInSource,
- Location federatedLocation ) {
- this.projection = projection;
- this.federatedLocation = federatedLocation;
- this.pathInSource = pathInSource;
- }
-
- protected final Location convertToRepository( Location sourceLocation ) {
- assert sourceLocation != null;
- if (sourceLocation.hasPath()) {
- Set<Path> paths = projection.getPathsInRepository(sourceLocation.getPath(), pathFactory);
- assert paths.size() == 1;
- return sourceLocation.with(paths.iterator().next());
- }
- return sourceLocation;
- }
-
- protected Set<Location> convertToRepository( Set<Location> sourceLocations ) {
- assert sourceLocations != null;
- Set<Location> results = new HashSet<Location>();
- for (Location sourceLocation : sourceLocations) {
- results.add(convertToRepository(sourceLocation));
- }
- return results;
- }
- }
-
- protected SingleProjection asSingleProjection( FederatedWorkspace federatedWorkspace,
- Location location,
- Request request ) {
- // Check the cache for this location ...
- ReadNodeRequest nodeInfo = getNode(location, federatedWorkspace);
- if (nodeInfo.hasError()) {
- request.setError(nodeInfo.getError());
- return null;
- }
- Location actualLocation = nodeInfo.getActualLocationOfNode();
- Path pathInRepository = actualLocation.getPath();
- assert pathInRepository != null;
-
- // Get the merge plan for the node ...
- MergePlan plan = getMergePlan(nodeInfo);
- assert plan != null;
- if (plan.getRealContributionCount() == 1) {
- for (Contribution contribution : plan) {
- if (contribution.isEmpty() || contribution.isPlaceholder()) continue;
- for (Projection projection : federatedWorkspace.getProjectionsFor(contribution.getSourceName())) {
- Set<Path> paths = projection.getPathsInSource(pathInRepository, pathFactory);
- if (paths.size() == 1) {
- return new SingleProjection(projection, paths.iterator().next(), actualLocation);
- }
- }
- }
- }
-
- // Otherwise there wasn't a single projection with a single path ...
- StringBuilder projections = new StringBuilder();
- boolean first = true;
- for (Contribution contribution : plan) {
- if (contribution.isPlaceholder() || contribution.isEmpty()) continue;
- if (first) first = false;
- else projections.append(", ");
- for (Projection projection : federatedWorkspace.getProjectionsFor(contribution.getSourceName())) {
- Set<Path> paths = projection.getPathsInSource(pathInRepository, pathFactory);
- if (paths.size() == 1) {
- projections.append(FederationI18n.pathInProjection.text(paths.iterator().next(), projection.getRules()));
- } else {
- projections.append(FederationI18n.pathInProjection.text(paths, projection.getRules()));
- }
- }
- }
- String msg = FederationI18n.unableToPerformOperationUnlessLocationIsFromSingleProjection.text(location,
- federatedWorkspace.getName(),
- projections);
- request.setError(new UnsupportedRequestException(msg));
- return null;
- }
-
- protected void execute( Request request,
- Projection projection ) {
- RepositoryConnection connection = getConnection(projection);
- connection.execute(getExecutionContext(), request);
- // Don't need to close, as we'll close all connections when this processor is closed
- }
-
- protected void executeInCache( Request request,
- FederatedWorkspace workspace ) {
- RepositoryConnection connection = getConnectionToCacheFor(workspace);
- connection.execute(getExecutionContext(), request);
- // Don't need to close, as we'll close all connections when this processor is closed
- if (logger.isTraceEnabled()) {
- traceCacheUpdate(request);
- }
- }
-
- /**
- * Get the node information from the underlying sources or, if possible, from the cache.
- *
- * @param location the location of the node to be returned
- * @param workspace the federated workspace configuration; may be null
- * @return the node information
- * @throws RepositorySourceException
- */
- protected ReadNodeRequest getNode( Location location,
- FederatedWorkspace workspace ) throws RepositorySourceException {
- // Check the cache first ...
- ReadNodeRequest fromCache = new ReadNodeRequest(location, workspace.getCacheProjection().getWorkspaceName());
- executeInCache(fromCache, workspace);
-
- // Look at the cache results from the cache for problems, or if found a plan in the cache look
- // at the contributions. We'll be putting together the set of source names for which we need to
- // get the contributions.
- Set<String> sourceNames = null;
- List<Contribution> contributions = new LinkedList<Contribution>();
-
- if (fromCache.hasError()) {
- Throwable error = fromCache.getError();
- if (!(error instanceof PathNotFoundException)) return fromCache;
-
- // The path was not found in the cache, so since we don't know whether the ancestors are federated
- // from multiple source nodes, we need to populate the cache starting with the lowest ancestor
- // that already exists in the cache.
- PathNotFoundException notFound = (PathNotFoundException)fromCache.getError();
- Path lowestExistingAncestor = notFound.getLowestAncestorThatDoesExist();
-
- if (location.hasPath()) {
- // Create a new instance so that we can update it ...
- fromCache = new ReadNodeRequest(location, workspace.getCacheProjection().getWorkspaceName());
- Path path = location.getPath();
- Path ancestor = path.getParent();
- if (!ancestor.equals(lowestExistingAncestor)) {
- // Load the nodes along the path below the existing ancestor, down to (but excluding) the desired path
- Path pathToLoad = ancestor;
- while (!pathToLoad.equals(lowestExistingAncestor)) {
- Location locationToLoad = Location.create(pathToLoad);
- loadContributionsFromSources(locationToLoad, workspace, null, contributions); // sourceNames may be
- // null or empty
- FederatedNode mergedNode = createFederatedNode(locationToLoad, workspace, fromCache, contributions, true);
- if (mergedNode == null) {
- // No source had a contribution ...
- I18n msg = FederationI18n.nodeDoesNotExistAtPath;
- fromCache.setError(new PathNotFoundException(location, ancestor, msg.text(path, ancestor)));
- return fromCache;
- }
- MergePlan mergePlan = mergedNode.getMergePlan();
- if (mergePlan != null) {
- Property mergePlanProperty = getExecutionContext().getPropertyFactory().create(DnaLexicon.MERGE_PLAN,
- (Object)mergePlan);
- fromCache.addProperty(mergePlanProperty);
- }
- contributions.clear();
- // Move to the next child along the path ...
- pathToLoad = pathToLoad.getParent();
- }
- }
-
- }
-
- // At this point, all ancestors exist ...
- } else {
- // There is no error, so look for the merge plan ...
- MergePlan mergePlan = getMergePlan(fromCache);
- if (mergePlan != null) {
- // We found the merge plan, so check whether it's still valid ...
- final DateTime now = getCurrentTimeInUtc();
- if (!mergePlan.isExpired(now)) {
- // It is still valid, so check whether any contribution is from a non-existant projection ...
- for (Contribution contribution : mergePlan) {
- if (!workspace.contains(contribution.getSourceName(), contribution.getWorkspaceName())) {
- // TODO: Record that the cached contribution is from a source that is no longer in this repository
- }
- }
- return fromCache;
- }
-
- // At least one of the contributions is expired, so go through the contributions and place
- // the valid contributions in the 'contributions' list; any expired contribution
- // needs to be loaded by adding the name to the 'sourceNames'
- if (mergePlan.getContributionCount() > 0) {
- sourceNames = new HashSet<String>();
- for (Contribution contribution : mergePlan) {
- if (contribution.isExpired(now)) {
- sourceNames.add(contribution.getSourceName());
- contributions.add(contribution);
- }
- }
- }
- }
- }
-
- // Get the contributions from the sources given their names ...
- location = fromCache.getActualLocationOfNode();
- if (location == null) {
- // Not yet in the cache ...
- location = fromCache.at();
- }
- loadContributionsFromSources(location, workspace, sourceNames, contributions); // sourceNames may be null or empty
- FederatedNode mergedNode = createFederatedNode(location, workspace, fromCache, contributions, true);
- if (mergedNode == null) {
- // No source had a contribution ...
- if (location.hasPath()) {
- Path ancestor = location.getPath().getParent();
- I18n msg = FederationI18n.nodeDoesNotExistAtPath;
- fromCache.setError(new PathNotFoundException(location, ancestor, msg.text(location, ancestor)));
- return fromCache;
- }
- I18n msg = FederationI18n.nodeDoesNotExistAtLocation;
- fromCache.setError(new PathNotFoundException(location, null, msg.text(location)));
- return fromCache;
- }
- return mergedNode;
- }
-
- protected FederatedNode createFederatedNode( Location location,
- FederatedWorkspace federatedWorkspace,
- ReadNodeRequest fromCache,
- List<Contribution> contributions,
- boolean updateCache ) throws RepositorySourceException {
- assert location != null;
-
- // If there are no contributions from any source ...
- boolean foundNonEmptyContribution = false;
- for (Contribution contribution : contributions) {
- assert contribution != null;
- if (!contribution.isEmpty()) {
- foundNonEmptyContribution = true;
- break;
- }
- }
- if (!foundNonEmptyContribution) return null;
- if (logger.isTraceEnabled()) {
- NamespaceRegistry registry = getExecutionContext().getNamespaceRegistry();
- logger.trace("Loaded {0} from sources, resulting in these contributions:", location.getString(registry));
- int i = 0;
- for (Contribution contribution : contributions) {
- logger.trace(" {0} {1}", ++i, contribution.getString(registry));
- }
- }
-
- // Create the node, and use the existing UUID if one is found in the cache ...
- ExecutionContext context = getExecutionContext();
- assert context != null;
- FederatedNode mergedNode = new FederatedNode(location, federatedWorkspace.getName());
-
- // Merge the results into a single set of results ...
- assert contributions.size() > 0;
- federatedWorkspace.getMergingStrategy().merge(mergedNode, contributions, context);
- if (mergedNode.getCachePolicy() == null) {
- mergedNode.setCachePolicy(federatedWorkspace.getCachePolicy());
- }
- if (updateCache) {
- // Place the results into the cache ...
- updateCache(federatedWorkspace, mergedNode, fromCache);
- }
- // And return the results ...
- return mergedNode;
- }
-
- /**
- * Load the node at the supplied location from the sources with the supplied name, returning the information. This method
- * always obtains the information from the sources and does not use or update the cache.
- *
- * @param location the location of the node that is to be loaded
- * @param federatedWorkspace the federated workspace
- * @param sourceNames the names of the sources from which contributions are to be loaded; may be empty or null if all
- * contributions from all sources are to be loaded
- * @param contributions the list into which the contributions are to be placed
- * @throws RepositorySourceException
- */
- protected void loadContributionsFromSources( Location location,
- FederatedWorkspace federatedWorkspace,
- Set<String> sourceNames,
- List<Contribution> contributions ) throws RepositorySourceException {
- // At this point, there is no merge plan, so read information from the sources ...
- final ExecutionContext context = getExecutionContext();
-
- CachePolicy cachePolicy = federatedWorkspace.getCachePolicy();
- // If the location has no path, then we have to submit a request to ALL sources ...
- if (!location.hasPath()) {
- for (Projection projection : federatedWorkspace.getSourceProjections()) {
- final String source = projection.getSourceName();
- final String workspace = projection.getSourceName();
- if (sourceNames != null && !sourceNames.contains(source)) continue;
- final RepositoryConnection sourceConnection = getConnection(projection);
- if (sourceConnection == null) continue; // No source exists by this name
- // Submit the request ...
- ReadNodeRequest request = new ReadNodeRequest(location, federatedWorkspace.getName());
- sourceConnection.execute(context, request);
- if (request.hasError()) continue;
-
- // Figure out how long we can cache this contribution ...
- long minimumTimeToLive = Long.MAX_VALUE;
- if (cachePolicy != null) {
- minimumTimeToLive = Math.min(minimumTimeToLive, cachePolicy.getTimeToLive());
- }
- CachePolicy requestCachePolicy = request.getCachePolicy();
- if (requestCachePolicy != null) {
- minimumTimeToLive = Math.min(minimumTimeToLive, requestCachePolicy.getTimeToLive());
- } else {
- // See if the source has a default policy ...
- CachePolicy sourceCachePolicy = sourceConnection.getDefaultCachePolicy();
- if (sourceCachePolicy != null) {
- minimumTimeToLive = Math.min(minimumTimeToLive, sourceCachePolicy.getTimeToLive());
- }
- }
- // The expiration time should be the smallest of the minimum TTL values ...
- DateTime expirationTime = null;
- if (minimumTimeToLive < Long.MAX_VALUE) {
- expirationTime = getCurrentTimeInUtc().plus(minimumTimeToLive, TimeUnit.MILLISECONDS);
- }
-
- // Convert the locations of the children (relative to the source) to be relative to this node
- Contribution contribution = Contribution.create(source,
- workspace,
- request.getActualLocationOfNode(),
- expirationTime,
- request.getProperties(),
- request.getChildren());
- contributions.add(contribution);
- }
- if (contributions.isEmpty() && logger.isTraceEnabled()) {
- NamespaceRegistry registry = getExecutionContext().getNamespaceRegistry();
- logger.trace("Failed to load {0} from any source", location.getString(registry));
- }
- return;
- }
-
- // Otherwise, we can do it by path and projections ...
- Path path = location.getPath();
- for (Projection projection : federatedWorkspace.getSourceProjections()) {
- final String source = projection.getSourceName();
- final String workspace = projection.getWorkspaceName();
- if (sourceNames != null && !sourceNames.contains(source)) continue;
- final RepositoryConnection sourceConnection = getConnection(projection);
- if (sourceConnection == null) continue; // No source exists by this name
- // Get the cached information ...
- DateTime expirationTime = null;
- if (cachePolicy != null) {
- expirationTime = getCurrentTimeInUtc().plus(cachePolicy.getTimeToLive(), TimeUnit.MILLISECONDS);
- }
- // Get the paths-in-source where we should fetch node contributions ...
- Set<Path> pathsInSource = projection.getPathsInSource(path, pathFactory);
- if (pathsInSource.isEmpty()) {
- // The source has no contributions, but see whether the project exists BELOW this path.
- // We do this by getting the top-level repository paths of the projection, and then
- // use those to figure out the children of the nodes.
- Contribution contribution = null;
- List<Path> topLevelPaths = projection.getTopLevelPathsInRepository(pathFactory);
- Location input = Location.create(path);
- switch (topLevelPaths.size()) {
- case 0:
- break;
- case 1: {
- Path topLevelPath = topLevelPaths.iterator().next();
- if (path.isAncestorOf(topLevelPath)) {
- Location child = Location.create(topLevelPath);
- contribution = Contribution.createPlaceholder(source, workspace, input, expirationTime, child);
- }
- break;
- }
- default: {
- // We assume that the top-level paths do not overlap ...
- List<Location> children = new ArrayList<Location>(topLevelPaths.size());
- for (Path topLevelPath : topLevelPaths) {
- if (path.isAncestorOf(topLevelPath)) {
- children.add(Location.create(topLevelPath));
- }
- }
- if (children.size() > 0) {
- contribution = Contribution.createPlaceholder(source, workspace, input, expirationTime, children);
- }
- }
- }
- if (contribution == null) contribution = Contribution.create(source, workspace, expirationTime);
- contributions.add(contribution);
- } else {
- // There is at least one (real) contribution ...
-
- // Get the contributions ...
- final int numPaths = pathsInSource.size();
- if (numPaths == 1) {
- Path pathInSource = pathsInSource.iterator().next();
- ReadNodeRequest fromSource = new ReadNodeRequest(Location.create(pathInSource), workspace);
- sourceConnection.execute(getExecutionContext(), fromSource);
- if (!fromSource.hasError()) {
- Collection<Property> properties = fromSource.getProperties();
- List<Location> children = fromSource.getChildren();
-
- // Figure out how long we can cache this contribution ...
- long minimumTimeToLive = Long.MAX_VALUE;
- if (cachePolicy != null) {
- minimumTimeToLive = Math.min(minimumTimeToLive, cachePolicy.getTimeToLive());
- }
- CachePolicy requestCachePolicy = fromSource.getCachePolicy();
- if (requestCachePolicy != null) {
- minimumTimeToLive = Math.min(minimumTimeToLive, requestCachePolicy.getTimeToLive());
- } else {
- // See if the source has a default policy ...
- CachePolicy sourceCachePolicy = sourceConnection.getDefaultCachePolicy();
- if (sourceCachePolicy != null) {
- minimumTimeToLive = Math.min(minimumTimeToLive, sourceCachePolicy.getTimeToLive());
- }
- }
- // The expiration time should be the smallest of the minimum TTL values ...
- expirationTime = null;
- if (minimumTimeToLive < Long.MAX_VALUE) {
- expirationTime = getCurrentTimeInUtc().plus(minimumTimeToLive, TimeUnit.MILLISECONDS);
- }
-
- Location actualLocation = fromSource.getActualLocationOfNode();
- Contribution contribution = Contribution.create(source,
- workspace,
- actualLocation,
- expirationTime,
- properties,
- children);
- contributions.add(contribution);
- }
- } else {
- List<Request> fromSourceCommands = new ArrayList<Request>(numPaths);
- for (Path pathInSource : pathsInSource) {
- fromSourceCommands.add(new ReadNodeRequest(Location.create(pathInSource), workspace));
- }
- Request request = CompositeRequest.with(fromSourceCommands);
- sourceConnection.execute(context, request);
- for (Request requestObj : fromSourceCommands) {
- ReadNodeRequest fromSource = (ReadNodeRequest)requestObj;
- if (fromSource.hasError()) continue;
-
- // Figure out how long we can cache this contribution ...
- long minimumTimeToLive = Long.MAX_VALUE;
- if (cachePolicy != null) {
- minimumTimeToLive = Math.min(minimumTimeToLive, cachePolicy.getTimeToLive());
- }
- CachePolicy requestCachePolicy = fromSource.getCachePolicy();
- if (requestCachePolicy != null) {
- minimumTimeToLive = Math.min(minimumTimeToLive, requestCachePolicy.getTimeToLive());
- } else {
- // See if the source has a default policy ...
- CachePolicy sourceCachePolicy = sourceConnection.getDefaultCachePolicy();
- if (sourceCachePolicy != null) {
- minimumTimeToLive = Math.min(minimumTimeToLive, sourceCachePolicy.getTimeToLive());
- }
- }
- // The expiration time should be the smallest of the minimum TTL values ...
- expirationTime = null;
- if (minimumTimeToLive < Long.MAX_VALUE) {
- expirationTime = getCurrentTimeInUtc().plus(minimumTimeToLive, TimeUnit.MILLISECONDS);
- }
-
- List<Location> children = fromSource.getChildren();
- Contribution contribution = Contribution.create(source,
- workspace,
- fromSource.getActualLocationOfNode(),
- expirationTime,
- fromSource.getProperties(),
- children);
- contributions.add(contribution);
- }
- }
- }
- }
- }
-
- protected MergePlan getMergePlan( ReadNodeRequest request ) {
- Property mergePlanProperty = request.getPropertiesByName().get(DnaLexicon.MERGE_PLAN);
- if (mergePlanProperty == null || mergePlanProperty.isEmpty()) {
- return null;
- }
- Object value = mergePlanProperty.getValues().next();
- return value instanceof MergePlan ? (MergePlan)value : null;
- }
-
- protected void updateCache( FederatedWorkspace federatedWorkspace,
- FederatedNode mergedNode,
- ReadNodeRequest fromCache ) throws RepositorySourceException {
- final ExecutionContext context = getExecutionContext();
- final Location location = mergedNode.at();
- final Path path = location.getPath();
- final String cacheWorkspace = federatedWorkspace.getCacheProjection().getWorkspaceName();
- assert path != null;
- List<Request> requests = new ArrayList<Request>();
- Name childName = null;
-
- // If the merged node has a merge plan, then add it to the properties if it is not already there ...
- Map<Name, Property> properties = mergedNode.getPropertiesByName();
- MergePlan mergePlan = mergedNode.getMergePlan();
- if (mergePlan != null && !properties.containsKey(DnaLexicon.MERGE_PLAN)) {
- // Record the merge plan on the merged node ...
- Property mergePlanProperty = getExecutionContext().getPropertyFactory().create(DnaLexicon.MERGE_PLAN,
- (Object)mergePlan);
- properties.put(mergePlanProperty.getName(), mergePlanProperty);
- }
-
- // Make sure the UUID is being stored ...
- PropertyFactory propertyFactory = getExecutionContext().getPropertyFactory();
- Property uuidProperty = properties.get(DnaLexicon.UUID);
- if (uuidProperty == null) uuidProperty = properties.get(JcrLexicon.UUID);
- if (uuidProperty == null) {
- UUID uuid = mergedNode.at().getUuid();
- if (uuid == null) uuid = UUID.randomUUID();
- uuidProperty = propertyFactory.create(DnaLexicon.UUID, uuid);
- properties.put(uuidProperty.getName(), uuidProperty);
- }
-
- // If the node didn't exist in the first place ...
- if (mergedNode.hasError()) {
- // We need to create the node...
- if (path.isRoot()) {
- // We don't need to re-create the root, just update the properties and/or children ...
- } else {
- // This is not the root node, so we need to create the node (or replace it if it exists) ...
- final Location parentLocation = Location.create(path.getParent());
- childName = path.getLastSegment().getName();
- requests.add(new CreateNodeRequest(parentLocation, cacheWorkspace, childName, NodeConflictBehavior.REPLACE,
- mergedNode.getProperties()));
- // Now create all of the children that this federated node knows of ...
- for (Location child : mergedNode.getChildren()) {
- childName = child.getPath().getLastSegment().getName();
- requests.add(new CreateNodeRequest(location, cacheWorkspace, childName, NodeConflictBehavior.APPEND, child));
- }
- }
- } else {
- // The node existed, so figure out what to update ...
- if (fromCache.getChildren().equals(mergedNode.getChildren())) {
- // Just update the properties ...
- requests.add(new UpdatePropertiesRequest(location, cacheWorkspace, properties));
- } else {
- // The children have changed, so figure out how ...
- if (fromCache.getChildren().isEmpty()) {
- // No children in the cache, so just update the properties of the node ...
- requests.add(new UpdatePropertiesRequest(location, cacheWorkspace, properties));
-
- // And create all of the children that this federated node knows of ...
- for (Location child : mergedNode.getChildren()) {
- childName = child.getPath().getLastSegment().getName();
- requests.add(new CreateNodeRequest(location, cacheWorkspace, childName, NodeConflictBehavior.APPEND,
- child));
- }
- } else if (mergedNode.getChildren().isEmpty()) {
- // There were children in the cache but not in the merged node, so update the cached properties
- requests.add(new UpdatePropertiesRequest(location, cacheWorkspace, properties));
-
- // and delete all the children ...
- for (Location child : fromCache.getChildren()) {
- requests.add(new DeleteBranchRequest(child, cacheWorkspace));
- }
- } else {
- // There were children in the cache and in the merged node. The easy way is to just remove the
- // branch from the cache, the create it again ...
- if (path.isRoot()) {
- requests.add(new UpdatePropertiesRequest(location, cacheWorkspace, properties));
-
- // and delete all the children ...
- for (Location child : fromCache.getChildren()) {
- requests.add(new DeleteBranchRequest(child, cacheWorkspace));
- }
-
- // Now create all of the children that this federated node knows of ...
- for (Location child : mergedNode.getChildren()) {
- childName = child.getPath().getLastSegment().getName();
- requests.add(new CreateNodeRequest(location, cacheWorkspace, childName, NodeConflictBehavior.APPEND,
- child));
- }
- } else {
- requests.add(new DeleteBranchRequest(location, cacheWorkspace));
-
- // This is not the root node, so we need to create the node (or replace it if it exists) ...
- final Location parentLocation = Location.create(path.getParent());
- childName = path.getLastSegment().getName();
- requests.add(new CreateNodeRequest(parentLocation, cacheWorkspace, childName,
- NodeConflictBehavior.REPLACE, mergedNode.getProperties()));
- // Now create all of the children that this federated node knows of ...
- for (Location child : mergedNode.getChildren()) {
- childName = child.getPath().getLastSegment().getName();
- requests.add(new CreateNodeRequest(location, cacheWorkspace, childName, NodeConflictBehavior.APPEND,
- child));
- }
- }
- }
- }
- }
-
- if (logger.isTraceEnabled()) {
- traceCacheUpdates(requests);
- }
-
- // Execute all the requests ...
- final RepositoryConnection cacheConnection = getConnectionToCacheFor(federatedWorkspace);
- cacheConnection.execute(context, CompositeRequest.with(requests));
-
- // If the children did not have UUIDs, then find the actual locations for each of the cached nodes ...
- if (requests.size() > 1) {
- Iterator<Request> requestIter = requests.iterator();
- requestIter.next(); // Skip the first request, which creates/updates the node (we want children)
- List<Location> children = mergedNode.getChildren();
- for (int i = 0; i != children.size(); ++i) {
- Request request = requestIter.next();
- while (!(request instanceof CreateNodeRequest)) { // skip non-create requests
- request = requestIter.next();
- }
- Location actual = ((CreateNodeRequest)request).getActualLocationOfNode();
- Location child = children.get(i);
- if (!child.hasIdProperties()) {
- assert child.getPath().equals(actual.getPath());
- children.set(i, actual);
- }
- }
- }
- }
-
- private void traceCacheUpdates( Iterable<Request> requests ) {
- NamespaceRegistry registry = getExecutionContext().getNamespaceRegistry();
- logger.trace("Updating cache:");
- for (Request request : requests) {
- if (!(request instanceof ChangeRequest)) continue;
- if (request instanceof CreateNodeRequest) {
- CreateNodeRequest create = (CreateNodeRequest)request;
- logger.trace(" creating {0} under {1} with properties {2}",
- create.named().getString(registry),
- create.under().getString(registry),
- readable(registry, create.properties()));
- } else if (request instanceof UpdatePropertiesRequest) {
- UpdatePropertiesRequest update = (UpdatePropertiesRequest)request;
- logger.trace(" updating {0} with properties {1}", update.on().getString(registry), readable(registry,
- update.properties()
- .values()));
- } else {
- logger.trace(" " + request.toString());
- }
- }
- }
-
- private void traceCacheUpdate( Request request ) {
- NamespaceRegistry registry = getExecutionContext().getNamespaceRegistry();
- if (!(request instanceof ChangeRequest)) return;
- logger.trace("Updating cache:");
- if (request instanceof CreateNodeRequest) {
- CreateNodeRequest create = (CreateNodeRequest)request;
- logger.trace(" creating {0} under {1} with properties {2}",
- create.named().getString(registry),
- create.under().getString(registry),
- readable(registry, create.properties()));
- } else if (request instanceof UpdatePropertiesRequest) {
- UpdatePropertiesRequest update = (UpdatePropertiesRequest)request;
- logger.trace(" updating {0} with properties {1}", update.on().getString(registry), readable(registry,
- update.properties()
- .values()));
- } else {
- logger.trace(" " + request.toString());
- }
- }
-
- private String readable( NamespaceRegistry registry,
- Collection<Property> properties ) {
- if (properties.isEmpty()) return "";
- StringBuilder sb = new StringBuilder();
- boolean first = true;
- for (Property prop : properties) {
- if (first) first = false;
- else sb.append(",");
- sb.append(prop.getString(registry));
- }
- return sb.toString();
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederationException.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederationException.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederationException.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,68 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation;
-
-
-/**
- *
- * @author Randall Hauch
- */
-public class FederationException extends RuntimeException {
-
- /**
- */
- private static final long serialVersionUID = -27536888064529864L;
-
- /**
- *
- */
- public FederationException() {
- }
-
- /**
- * @param message
- */
- public FederationException( String message ) {
- super(message);
-
- }
-
- /**
- * @param cause
- */
- public FederationException( Throwable cause ) {
- super(cause);
-
- }
-
- /**
- * @param message
- * @param cause
- */
- public FederationException( String message, Throwable cause ) {
- super(message, cause);
-
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederationI18n.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederationI18n.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/FederationI18n.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,74 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
-* See the AUTHORS.txt file in the distribution for a full listing of
-* individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation;
-
-import java.util.Locale;
-import java.util.Set;
-import org.jboss.dna.common.i18n.I18n;
-
-/**
- * @author Randall Hauch
- */
-public final class FederationI18n {
-
- public static I18n requiredNodeDoesNotExistRelativeToNode;
- public static I18n propertyIsRequired;
- public static I18n nodeDoesNotExistAtPath;
- public static I18n nodeDoesNotExistAtLocation;
- public static I18n errorRemovingNodeFromCache;
-
- public static I18n unableToCreateExecutionContext;
- public static I18n federatedRepositoryCannotBeFound;
- public static I18n unableToAuthenticateConnectionToFederatedRepository;
- public static I18n repositoryHasBeenShutDown;
- public static I18n errorAddingProjectionRuleParseMethod;
- public static I18n pathInProjection;
- public static I18n pathsInProjection;
- public static I18n unableToPerformOperationUnlessLocationIsFromSingleProjection;
- public static I18n unableToPerformOperationUnlessLocationsAreFromSingleProjection;
- public static I18n unableToPerformOperationSpanningWorkspaces;
-
- public static I18n workspaceDoesNotExist;
- public static I18n noDefaultWorkspace;
-
- static {
- try {
- I18n.initialize(FederationI18n.class);
- } catch (final Exception err) {
- System.err.println(err);
- }
- }
-
- public static Set<Locale> getLocalizationProblemLocales() {
- return I18n.getLocalizationProblemLocales(FederationI18n.class);
- }
-
- public static Set<String> getLocalizationProblems() {
- return I18n.getLocalizationProblems(FederationI18n.class);
- }
-
- public static Set<String> getLocalizationProblems( Locale locale ) {
- return I18n.getLocalizationProblems(FederationI18n.class, locale);
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/Projection.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/Projection.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/Projection.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,842 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation;
-
-import java.io.Serializable;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.CopyOnWriteArrayList;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import net.jcip.annotations.Immutable;
-import org.jboss.dna.common.text.TextEncoder;
-import org.jboss.dna.common.util.CheckArg;
-import org.jboss.dna.common.util.HashCode;
-import org.jboss.dna.common.util.Logger;
-import org.jboss.dna.graph.ExecutionContext;
-import org.jboss.dna.graph.connector.RepositorySource;
-import org.jboss.dna.graph.property.NamespaceRegistry;
-import org.jboss.dna.graph.property.Path;
-import org.jboss.dna.graph.property.PathFactory;
-
-/**
- * A projection of content from a source into the integrated/federated repository. Each project consists of a set of {@link Rule
- * rules} for a particular source, where each rule defines how content within a source is
- * {@link Rule#getPathInRepository(Path, PathFactory) is project into the repository} and how the repository content is
- * {@link Rule#getPathInSource(Path, PathFactory) projected into the source}. Different rule subclasses are used for different
- * types.
- *
- * @author Randall Hauch
- */
-@Immutable
-public class Projection implements Comparable<Projection>, Serializable {
-
- /**
- * Initial version
- */
- private static final long serialVersionUID = 1L;
- protected static final List<Method> parserMethods;
- static {
- parserMethods = new CopyOnWriteArrayList<Method>();
- try {
- parserMethods.add(Projection.class.getDeclaredMethod("parsePathRule", String.class, ExecutionContext.class));
- } catch (Throwable err) {
- Logger.getLogger(Projection.class).error(err, FederationI18n.errorAddingProjectionRuleParseMethod);
- }
- }
-
- /**
- * Add a static method that can be used to parse {@link Rule#getString(NamespaceRegistry, TextEncoder) rule definition
- * strings}. These methods must be static, must accept a {@link String} definition as the first parameter and an
- * {@link ExecutionContext} environment reference as the second parameter, and should return the resulting {@link Rule} (or
- * null if the definition format could not be understood by the method. Any exceptions during
- * {@link Method#invoke(Object, Object...) invocation} will be logged at the
- * {@link Logger#trace(Throwable, String, Object...) trace} level.
- *
- * @param method the method to be added
- * @see #addRuleParser(ClassLoader, String, String)
- */
- public static void addRuleParser( Method method ) {
- if (method != null) parserMethods.add(method);
- }
-
- /**
- * Add a static method that can be used to parse {@link Rule#getString(NamespaceRegistry, TextEncoder) rule definition
- * strings}. These methods must be static, must accept a {@link String} definition as the first parameter and an
- * {@link ExecutionContext} environment reference as the second parameter, and should return the resulting {@link Rule} (or
- * null if the definition format could not be understood by the method. Any exceptions during
- * {@link Method#invoke(Object, Object...) invocation} will be logged at the
- * {@link Logger#trace(Throwable, String, Object...) trace} level.
- *
- * @param classLoader the class loader that should be used to load the class on which the method is defined; may not be null
- * @param className the name of the class on which the static method is defined; may not be null
- * @param methodName the name of the method
- * @throws SecurityException if there is a security exception while loading the class or getting the method
- * @throws NoSuchMethodException if the method does not exist on the class
- * @throws ClassNotFoundException if the class could not be found given the supplied class loader
- * @throws IllegalArgumentException if the class loader reference is null, or if the class name or method name are null or
- * empty
- * @see #addRuleParser(Method)
- */
- public static void addRuleParser( ClassLoader classLoader,
- String className,
- String methodName ) throws SecurityException, NoSuchMethodException, ClassNotFoundException {
- CheckArg.isNotNull(classLoader, "classLoader");
- CheckArg.isNotEmpty(className, "className");
- CheckArg.isNotEmpty(methodName, "methodName");
- Class<?> clazz = Class.forName(className, true, classLoader);
- parserMethods.add(clazz.getMethod(className, String.class, ExecutionContext.class));
- }
-
- /**
- * Remove the rule parser method.
- *
- * @param method the method to remove
- * @return true if the method was removed, or false if the method was not a registered rule parser method
- */
- public static boolean removeRuleParser( Method method ) {
- return parserMethods.remove(method);
- }
-
- /**
- * Remove the rule parser method.
- *
- * @param declaringClassName the name of the class on which the static method is defined; may not be null
- * @param methodName the name of the method
- * @return true if the method was removed, or false if the method was not a registered rule parser method
- * @throws IllegalArgumentException if the class loader reference is null, or if the class name or method name are null or
- * empty
- */
- public static boolean removeRuleParser( String declaringClassName,
- String methodName ) {
- CheckArg.isNotEmpty(declaringClassName, "declaringClassName");
- CheckArg.isNotEmpty(methodName, "methodName");
- for (Method method : parserMethods) {
- if (method.getName().equals(methodName) && method.getDeclaringClass().getName().equals(declaringClassName)) {
- return parserMethods.remove(method);
- }
- }
- return false;
- }
-
- /**
- * Parse the string form of a rule definition and return the rule
- *
- * @param definition the definition of the rule that is to be parsed
- * @param context the environment in which this method is being executed; may not be null
- * @return the rule, or null if the definition could not be parsed
- */
- public static Rule fromString( String definition,
- ExecutionContext context ) {
- CheckArg.isNotNull(context, "env");
- definition = definition != null ? definition.trim() : "";
- if (definition.length() == 0) return null;
- for (Method method : parserMethods) {
- try {
- Rule rule = (Rule)method.invoke(null, definition, context);
- if (rule != null) return rule;
- } catch (Throwable err) {
- String msg = "Error while parsing project rule definition \"{0}\" using {1}";
- context.getLogger(Projection.class).trace(err, msg, definition, method);
- }
- }
- return null;
- }
-
- /**
- * Pattern that identifies the form:
- *
- * <pre>
- * repository_path => source_path [$ exception ]*
- * </pre>
- *
- * where the following groups are captured on the first call to {@link Matcher#find()}:
- * <ol>
- * <li><code>repository_path</code></li>
- * <li><code>source_path</code></li>
- * </ol>
- * and the following groups are captured on subsequent calls to {@link Matcher#find()}:
- * <ol>
- * <li>exception</code></li>
- * </ol>
- * <p>
- * The regular expression is:
- *
- * <pre>
- * ((?:[ˆ=$]|=(?!>))+)(?:(?:=>((?:[ˆ=$]|=(?!>))+))( \$ (?:(?:[ˆ=]|=(?!>))+))*)?
- * </pre>
- *
- * </p>
- */
- protected static final String PATH_RULE_PATTERN_STRING = "((?:[^=$]|=(?!>))+)(?:(?:=>((?:[^=$]|=(?!>))+))( \\$ (?:(?:[^=]|=(?!>))+))*)?";
- protected static final Pattern PATH_RULE_PATTERN = Pattern.compile(PATH_RULE_PATTERN_STRING);
-
- /**
- * Parse the string definition of a {@link PathRule}. This method is automatically registered in the {@link #parserMethods
- * parser methods} by the static initializer of {@link Projection}.
- *
- * @param definition the definition
- * @param context the environment
- * @return the path rule, or null if the definition is not in the right form
- */
- public static PathRule parsePathRule( String definition,
- ExecutionContext context ) {
- definition = definition != null ? definition.trim() : "";
- if (definition.length() == 0) return null;
- Matcher matcher = PATH_RULE_PATTERN.matcher(definition);
- if (!matcher.find()) return null;
- String reposPathStr = matcher.group(1);
- String sourcePathStr = matcher.group(2);
- if (reposPathStr == null || sourcePathStr == null) return null;
- reposPathStr = reposPathStr.trim();
- sourcePathStr = sourcePathStr.trim();
- if (reposPathStr.length() == 0 || sourcePathStr.length() == 0) return null;
- PathFactory pathFactory = context.getValueFactories().getPathFactory();
- Path repositoryPath = pathFactory.create(reposPathStr);
- Path sourcePath = pathFactory.create(sourcePathStr);
-
- // Grab the exceptions ...
- List<Path> exceptions = new LinkedList<Path>();
- while (matcher.find()) {
- String exceptionStr = matcher.group(1);
- Path exception = pathFactory.create(exceptionStr);
- exceptions.add(exception);
- }
- return new PathRule(repositoryPath, sourcePath, exceptions);
- }
-
- private final String sourceName;
- private final String workspaceName;
- private final List<Rule> rules;
- private final boolean simple;
- private final int hc;
-
- /**
- * Create a new federated projection for the supplied source, using the supplied rules.
- *
- * @param sourceName the name of the source
- * @param workspaceName the name of the workspace in the source; may be null if the default workspace is to be used
- * @param rules the projection rules
- * @throws IllegalArgumentException if the source name or rule array is null, empty, or contains all nulls
- */
- public Projection( String sourceName,
- String workspaceName,
- Rule... rules ) {
- CheckArg.isNotEmpty(sourceName, "sourceName");
- CheckArg.isNotEmpty(rules, "rules");
- this.sourceName = sourceName;
- this.workspaceName = workspaceName;
- List<Rule> rulesList = new ArrayList<Rule>();
- for (Rule rule : rules) {
- if (rule != null) rulesList.add(rule);
- }
- this.rules = Collections.unmodifiableList(rulesList);
- CheckArg.isNotEmpty(this.rules, "rules");
- this.simple = computeSimpleProjection(this.rules);
- this.hc = HashCode.compute(this.sourceName, this.workspaceName);
- }
-
- /**
- * Get the name of the source to which this projection applies.
- *
- * @return the source name
- * @see RepositorySource#getName()
- */
- public String getSourceName() {
- return sourceName;
- }
-
- /**
- * Get the name of the workspace in the source to which this projection applies.
- *
- * @return the workspace name, or null if the default workspace of the {@link #getSourceName() source} is to be used
- */
- public String getWorkspaceName() {
- return workspaceName;
- }
-
- /**
- * Get the rules that define this projection.
- *
- * @return the unmodifiable list of immutable rules; never null
- */
- public List<Rule> getRules() {
- return rules;
- }
-
- /**
- * Get the paths in the source that correspond to the supplied path within the repository. This method computes the paths
- * given all of the rules. In general, most sources will probably project a node onto a single repository node. However, some
- * sources may be configured such that the same node in the repository is a projection of multiple nodes within the source.
- *
- * @param canonicalPathInRepository the canonical path of the node within the repository; may not be null
- * @param factory the path factory; may not be null
- * @return the set of unique paths in the source projected from the repository path; never null
- * @throws IllegalArgumentException if the factory reference is null
- */
- public Set<Path> getPathsInSource( Path canonicalPathInRepository,
- PathFactory factory ) {
- CheckArg.isNotNull(factory, "factory");
- assert canonicalPathInRepository == null ? true : canonicalPathInRepository.equals(canonicalPathInRepository.getCanonicalPath());
- Set<Path> paths = new HashSet<Path>();
- if (canonicalPathInRepository != null) {
- for (Rule rule : getRules()) {
- Path pathInSource = rule.getPathInSource(canonicalPathInRepository, factory);
- if (pathInSource != null) paths.add(pathInSource);
- }
- }
- return paths;
- }
-
- /**
- * Get the paths in the repository that correspond to the supplied path within the source. This method computes the paths
- * given all of the rules. In general, most sources will probably project a node onto a single repository node. However, some
- * sources may be configured such that the same node in the source is projected into multiple nodes within the repository.
- *
- * @param canonicalPathInSource the canonical path of the node within the source; may not be null
- * @param factory the path factory; may not be null
- * @return the set of unique paths in the repository projected from the source path; never null
- * @throws IllegalArgumentException if the factory reference is null
- */
- public Set<Path> getPathsInRepository( Path canonicalPathInSource,
- PathFactory factory ) {
- CheckArg.isNotNull(factory, "factory");
- assert canonicalPathInSource == null ? true : canonicalPathInSource.equals(canonicalPathInSource.getCanonicalPath());
- Set<Path> paths = new HashSet<Path>();
- for (Rule rule : getRules()) {
- Path pathInRepository = rule.getPathInRepository(canonicalPathInSource, factory);
- if (pathInRepository != null) paths.add(pathInRepository);
- }
- return paths;
- }
-
- /**
- * Get the paths in the repository that serve as top-level nodes exposed by this projection.
- *
- * @param factory the path factory that can be used to create new paths; may not be null
- * @return the list of top-level paths, in the proper order and containing no duplicates; never null
- */
- public List<Path> getTopLevelPathsInRepository( PathFactory factory ) {
- CheckArg.isNotNull(factory, "factory");
- List<Rule> rules = getRules();
- Set<Path> uniquePaths = new HashSet<Path>();
- List<Path> paths = new ArrayList<Path>(rules.size());
- for (Rule rule : getRules()) {
- for (Path path : rule.getTopLevelPathsInRepository(factory)) {
- if (!uniquePaths.contains(path)) {
- paths.add(path);
- uniquePaths.add(path);
- }
- }
- }
- return paths;
- }
-
- /**
- * Determine whether this project is a simple projection that only involves for any one repository path no more than a single
- * source path.
- *
- * @return true if this projection is a simple projection, or false if the projection is not simple (or it cannot be
- * determined if it is simple)
- */
- public boolean isSimple() {
- return simple;
- }
-
- protected boolean computeSimpleProjection( List<Rule> rules ) {
- // Get the set of repository paths for the rules, and see if they overlap ...
- Set<Path> repositoryPaths = new HashSet<Path>();
- for (Rule rule : rules) {
- if (rule instanceof PathRule) {
- PathRule pathRule = (PathRule)rule;
- Path repoPath = pathRule.getPathInRepository();
- if (!repositoryPaths.isEmpty()) {
- if (repositoryPaths.contains(repoPath)) return false;
- for (Path path : repositoryPaths) {
- if (path.isAtOrAbove(repoPath)) return false;
- if (repoPath.isAtOrAbove(path)) return false;
- }
- }
- repositoryPaths.add(repoPath);
- } else {
- return false;
- }
- }
- return true;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- return this.hc;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals( Object obj ) {
- if (obj == this) return true;
- if (obj instanceof Projection) {
- Projection that = (Projection)obj;
- if (this.hashCode() != that.hashCode()) return false;
- if (!this.getSourceName().equals(that.getSourceName())) return false;
- if (!this.getWorkspaceName().equals(that.getWorkspaceName())) return false;
- if (!this.getRules().equals(that.getRules())) return false;
- return true;
- }
- return false;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Comparable#compareTo(java.lang.Object)
- */
- public int compareTo( Projection that ) {
- if (this == that) return 0;
- int diff = this.getSourceName().compareTo(that.getSourceName());
- if (diff != 0) return diff;
- diff = this.getWorkspaceName().compareTo(that.getWorkspaceName());
- if (diff != 0) return diff;
- Iterator<Rule> thisIter = this.getRules().iterator();
- Iterator<Rule> thatIter = that.getRules().iterator();
- while (thisIter.hasNext() && thatIter.hasNext()) {
- diff = thisIter.next().compareTo(thatIter.next());
- if (diff != 0) return diff;
- }
- if (thisIter.hasNext()) return 1;
- if (thatIter.hasNext()) return -1;
- return 0;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Object#toString()
- */
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder();
- sb.append(this.sourceName);
- sb.append("::");
- sb.append(this.workspaceName);
- sb.append(" { ");
- boolean first = true;
- for (Rule rule : this.getRules()) {
- if (!first) sb.append(" ; ");
- sb.append(rule.toString());
- first = false;
- }
- sb.append(" }");
- return sb.toString();
- }
-
- /**
- * A rule used within a project do define how content within a source is projected into the federated repository. This mapping
- * is bi-directional, meaning it's possible to determine
- * <ul>
- * <li>the path in repository given a path in source; and</li>
- * <li>the path in source given a path in repository.</li>
- * </ul>
- *
- * @author Randall Hauch
- */
- @Immutable
- public static abstract class Rule implements Comparable<Rule> {
-
- /**
- * Get the paths in the repository that serve as top-level nodes exposed by this rule.
- *
- * @param factory the path factory that can be used to create new paths; may not be null
- * @return the list of top-level paths, which are ordered and which must be unique; never null
- */
- public abstract List<Path> getTopLevelPathsInRepository( PathFactory factory );
-
- /**
- * Get the path in source that is projected from the supplied repository path, or null if the supplied repository path is
- * not projected into the source.
- *
- * @param pathInRepository the path in the repository; may not be null
- * @param factory the path factory; may not be null
- * @return the path in source if it is projected by this rule, or null otherwise
- */
- public abstract Path getPathInSource( Path pathInRepository,
- PathFactory factory );
-
- /**
- * Get the path in repository that is projected from the supplied source path, or null if the supplied source path is not
- * projected into the repository.
- *
- * @param pathInSource the path in the source; may not be null
- * @param factory the path factory; may not be null
- * @return the path in repository if it is projected by this rule, or null otherwise
- */
- public abstract Path getPathInRepository( Path pathInSource,
- PathFactory factory );
-
- public abstract String getString( NamespaceRegistry registry,
- TextEncoder encoder );
-
- public abstract String getString( TextEncoder encoder );
-
- public abstract String getString();
- }
-
- /**
- * A rule that is defined with a single {@link #getPathInSource() path in source} and a single {@link #getPathInRepository()
- * path in repository}, and which has a set of {@link #getExceptionsToRule() path exceptions} (relative paths below the path
- * in source).
- *
- * @author Randall Hauch
- */
- @Immutable
- public static class PathRule extends Rule {
- /** The path of the content as known to the source */
- private final Path sourcePath;
- /** The path where the content is to be placed ("projected") into the repository */
- private final Path repositoryPath;
- /** The paths (relative to the source path) that identify exceptions to this rule */
- private final List<Path> exceptions;
- private final int hc;
- private final List<Path> topLevelRepositoryPaths;
-
- public PathRule( Path repositoryPath,
- Path sourcePath ) {
- this(repositoryPath, sourcePath, (Path[])null);
- }
-
- public PathRule( Path repositoryPath,
- Path sourcePath,
- Path... exceptions ) {
- assert sourcePath != null;
- assert repositoryPath != null;
- this.sourcePath = sourcePath;
- this.repositoryPath = repositoryPath;
- if (exceptions == null || exceptions.length == 0) {
- this.exceptions = Collections.emptyList();
- } else {
- List<Path> exceptionList = new ArrayList<Path>();
- for (Path exception : exceptions) {
- if (exception != null) exceptionList.add(exception);
- }
- this.exceptions = Collections.unmodifiableList(exceptionList);
- }
- this.hc = HashCode.compute(sourcePath, repositoryPath, exceptions);
- assert exceptionPathsAreRelative();
- this.topLevelRepositoryPaths = Collections.singletonList(getPathInRepository());
- }
-
- public PathRule( Path repositoryPath,
- Path sourcePath,
- List<Path> exceptions ) {
- assert sourcePath != null;
- assert repositoryPath != null;
- this.sourcePath = sourcePath;
- this.repositoryPath = repositoryPath;
- if (exceptions == null || exceptions.isEmpty()) {
- this.exceptions = Collections.emptyList();
- } else {
- this.exceptions = Collections.unmodifiableList(new ArrayList<Path>(exceptions));
- }
- this.hc = HashCode.compute(sourcePath, repositoryPath, exceptions);
- assert exceptionPathsAreRelative();
- this.topLevelRepositoryPaths = Collections.singletonList(getPathInRepository());
- }
-
- private boolean exceptionPathsAreRelative() {
- if (this.exceptions != null) {
- for (Path path : this.exceptions) {
- if (path.isAbsolute()) return false;
- }
- }
- return true;
- }
-
- /**
- * The path where the content is to be placed ("projected") into the repository.
- *
- * @return the projected path of the content in the repository; never null
- */
- public Path getPathInRepository() {
- return repositoryPath;
- }
-
- /**
- * The path of the content as known to the source
- *
- * @return the source-specific path of the content; never null
- */
- public Path getPathInSource() {
- return sourcePath;
- }
-
- /**
- * Get whether this rule has any exceptions.
- *
- * @return true if this rule has exceptions, or false if it has none.
- */
- public boolean hasExceptionsToRule() {
- return exceptions.size() != 0;
- }
-
- /**
- * Get the paths that define the exceptions to this rule. These paths are always relative to the
- * {@link #getPathInSource() path in source}.
- *
- * @return the unmodifiable exception paths; never null but possibly empty
- */
- public List<Path> getExceptionsToRule() {
- return exceptions;
- }
-
- /**
- * @param pathInSource
- * @return true if the source path is included by this rule
- */
- protected boolean includes( Path pathInSource ) {
- // Check whether the path is outside the source-specific path ...
- if (pathInSource != null && this.sourcePath.isAtOrAbove(pathInSource)) {
-
- // The path is inside the source-specific region, so check the exceptions ...
- List<Path> exceptions = getExceptionsToRule();
- if (exceptions.size() != 0) {
- Path subpathInSource = pathInSource.relativeTo(this.sourcePath);
- if (subpathInSource.size() != 0) {
- for (Path exception : exceptions) {
- if (subpathInSource.isAtOrBelow(exception)) return false;
- }
- }
- }
- return true;
- }
- return false;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.Projection.Rule#getTopLevelPathsInRepository(org.jboss.dna.graph.property.PathFactory)
- */
- @Override
- public List<Path> getTopLevelPathsInRepository( PathFactory factory ) {
- return topLevelRepositoryPaths;
- }
-
- /**
- * {@inheritDoc}
- * <p>
- * This method considers a path that is at or below the rule's {@link #getPathInSource() source path} to be included,
- * except if there are {@link #getExceptionsToRule() exceptions} that explicitly disallow the path.
- * </p>
- *
- * @see org.jboss.dna.connector.federation.Projection.Rule#getPathInSource(Path, PathFactory)
- */
- @Override
- public Path getPathInSource( Path pathInRepository,
- PathFactory factory ) {
- assert pathInRepository.equals(pathInRepository.getCanonicalPath());
- // Project the repository path into the equivalent source path ...
- Path pathInSource = projectPathInRepositoryToPathInSource(pathInRepository, factory);
-
- // Check whether the source path is included by this rule ...
- return includes(pathInSource) ? pathInSource : null;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.Projection.Rule#getPathInRepository(org.jboss.dna.graph.property.Path,
- * org.jboss.dna.graph.property.PathFactory)
- */
- @Override
- public Path getPathInRepository( Path pathInSource,
- PathFactory factory ) {
- assert pathInSource.equals(pathInSource.getCanonicalPath());
- // Check whether the source path is included by this rule ...
- if (!includes(pathInSource)) return null;
-
- // Project the repository path into the equivalent source path ...
- return projectPathInSourceToPathInRepository(pathInSource, factory);
- }
-
- /**
- * Convert a path defined in the source system into an equivalent path in the repository system.
- *
- * @param pathInSource the path in the source system, which may include the {@link #getPathInSource()}
- * @param factory the path factory; may not be null
- * @return the path in the repository system, which will be normalized and absolute (including the
- * {@link #getPathInRepository()}), or null if the path is not at or under the {@link #getPathInSource()}
- */
- protected Path projectPathInSourceToPathInRepository( Path pathInSource,
- PathFactory factory ) {
- if (!this.sourcePath.isAtOrAbove(pathInSource)) return null;
- // Remove the leading source path ...
- Path relativeSourcePath = pathInSource.relativeTo(this.sourcePath);
- // Prepend the region's root path ...
- Path result = factory.create(this.repositoryPath, relativeSourcePath);
- return result.getNormalizedPath();
- }
-
- /**
- * Convert a path defined in the repository system into an equivalent path in the source system.
- *
- * @param pathInRepository the path in the repository system, which may include the {@link #getPathInRepository()}
- * @param factory the path factory; may not be null
- * @return the path in the source system, which will be normalized and absolute (including the {@link #getPathInSource()}
- * ), or null if the path is not at or under the {@link #getPathInRepository()}
- */
- protected Path projectPathInRepositoryToPathInSource( Path pathInRepository,
- PathFactory factory ) {
- if (!this.repositoryPath.isAtOrAbove(pathInRepository)) return null;
- // Find the relative path from the root of this region ...
- Path pathInRegion = pathInRepository.relativeTo(this.repositoryPath);
- // Prepend the path in source ...
- Path result = factory.create(this.sourcePath, pathInRegion);
- return result.getNormalizedPath();
- }
-
- @Override
- public String getString( NamespaceRegistry registry,
- TextEncoder encoder ) {
- StringBuilder sb = new StringBuilder();
- sb.append(this.getPathInRepository().getString(registry, encoder));
- sb.append(" => ");
- sb.append(this.getPathInSource().getString(registry, encoder));
- if (this.getExceptionsToRule().size() != 0) {
- for (Path exception : this.getExceptionsToRule()) {
- sb.append(" $ ");
- sb.append(exception.getString(registry, encoder));
- }
- }
- return sb.toString();
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.Projection.Rule#getString(org.jboss.dna.common.text.TextEncoder)
- */
- @Override
- public String getString( TextEncoder encoder ) {
- StringBuilder sb = new StringBuilder();
- sb.append(this.getPathInRepository().getString(encoder));
- sb.append(" => ");
- sb.append(this.getPathInSource().getString(encoder));
- if (this.getExceptionsToRule().size() != 0) {
- for (Path exception : this.getExceptionsToRule()) {
- sb.append(" $ ");
- sb.append(exception.getString(encoder));
- }
- }
- return sb.toString();
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.Projection.Rule#getString()
- */
- @Override
- public String getString() {
- return getString(Path.JSR283_ENCODER);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- return hc;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals( Object obj ) {
- if (obj == this) return true;
- if (obj instanceof PathRule) {
- PathRule that = (PathRule)obj;
- if (!this.getPathInRepository().equals(that.getPathInRepository())) return false;
- if (!this.getPathInSource().equals(that.getPathInSource())) return false;
- if (!this.getExceptionsToRule().equals(that.getExceptionsToRule())) return false;
- return true;
- }
- return false;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Comparable#compareTo(java.lang.Object)
- */
- public int compareTo( Rule other ) {
- if (other == this) return 0;
- if (other instanceof PathRule) {
- PathRule that = (PathRule)other;
- int diff = this.getPathInRepository().compareTo(that.getPathInRepository());
- if (diff != 0) return diff;
- diff = this.getPathInSource().compareTo(that.getPathInSource());
- if (diff != 0) return diff;
- Iterator<Path> thisIter = this.getExceptionsToRule().iterator();
- Iterator<Path> thatIter = that.getExceptionsToRule().iterator();
- while (thisIter.hasNext() && thatIter.hasNext()) {
- diff = thisIter.next().compareTo(thatIter.next());
- if (diff != 0) return diff;
- }
- if (thisIter.hasNext()) return 1;
- if (thatIter.hasNext()) return -1;
- return 0;
- }
- return other.getClass().getName().compareTo(this.getClass().getName());
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Object#toString()
- */
- @Override
- public String toString() {
- return getString();
- }
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/ProjectionParser.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/ProjectionParser.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/ProjectionParser.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,244 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation;
-
-import java.lang.reflect.Method;
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.concurrent.CopyOnWriteArrayList;
-import org.jboss.dna.common.text.TextEncoder;
-import org.jboss.dna.common.util.CheckArg;
-import org.jboss.dna.common.util.Logger;
-import org.jboss.dna.common.util.StringUtil;
-import org.jboss.dna.connector.federation.Projection.Rule;
-import org.jboss.dna.graph.ExecutionContext;
-import org.jboss.dna.graph.property.NamespaceRegistry;
-
-/**
- * A parser library for {@link Projection projections} and {@link Projection.Rule projection rules}.
- *
- * @author Randall Hauch
- */
-public class ProjectionParser {
- private static final ProjectionParser INSTANCE;
-
- static {
- INSTANCE = new ProjectionParser();
- try {
- INSTANCE.addRuleParser(Projection.class, "parsePathRule");
- assert INSTANCE.parserMethods.size() == 1;
- } catch (Throwable err) {
- Logger.getLogger(Projection.class).error(err, FederationI18n.errorAddingProjectionRuleParseMethod);
- }
- }
-
- /**
- * Get the shared projection parser, which is by default populated with the standard parser rules.
- *
- * @return the parser; never null
- */
- public static ProjectionParser getInstance() {
- return INSTANCE;
- }
-
- private final List<Method> parserMethods = new CopyOnWriteArrayList<Method>();
-
- public ProjectionParser() {
- }
-
- /**
- * Add a static method that can be used to parse {@link Rule#getString(NamespaceRegistry, TextEncoder) rule definition
- * strings}. These methods must be static, must accept a {@link String} definition as the first parameter and an
- * {@link ExecutionContext} environment reference as the second parameter, and should return the resulting {@link Rule} (or
- * null if the definition format could not be understood by the method. Any exceptions during
- * {@link Method#invoke(Object, Object...) invocation} will be logged at the
- * {@link Logger#trace(Throwable, String, Object...) trace} level.
- *
- * @param method the method to be added
- * @see #addRuleParser(ClassLoader, String, String)
- */
- public void addRuleParser( Method method ) {
- if (method != null) parserMethods.add(method);
- }
-
- /**
- * Add a static method that can be used to parse {@link Rule#getString(NamespaceRegistry, TextEncoder) rule definition
- * strings}. These methods must be static, must accept a {@link String} definition as the first parameter and an
- * {@link ExecutionContext} environment reference as the second parameter, and should return the resulting {@link Rule} (or
- * null if the definition format could not be understood by the method. Any exceptions during
- * {@link Method#invoke(Object, Object...) invocation} will be logged at the
- * {@link Logger#trace(Throwable, String, Object...) trace} level.
- *
- * @param clazz the class on which the static method is defined; may not be null
- * @param methodName the name of the method
- * @throws SecurityException if there is a security exception while loading the class or getting the method
- * @throws NoSuchMethodException if the method does not exist on the class
- * @throws IllegalArgumentException if the class loader reference is null, or if the class name or method name are null or
- * empty
- * @see #addRuleParser(Method)
- */
- public void addRuleParser( Class<?> clazz,
- String methodName ) throws SecurityException, NoSuchMethodException {
- CheckArg.isNotNull(clazz, "clazz");
- CheckArg.isNotEmpty(methodName, "methodName");
- parserMethods.add(clazz.getMethod(methodName, String.class, ExecutionContext.class));
- }
-
- /**
- * Add a static method that can be used to parse {@link Rule#getString(NamespaceRegistry, TextEncoder) rule definition
- * strings}. These methods must be static, must accept a {@link String} definition as the first parameter and an
- * {@link ExecutionContext} environment reference as the second parameter, and should return the resulting {@link Rule} (or
- * null if the definition format could not be understood by the method. Any exceptions during
- * {@link Method#invoke(Object, Object...) invocation} will be logged at the
- * {@link Logger#trace(Throwable, String, Object...) trace} level.
- *
- * @param classLoader the class loader that should be used to load the class on which the method is defined; may not be null
- * @param className the name of the class on which the static method is defined; may not be null
- * @param methodName the name of the method
- * @throws SecurityException if there is a security exception while loading the class or getting the method
- * @throws NoSuchMethodException if the method does not exist on the class
- * @throws ClassNotFoundException if the class could not be found given the supplied class loader
- * @throws IllegalArgumentException if the class loader reference is null, or if the class name or method name are null or
- * empty
- * @see #addRuleParser(Method)
- */
- public void addRuleParser( ClassLoader classLoader,
- String className,
- String methodName ) throws SecurityException, NoSuchMethodException, ClassNotFoundException {
- CheckArg.isNotNull(classLoader, "classLoader");
- CheckArg.isNotEmpty(className, "className");
- CheckArg.isNotEmpty(methodName, "methodName");
- Class<?> clazz = Class.forName(className, true, classLoader);
- parserMethods.add(clazz.getMethod(methodName, String.class, ExecutionContext.class));
- }
-
- /**
- * Remove the rule parser method.
- *
- * @param method the method to remove
- * @return true if the method was removed, or false if the method was not a registered rule parser method
- */
- public boolean removeRuleParser( Method method ) {
- return parserMethods.remove(method);
- }
-
- /**
- * Remove the rule parser method.
- *
- * @param declaringClassName the name of the class on which the static method is defined; may not be null
- * @param methodName the name of the method
- * @return true if the method was removed, or false if the method was not a registered rule parser method
- * @throws IllegalArgumentException if the class loader reference is null, or if the class name or method name are null or
- * empty
- */
- public boolean removeRuleParser( String declaringClassName,
- String methodName ) {
- CheckArg.isNotEmpty(declaringClassName, "declaringClassName");
- CheckArg.isNotEmpty(methodName, "methodName");
- for (Method method : parserMethods) {
- if (method.getName().equals(methodName) && method.getDeclaringClass().getName().equals(declaringClassName)) {
- return parserMethods.remove(method);
- }
- }
- return false;
- }
-
- /**
- * @return parserMethods
- */
- /*package*/List<Method> getParserMethods() {
- return Collections.unmodifiableList(parserMethods);
- }
-
- /**
- * Parse the string form of a rule definition and return the rule
- *
- * @param definition the definition of the rule that is to be parsed
- * @param context the environment in which this method is being executed; may not be null
- * @return the rule, or null if the definition could not be parsed
- */
- public Rule ruleFromString( String definition,
- ExecutionContext context ) {
- CheckArg.isNotNull(context, "env");
- definition = definition != null ? definition.trim() : "";
- if (definition.length() == 0) return null;
- Logger logger = context.getLogger(getClass());
- for (Method method : parserMethods) {
- try {
- Rule rule = (Rule)method.invoke(null, definition, context);
- if (rule != null) {
- if (logger.isTraceEnabled()) {
- String msg = "Success parsing project rule definition \"{0}\" using {1}";
- logger.trace(msg, definition, method);
- }
- return rule;
- } else if (logger.isTraceEnabled()) {
- String msg = "Unable to parse project rule definition \"{0}\" using {1}";
- logger.trace(msg, definition, method);
- }
- } catch (Throwable err) {
- String msg = "Error while parsing project rule definition \"{0}\" using {1}";
- logger.trace(err, msg, definition, method);
- }
- }
- return null;
- }
-
- /**
- * Parse string forms of an arry of rule definitions and return the rules
- *
- * @param context the environment in which this method is being executed; may not be null
- * @param definitions the definition of the rules that are to be parsed
- * @return the rule, or null if the definition could not be parsed
- */
- public Rule[] rulesFromStrings( ExecutionContext context,
- String... definitions ) {
- List<Rule> rules = new LinkedList<Rule>();
- for (String definition : definitions) {
- Rule rule = ruleFromString(definition, context);
- if (rule != null) rules.add(rule);
- }
- return rules.toArray(new Rule[rules.size()]);
- }
-
- /**
- * Parse a single string containing one or more string forms of rule definitions, and return the rules. The string contains
- * each rule on a separate line.
- *
- * @param context the environment in which this method is being executed; may not be null
- * @param definitions the definitions of the rules that are to be parsed, each definition separated by a newline character.
- * @return the rule, or null if the definition could not be parsed
- */
- public Rule[] rulesFromString( ExecutionContext context,
- String definitions ) {
- List<String> lines = StringUtil.splitLines(definitions);
- List<Rule> rules = new LinkedList<Rule>();
- for (String definition : lines) {
- Rule rule = ruleFromString(definition, context);
- if (rule != null) rules.add(rule);
- }
- return rules.toArray(new Rule[rules.size()]);
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/Contribution.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/Contribution.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/Contribution.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,677 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.contribution;
-
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.NoSuchElementException;
-import net.jcip.annotations.Immutable;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.property.DateTime;
-import org.jboss.dna.graph.property.Name;
-import org.jboss.dna.graph.property.NamespaceRegistry;
-import org.jboss.dna.graph.property.Property;
-import org.jboss.dna.graph.property.basic.JodaDateTime;
-
-/**
- * The contribution of a source to the information for a single federated node. Users of this interface should treat contributions
- * as generally being immutable, since some implementation will be immutable and will return immutable {@link #getProperties()
- * properties} and {@link #getChildren() children} containers. Thus, rather than make changes to an existing contribution, a new
- * contribution is created to replace the previous contribution.
- *
- * @author Randall Hauch
- */
-@Immutable
-public abstract class Contribution implements Serializable {
-
- /**
- * Create an empty contribution from the named source.
- *
- * @param sourceName the name of the source, which may not be null or blank
- * @param workspaceName the name of the workspace, which may not be null or blank
- * @param expirationTime the time (in UTC) after which this contribution should be considered expired, or null if there is no
- * expiration time
- * @return the contribution
- */
- public static Contribution create( String sourceName,
- String workspaceName,
- DateTime expirationTime ) {
- return new EmptyContribution(sourceName, workspaceName, expirationTime);
- }
-
- /**
- * Create a contribution of a single property from the named source.
- *
- * @param sourceName the name of the source, which may not be null or blank
- * @param workspaceName the name of the workspace, which may not be null or blank
- * @param locationInSource the location in the source for this contributed information; may not be null
- * @param expirationTime the time (in UTC) after which this contribution should be considered expired, or null if there is no
- * expiration time
- * @param property the property from the source; may not be null
- * @return the contribution
- */
- public static Contribution create( String sourceName,
- String workspaceName,
- Location locationInSource,
- DateTime expirationTime,
- Property property ) {
- if (property == null) {
- return new EmptyContribution(sourceName, workspaceName, expirationTime);
- }
- return new OnePropertyContribution(sourceName, workspaceName, locationInSource, expirationTime, property);
- }
-
- /**
- * Create a contribution of a single child from the named source.
- *
- * @param sourceName the name of the source, which may not be null or blank
- * @param workspaceName the name of the workspace, which may not be null or blank
- * @param locationInSource the path in the source for this contributed information; may not be null
- * @param expirationTime the time (in UTC) after which this contribution should be considered expired, or null if there is no
- * expiration time
- * @param child the child from the source; may not be null or empty
- * @return the contribution
- */
- public static Contribution create( String sourceName,
- String workspaceName,
- Location locationInSource,
- DateTime expirationTime,
- Location child ) {
- if (child == null) {
- return new EmptyContribution(sourceName, workspaceName, expirationTime);
- }
- return new OneChildContribution(sourceName, workspaceName, locationInSource, expirationTime, child);
- }
-
- /**
- * Create a contribution of a single child from the named source.
- *
- * @param sourceName the name of the source, which may not be null or blank
- * @param workspaceName the name of the workspace, which may not be null or blank
- * @param locationInSource the path in the source for this contributed information; may not be null
- * @param expirationTime the time (in UTC) after which this contribution should be considered expired, or null if there is no
- * expiration time
- * @param child1 the first child from the source; may not be null or empty
- * @param child2 the second child from the source; may not be null or empty
- * @return the contribution
- */
- public static Contribution create( String sourceName,
- String workspaceName,
- Location locationInSource,
- DateTime expirationTime,
- Location child1,
- Location child2 ) {
- if (child1 != null) {
- if (child2 != null) {
- return new TwoChildContribution(sourceName, workspaceName, locationInSource, expirationTime, child1, child2);
- }
- return new OneChildContribution(sourceName, workspaceName, locationInSource, expirationTime, child1);
- }
- if (child2 != null) {
- return new OneChildContribution(sourceName, workspaceName, locationInSource, expirationTime, child2);
- }
- return new EmptyContribution(sourceName, workspaceName, expirationTime);
- }
-
- /**
- * Create a contribution of the supplied properties and children from the named source.
- *
- * @param sourceName the name of the source, which may not be null or blank
- * @param workspaceName the name of the workspace, which may not be null or blank
- * @param locationInSource the path in the source for this contributed information; may not be null
- * @param expirationTime the time (in UTC) after which this contribution should be considered expired, or null if there is no
- * expiration time
- * @param properties the properties from the source; may not be null
- * @param children the children from the source; may not be null or empty
- * @return the contribution
- */
- public static Contribution create( String sourceName,
- String workspaceName,
- Location locationInSource,
- DateTime expirationTime,
- Collection<Property> properties,
- List<Location> children ) {
- if (properties == null || properties.isEmpty()) {
- // There are no properties ...
- if (children == null || children.isEmpty()) {
- return new EmptyContribution(sourceName, workspaceName, expirationTime);
- }
- if (children.size() == 1) {
- return new OneChildContribution(sourceName, workspaceName, locationInSource, expirationTime,
- children.iterator().next());
- }
- if (children.size() == 2) {
- Iterator<Location> iter = children.iterator();
- return new TwoChildContribution(sourceName, workspaceName, locationInSource, expirationTime, iter.next(),
- iter.next());
- }
- return new MultiChildContribution(sourceName, workspaceName, locationInSource, expirationTime, children);
- }
- // There are some properties ...
- if (children == null || children.isEmpty()) {
- // There are no children ...
- if (properties.size() == 1) {
- return new OnePropertyContribution(sourceName, workspaceName, locationInSource, expirationTime,
- properties.iterator().next());
- }
- if (properties.size() == 2) {
- Iterator<Property> iter = properties.iterator();
- return new TwoPropertyContribution(sourceName, workspaceName, locationInSource, expirationTime, iter.next(),
- iter.next());
- }
- if (properties.size() == 3) {
- Iterator<Property> iter = properties.iterator();
- return new ThreePropertyContribution(sourceName, workspaceName, locationInSource, expirationTime, iter.next(),
- iter.next(), iter.next());
- }
- return new MultiPropertyContribution(sourceName, workspaceName, locationInSource, expirationTime, properties);
- }
- // There are some properties AND some children ...
- return new NodeContribution(sourceName, workspaceName, locationInSource, expirationTime, properties, children);
- }
-
- /**
- * Create a placeholder contribution of a single child from the named source.
- *
- * @param sourceName the name of the source, which may not be null or blank
- * @param workspaceName the name of the workspace, which may not be null or blank
- * @param locationInSource the path in the source for this contributed information; may not be null
- * @param expirationTime the time (in UTC) after which this contribution should be considered expired, or null if there is no
- * expiration time
- * @param child the child from the source; may not be null or empty
- * @return the contribution
- */
- public static Contribution createPlaceholder( String sourceName,
- String workspaceName,
- Location locationInSource,
- DateTime expirationTime,
- Location child ) {
- if (child == null) {
- return new EmptyContribution(sourceName, workspaceName, expirationTime);
- }
- return new PlaceholderContribution(sourceName, workspaceName, locationInSource, expirationTime,
- Collections.singletonList(child));
- }
-
- /**
- * Create a placeholder contribution of the supplied properties and children from the named source.
- *
- * @param sourceName the name of the source, which may not be null or blank
- * @param workspaceName the name of the workspace, which may not be null or blank
- * @param locationInSource the path in the source for this contributed information; may not be null
- * @param expirationTime the time (in UTC) after which this contribution should be considered expired, or null if there is no
- * expiration time
- * @param children the children from the source; may not be null or empty
- * @return the contribution
- */
- public static Contribution createPlaceholder( String sourceName,
- String workspaceName,
- Location locationInSource,
- DateTime expirationTime,
- List<Location> children ) {
- if (children == null || children.isEmpty()) {
- return new EmptyContribution(sourceName, workspaceName, expirationTime);
- }
- return new PlaceholderContribution(sourceName, workspaceName, locationInSource, expirationTime, children);
- }
-
- /**
- * This is the first version of this class. See the documentation of BasicMergePlan.serialVersionUID.
- */
- private static final long serialVersionUID = 1L;
-
- protected static final Iterator<Property> EMPTY_PROPERTY_ITERATOR = new EmptyIterator<Property>();
- protected static final Iterator<Location> EMPTY_CHILDREN_ITERATOR = new EmptyIterator<Location>();
-
- private final String sourceName;
- private final String workspaceName;
- private DateTime expirationTimeInUtc;
-
- /**
- * Create a contribution for the source with the supplied name and path.
- *
- * @param sourceName the name of the source, which may not be null or blank
- * @param workspaceName the name of the workspace, which may not be null or blank
- * @param expirationTime the time (in UTC) after which this contribution should be considered expired, or null if there is no
- * expiration time
- */
- protected Contribution( String sourceName,
- String workspaceName,
- DateTime expirationTime ) {
- assert sourceName != null && sourceName.trim().length() != 0;
- assert workspaceName != null && workspaceName.trim().length() != 0;
- assert expirationTime == null || expirationTime.equals(expirationTime.toUtcTimeZone());
- this.sourceName = sourceName;
- this.workspaceName = workspaceName;
- this.expirationTimeInUtc = expirationTime;
- }
-
- /**
- * Get the name of the source that made this contribution.
- *
- * @return the name of the contributing source
- */
- public String getSourceName() {
- return this.sourceName;
- }
-
- /**
- * Get the name of the workspace in the {@link #getSourceName() source} from which this contribution came.
- *
- * @return the name of the workspace
- */
- public String getWorkspaceName() {
- return this.workspaceName;
- }
-
- /**
- * Get the source-specific location of this information.
- *
- * @return the location as known to the source, or null for {@link EmptyContribution}
- */
- public abstract Location getLocationInSource();
-
- /**
- * Determine whether this contribution has expired given the supplied current time.
- *
- * @param utcTime the current time expressed in UTC; may not be null
- * @return true if at least one contribution has expired, or false otherwise
- */
- public boolean isExpired( DateTime utcTime ) {
- assert utcTime != null;
- assert utcTime.toUtcTimeZone().equals(utcTime); // check that it is passed UTC time
- if (expirationTimeInUtc == null) return false;
- return !expirationTimeInUtc.isAfter(utcTime);
- }
-
- /**
- * Get the expiration time, already in UTC.
- *
- * @return the expiration time in UTC
- */
- public DateTime getExpirationTimeInUtc() {
- return this.expirationTimeInUtc;
- }
-
- /**
- * Get the properties that are in this contribution. This resulting iterator does not support {@link Iterator#remove()
- * removal}.
- *
- * @return the properties; never null
- */
- public Iterator<Property> getProperties() {
- return EMPTY_PROPERTY_ITERATOR;
- }
-
- /**
- * Get the number of properties that are in this contribution.
- *
- * @return the number of properties
- */
- public int getPropertyCount() {
- return 0;
- }
-
- /**
- * Get the contributed property with the supplied name.
- *
- * @param name the name of the property
- * @return the contributed property that matches the name, or null if no such property is in the contribution
- */
- public Property getProperty( Name name ) {
- return null;
- }
-
- /**
- * Get the children that make up this contribution. This resulting iterator does not support {@link Iterator#remove() removal}
- * .
- *
- * @return the children; never null
- */
- public Iterator<Location> getChildren() {
- return EMPTY_CHILDREN_ITERATOR;
- }
-
- /**
- * Get the number of children that make up this contribution.
- *
- * @return the number of children
- */
- public int getChildrenCount() {
- return 0;
- }
-
- /**
- * Return whether this contribution is an empty contribution.
- *
- * @return true if this contribution is empty, or false otherwise
- */
- public boolean isEmpty() {
- return false;
- }
-
- /**
- * Determine whether this contribution is considered a placeholder necessary solely because the same source has contributions
- * at or below the children.
- *
- * @return true if a placeholder contribution, or false otherwise
- */
- public boolean isPlaceholder() {
- return false;
- }
-
- /**
- * {@inheritDoc}
- * <p>
- * This implementation returns the hash code of the {@link #getSourceName() source name}, and is compatible with the
- * implementation of {@link #equals(Object)}.
- * </p>
- */
- @Override
- public int hashCode() {
- return this.sourceName.hashCode();
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Object#toString()
- */
- @Override
- public String toString() {
- return getString(null);
- }
-
- public String getString( NamespaceRegistry registry ) {
- StringBuffer sb = new StringBuffer();
- sb.append("Contribution from \"");
- sb.append(getSourceName());
- sb.append("\": ");
- DateTime expiration = getExpirationTimeInUtc();
- if (expiration != null) {
- if (isExpired(new JodaDateTime().toUtcTimeZone())) {
- sb.append("expired ");
- } else {
- sb.append("expires ");
- }
- sb.append(expiration.getString());
- }
- if (getPropertyCount() != 0) {
- sb.append(" { ");
- boolean first = true;
- Iterator<Property> propIter = getProperties();
- while (propIter.hasNext()) {
- if (!first) sb.append(", ");
- else first = false;
- sb.append(propIter.next().getString(registry));
- }
- sb.append(" }");
- }
- if (getChildrenCount() != 0) {
- sb.append("< ");
- boolean first = true;
- Iterator<Location> childIter = getChildren();
- while (childIter.hasNext()) {
- if (!first) sb.append(", ");
- else first = false;
- sb.append(childIter.next().getString(registry));
- }
- sb.append(" >");
- }
- return sb.toString();
- }
-
- /**
- * {@inheritDoc}
- * <p>
- * This implementation only compares the {@link #getSourceName() source name}.
- * </p>
- */
- @Override
- public boolean equals( Object obj ) {
- if (obj == this) return true;
- if (obj instanceof Contribution) {
- Contribution that = (Contribution)obj;
- if (!this.getSourceName().equals(that.getSourceName())) return false;
- return true;
- }
- return false;
- }
-
- protected static class ImmutableIterator<T> implements Iterator<T> {
- private final Iterator<T> iter;
-
- protected ImmutableIterator( Iterator<T> iter ) {
- this.iter = iter;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.util.Iterator#hasNext()
- */
- public boolean hasNext() {
- return iter.hasNext();
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.util.Iterator#next()
- */
- public T next() {
- return iter.next();
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.util.Iterator#remove()
- */
- public void remove() {
- throw new UnsupportedOperationException();
- }
- }
-
- protected static class EmptyIterator<T> implements Iterator<T> {
-
- /**
- * {@inheritDoc}
- *
- * @see java.util.Iterator#hasNext()
- */
- public boolean hasNext() {
- return false;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.util.Iterator#next()
- */
- public T next() {
- throw new NoSuchElementException();
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.util.Iterator#remove()
- */
- public void remove() {
- throw new UnsupportedOperationException();
- }
-
- }
-
- protected static class OneValueIterator<T> implements Iterator<T> {
-
- private final T value;
- private boolean next = true;
-
- protected OneValueIterator( T value ) {
- assert value != null;
- this.value = value;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.util.Iterator#hasNext()
- */
- public boolean hasNext() {
- return next;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.util.Iterator#next()
- */
- public T next() {
- if (next) {
- next = false;
- return value;
- }
- throw new NoSuchElementException();
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.util.Iterator#remove()
- */
- public void remove() {
- throw new UnsupportedOperationException();
- }
-
- }
-
- protected static class TwoValueIterator<T> implements Iterator<T> {
-
- private final T value1;
- private final T value2;
- private int next = 2;
-
- protected TwoValueIterator( T value1,
- T value2 ) {
- this.value1 = value1;
- this.value2 = value2;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.util.Iterator#hasNext()
- */
- public boolean hasNext() {
- return next > 0;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.util.Iterator#next()
- */
- public T next() {
- if (next == 2) {
- next = 1;
- return value1;
- }
- if (next == 1) {
- next = 0;
- return value2;
- }
- throw new NoSuchElementException();
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.util.Iterator#remove()
- */
- public void remove() {
- throw new UnsupportedOperationException();
- }
- }
-
- protected static class ThreeValueIterator<T> implements Iterator<T> {
-
- private final T value1;
- private final T value2;
- private final T value3;
- private int next = 3;
-
- protected ThreeValueIterator( T value1,
- T value2,
- T value3 ) {
- this.value1 = value1;
- this.value2 = value2;
- this.value3 = value3;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.util.Iterator#hasNext()
- */
- public boolean hasNext() {
- return next > 0;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.util.Iterator#next()
- */
- public T next() {
- if (next == 3) {
- next = 2;
- return value1;
- }
- if (next == 2) {
- next = 1;
- return value2;
- }
- if (next == 1) {
- next = 0;
- return value3;
- }
- throw new NoSuchElementException();
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.util.Iterator#remove()
- */
- public void remove() {
- throw new UnsupportedOperationException();
- }
-
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/ContributionStatistics.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/ContributionStatistics.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/ContributionStatistics.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,236 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.contribution;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.atomic.AtomicLong;
-import org.jboss.dna.common.util.CheckArg;
-import org.jboss.dna.common.util.HashCode;
-
-/**
- * Simple utility class to record the distribution of contributions.
- *
- * @author Randall Hauch
- */
-public class ContributionStatistics {
-
- /**
- * This should only be enabled when attempting to accumulate the distribution, and should <i>never</i> be enabled in a
- * release.
- */
- /*package*/static final boolean RECORD = false;
-
- private static final ConcurrentMap<Stats, AtomicLong> DATA = new ConcurrentHashMap<Stats, AtomicLong>();
-
- /**
- * Record a {@link Contribution} was created for the supplied number of properties and children. {@link #RECORD} should be
- * checked <i>before</i> this method is called.
- *
- * @param propertyCount the number of properties
- * @param childrenCount the number of children
- */
- /*package*/static void record( int propertyCount,
- int childrenCount ) {
- Stats key = new Stats(propertyCount, childrenCount);
- AtomicLong existing = DATA.putIfAbsent(key, new AtomicLong(1l));
- if (existing != null) existing.incrementAndGet();
- }
-
- public boolean isRecording() {
- return RECORD;
- }
-
- /**
- * Get a copy of the raw statistics data.
- *
- * @return a copy of the data; never null
- */
- public static Map<Stats, AtomicLong> getData() {
- return new HashMap<Stats, AtomicLong>(DATA);
- }
-
- /**
- * Get the N most populous combinations of properties and children counts.
- *
- * @param n the maximum number of data objects to find and return in the raw data; must be positive
- * @return the list of N (or fewer)
- */
- public static List<Data> getTop( int n ) {
- CheckArg.isPositive(n, "n");
- LinkedList<Data> results = new LinkedList<Data>();
- for (Map.Entry<Stats, AtomicLong> entry : DATA.entrySet()) {
- long value = entry.getValue().get();
- if (results.size() >= n) {
- Data last = results.getLast();
- if (value <= last.getInstanceCount()) continue;
- // The new count is larger than the smallest, so pop the smallest and add the newest ...
- results.removeLast();
- }
- results.add(new Data(entry.getKey(), value));
- Collections.sort(results);
- }
- return results;
- }
-
- public static final class Data implements Comparable<Data> {
- private final int propertyCount;
- private final int childrenCount;
- private final long instanceCount;
-
- protected Data( Stats stats,
- long instanceCount ) {
- this.propertyCount = stats.getPropertyCount();
- this.childrenCount = stats.getChildrenCount();
- this.instanceCount = instanceCount;
- }
-
- /**
- * @return childrenCount
- */
- public int getChildrenCount() {
- return childrenCount;
- }
-
- /**
- * @return propertyCount
- */
- public int getPropertyCount() {
- return propertyCount;
- }
-
- /**
- * @return instanceCount
- */
- public long getInstanceCount() {
- return instanceCount;
- }
-
- /**
- * {@inheritDoc} This orders the values in the opposite order, so that those with larger numbers of instances appear
- * first.
- *
- * @see java.lang.Comparable#compareTo(java.lang.Object)
- */
- public int compareTo( Data that ) {
- long diff = that.getInstanceCount() - this.getInstanceCount(); // backwards
- return diff < 0l ? -1 : diff > 0 ? 1 : 0;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- return HashCode.compute(this.propertyCount, this.childrenCount, this.instanceCount);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals( Object obj ) {
- if (obj instanceof Data) {
- Data that = (Data)obj;
- if (this.propertyCount != that.propertyCount) return false;
- if (this.childrenCount != that.childrenCount) return false;
- if (this.instanceCount != that.instanceCount) return false;
- return true;
- }
- return false;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Object#toString()
- */
- @Override
- public String toString() {
- return "(# props=" + this.getPropertyCount() + ", # children=" + this.getChildrenCount() + ") => "
- + this.getInstanceCount();
- }
- }
-
- public static final class Stats {
- private final int propertyCount;
- private final int childrenCount;
-
- protected Stats( int propertyCount,
- int childrenCount ) {
- this.propertyCount = propertyCount;
- this.childrenCount = childrenCount;
- }
-
- /**
- * @return childrenCount
- */
- public int getChildrenCount() {
- return childrenCount;
- }
-
- /**
- * @return propertyCount
- */
- public int getPropertyCount() {
- return propertyCount;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- return HashCode.compute(this.propertyCount, this.childrenCount);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals( Object obj ) {
- if (obj instanceof Stats) {
- Stats that = (Stats)obj;
- if (this.propertyCount != that.propertyCount) return false;
- if (this.childrenCount != that.childrenCount) return false;
- return true;
- }
- return false;
- }
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/EmptyContribution.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/EmptyContribution.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/EmptyContribution.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,97 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.contribution;
-
-import net.jcip.annotations.Immutable;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.property.DateTime;
-
-/**
- * A source contribution that is empty. In other words, the source has no contribution to make.
- * <p>
- * Note that this is different than an unknown contribution, which may occur when a source is added to a federated repository
- * after the contributions have already been determined for nodes. In this case, the new source's contribution for a node is not
- * known and must be determined.
- * </p>
- *
- * @author Randall Hauch
- */
-@Immutable
-public class EmptyContribution extends Contribution {
-
- /**
- * This is the first version of this class. See the documentation of MergePlan.serialVersionUID.
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Create a contribution for the source with the supplied name.
- *
- * @param sourceName the name of the source, which may not be null or blank
- * @param workspaceName the name of the workspace, which may not be null or blank
- * @param expirationTime the time (in UTC) after which this contribution should be considered expired, or null if there is no
- * expiration time
- */
- public EmptyContribution( String sourceName,
- String workspaceName,
- DateTime expirationTime ) {
- super(sourceName, workspaceName, expirationTime);
- if (ContributionStatistics.RECORD) ContributionStatistics.record(0, 0);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.contribution.Contribution#getLocationInSource()
- */
- @Override
- public Location getLocationInSource() {
- return null;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.contribution.Contribution#isEmpty()
- */
- @Override
- public boolean isEmpty() {
- return true;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public boolean equals( Object obj ) {
- if (obj == this) return true;
- if (obj instanceof EmptyContribution) {
- EmptyContribution that = (EmptyContribution)obj;
- if (!this.getSourceName().equals(that.getSourceName())) return false;
- if (!this.getWorkspaceName().equals(that.getWorkspaceName())) return false;
- return true;
- }
- return false;
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/MultiChildContribution.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/MultiChildContribution.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/MultiChildContribution.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,92 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.contribution;
-
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import net.jcip.annotations.Immutable;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.property.DateTime;
-
-/**
- * The contribution of a source to the information for a single federated node.
- *
- * @author Randall Hauch
- */
-@Immutable
-public class MultiChildContribution extends NonEmptyContribution {
-
- /**
- * This is the first version of this class. See the documentation of MergePlan.serialVersionUID.
- */
- private static final long serialVersionUID = 1L;
-
- private List<Location> children;
-
- /**
- * Create a contribution of children from the source with the supplied name.
- *
- * @param sourceName the name of the source, which may not be null or blank
- * @param workspaceName the name of the workspace, which may not be null or blank
- * @param locationInSource the location in the source for this contributed information; may not be null
- * @param expirationTime the time (in UTC) after which this contribution should be considered expired, or null if there is no
- * expiration time
- * @param children the children from the source; may not be null or empty
- */
- public MultiChildContribution( String sourceName,
- String workspaceName,
- Location locationInSource,
- DateTime expirationTime,
- Iterable<Location> children ) {
- super(sourceName, workspaceName, locationInSource, expirationTime);
- assert children != null;
- this.children = new LinkedList<Location>();
- for (Location child : children) {
- if (child != null) this.children.add(child);
- }
- assert this.children.isEmpty() == false;
- if (ContributionStatistics.RECORD) ContributionStatistics.record(0, this.children.size());
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.contribution.Contribution#getChildren()
- */
- @Override
- public Iterator<Location> getChildren() {
- return new ImmutableIterator<Location>(children.iterator());
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.contribution.Contribution#getChildrenCount()
- */
- @Override
- public int getChildrenCount() {
- return children.size();
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/MultiPropertyContribution.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/MultiPropertyContribution.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/MultiPropertyContribution.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,104 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.contribution;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import net.jcip.annotations.Immutable;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.property.DateTime;
-import org.jboss.dna.graph.property.Name;
-import org.jboss.dna.graph.property.Property;
-
-/**
- * The record of a source contributing only properties to a node.
- *
- * @author Randall Hauch
- */
-@Immutable
-public class MultiPropertyContribution extends NonEmptyContribution {
-
- /**
- * This is the first version of this class. See the documentation of MergePlan.serialVersionUID.
- */
- private static final long serialVersionUID = 1L;
-
- protected final Map<Name, Property> properties;
-
- /**
- * Create a contribution of node properties from the source with the supplied name.
- *
- * @param sourceName the name of the source, which may not be null or blank
- * @param workspaceName the name of the workspace, which may not be null or blank
- * @param locationInSource the location in the source for this contributed information; may not be null
- * @param expirationTime the time (in UTC) after which this contribution should be considered expired, or null if there is no
- * expiration time
- * @param properties the properties from the source; may not be null
- */
- public MultiPropertyContribution( String sourceName,
- String workspaceName,
- Location locationInSource,
- DateTime expirationTime,
- Iterable<Property> properties ) {
- super(sourceName, workspaceName, locationInSource, expirationTime);
- assert properties != null;
- this.properties = new HashMap<Name, Property>();
- for (Property property : properties) {
- if (property != null) this.properties.put(property.getName(), property);
- }
- assert this.properties.isEmpty() == false;
- if (ContributionStatistics.RECORD) ContributionStatistics.record(this.properties.size(), 0);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.contribution.Contribution#getProperties()
- */
- @Override
- public Iterator<Property> getProperties() {
- return new ImmutableIterator<Property>(this.properties.values().iterator());
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.contribution.Contribution#getPropertyCount()
- */
- @Override
- public int getPropertyCount() {
- return this.properties.size();
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.contribution.Contribution#getProperty(org.jboss.dna.graph.property.Name)
- */
- @Override
- public Property getProperty( Name name ) {
- return this.properties.get(name);
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/NodeContribution.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/NodeContribution.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/NodeContribution.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,95 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.contribution;
-
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import net.jcip.annotations.Immutable;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.property.DateTime;
-import org.jboss.dna.graph.property.Property;
-
-/**
- * The contribution of a source to the information for a single federated node.
- *
- * @author Randall Hauch
- */
-@Immutable
-public class NodeContribution extends MultiPropertyContribution {
-
- /**
- * This is the first version of this class. See the documentation of MergePlan.serialVersionUID.
- */
- private static final long serialVersionUID = 1L;
-
- private List<Location> children;
-
- /**
- * Create a contribution of node properties and children from the source with the supplied name.
- *
- * @param sourceName the name of the source, which may not be null or blank
- * @param workspaceName the name of the workspace, which may not be null or blank
- * @param locationInSource the location in the source for this contributed information; may not be null
- * @param expirationTime the time (in UTC) after which this contribution should be considered expired, or null if there is no
- * expiration time
- * @param properties the properties from the source; may not be null
- * @param children the children from the source; may not be null or empty
- */
- public NodeContribution( String sourceName,
- String workspaceName,
- Location locationInSource,
- DateTime expirationTime,
- Iterable<Property> properties,
- Iterable<Location> children ) {
- super(sourceName, workspaceName, locationInSource, expirationTime, properties);
- assert children != null;
- this.children = new LinkedList<Location>();
- for (Location child : children) {
- if (child != null) this.children.add(child);
- }
- assert this.children.isEmpty() == false;
- if (ContributionStatistics.RECORD) ContributionStatistics.record(this.properties.size(), this.children.size());
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.contribution.Contribution#getChildren()
- */
- @Override
- public Iterator<Location> getChildren() {
- return new ImmutableIterator<Location>(children.iterator());
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.contribution.Contribution#getChildrenCount()
- */
- @Override
- public int getChildrenCount() {
- return children.size();
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/NonEmptyContribution.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/NonEmptyContribution.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/NonEmptyContribution.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,101 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.contribution;
-
-import net.jcip.annotations.Immutable;
-import org.jboss.dna.common.util.HashCode;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.property.DateTime;
-
-/**
- * The record of a non-empty source contribution from a single location within the source.
- *
- * @author Randall Hauch
- */
-@Immutable
-public abstract class NonEmptyContribution extends Contribution {
-
- /**
- * This is the first version of this class. See the documentation of MergePlan.serialVersionUID.
- */
- private static final long serialVersionUID = 1L;
-
- private final Location locationInSource;
-
- /**
- * Create a contribution of node properties from the source with the supplied name.
- *
- * @param sourceName the name of the source, which may not be null or blank
- * @param workspaceName the name of the workspace, which may not be null or blank
- * @param locationInSource the location in the source for this contributed information; may not be null
- * @param expirationTime the time (in UTC) after which this contribution should be considered expired, or null if there is no
- * expiration time
- */
- protected NonEmptyContribution( String sourceName,
- String workspaceName,
- Location locationInSource,
- DateTime expirationTime ) {
- super(sourceName, workspaceName, expirationTime);
- assert locationInSource != null;
- this.locationInSource = locationInSource;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.contribution.Contribution#getLocationInSource()
- */
- @Override
- public Location getLocationInSource() {
- return locationInSource;
- }
-
- /**
- * {@inheritDoc}
- * <p>
- * This implementation returns the hash code of the {@link #getSourceName() source name}, and is compatible with the
- * implementation of {@link #equals(Object)}.
- * </p>
- */
- @Override
- public int hashCode() {
- return HashCode.compute(this.getSourceName(), this.getLocationInSource());
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public boolean equals( Object obj ) {
- if (obj == this) return true;
- if (obj instanceof NonEmptyContribution) {
- NonEmptyContribution that = (NonEmptyContribution)obj;
- if (!this.getSourceName().equals(that.getSourceName())) return false;
- if (!this.getWorkspaceName().equals(that.getWorkspaceName())) return false;
- if (!this.getLocationInSource().equals(that.getLocationInSource())) return false;
- return true;
- }
- return false;
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/OneChildContribution.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/OneChildContribution.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/OneChildContribution.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,87 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.contribution;
-
-import java.util.Iterator;
-import net.jcip.annotations.Immutable;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.property.DateTime;
-
-/**
- * The record of a source contributing only a single child to a node.
- *
- * @author Randall Hauch
- */
-@Immutable
-public class OneChildContribution extends NonEmptyContribution {
-
- /**
- * This is the first version of this class. See the documentation of MergePlan.serialVersionUID.
- */
- private static final long serialVersionUID = 1L;
-
- private final Location child;
-
- /**
- * Create a contribution of a single child from the source with the supplied name.
- *
- * @param sourceName the name of the source, which may not be null or blank
- * @param workspaceName the name of the workspace, which may not be null or blank
- * @param locationInSource the location in the source for this contributed information; may not be null
- * @param expirationTime the time (in UTC) after which this contribution should be considered expired, or null if there is no
- * expiration time
- * @param child the child contributed from the source; may not be null
- */
- public OneChildContribution( String sourceName,
- String workspaceName,
- Location locationInSource,
- DateTime expirationTime,
- Location child ) {
- super(sourceName, workspaceName, locationInSource, expirationTime);
- assert child != null;
- this.child = child;
- if (ContributionStatistics.RECORD) ContributionStatistics.record(0, 1);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.contribution.Contribution#getChildren()
- */
- @Override
- public Iterator<Location> getChildren() {
- return new OneValueIterator<Location>(child);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.contribution.Contribution#getChildrenCount()
- */
- @Override
- public int getChildrenCount() {
- return 1;
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/OnePropertyContribution.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/OnePropertyContribution.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/OnePropertyContribution.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,100 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.contribution;
-
-import java.util.Iterator;
-import net.jcip.annotations.Immutable;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.property.DateTime;
-import org.jboss.dna.graph.property.Name;
-import org.jboss.dna.graph.property.Property;
-
-/**
- * The record of a source contributing only properties to a node.
- *
- * @author Randall Hauch
- */
-@Immutable
-public class OnePropertyContribution extends NonEmptyContribution {
-
- /**
- * This is the first version of this class. See the documentation of MergePlan.serialVersionUID.
- */
- private static final long serialVersionUID = 1L;
-
- private final Property property;
-
- /**
- * Create a contribution of node properties from the source with the supplied name.
- *
- * @param sourceName the name of the source, which may not be null or blank
- * @param workspaceName the name of the workspace, which may not be null or blank
- * @param locationInSource the location in the source for this contributed information; may not be null
- * @param expirationTime the time (in UTC) after which this contribution should be considered expired, or null if there is no
- * expiration time
- * @param property the property from the source; may not be null
- */
- public OnePropertyContribution( String sourceName,
- String workspaceName,
- Location locationInSource,
- DateTime expirationTime,
- Property property ) {
- super(sourceName, workspaceName, locationInSource, expirationTime);
- assert property != null;
- assert property.isEmpty() == false;
- this.property = property;
- if (ContributionStatistics.RECORD) ContributionStatistics.record(1, 0);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.contribution.Contribution#getProperties()
- */
- @Override
- public Iterator<Property> getProperties() {
- return new OneValueIterator<Property>(property);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.contribution.Contribution#getPropertyCount()
- */
- @Override
- public int getPropertyCount() {
- return 1;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.contribution.Contribution#getProperty(org.jboss.dna.graph.property.Name)
- */
- @Override
- public Property getProperty( Name name ) {
- return this.property.getName().equals(name) ? property : null;
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/PlaceholderContribution.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/PlaceholderContribution.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/PlaceholderContribution.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,70 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.contribution;
-
-import net.jcip.annotations.Immutable;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.property.DateTime;
-
-/**
- * A placeholder contribution needed because of a source's contribution below the specified children.
- *
- * @author Randall Hauch
- */
-@Immutable
-public class PlaceholderContribution extends MultiChildContribution {
-
- /**
- * This is the first version of this class. See the documentation of MergePlan.serialVersionUID.
- */
- private static final long serialVersionUID = 1L;
-
- /**
- * Create a contribution of children from the source with the supplied name.
- *
- * @param sourceName the name of the source, which may not be null or blank
- * @param workspaceName the name of the workspace, which may not be null or blank
- * @param locationInSource the location in the source for this contributed information; may not be null
- * @param expirationTime the time (in UTC) after which this contribution should be considered expired, or null if there is no
- * expiration time
- * @param children the children from the source; may not be null or empty
- */
- public PlaceholderContribution( String sourceName,
- String workspaceName,
- Location locationInSource,
- DateTime expirationTime,
- Iterable<Location> children ) {
- super(sourceName, workspaceName, locationInSource, expirationTime, children);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.contribution.Contribution#isPlaceholder()
- */
- @Override
- public boolean isPlaceholder() {
- return true;
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/ThreePropertyContribution.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/ThreePropertyContribution.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/ThreePropertyContribution.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,115 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.contribution;
-
-import java.util.Iterator;
-import net.jcip.annotations.Immutable;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.property.DateTime;
-import org.jboss.dna.graph.property.Name;
-import org.jboss.dna.graph.property.Property;
-
-/**
- * The record of a source contributing only properties to a node.
- *
- * @author Randall Hauch
- */
-@Immutable
-public class ThreePropertyContribution extends NonEmptyContribution {
-
- /**
- * This is the first version of this class. See the documentation of MergePlan.serialVersionUID.
- */
- private static final long serialVersionUID = 1L;
-
- private final Property property1;
- private final Property property2;
- private final Property property3;
-
- /**
- * Create a contribution of node properties from the source with the supplied name.
- *
- * @param sourceName the name of the source, which may not be null or blank
- * @param workspaceName the name of the workspace, which may not be null or blank
- * @param locationInSource the location in the source for this contributed information; may not be null
- * @param expirationTime the time (in UTC) after which this contribution should be considered expired, or null if there is no
- * expiration time
- * @param property1 the first property from the source; may not be null
- * @param property2 the second property from the source; may not be null
- * @param property3 the third property from the source; may not be null
- */
- public ThreePropertyContribution( String sourceName,
- String workspaceName,
- Location locationInSource,
- DateTime expirationTime,
- Property property1,
- Property property2,
- Property property3 ) {
- super(sourceName, workspaceName, locationInSource, expirationTime);
- assert property1 != null;
- assert property1.isEmpty() == false;
- assert property2 != null;
- assert property2.isEmpty() == false;
- assert property3 != null;
- assert property3.isEmpty() == false;
- this.property1 = property1;
- this.property2 = property2;
- this.property3 = property3;
- if (ContributionStatistics.RECORD) ContributionStatistics.record(3, 0);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.contribution.Contribution#getProperties()
- */
- @Override
- public Iterator<Property> getProperties() {
- return new ThreeValueIterator<Property>(property1, property2, property3);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.contribution.Contribution#getPropertyCount()
- */
- @Override
- public int getPropertyCount() {
- return 3;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.contribution.Contribution#getProperty(org.jboss.dna.graph.property.Name)
- */
- @Override
- public Property getProperty( Name name ) {
- if (this.property1.getName().equals(name)) return property1;
- if (this.property2.getName().equals(name)) return property2;
- if (this.property3.getName().equals(name)) return property3;
- return null;
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/TwoChildContribution.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/TwoChildContribution.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/TwoChildContribution.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,92 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.contribution;
-
-import java.util.Iterator;
-import net.jcip.annotations.Immutable;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.property.DateTime;
-
-/**
- * The record of a source contributing only two children to a node.
- *
- * @author Randall Hauch
- */
-@Immutable
-public class TwoChildContribution extends NonEmptyContribution {
-
- /**
- * This is the first version of this class. See the documentation of MergePlan.serialVersionUID.
- */
- private static final long serialVersionUID = 1L;
-
- private final Location child1;
- private final Location child2;
-
- /**
- * Create a contribution of two children from the source with the supplied name.
- *
- * @param sourceName the name of the source, which may not be null or blank
- * @param workspaceName the name of the workspace, which may not be null or blank
- * @param locationInSource the path in the source for this contributed information; may not be null
- * @param expirationTime the time (in UTC) after which this contribution should be considered expired, or null if there is no
- * expiration time
- * @param child1 the first child contributed from the source; may not be null
- * @param child2 the second child contributed from the source; may not be null
- */
- public TwoChildContribution( String sourceName,
- String workspaceName,
- Location locationInSource,
- DateTime expirationTime,
- Location child1,
- Location child2 ) {
- super(sourceName, workspaceName, locationInSource, expirationTime);
- assert child1 != null;
- assert child2 != null;
- this.child1 = child1;
- this.child2 = child2;
- if (ContributionStatistics.RECORD) ContributionStatistics.record(0, 2);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.contribution.Contribution#getChildren()
- */
- @Override
- public Iterator<Location> getChildren() {
- return new TwoValueIterator<Location>(child1, child2);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.contribution.Contribution#getChildrenCount()
- */
- @Override
- public int getChildrenCount() {
- return 2;
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/TwoPropertyContribution.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/TwoPropertyContribution.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/contribution/TwoPropertyContribution.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,108 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.contribution;
-
-import java.util.Iterator;
-import net.jcip.annotations.Immutable;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.property.DateTime;
-import org.jboss.dna.graph.property.Name;
-import org.jboss.dna.graph.property.Property;
-
-/**
- * The record of a source contributing only properties to a node.
- *
- * @author Randall Hauch
- */
-@Immutable
-public class TwoPropertyContribution extends NonEmptyContribution {
-
- /**
- * This is the first version of this class. See the documentation of MergePlan.serialVersionUID.
- */
- private static final long serialVersionUID = 1L;
-
- private final Property property1;
- private final Property property2;
-
- /**
- * Create a contribution of node properties from the source with the supplied name.
- *
- * @param sourceName the name of the source, which may not be null or blank
- * @param workspaceName the name of the workspace, which may not be null or blank
- * @param locationInSource the path in the source for this contributed information; may not be null
- * @param expirationTime the time (in UTC) after which this contribution should be considered expired, or null if there is no
- * expiration time
- * @param property1 the first property from the source; may not be null
- * @param property2 the first property from the source; may not be null
- */
- public TwoPropertyContribution( String sourceName,
- String workspaceName,
- Location locationInSource,
- DateTime expirationTime,
- Property property1,
- Property property2 ) {
- super(sourceName, workspaceName, locationInSource, expirationTime);
- assert property1 != null;
- assert property1.isEmpty() == false;
- assert property2 != null;
- assert property2.isEmpty() == false;
- this.property1 = property1;
- this.property2 = property2;
- if (ContributionStatistics.RECORD) ContributionStatistics.record(2, 0);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.contribution.Contribution#getProperties()
- */
- @Override
- public Iterator<Property> getProperties() {
- return new TwoValueIterator<Property>(property1, property2);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.contribution.Contribution#getPropertyCount()
- */
- @Override
- public int getPropertyCount() {
- return 2;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.contribution.Contribution#getProperty(org.jboss.dna.graph.property.Name)
- */
- @Override
- public Property getProperty( Name name ) {
- if (this.property1.getName().equals(name)) return property1;
- if (this.property2.getName().equals(name)) return property2;
- return null;
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/FederatedNode.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/FederatedNode.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/FederatedNode.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,106 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.merge;
-
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.request.ReadNodeRequest;
-
-/**
- * An in-memory (and temporary) representation of a federated node and it's merged properties and children.
- *
- * @author Randall Hauch
- */
-public class FederatedNode extends ReadNodeRequest {
-
- private static final long serialVersionUID = 1L;
-
- private MergePlan mergePlan;
-
- /**
- * Create a federated node given the path and UUID.
- *
- * @param location the location of the federated node; may not be null
- * @param workspaceName the name of the (federated) workspace in which this node exists
- */
- public FederatedNode( Location location,
- String workspaceName ) {
- super(location, workspaceName);
- super.setActualLocationOfNode(location);
- }
-
- /**
- * Get the merge plan for this federated node
- *
- * @return the merge plan, or null if there is no merge plan
- */
- public MergePlan getMergePlan() {
- return mergePlan;
- }
-
- /**
- * Set the merge plan for this federated node
- *
- * @param mergePlan the new merge plan for this federated node; may be null
- */
- public void setMergePlan( MergePlan mergePlan ) {
- this.mergePlan = mergePlan;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- return this.at().hashCode();
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals( Object obj ) {
- if (obj == this) return true;
- if (obj instanceof FederatedNode) {
- FederatedNode that = (FederatedNode)obj;
- if (!this.at().equals(that.at())) return false;
- if (!this.inWorkspace().equals(that.inWorkspace())) return false;
- return true;
- }
- return false;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Object#toString()
- */
- @Override
- public String toString() {
- return at().toString();
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/FiveContributionMergePlan.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/FiveContributionMergePlan.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/FiveContributionMergePlan.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,164 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.merge;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import net.jcip.annotations.ThreadSafe;
-import org.jboss.dna.common.util.HashCode;
-import org.jboss.dna.connector.federation.contribution.Contribution;
-
-/**
- * @author Randall Hauch
- */
-@ThreadSafe
-public class FiveContributionMergePlan extends MergePlan {
-
- private static final long serialVersionUID = 1L;
- private final Contribution contribution1;
- private final Contribution contribution2;
- private final Contribution contribution3;
- private final Contribution contribution4;
- private final Contribution contribution5;
-
- /**
- * @param contribution1 the first contribution for this merge plan
- * @param contribution2 the second contribution for this merge plan
- * @param contribution3 the third contribution for this merge plan
- * @param contribution4 the fourth contribution for this merge plan
- * @param contribution5 the fifth contribution for this merge plan
- */
- /*package*/FiveContributionMergePlan( Contribution contribution1,
- Contribution contribution2,
- Contribution contribution3,
- Contribution contribution4,
- Contribution contribution5 ) {
- assert contribution1 != null;
- assert contribution2 != null;
- assert contribution3 != null;
- assert contribution4 != null;
- assert contribution5 != null;
- this.contribution1 = contribution1;
- this.contribution2 = contribution2;
- this.contribution3 = contribution3;
- this.contribution4 = contribution4;
- this.contribution5 = contribution5;
- assert checkEachContributionIsFromDistinctSource();
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.merge.MergePlan#getContributionCount()
- */
- @Override
- public int getContributionCount() {
- return 5;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.merge.MergePlan#getContributionFrom(java.lang.String)
- */
- @Override
- public Contribution getContributionFrom( String sourceName ) {
- if (contribution1.getSourceName().equals(sourceName)) return contribution1;
- if (contribution2.getSourceName().equals(sourceName)) return contribution2;
- if (contribution3.getSourceName().equals(sourceName)) return contribution3;
- if (contribution4.getSourceName().equals(sourceName)) return contribution4;
- if (contribution5.getSourceName().equals(sourceName)) return contribution5;
- return null;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Iterable#iterator()
- */
- public Iterator<Contribution> iterator() {
- return new Iterator<Contribution>() {
- private int next = 5;
-
- public boolean hasNext() {
- return next > 0;
- }
-
- @SuppressWarnings( "synthetic-access" )
- public Contribution next() {
- if (next == 5) {
- next = 4;
- return contribution1;
- }
- if (next == 4) {
- next = 3;
- return contribution2;
- }
- if (next == 3) {
- next = 2;
- return contribution3;
- }
- if (next == 2) {
- next = 1;
- return contribution4;
- }
- if (next == 1) {
- next = 0;
- return contribution5;
- }
- throw new NoSuchElementException();
- }
-
- public void remove() {
- throw new UnsupportedOperationException();
- }
- };
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.merge.MergePlan#isSource(java.lang.String)
- */
- @Override
- public boolean isSource( String sourceName ) {
- if (contribution1.getSourceName().equals(sourceName)) return true;
- if (contribution2.getSourceName().equals(sourceName)) return true;
- if (contribution3.getSourceName().equals(sourceName)) return true;
- if (contribution4.getSourceName().equals(sourceName)) return true;
- if (contribution5.getSourceName().equals(sourceName)) return true;
- return false;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- return HashCode.compute(contribution1, contribution2, contribution3, contribution4, contribution5);
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/FourContributionMergePlan.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/FourContributionMergePlan.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/FourContributionMergePlan.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,153 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.merge;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import net.jcip.annotations.ThreadSafe;
-import org.jboss.dna.common.util.HashCode;
-import org.jboss.dna.connector.federation.contribution.Contribution;
-
-/**
- * @author Randall Hauch
- */
-@ThreadSafe
-public class FourContributionMergePlan extends MergePlan {
-
- private static final long serialVersionUID = 1L;
- private final Contribution contribution1;
- private final Contribution contribution2;
- private final Contribution contribution3;
- private final Contribution contribution4;
-
- /**
- * @param contribution1 the first contribution for this merge plan
- * @param contribution2 the second contribution for this merge plan
- * @param contribution3 the third contribution for this merge plan
- * @param contribution4 the fourth contribution for this merge plan
- */
- /*package*/FourContributionMergePlan( Contribution contribution1,
- Contribution contribution2,
- Contribution contribution3,
- Contribution contribution4 ) {
- assert contribution1 != null;
- assert contribution2 != null;
- assert contribution3 != null;
- assert contribution4 != null;
- this.contribution1 = contribution1;
- this.contribution2 = contribution2;
- this.contribution3 = contribution3;
- this.contribution4 = contribution4;
- assert checkEachContributionIsFromDistinctSource();
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.merge.MergePlan#getContributionCount()
- */
- @Override
- public int getContributionCount() {
- return 4;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.merge.MergePlan#getContributionFrom(java.lang.String)
- */
- @Override
- public Contribution getContributionFrom( String sourceName ) {
- if (contribution1.getSourceName().equals(sourceName)) return contribution1;
- if (contribution2.getSourceName().equals(sourceName)) return contribution2;
- if (contribution3.getSourceName().equals(sourceName)) return contribution3;
- if (contribution4.getSourceName().equals(sourceName)) return contribution4;
- return null;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Iterable#iterator()
- */
- public Iterator<Contribution> iterator() {
- return new Iterator<Contribution>() {
- private int next = 4;
-
- public boolean hasNext() {
- return next > 0;
- }
-
- @SuppressWarnings( "synthetic-access" )
- public Contribution next() {
- if (next == 4) {
- next = 3;
- return contribution1;
- }
- if (next == 3) {
- next = 2;
- return contribution2;
- }
- if (next == 2) {
- next = 1;
- return contribution3;
- }
- if (next == 1) {
- next = 0;
- return contribution4;
- }
- throw new NoSuchElementException();
- }
-
- public void remove() {
- throw new UnsupportedOperationException();
- }
- };
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.merge.MergePlan#isSource(java.lang.String)
- */
- @Override
- public boolean isSource( String sourceName ) {
- if (contribution1.getSourceName().equals(sourceName)) return true;
- if (contribution2.getSourceName().equals(sourceName)) return true;
- if (contribution3.getSourceName().equals(sourceName)) return true;
- if (contribution4.getSourceName().equals(sourceName)) return true;
- return false;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- return HashCode.compute(contribution1, contribution2, contribution3, contribution4);
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/MergePlan.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/MergePlan.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/MergePlan.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,417 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.merge;
-
-import java.io.InvalidClassException;
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.locks.ReadWriteLock;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
-import net.jcip.annotations.GuardedBy;
-import net.jcip.annotations.ThreadSafe;
-import org.jboss.dna.common.CommonI18n;
-import org.jboss.dna.common.util.CheckArg;
-import org.jboss.dna.connector.federation.contribution.Contribution;
-import org.jboss.dna.connector.federation.contribution.EmptyContribution;
-import org.jboss.dna.graph.property.DateTime;
-import org.jboss.dna.graph.property.Name;
-import org.jboss.dna.graph.property.Property;
-
-/**
- * This class represents the details about how information from different sources are merged into a single federated node.
- * <p>
- * A merge plan basically consists of the individual contribution from each source and the information about how these
- * contributions were merged into the single federated node.
- * </p>
- * <p>
- * Merge plans are designed to be {@link Serializable serializable}, as they are persisted on the federated node and deserialized
- * to assist in the management of the federated node.
- * </p>
- *
- * @author Randall Hauch
- */
-@ThreadSafe
-public abstract class MergePlan implements Serializable, Iterable<Contribution> {
-
- public static MergePlan create( Contribution... contributions ) {
- CheckArg.isNotNull(contributions, "contributions");
- switch (contributions.length) {
- case 0:
- throw new IllegalArgumentException(CommonI18n.argumentMayNotBeEmpty.text("contributions"));
- case 1:
- return new OneContributionMergePlan(contributions[0]);
- case 2:
- return new TwoContributionMergePlan(contributions[0], contributions[1]);
- case 3:
- return new ThreeContributionMergePlan(contributions[0], contributions[1], contributions[2]);
- case 4:
- return new FourContributionMergePlan(contributions[0], contributions[1], contributions[2], contributions[3]);
- case 5:
- return new FiveContributionMergePlan(contributions[0], contributions[1], contributions[2], contributions[3],
- contributions[4]);
- default:
- return new MultipleContributionMergePlan(contributions);
- }
- }
-
- public static MergePlan create( Collection<Contribution> contributions ) {
- CheckArg.isNotNull(contributions, "contributions");
- Iterator<Contribution> iter = contributions.iterator();
- switch (contributions.size()) {
- case 0:
- throw new IllegalArgumentException(CommonI18n.argumentMayNotBeEmpty.text("contributions"));
- case 1:
- return new OneContributionMergePlan(iter.next());
- case 2:
- return new TwoContributionMergePlan(iter.next(), iter.next());
- case 3:
- return new ThreeContributionMergePlan(iter.next(), iter.next(), iter.next());
- case 4:
- return new FourContributionMergePlan(iter.next(), iter.next(), iter.next(), iter.next());
- case 5:
- return new FiveContributionMergePlan(iter.next(), iter.next(), iter.next(), iter.next(), iter.next());
- default:
- return new MultipleContributionMergePlan(contributions);
- }
- }
-
- public static MergePlan addContribution( MergePlan plan,
- Contribution contribution ) {
- CheckArg.isNotNull(plan, "plan");
- CheckArg.isNotNull(contribution, "contribution");
- if (plan instanceof MultipleContributionMergePlan) {
- ((MultipleContributionMergePlan)plan).addContribution(contribution);
- return plan;
- }
- MergePlan newPlan = null;
- if (plan instanceof OneContributionMergePlan) {
- newPlan = new TwoContributionMergePlan(plan.iterator().next(), contribution);
- } else if (plan instanceof TwoContributionMergePlan) {
- Iterator<Contribution> iter = plan.iterator();
- newPlan = new ThreeContributionMergePlan(iter.next(), iter.next(), contribution);
- } else if (plan instanceof ThreeContributionMergePlan) {
- Iterator<Contribution> iter = plan.iterator();
- newPlan = new FourContributionMergePlan(iter.next(), iter.next(), iter.next(), contribution);
- } else if (plan instanceof FourContributionMergePlan) {
- Iterator<Contribution> iter = plan.iterator();
- newPlan = new FiveContributionMergePlan(iter.next(), iter.next(), iter.next(), iter.next(), contribution);
- } else {
- MultipleContributionMergePlan multiPlan = new MultipleContributionMergePlan();
- for (Contribution existingContribution : plan) {
- multiPlan.addContribution(existingContribution);
- }
- multiPlan.addContribution(contribution);
- newPlan = multiPlan;
- }
- newPlan.setAnnotations(plan.getAnnotations());
- return newPlan;
- }
-
- /**
- * Define the earliest version of this class that is supported. The Java runtime, upon deserialization, compares the
- * serialized object's version to this, and if less than this version will throw a {@link InvalidClassException}. If, however,
- * the serialized object's version is compatible with this class, it will be deserialized successfully.
- * <p>
- * <a href="http://java.sun.com/j2se/1.5.0/docs/guide/serialization/spec/version.html...">Sun's documentation</a> describes
- * the following changes can be made without negatively affecting the deserialization of older versions:
- * <ul>
- * <li>Adding fields - When the class being reconstituted has a field that does not occur in the stream, that field in the
- * object will be initialized to the default value for its type. If class-specific initialization is needed, the class may
- * provide a readObject method that can initialize the field to nondefault values.</i>
- * <li>Adding classes - The stream will contain the type hierarchy of each object in the stream. Comparing this hierarchy in
- * the stream with the current class can detect additional classes. Since there is no information in the stream from which to
- * initialize the object, the class's fields will be initialized to the default values.</i>
- * <li>Removing classes - Comparing the class hierarchy in the stream with that of the current class can detect that a class
- * has been deleted. In this case, the fields and objects corresponding to that class are read from the stream. Primitive
- * fields are discarded, but the objects referenced by the deleted class are created, since they may be referred to later in
- * the stream. They will be garbage-collected when the stream is garbage-collected or reset.</i>
- * <li>Adding writeObject/readObject methods - If the version reading the stream has these methods then readObject is
- * expected, as usual, to read the required data written to the stream by the default serialization. It should call
- * defaultReadObject first before reading any optional data. The writeObject method is expected as usual to call
- * defaultWriteObject to write the required data and then may write optional data.</i>
- * <li>Removing writeObject/readObject methods - If the class reading the stream does not have these methods, the required
- * data will be read by default serialization, and the optional data will be discarded.</i>
- * <li>Adding java.io.Serializable - This is equivalent to adding types. There will be no values in the stream for this class
- * so its fields will be initialized to default values. The support for subclassing nonserializable classes requires that the
- * class's supertype have a no-arg constructor and the class itself will be initialized to default values. If the no-arg
- * constructor is not available, the InvalidClassException is thrown.</i>
- * <li>Changing the access to a field - The access modifiers public, package, protected, and private have no effect on the
- * ability of serialization to assign values to the fields.</i>
- * <li>Changing a field from static to nonstatic or transient to nontransient - When relying on default serialization to
- * compute the serializable fields, this change is equivalent to adding a field to the class. The new field will be written to
- * the stream but earlier classes will ignore the value since serialization will not assign values to static or transient
- * fields.</i>
- * </ul>
- * All other kinds of modifications should be avoided.
- * </p>
- */
- private static final long serialVersionUID = 1L;
-
- private final ReadWriteLock annotationLock = new ReentrantReadWriteLock();
- private DateTime expirationTimeInUtc;
- @GuardedBy( "annotationLock" )
- private Map<Name, Property> annotations = null;
-
- /**
- * Create an empty merge plan
- */
- protected MergePlan() {
- }
-
- /**
- * Determine whether this merge plan has expired given the supplied current time. The {@link #getExpirationTimeInUtc()
- * expiration time} is the earliest time that any of the {@link #getContributionFrom(String) contributions}
- * {@link Contribution#getExpirationTimeInUtc()}.
- *
- * @param utcTime the current time expressed in UTC; may not be null
- * @return true if at least one contribution has expired, or false otherwise
- */
- public boolean isExpired( DateTime utcTime ) {
- assert utcTime != null;
- assert utcTime.toUtcTimeZone().equals(utcTime); // check that it is passed UTC time
- DateTime expirationTimeInUtc = getExpirationTimeInUtc();
- return expirationTimeInUtc == null ? false : utcTime.isAfter(expirationTimeInUtc);
- }
-
- /**
- * Get the expiration time (in UTC) that is the earliest time that any of the {@link #getContributionFrom(String)
- * contributions} {@link Contribution#getExpirationTimeInUtc()}.
- *
- * @return the expiration time in UTC, or null if there is no known expiration time
- */
- public DateTime getExpirationTimeInUtc() {
- if (expirationTimeInUtc == null) {
- // This is computed regardless of a lock, since it's not expensive and idempotent
- DateTime earliest = null;
- for (Contribution contribution : this) {
- DateTime contributionTime = contribution.getExpirationTimeInUtc();
- if (earliest == null || (contributionTime != null && contributionTime.isBefore(earliest))) {
- earliest = contributionTime;
- }
- }
- expirationTimeInUtc = earliest;
- }
- return expirationTimeInUtc;
- }
-
- /**
- * Get the contribution from the source with the supplied name. Note that contributions always include sources that contribute
- * information and sources that contribute no information. If a source is not included in this list, its contributions are
- * <i>unknown</i>; that is, it is unknown whether that source does or does not contribute to the node.
- *
- * @param sourceName the name of the source
- * @return the contribution, or null if the contribution of the source is unknown
- */
- public abstract Contribution getContributionFrom( String sourceName );
-
- /**
- * Return whether the named source was consulted for a contribution.
- *
- * @param sourceName the name of the source
- * @return true if the source has some {@link Contribution contribution} (even if it is an {@link EmptyContribution})
- */
- public abstract boolean isSource( String sourceName );
-
- public abstract int getContributionCount();
-
- /**
- * Get the number of contributions that are not placeholders or empty.
- *
- * @return the number of real contributions
- */
- public int getRealContributionCount() {
- int count = 0;
- for (Contribution contribution : this) {
- if (contribution.isPlaceholder()) continue;
- if (contribution.isEmpty()) continue;
- ++count;
- }
- return count;
- }
-
- /**
- * Get the plan annotation property with the given name. Plan annotations are custom properties that may be set by
- * MergeProcessor implementations to store custom properties on the plan. This method does nothing if the supplied name is
- * null
- *
- * @param name the name of the annotation
- * @return the existing annotation, or null if there is no annotation with the supplied name
- * @see #setAnnotation(Property)
- */
- public Property getAnnotation( Name name ) {
- if (name == null) return null;
- try {
- annotationLock.readLock().lock();
- if (this.annotations == null) return null;
- return this.annotations.get(name);
- } finally {
- annotationLock.readLock().unlock();
- }
- }
-
- /**
- * Set the plan annotation property. This method replaces and returns any existing annotation property with the same name.
- * This method also returns immediately if the supplied annotation is null.
- *
- * @param annotation the new annotation
- * @return the previous annotation property with the same name, or null if there was no previous annotation property for the
- * name
- * @see #getAnnotation(Name)
- */
- public Property setAnnotation( Property annotation ) {
- if (annotation == null) return null;
- try {
- annotationLock.writeLock().lock();
- if (this.annotations == null) {
- this.annotations = new HashMap<Name, Property>();
- }
- return this.annotations.put(annotation.getName(), annotation);
- } finally {
- annotationLock.writeLock().unlock();
- }
- }
-
- /**
- * Get the number of annotations.
- *
- * @return the number of annotations
- */
- public int getAnnotationCount() {
- try {
- annotationLock.readLock().lock();
- if (this.annotations == null) return 0;
- return this.annotations.size();
- } finally {
- annotationLock.readLock().unlock();
- }
- }
-
- /**
- * Get the set of annotation {@link Name names}.
- *
- * @return the unmodifiable set of names, or an empty set if there are no annotations
- */
- public Set<Name> getAnnotationNames() {
- try {
- annotationLock.readLock().lock();
- if (this.annotations == null) return Collections.emptySet();
- return Collections.unmodifiableSet(this.annotations.keySet());
- } finally {
- annotationLock.readLock().unlock();
- }
- }
-
- /**
- * Set the annotations. This
- *
- * @param annotations
- */
- protected void setAnnotations( Map<Name, Property> annotations ) {
- try {
- annotationLock.writeLock().lock();
- this.annotations = annotations == null || annotations.isEmpty() ? null : annotations;
- } finally {
- annotationLock.writeLock().unlock();
- }
- }
-
- /**
- * Get a copy of the annotations.
- *
- * @return a copy of annotations; never null
- */
- public Map<Name, Property> getAnnotations() {
- Map<Name, Property> result = null;
- try {
- annotationLock.writeLock().lock();
- if (this.annotations != null && !this.annotations.isEmpty()) {
- result = new HashMap<Name, Property>(this.annotations);
- } else {
- result = Collections.emptyMap();
- }
- } finally {
- annotationLock.writeLock().unlock();
- }
- return result;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Object#toString()
- */
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder();
- boolean first = true;
- for (Contribution contribution : this) {
- if (!first) {
- first = false;
- sb.append(", ");
- }
- sb.append(contribution);
- }
- sb.append(getAnnotations());
- return sb.toString();
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals( Object obj ) {
- if (obj == this) return true;
- if (obj instanceof MergePlan) {
- MergePlan that = (MergePlan)obj;
- if (this.getContributionCount() != that.getContributionCount()) return false;
- Iterator<Contribution> thisContribution = this.iterator();
- Iterator<Contribution> thatContribution = that.iterator();
- while (thisContribution.hasNext() && thatContribution.hasNext()) {
- if (!thisContribution.next().equals(thatContribution.next())) return false;
- }
- if (this.getAnnotationCount() != that.getAnnotationCount()) return false;
- if (!this.getAnnotations().equals(that.getAnnotations())) return false;
- return true;
- }
- return false;
- }
-
- protected boolean checkEachContributionIsFromDistinctSource() {
- Set<String> sourceNames = new HashSet<String>();
- for (Contribution contribution : this) {
- boolean added = sourceNames.add(contribution.getSourceName());
- if (!added) return false;
- }
- return true;
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/MultipleContributionMergePlan.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/MultipleContributionMergePlan.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/MultipleContributionMergePlan.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,153 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.merge;
-
-import java.util.Iterator;
-import java.util.List;
-import java.util.concurrent.CopyOnWriteArrayList;
-import net.jcip.annotations.ThreadSafe;
-import org.jboss.dna.connector.federation.contribution.Contribution;
-
-/**
- * @author Randall Hauch
- */
-@ThreadSafe
-public class MultipleContributionMergePlan extends MergePlan {
-
- private static final long serialVersionUID = 1L;
- private final List<Contribution> contributions = new CopyOnWriteArrayList<Contribution>();
-
- /**
- * @param contributions the contributions for this merge plan
- */
- /*package*/MultipleContributionMergePlan( Contribution... contributions ) {
- assert contributions != null;
- for (int i = 0; i != contributions.length; ++i) {
- assert contributions[i] != null;
- this.contributions.add(contributions[i]);
- }
- assert checkEachContributionIsFromDistinctSource();
- }
-
- /**
- * @param contributions the contributions for this merge plan
- */
- /*package*/MultipleContributionMergePlan( Iterable<Contribution> contributions ) {
- assert contributions != null;
- for (Contribution contribution : contributions) {
- assert contribution != null;
- this.contributions.add(contribution);
- }
- assert checkEachContributionIsFromDistinctSource();
- }
-
- /**
- * @param contributions the contributions for this merge plan
- */
- /*package*/MultipleContributionMergePlan( Iterator<Contribution> contributions ) {
- assert contributions != null;
- while (contributions.hasNext()) {
- Contribution contribution = contributions.next();
- assert contribution != null;
- this.contributions.add(contribution);
- }
- assert checkEachContributionIsFromDistinctSource();
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.merge.MergePlan#getContributionCount()
- */
- @Override
- public int getContributionCount() {
- return contributions.size();
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.merge.MergePlan#getContributionFrom(java.lang.String)
- */
- @Override
- public Contribution getContributionFrom( String sourceName ) {
- for (Contribution contribution : contributions) {
- if (contribution.getSourceName().equals(sourceName)) return contribution;
- }
- return null;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Iterable#iterator()
- */
- public Iterator<Contribution> iterator() {
- final Iterator<Contribution> iterator = this.contributions.iterator();
- return new Iterator<Contribution>() {
- public boolean hasNext() {
- return iterator.hasNext();
- }
-
- public Contribution next() {
- return iterator.next();
- }
-
- public void remove() {
- throw new UnsupportedOperationException();
- }
- };
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.merge.MergePlan#isSource(java.lang.String)
- */
- @Override
- public boolean isSource( String sourceName ) {
- for (Contribution contribution : contributions) {
- if (contribution.getSourceName().equals(sourceName)) return true;
- }
- return false;
- }
-
- /**
- * @param contribution
- */
- public void addContribution( Contribution contribution ) {
- this.contributions.add(contribution);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- return contributions.hashCode();
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/OneContributionMergePlan.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/OneContributionMergePlan.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/OneContributionMergePlan.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,116 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.merge;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import net.jcip.annotations.ThreadSafe;
-import org.jboss.dna.connector.federation.contribution.Contribution;
-
-/**
- * @author Randall Hauch
- */
-@ThreadSafe
-public class OneContributionMergePlan extends MergePlan {
-
- private static final long serialVersionUID = 1L;
- private final Contribution contribution;
-
- /**
- * @param contribution the contribution for this merge plan
- */
- /*package*/OneContributionMergePlan( Contribution contribution ) {
- assert contribution != null;
- this.contribution = contribution;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.merge.MergePlan#getContributionCount()
- */
- @Override
- public int getContributionCount() {
- return 1;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.merge.MergePlan#getContributionFrom(java.lang.String)
- */
- @Override
- public Contribution getContributionFrom( String sourceName ) {
- return isSource(sourceName) ? contribution : null;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Iterable#iterator()
- */
- public Iterator<Contribution> iterator() {
- return new Iterator<Contribution>() {
- private boolean next = true;
-
- public boolean hasNext() {
- return next;
- }
-
- @SuppressWarnings( "synthetic-access" )
- public Contribution next() {
- if (next) {
- next = false;
- return contribution;
- }
- throw new NoSuchElementException();
- }
-
- public void remove() {
- throw new UnsupportedOperationException();
- }
- };
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.merge.MergePlan#isSource(java.lang.String)
- */
- @Override
- public boolean isSource( String sourceName ) {
- return contribution.getSourceName().equals(sourceName);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- return contribution.hashCode();
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/ThreeContributionMergePlan.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/ThreeContributionMergePlan.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/ThreeContributionMergePlan.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,142 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.merge;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import net.jcip.annotations.ThreadSafe;
-import org.jboss.dna.common.util.HashCode;
-import org.jboss.dna.connector.federation.contribution.Contribution;
-
-/**
- * @author Randall Hauch
- */
-@ThreadSafe
-public class ThreeContributionMergePlan extends MergePlan {
-
- private static final long serialVersionUID = 1L;
- private final Contribution contribution1;
- private final Contribution contribution2;
- private final Contribution contribution3;
-
- /**
- * @param contribution1 the first contribution for this merge plan
- * @param contribution2 the second contribution for this merge plan
- * @param contribution3 the third contribution for this merge plan
- */
- /*package*/ThreeContributionMergePlan( Contribution contribution1,
- Contribution contribution2,
- Contribution contribution3 ) {
- assert contribution1 != null;
- assert contribution2 != null;
- assert contribution3 != null;
- this.contribution1 = contribution1;
- this.contribution2 = contribution2;
- this.contribution3 = contribution3;
- assert checkEachContributionIsFromDistinctSource();
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.merge.MergePlan#getContributionCount()
- */
- @Override
- public int getContributionCount() {
- return 3;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.merge.MergePlan#getContributionFrom(java.lang.String)
- */
- @Override
- public Contribution getContributionFrom( String sourceName ) {
- if (contribution1.getSourceName().equals(sourceName)) return contribution1;
- if (contribution2.getSourceName().equals(sourceName)) return contribution2;
- if (contribution3.getSourceName().equals(sourceName)) return contribution3;
- return null;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Iterable#iterator()
- */
- public Iterator<Contribution> iterator() {
- return new Iterator<Contribution>() {
- private int next = 3;
-
- public boolean hasNext() {
- return next > 0;
- }
-
- @SuppressWarnings( "synthetic-access" )
- public Contribution next() {
- if (next == 3) {
- next = 2;
- return contribution1;
- }
- if (next == 2) {
- next = 1;
- return contribution2;
- }
- if (next == 1) {
- next = 0;
- return contribution3;
- }
- throw new NoSuchElementException();
- }
-
- public void remove() {
- throw new UnsupportedOperationException();
- }
- };
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.merge.MergePlan#isSource(java.lang.String)
- */
- @Override
- public boolean isSource( String sourceName ) {
- if (contribution1.getSourceName().equals(sourceName)) return true;
- if (contribution2.getSourceName().equals(sourceName)) return true;
- if (contribution3.getSourceName().equals(sourceName)) return true;
- return false;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- return HashCode.compute(contribution1, contribution2, contribution3);
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/TwoContributionMergePlan.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/TwoContributionMergePlan.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/TwoContributionMergePlan.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,129 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.merge;
-
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-import net.jcip.annotations.ThreadSafe;
-import org.jboss.dna.common.util.HashCode;
-import org.jboss.dna.connector.federation.contribution.Contribution;
-
-/**
- * @author Randall Hauch
- */
-@ThreadSafe
-public class TwoContributionMergePlan extends MergePlan {
-
- private static final long serialVersionUID = 1L;
- private final Contribution contribution1;
- private final Contribution contribution2;
-
- /**
- * @param contribution1 the first contribution for this merge plan
- * @param contribution2 the second contribution for this merge plan
- */
- /*package*/TwoContributionMergePlan( Contribution contribution1,
- Contribution contribution2 ) {
- assert contribution1 != null;
- assert contribution2 != null;
- this.contribution1 = contribution1;
- this.contribution2 = contribution2;
- assert checkEachContributionIsFromDistinctSource();
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.merge.MergePlan#getContributionCount()
- */
- @Override
- public int getContributionCount() {
- return 2;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.merge.MergePlan#getContributionFrom(java.lang.String)
- */
- @Override
- public Contribution getContributionFrom( String sourceName ) {
- if (contribution1.getSourceName().equals(sourceName)) return contribution1;
- if (contribution2.getSourceName().equals(sourceName)) return contribution2;
- return null;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Iterable#iterator()
- */
- public Iterator<Contribution> iterator() {
- return new Iterator<Contribution>() {
- private int next = 2;
-
- public boolean hasNext() {
- return next > 0;
- }
-
- @SuppressWarnings( "synthetic-access" )
- public Contribution next() {
- if (next == 2) {
- next = 1;
- return contribution1;
- }
- if (next == 1) {
- next = 0;
- return contribution2;
- }
- throw new NoSuchElementException();
- }
-
- public void remove() {
- throw new UnsupportedOperationException();
- }
- };
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.merge.MergePlan#isSource(java.lang.String)
- */
- @Override
- public boolean isSource( String sourceName ) {
- return contribution1.getSourceName().equals(sourceName) || contribution2.getSourceName().equals(sourceName);
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- return HashCode.compute(contribution1, contribution2);
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/strategy/MergeStrategy.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/strategy/MergeStrategy.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/strategy/MergeStrategy.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,47 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.merge.strategy;
-
-import java.util.List;
-import org.jboss.dna.connector.federation.contribution.Contribution;
-import org.jboss.dna.connector.federation.merge.FederatedNode;
-import org.jboss.dna.graph.ExecutionContext;
-
-/**
- * @author Randall Hauch
- */
-public interface MergeStrategy {
-
- /**
- * Merge the contributions into a single
- *
- * @param federatedNode the federated node into which the contributions are to be merged; never null
- * @param contributions the contributions to the node; never null, never empty, and never containing nulls
- * @param context the context in which this operation is to be performed; never null
- */
- public void merge( FederatedNode federatedNode,
- List<Contribution> contributions,
- ExecutionContext context );
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/strategy/OneContributionMergeStrategy.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/strategy/OneContributionMergeStrategy.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/strategy/OneContributionMergeStrategy.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,150 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.merge.strategy;
-
-import java.util.Iterator;
-import java.util.List;
-import java.util.UUID;
-import net.jcip.annotations.ThreadSafe;
-import org.jboss.dna.connector.federation.contribution.Contribution;
-import org.jboss.dna.connector.federation.merge.FederatedNode;
-import org.jboss.dna.connector.federation.merge.MergePlan;
-import org.jboss.dna.graph.DnaLexicon;
-import org.jboss.dna.graph.ExecutionContext;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.property.Path;
-import org.jboss.dna.graph.property.PathFactory;
-import org.jboss.dna.graph.property.Property;
-import org.jboss.dna.graph.property.ValueFormatException;
-
-/**
- * A merge strategy that is optimized for merging when there is a single contribution.
- *
- * @author Randall Hauch
- */
-@ThreadSafe
-public class OneContributionMergeStrategy implements MergeStrategy {
-
- /**
- * {@inheritDoc}
- * <p>
- * This method only uses the one and only one non-null {@link Contribution} in the <code>contributions</code>.
- * </p>
- *
- * @see org.jboss.dna.connector.federation.merge.strategy.MergeStrategy#merge(org.jboss.dna.connector.federation.merge.FederatedNode,
- * java.util.List, org.jboss.dna.graph.ExecutionContext)
- */
- public void merge( FederatedNode federatedNode,
- List<Contribution> contributions,
- ExecutionContext context ) {
- assert federatedNode != null;
- assert context != null;
- assert contributions != null;
- assert contributions.size() > 0;
- Contribution contribution = contributions.get(0);
- assert contribution != null;
- final PathFactory pathFactory = context.getValueFactories().getPathFactory();
- Location location = federatedNode.getActualLocationOfNode();
-
- // Copy the children ...
- Iterator<Location> childIterator = contribution.getChildren();
- while (childIterator.hasNext()) {
- Location child = translateChildFromSourceToRepository(pathFactory, location, childIterator.next());
- federatedNode.addChild(child);
- }
-
- // Copy the properties ...
- Property uuidProperty = null;
- Property dnaUuidProperty = null;
- Iterator<Property> propertyIterator = contribution.getProperties();
- while (propertyIterator.hasNext()) {
- Property property = propertyIterator.next();
- federatedNode.addProperty(property);
- if (property.isSingle()) {
- if (property.getName().equals(DnaLexicon.UUID) && hasUuidValue(context, property)) {
- dnaUuidProperty = property;
- } else if (property.getName().getLocalName().equals("uuid") && hasUuidValue(context, property)) {
- uuidProperty = property;
- }
- }
- }
- if (dnaUuidProperty != null) uuidProperty = dnaUuidProperty; // use "dna:uuid" if there is one
-
- if (federatedNode.at().getUuid() != null) {
- federatedNode.setActualLocationOfNode(federatedNode.at());
- } else {
- // Look for the UUID property on the properties, and update the federated node ...
- if (uuidProperty != null && !uuidProperty.isEmpty()) {
- UUID uuid = context.getValueFactories().getUuidFactory().create(uuidProperty.getFirstValue());
- uuidProperty = context.getPropertyFactory().create(DnaLexicon.UUID, uuid); // Use the "dna:uuid" name
- federatedNode.setActualLocationOfNode(federatedNode.at().with(uuidProperty));
- } else {
- // Make sure there's a UUID for an identification property ...
- if (location.getUuid() == null) {
- location = location.with(UUID.randomUUID());
- }
- // Set the UUID as a property (it wasn't set already) ...
- uuidProperty = location.getIdProperty(DnaLexicon.UUID);
- assert uuidProperty != null; // there should be one!
- federatedNode.addProperty(uuidProperty);
- federatedNode.setActualLocationOfNode(location);
- }
- }
-
- // Assign the merge plan ...
- MergePlan mergePlan = MergePlan.create(contributions);
- federatedNode.setMergePlan(mergePlan);
- Property mergePlanProperty = context.getPropertyFactory().create(DnaLexicon.MERGE_PLAN, (Object)mergePlan);
- federatedNode.addProperty(mergePlanProperty);
- }
-
- private boolean hasUuidValue( ExecutionContext context,
- Property property ) {
- try {
- context.getValueFactories().getUuidFactory().create(property.getFirstValue());
- return true;
- } catch (ValueFormatException e) {
- return false;
- }
- }
-
- /**
- * Utility method to translate the list of locations of the children so that the locations all are correctly relative to
- * parent location of the federated node.
- *
- * @param factory the path factory
- * @param parent the parent of the child
- * @param childInSource the child to be translated, with a source-specific location
- * @return the list of locations of each child
- */
- protected Location translateChildFromSourceToRepository( PathFactory factory,
- Location parent,
- Location childInSource ) {
- // Convert the locations of the children (relative to the source) to be relative to this node
- Path parentPath = parent.getPath();
- if (parentPath == null) return childInSource;
- Path newPath = factory.create(parentPath, childInSource.getPath().getLastSegment());
- return childInSource.with(newPath);
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/strategy/SimpleMergeStrategy.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/strategy/SimpleMergeStrategy.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/java/org/jboss/dna/connector/federation/merge/strategy/SimpleMergeStrategy.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,373 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.merge.strategy;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.NoSuchElementException;
-import java.util.UUID;
-import net.jcip.annotations.ThreadSafe;
-import org.jboss.dna.connector.federation.contribution.Contribution;
-import org.jboss.dna.connector.federation.merge.FederatedNode;
-import org.jboss.dna.connector.federation.merge.MergePlan;
-import org.jboss.dna.graph.DnaLexicon;
-import org.jboss.dna.graph.ExecutionContext;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.property.Name;
-import org.jboss.dna.graph.property.Path;
-import org.jboss.dna.graph.property.PathFactory;
-import org.jboss.dna.graph.property.Property;
-import org.jboss.dna.graph.property.PropertyFactory;
-import org.jboss.dna.graph.property.ValueComparators;
-
-/**
- * This merge strategy simply merges all of the contributions' properties and combines the children according to the order of the
- * contributions. No children are merged, and all properties are used (except if they are deemed to be duplicates of the property
- * in other contributions).
- *
- * @author Randall Hauch
- */
-@ThreadSafe
-public class SimpleMergeStrategy implements MergeStrategy {
-
- private boolean removeDuplicateProperties = true;
-
- /**
- * @return removeDuplicateProperties
- */
- public boolean isRemoveDuplicateProperties() {
- return removeDuplicateProperties;
- }
-
- /**
- * @param removeDuplicateProperties Sets removeDuplicateProperties to the specified value.
- */
- public void setRemoveDuplicateProperties( boolean removeDuplicateProperties ) {
- this.removeDuplicateProperties = removeDuplicateProperties;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see org.jboss.dna.connector.federation.merge.strategy.MergeStrategy#merge(org.jboss.dna.connector.federation.merge.FederatedNode,
- * java.util.List, org.jboss.dna.graph.ExecutionContext)
- */
- public void merge( FederatedNode federatedNode,
- List<Contribution> contributions,
- ExecutionContext context ) {
- assert federatedNode != null;
- assert context != null;
- assert contributions != null;
- assert contributions.size() > 0;
-
- final Location location = federatedNode.getActualLocationOfNode();
- final boolean isRoot = location.hasPath() && location.getPath().isRoot();
- final boolean removeDuplicateProperties = isRemoveDuplicateProperties();
- final PathFactory pathFactory = context.getValueFactories().getPathFactory();
- final Map<Name, Integer> childNames = new HashMap<Name, Integer>();
- final Map<Name, Property> properties = federatedNode.getPropertiesByName();
- properties.clear();
-
- // Record the different ID properties from the federated node and (later) from each contribution
- final Map<Name, Property> idProperties = new HashMap<Name, Property>();
- for (Property idProperty : location) {
- idProperties.put(idProperty.getName(), idProperty);
- }
-
- // Iterate over each of the contributions (in order) ...
- for (Contribution contribution : contributions) {
- if (contribution.isEmpty()) continue;
- // If the contribution is a placeholder contribution, then the children should be merged into other children ...
- if (contribution.isPlaceholder()) {
- // Iterate over the children and add only if there is not already one ...
- Iterator<Location> childIterator = contribution.getChildren();
- while (childIterator.hasNext()) {
- Location child = childIterator.next();
- Name childName = child.getPath().getLastSegment().getName();
- if (!childNames.containsKey(childName)) {
- childNames.put(childName, 1);
- Path pathToChild = pathFactory.create(location.getPath(), childName);
- federatedNode.addChild(child.with(pathToChild));
- }
- }
- } else {
- // Get the identification properties for each contribution ...
- Location contributionLocation = contribution.getLocationInSource();
- for (Property idProperty : contributionLocation) {
- // Record the property ...
- Property existing = properties.put(idProperty.getName(), idProperty);
- if (existing != null) {
- // There's already an existing property, so we need to merge them ...
- Property merged = merge(existing, idProperty, context.getPropertyFactory(), removeDuplicateProperties);
- properties.put(merged.getName(), merged);
- }
- }
-
- // Accumulate the children ...
- Iterator<Location> childIterator = contribution.getChildren();
- while (childIterator.hasNext()) {
- Location child = childIterator.next();
- Name childName = child.getPath().getLastSegment().getName();
- int index = Path.DEFAULT_INDEX;
- Integer previous = childNames.put(childName, 1);
- if (previous != null) {
- int previousValue = previous.intValue();
- // Correct the index in the child name map ...
- childNames.put(childName, ++previousValue);
- index = previousValue;
- }
- Path pathToChild = pathFactory.create(location.getPath(), childName, index);
- federatedNode.addChild(child.with(pathToChild)); // keep the same identifiers
- }
-
- // Add in the properties ...
- Iterator<Property> propertyIter = contribution.getProperties();
- while (propertyIter.hasNext()) {
- Property property = propertyIter.next();
- // Skip the "uuid" property on all root nodes ...
- if (isRoot && property.getName().getLocalName().equals("uuid")) continue;
-
- // Record the property ...
- Property existing = properties.put(property.getName(), property);
- if (existing != null && !existing.equals(property)) {
- // There's already an existing property, so we need to merge them ...
- Property merged = merge(existing, property, context.getPropertyFactory(), removeDuplicateProperties);
- properties.put(property.getName(), merged);
- }
- }
- }
- }
-
- if (idProperties.size() != 0) {
- // Update the location based upon the merged ID properties ...
- Location newLocation = location;
- for (Property idProperty : idProperties.values()) {
- newLocation = newLocation.with(idProperty);
- }
- federatedNode.setActualLocationOfNode(newLocation);
- } else {
- Location newLocation = location.with(UUID.randomUUID());
- federatedNode.setActualLocationOfNode(newLocation);
- }
-
- // Look for the UUID property on the location, and update the federated node ...
- Property uuidProperty = federatedNode.getActualLocationOfNode().getIdProperty(DnaLexicon.UUID);
- assert uuidProperty != null;
- properties.put(uuidProperty.getName(), uuidProperty);
-
- // Assign the merge plan ...
- MergePlan mergePlan = MergePlan.create(contributions);
- federatedNode.setMergePlan(mergePlan);
- Property mergePlanProperty = context.getPropertyFactory().create(DnaLexicon.MERGE_PLAN, (Object)mergePlan);
- properties.put(mergePlanProperty.getName(), mergePlanProperty);
- }
-
- /**
- * Merge the values from the two properties with the same name, returning a new property with the newly merged values.
- * <p>
- * The current algorithm merges the values by concatenating the values from <code>property1</code> and <code>property2</code>,
- * and if <code>removeDuplicates</code> is true any values in <code>property2</code> that are identical to values found in
- * <code>property1</code> are skipped.
- * </p>
- *
- * @param property1 the first property; may not be null, and must have the same {@link Property#getName() name} as
- * <code>property2</code>
- * @param property2 the second property; may not be null, and must have the same {@link Property#getName() name} as
- * <code>property1</code>
- * @param factory the property factory, used to create the result
- * @param removeDuplicates true if this method removes any values in the second property that duplicate values found in the
- * first property.
- * @return the property that contains the same {@link Property#getName() name} as the input properties, but with values that
- * are merged from both of the input properties
- */
- protected Property merge( Property property1,
- Property property2,
- PropertyFactory factory,
- boolean removeDuplicates ) {
- assert property1 != null;
- assert property2 != null;
- assert property1.getName().equals(property2.getName());
- if (property1.isEmpty()) return property2;
- if (property2.isEmpty()) return property1;
-
- // If they are both single-valued, then we can use a more efficient algorithm ...
- if (property1.isSingle() && property2.isSingle()) {
- Object value1 = property1.getValues().next();
- Object value2 = property2.getValues().next();
- if (removeDuplicates && ValueComparators.OBJECT_COMPARATOR.compare(value1, value2) == 0) return property1;
- return factory.create(property1.getName(), new Object[] {value1, value2});
- }
-
- // One or both properties are multi-valued, so use an algorithm that works with in all cases ...
- if (!removeDuplicates) {
- Iterator<?> valueIterator = new DualIterator(property1.getValues(), property2.getValues());
- return factory.create(property1.getName(), valueIterator);
- }
-
- // First copy all the values from property 1 ...
- Object[] values = new Object[property1.size() + property2.size()];
- int index = 0;
- for (Object property1Value : property1) {
- values[index++] = property1Value;
- }
- assert index == property1.size();
- // Now add any values of property2 that don't match a value in property1 ...
- for (Object property2Value : property2) {
- // Brute force, go through the values of property1 and compare ...
- boolean matched = false;
- for (Object property1Value : property1) {
- if (ValueComparators.OBJECT_COMPARATOR.compare(property1Value, property2Value) == 0) {
- // The values are the same ...
- matched = true;
- break;
- }
- }
- if (!matched) values[index++] = property2Value;
- }
- if (index != values.length) {
- Object[] newValues = new Object[index];
- System.arraycopy(values, 0, newValues, 0, index);
- values = newValues;
- }
- return factory.create(property1.getName(), values);
- }
-
- protected static class DualIterator implements Iterator<Object> {
-
- private final Iterator<?>[] iterators;
- private Iterator<?> current;
- private int index = 0;
-
- protected DualIterator( Iterator<?>... iterators ) {
- assert iterators != null;
- assert iterators.length > 0;
- this.iterators = iterators;
- this.current = this.iterators[0];
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.util.Iterator#hasNext()
- */
- public boolean hasNext() {
- if (this.current != null) return this.current.hasNext();
- return false;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.util.Iterator#next()
- */
- public Object next() {
- while (this.current != null) {
- if (this.current.hasNext()) return this.current.next();
- // Get the next iterator ...
- if (++this.index < iterators.length) {
- this.current = this.iterators[this.index];
- } else {
- this.current = null;
- }
- }
- throw new NoSuchElementException();
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.util.Iterator#remove()
- */
- public void remove() {
- throw new UnsupportedOperationException();
- }
- }
-
- protected static class Child {
- private final Location location;
- private final boolean placeholder;
-
- protected Child( Location location,
- boolean placeholder ) {
- assert location != null;
- this.location = location;
- this.placeholder = placeholder;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- return location.hasIdProperties() ? location.getIdProperties().hashCode() : location.getPath()
- .getLastSegment()
- .getName()
- .hashCode();
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals( Object obj ) {
- if (obj == this) return true;
- if (obj instanceof Child) {
- Child that = (Child)obj;
- if (this.placeholder && that.placeholder) {
- // If both are placeholders, then compare just the name ...
- assert this.location.hasPath();
- assert that.location.hasPath();
- Name thisName = this.location.getPath().getLastSegment().getName();
- Name thatName = that.location.getPath().getLastSegment().getName();
- return thisName.equals(thatName);
- }
- if (location.hasIdProperties() && that.location.hasIdProperties()) {
- List<Property> thisIds = location.getIdProperties();
- List<Property> thatIds = that.location.getIdProperties();
- if (thisIds.size() != thatIds.size()) return false;
- return thisIds.containsAll(thatIds);
- }
- // One or both do not have identification properties, so delegate to the locations...
- return this.location.equals(that.location);
- }
- return false;
- }
-
- /**
- * {@inheritDoc}
- *
- * @see java.lang.Object#toString()
- */
- @Override
- public String toString() {
- return location.toString();
- }
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/main/resources/org/jboss/dna/connector/federation/FederationI18n.properties
===================================================================
--- trunk/extensions/dna-connector-federation/src/main/resources/org/jboss/dna/connector/federation/FederationI18n.properties 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/main/resources/org/jboss/dna/connector/federation/FederationI18n.properties 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,42 +0,0 @@
-#
-# JBoss DNA (http://www.jboss.org/dna)
-# See the COPYRIGHT.txt file distributed with this work for information
-# regarding copyright ownership. Some portions may be licensed
-# to Red Hat, Inc. under one or more contributor license agreements.
-# See the AUTHORS.txt file in the distribution for a full listing of
-# individual contributors.
-#
-# JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
-# is licensed to you under the terms of the GNU Lesser General Public License as
-# published by the Free Software Foundation; either version 2.1 of
-# the License, or (at your option) any later version.
-#
-# JBoss DNA 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 software; if not, write to the Free
-# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-#
-requiredNodeDoesNotExistRelativeToNode = The required node "{0}" does not exist relative to "{1}" in "{2}" workspace in the "{3}" repository
-propertyIsRequired = The {0} property is required but has no value
-nodeDoesNotExistAtPath = No node exists at {0} (or below {1})
-nodeDoesNotExistAtLocation = No node exists at {0}
-errorRemovingNodeFromCache = Error while removing {0} from cache
-
-unableToCreateExecutionContext = Unable to create ExecutionContext for connection to the "{0}" federated repository when using security domain "{1}"
-federatedRepositoryCannotBeFound = The "{0}" federated repository cannot be found
-unableToAuthenticateConnectionToFederatedRepository = Unable to authenticate "{1}" for federated repository "{0}"
-repositoryHasBeenShutDown = The "{0}" federated repository has been shut down and may no longer be used.
-errorAddingProjectionRuleParseMethod = Error while adding a parsing method for a federation projection rule
-pathInProjection = path "{0}" in projection {1}
-pathsInProjection = paths "{0}" in projection {1}
-unableToPerformOperationUnlessLocationIsFromSingleProjection = The node "{0}" in workspace "{1}" must be within a single projection for this operation to succeed, but is in {2}
-unableToPerformOperationUnlessLocationsAreFromSingleProjection = The nodes "{0}" and "{1}" in workspace "{2}" must both be within a single projection for this operation to succeed, but come from projections "{3}" and "{4}"
-unableToPerformOperationSpanningWorkspaces = Unable to perform operation spanning workspaces ("{0}" and "{1}")
-
-workspaceDoesNotExist = The "{0}" federated repository does not have a workspace named "{1}"
-noDefaultWorkspace = The "{0}" federated repository does not have a default workspace
\ No newline at end of file
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatedRepositoryConnectionTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatedRepositoryConnectionTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatedRepositoryConnectionTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,95 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation;
-
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsNull.nullValue;
-import static org.junit.Assert.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.stub;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import java.util.concurrent.TimeUnit;
-import org.jboss.dna.graph.ExecutionContext;
-import org.jboss.dna.graph.connector.RepositorySourceException;
-import org.jboss.dna.graph.request.Request;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.MockitoAnnotations;
-import org.mockito.MockitoAnnotations.Mock;
-
-/**
- * @author Randall Hauch
- */
-public class FederatedRepositoryConnectionTest {
-
- private FederatedRepositoryConnection connection;
- private String sourceName;
- @Mock
- private FederatedRepositorySource source;
- @Mock
- private FederatedRepository repository;
-
- @Before
- public void beforeEach() {
- MockitoAnnotations.initMocks(this);
- sourceName = "Source X";
- stub(source.getName()).toReturn(sourceName);
- connection = new FederatedRepositoryConnection(repository, sourceName);
- }
-
- @Test
- public void shouldHaveRepository() {
- assertThat(connection.getRepository(), is(repository));
- }
-
- @Test
- public void shouldHaveNoXaResource() {
- assertThat(connection.getXAResource(), is(nullValue()));
- }
-
- @Test
- public void shouldCheckRepositoryAdminsStartedStateForPingResult() {
- stub(repository.isRunning()).toReturn(true);
- assertThat(connection.ping(1, TimeUnit.SECONDS), is(true));
- verify(repository, times(1)).isRunning();
- }
-
- @Test( expected = RepositorySourceException.class )
- public void shouldFailExecutionIfRepositoryAdminsIsNotStarted() throws Exception {
- stub(repository.isRunning()).toReturn(false);
- ExecutionContext context = mock(ExecutionContext.class);
- Request request = mock(Request.class);
- connection.execute(context, request);
- }
-
- @Test
- public void shouldReturnImmediatelyWhenExecutingNullRequest() throws Exception {
- stub(repository.isRunning()).toReturn(true);
- ExecutionContext context = mock(ExecutionContext.class);
- connection.execute(context, null);
- verify(repository, times(1)).isRunning();
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatedRepositorySourceIntegrationTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatedRepositorySourceIntegrationTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatedRepositorySourceIntegrationTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,396 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation;
-
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsNull.notNullValue;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.fail;
-import static org.junit.matchers.JUnitMatchers.hasItems;
-import static org.mockito.Matchers.argThat;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.stub;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import java.util.ArrayList;
-import java.util.List;
-import javax.naming.Context;
-import org.jboss.dna.graph.DnaLexicon;
-import org.jboss.dna.graph.ExecutionContext;
-import org.jboss.dna.graph.Graph;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.SecurityContext;
-import org.jboss.dna.graph.connector.RepositoryConnection;
-import org.jboss.dna.graph.connector.RepositoryConnectionFactory;
-import org.jboss.dna.graph.connector.RepositoryContext;
-import org.jboss.dna.graph.connector.RepositorySource;
-import org.jboss.dna.graph.connector.inmemory.InMemoryRepositorySource;
-import org.jboss.dna.graph.property.Path;
-import org.jboss.dna.graph.property.PathNotFoundException;
-import org.jboss.dna.graph.property.Property;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.mockito.ArgumentMatcher;
-import org.mockito.MockitoAnnotations;
-import org.mockito.MockitoAnnotations.Mock;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
-
-/**
- * This JUnit test constructs a federated repository of multiple repository sources, and is basically a lightweight integration
- * test that uses all of the actual components of a {@link FederatedRepository} but using mock or fake components for other
- * systems.
- *
- * @author Randall Hauch
- */
-@Ignore
-public class FederatedRepositorySourceIntegrationTest {
-
- private FederatedRepositorySource source;
- private String sourceName;
- private String username;
- private String credentials;
- private String executionContextFactoryJndiName;
- private String repositoryConnectionFactoryJndiName;
- private String configurationSourceName;
- private String securityDomain;
- private Graph config;
- private InMemoryRepositorySource configSource;
- private Graph cache;
- private InMemoryRepositorySource cacheSource;
- private Graph repository1;
- private InMemoryRepositorySource source1;
- private Graph repository2;
- private InMemoryRepositorySource source2;
- private ExecutionContext context;
- private RepositorySource[] sources;
- @Mock
- private Context jndiContext;
- @Mock
- private RepositoryConnectionFactory connectionFactory;
- @Mock
- private ExecutionContext executionContextFactory;
- @Mock
- private RepositoryContext repositoryContext;
-
- @Before
- public void beforeEach() throws Exception {
- MockitoAnnotations.initMocks(this);
-
- // Set up the environment (ExecutionContext, JNDI, security, etc.)
- context = new ExecutionContext();
- context.getNamespaceRegistry().register(DnaLexicon.Namespace.PREFIX, DnaLexicon.Namespace.URI);
- executionContextFactoryJndiName = "context factory jndi name";
- repositoryConnectionFactoryJndiName = "repository connection factory jndi name";
- configurationSourceName = "configuration source name";
- securityDomain = "security domain";
- stub(jndiContext.lookup(executionContextFactoryJndiName)).toReturn(executionContextFactory);
- stub(jndiContext.lookup(repositoryConnectionFactoryJndiName)).toReturn(connectionFactory);
- stub(executionContextFactory.with(anySecurityContext())).toReturn(context);
- stub(repositoryContext.getExecutionContext()).toReturn(executionContextFactory);
- stub(repositoryContext.getRepositoryConnectionFactory()).toReturn(connectionFactory);
-
- // Set up the federated repository source ...
- source = new FederatedRepositorySource("Test Repository");
- sourceName = "federated source";
- username = "valid username";
- credentials = "valid password";
- source.setName(sourceName);
- source.setUsername(username);
- source.setPassword(credentials);
- source.setConfigurationSourceName(configurationSourceName);
- source.setConfigurationWorkspaceName("configSpace");
- source.setConfigurationSourcePath("/repos/RepoX");
- source.setSecurityDomain(securityDomain);
- source.initialize(repositoryContext);
-
- // Set up the configuration repository with its content ...
- configSource = new InMemoryRepositorySource();
- configSource.setName(configurationSourceName);
- config = Graph.create(configSource, context);
-
- // Set up the cache repository ...
- cacheSource = new InMemoryRepositorySource();
- cacheSource.setName("cache source");
- cache = Graph.create(cacheSource, context);
-
- // Set up the first source repository ...
- source1 = new InMemoryRepositorySource();
- source1.setName("source 1");
- repository1 = Graph.create(source1, context);
-
- // Set up the second source repository ...
- source2 = new InMemoryRepositorySource();
- source2.setName("source 2");
- repository2 = Graph.create(source2, context);
-
- // Set up the connection factory to return connections to the sources ...
- sources = new RepositorySource[] {spy(configSource), spy(cacheSource), spy(source1), spy(source2)};
- for (final RepositorySource source : sources) {
- stub(connectionFactory.createConnection(source.getName())).toAnswer(new Answer<RepositoryConnection>() {
- public RepositoryConnection answer( InvocationOnMock invocation ) throws Throwable {
- return source.getConnection();
- }
- });
- }
- }
-
- protected static SecurityContext anySecurityContext() {
- return argThat(new ArgumentMatcher<SecurityContext>() {
- @Override
- public boolean matches( Object callback ) {
- return callback != null;
- }
- });
- }
-
- protected void assertNonExistant( Graph source,
- String path ) throws Exception {
- try {
- source.getNodeAt(path);
- fail("failed to find node in " + source + " in workspace " + source.getCurrentWorkspaceName() + " at " + path);
- } catch (PathNotFoundException e) {
- // expected
- }
- }
-
- protected void assertChildren( Graph source,
- String path,
- String... children ) throws Exception {
- List<Location> childLocations = source.getChildren().of(path);
- if (children == null || children.length == 0) {
- assertThat(childLocations.isEmpty(), is(true));
- } else {
- // We can't use Location.equals(...), since we're only given the expected paths and the actual
- // locations may have more than just paths. So, create a list of actual locations that just have paths ...
- List<Location> actualPathOnlyChildren = new ArrayList<Location>(childLocations.size());
- for (Location actualChild : childLocations) {
- actualPathOnlyChildren.add(Location.create(actualChild.getPath()));
- }
- // Now create the array of expected locations (that each contain only a path) ...
- Location[] expectedChildren = new Location[children.length];
- Path parentPath = context.getValueFactories().getPathFactory().create(path);
- int i = 0;
- for (String child : children) {
- Path.Segment segment = context.getValueFactories().getPathFactory().createSegment(child);
- Path childPath = context.getValueFactories().getPathFactory().create(parentPath, segment);
- expectedChildren[i++] = Location.create(childPath);
- }
- assertThat(actualPathOnlyChildren, hasItems(expectedChildren));
- }
- }
-
- protected void assertProperty( Graph source,
- String path,
- String propertyName,
- Object... values ) throws Exception {
- Property property = source.getProperty(propertyName).on(path);
- assertThat(property.getValuesAsArray(), is(values));
- }
-
- @Test
- public void shouldReturnCorrectConnectionForEachRepositorySource() throws Exception {
- for (final RepositorySource source : sources) {
- // Get a connection from the factory ...
- RepositoryConnection connection = connectionFactory.createConnection(source.getName());
- assertThat(connection, is(notNullValue()));
- // And check that the connection is for the correct source ...
- assertThat(connection.getSourceName(), is(source.getName()));
- // And close the connection (no need to do this in a finally, since it's a SimpleRepository)
- connection.close();
- }
- // Now, assert that each source created one connection ...
- for (final RepositorySource source : sources) {
- verify(source, times(1)).getConnection();
- }
- }
-
- @Test
- public void shouldProvideReadAccessToContentFederatedFromOneSourceThatMatchesTheContentFromTheSource() throws Exception {
- // Set up the configuration to use a single source.
- config.createWorkspace().named("configSpace");
- Graph.Batch batch = config.batch();
- batch.create("/repos").and();
- batch.create("/repos/RepoX").with(FederatedLexicon.DEFAULT_WORKSPACE_NAME, "fedSpace").and();
- batch.create("/repos/RepoX/dna:workspaces").and();
- batch.create("/repos/RepoX/dna:workspaces/fedSpace").and();
- batch.create("/repos/RepoX/dna:workspaces/fedSpace/dna:cache")
- .with(FederatedLexicon.PROJECTION_RULES, "/ => /")
- .with(FederatedLexicon.SOURCE_NAME, "cache source")
- .with(FederatedLexicon.WORKSPACE_NAME, "cacheSpace")
- .with(FederatedLexicon.TIME_TO_EXPIRE, 100000)
- .and();
- batch.create("/repos/RepoX/dna:workspaces/fedSpace/dna:projections").and();
- batch.create("/repos/RepoX/dna:workspaces/fedSpace/dna:projections/projection1")
- .with(FederatedLexicon.PROJECTION_RULES, "/ => /s1")
- .with(FederatedLexicon.SOURCE_NAME, "source 1")
- .with(FederatedLexicon.WORKSPACE_NAME, "s1 workspace")
- .and();
- batch.execute();
-
- // Set up the cache ...
- cache.createWorkspace().named("cacheSpace");
-
- // Set up the content in the first source ...
- repository1.createWorkspace().named("s1 workspace");
- batch = repository1.batch();
- batch.create("/s1").and();
- batch.create("/s1/a").and();
- batch.create("/s1/a/a").and();
- batch.create("/s1/a/a/a").with("desc", "description for /a/a/a").and();
- batch.create("/s1/a/a/b").with("desc", "description for /a/a/b").and();
- batch.create("/s1/a/a/c").with("desc", "description for /a/a/c").and();
- batch.create("/s1/a/b").and();
- batch.create("/s1/a/b/a").with("desc", "description for /a/b/a").and();
- batch.create("/s1/a/b/b").with("desc", "description for /a/b/b").and();
- batch.create("/s1/a/b/c").with("desc", "description for /a/b/c").and();
- batch.create("/s1/b").and();
- batch.create("/s1/b/a").with("desc", "description for /b/a").and();
- batch.create("/s1/b/b").with("desc", "description for /b/b").and();
- batch.create("/s1/b/c").with("desc", "description for /b/c").and();
- batch.execute();
-
- // Create a connection to the federated repository. Doing so will read the config information.
- Graph source = Graph.create(this.source, context);
- source.useWorkspace("fedSpace");
- assertChildren(source, "/", "a", "b");
- assertChildren(source, "/a/", "a", "b");
- assertChildren(source, "/a/a", "a", "b", "c");
- assertChildren(source, "/a/a/a");
- assertChildren(source, "/a/a/b");
- assertChildren(source, "/a/a/c");
- assertChildren(source, "/a/b", "a", "b", "c");
- assertChildren(source, "/a/b/a");
- assertChildren(source, "/a/b/b");
- assertChildren(source, "/a/b/c");
- assertChildren(source, "/b", "a", "b", "c");
- assertChildren(source, "/b/a");
- assertChildren(source, "/b/b");
- assertChildren(source, "/b/c");
- }
-
- @Test
- public void shouldProvideReadAccessToContentFederatedFromMultipleSources() throws Exception {
- // Set up the configuration to use multiple sources.
- config.createWorkspace().named("configSpace");
- Graph.Batch batch = config.batch();
- batch.create("/repos").and();
- batch.create("/repos/RepoX").and();
- batch.create("/repos/RepoX/dna:workspaces").and();
- batch.create("/repos/RepoX/dna:workspaces/fedSpace").and();
- batch.create("/repos/RepoX/dna:workspaces/fedSpace/dna:cache")
- .with(FederatedLexicon.PROJECTION_RULES, "/ => /")
- .with(FederatedLexicon.SOURCE_NAME, "cache source")
- .with(FederatedLexicon.WORKSPACE_NAME, "cacheSpace")
- .with(FederatedLexicon.TIME_TO_EXPIRE, 100000)
- .and();
- batch.create("/repos/RepoX/dna:workspaces/fedSpace/dna:projections").and();
- batch.create("/repos/RepoX/dna:workspaces/fedSpace/dna:projections/projection1")
- .with(FederatedLexicon.PROJECTION_RULES, "/ => /s1")
- .with(FederatedLexicon.SOURCE_NAME, "source 1")
- .with(FederatedLexicon.WORKSPACE_NAME, "s1Space")
- .and();
- batch.create("/repos/RepoX/dna:workspaces/fedSpace/dna:projections/projection2")
- .with(FederatedLexicon.PROJECTION_RULES, "/ => /s2")
- .with(FederatedLexicon.SOURCE_NAME, "source 2")
- .with(FederatedLexicon.WORKSPACE_NAME, "s2 workspace")
- .and();
- batch.execute();
-
- // Set up the cache ...
- cache.createWorkspace().named("cacheSpace");
-
- // Set up the content in the first source ...
- repository1.createWorkspace().named("s1Space");
- batch = repository1.batch();
- batch.create("/s1").and();
- batch.create("/s1/a").and();
- batch.create("/s1/a/a").and();
- batch.create("/s1/a/a/a").with("desc", "description for /a/a/a").and();
- batch.create("/s1/a/a/b").with("desc", "description for /a/a/b").and();
- batch.create("/s1/a/a/c").with("desc", "description for /a/a/c").and();
- batch.create("/s1/a/b").and();
- batch.create("/s1/a/b/a").with("desc", "description for /a/b/a").and();
- batch.create("/s1/a/b/b").with("desc", "description for /a/b/b").and();
- batch.create("/s1/a/b/c").with("desc", "description for /a/b/c").and();
- batch.create("/s1/b").and();
- batch.create("/s1/b/a").with("desc", "description for /b/a").and();
- batch.create("/s1/b/b").with("desc", "description for /b/b").and();
- batch.create("/s1/b/c").with("desc", "description for /b/c").and();
- batch.execute();
-
- // Set up the content in the second source ...
- repository2.createWorkspace().named("s2 workspace");
- batch = repository2.batch();
- batch.create("/s2").and();
- batch.create("/s2/x").and();
- batch.create("/s2/x/x").and();
- batch.create("/s2/x/x/x").with("desc", "description for /x/x/x").and();
- batch.create("/s2/x/x/y").with("desc", "description for /x/x/y").and();
- batch.create("/s2/x/x/z").with("desc", "description for /x/x/z").and();
- batch.create("/s2/x").and();
- batch.create("/s2/x/y").and();
- batch.create("/s2/x/y/x").with("desc", "description for /x/y/x").and();
- batch.create("/s2/x/y/y").with("desc", "description for /x/y/y").and();
- batch.create("/s2/x/y/z").with("desc", "description for /x/y/z").and();
- batch.create("/s2/y").and();
- batch.create("/s2/y/x").with("desc", "description for /y/x").and();
- batch.create("/s2/y/y").with("desc", "description for /y/y").and();
- batch.create("/s2/y/z").with("desc", "description for /y/z").and();
- batch.execute();
-
- // Create a connection to the federated repository. Doing so will read the config information.
- Graph source = Graph.create(this.source, context);
- source.useWorkspace("fedSpace");
- assertChildren(source, "/", "a", "b", "x", "y");
- assertChildren(source, "/a/", "a", "b");
- assertChildren(source, "/a/a", "a", "b", "c");
- assertChildren(source, "/a/a/a");
- assertChildren(source, "/a/a/b");
- assertChildren(source, "/a/a/c");
- assertChildren(source, "/a/b", "a", "b", "c");
- assertChildren(source, "/a/b/a");
- assertChildren(source, "/a/b/b");
- assertChildren(source, "/a/b/c");
- assertChildren(source, "/b", "a", "b", "c");
- assertChildren(source, "/b/a");
- assertChildren(source, "/b/b");
- assertChildren(source, "/b/c");
- assertChildren(source, "/x/", "x", "y");
- assertChildren(source, "/x/x", "x", "y", "z");
- assertChildren(source, "/x/x/x");
- assertChildren(source, "/x/x/y");
- assertChildren(source, "/x/x/z");
- assertChildren(source, "/x/y", "x", "y", "z");
- assertChildren(source, "/x/y/x");
- assertChildren(source, "/x/y/y");
- assertChildren(source, "/x/y/z");
- assertChildren(source, "/y", "x", "y", "z");
- assertChildren(source, "/y/x");
- assertChildren(source, "/y/y");
- assertChildren(source, "/y/z");
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatedRepositorySourceTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatedRepositorySourceTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatedRepositorySourceTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,322 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation;
-
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsNull.notNullValue;
-import static org.hamcrest.core.IsNull.nullValue;
-import static org.junit.Assert.assertThat;
-import static org.mockito.Matchers.argThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.stub;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.Map;
-import javax.naming.Context;
-import javax.naming.Name;
-import javax.naming.RefAddr;
-import javax.naming.Reference;
-import javax.naming.spi.ObjectFactory;
-import javax.security.auth.login.LoginException;
-import org.jboss.dna.graph.DnaLexicon;
-import org.jboss.dna.graph.ExecutionContext;
-import org.jboss.dna.graph.Graph;
-import org.jboss.dna.graph.JcrLexicon;
-import org.jboss.dna.graph.SecurityContext;
-import org.jboss.dna.graph.connector.RepositoryConnection;
-import org.jboss.dna.graph.connector.RepositoryConnectionFactory;
-import org.jboss.dna.graph.connector.RepositoryContext;
-import org.jboss.dna.graph.connector.RepositorySourceException;
-import org.jboss.dna.graph.connector.inmemory.InMemoryRepositorySource;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.mockito.ArgumentMatcher;
-import org.mockito.MockitoAnnotations;
-import org.mockito.MockitoAnnotations.Mock;
-
-/**
- * @author Randall Hauch
- */
-@Ignore
-public class FederatedRepositorySourceTest {
-
- private FederatedRepositorySource source;
- private String sourceName;
- private String repositoryName;
- private String username;
- private String credentials;
- private String configurationSourceName;
- private String securityDomain;
- private InMemoryRepositorySource configRepositorySource;
- private RepositoryConnection configRepositoryConnection;
- private ExecutionContext context;
- @Mock
- private RepositoryConnection connection;
- @Mock
- private RepositoryConnectionFactory connectionFactory;
- @Mock
- private ExecutionContext executionContextFactory;
- @Mock
- private RepositoryContext repositoryContext;
-
- /**
- * @throws java.lang.Exception
- */
- @Before
- public void beforeEach() throws Exception {
- MockitoAnnotations.initMocks(this);
- context = new ExecutionContext();
- context.getNamespaceRegistry().register(DnaLexicon.Namespace.PREFIX, DnaLexicon.Namespace.URI);
- context.getNamespaceRegistry().register(JcrLexicon.Namespace.PREFIX, JcrLexicon.Namespace.URI);
- configurationSourceName = "configuration";
- repositoryName = "Test Repository";
- securityDomain = "security domain";
- source = new FederatedRepositorySource(repositoryName);
- sourceName = "federated source";
- username = "valid username";
- credentials = "valid password";
- source.setName(sourceName);
- source.setUsername(username);
- source.setPassword(credentials);
- source.setConfigurationSourceName(configurationSourceName);
- source.setConfigurationWorkspaceName("configSpace");
- source.setConfigurationSourcePath("/a/b/Test Repository");
- source.setSecurityDomain(securityDomain);
- source.initialize(repositoryContext);
- configRepositorySource = new InMemoryRepositorySource();
- configRepositorySource.setName("Configuration Repository");
-
- Graph configRepository = Graph.create(configRepositorySource, context);
- configRepository.createWorkspace().named("configSpace");
- Graph.Batch batch = configRepository.batch();
- batch.create("/a").and();
- batch.create("/a/b").and();
- batch.create("/a/b/Test Repository").with(FederatedLexicon.DEFAULT_WORKSPACE_NAME, "fedSpace").and();
- batch.create("/a/b/Test Repository/dna:workspaces").and();
- batch.create("/a/b/Test Repository/dna:workspaces/fedSpace").and();
- batch.create("/a/b/Test Repository/dna:workspaces/fedSpace/dna:cache")
- .with(FederatedLexicon.PROJECTION_RULES, "/ => /")
- .with(FederatedLexicon.SOURCE_NAME, "cache source")
- .with(FederatedLexicon.WORKSPACE_NAME, "cacheSpace")
- .with(FederatedLexicon.TIME_TO_EXPIRE, 100000)
- .and();
- batch.create("/a/b/Test Repository/dna:workspaces/fedSpace/dna:projections").and();
- batch.create("/a/b/Test Repository/dna:workspaces/fedSpace/dna:projections/projection1")
- .with(FederatedLexicon.PROJECTION_RULES, "/ => /s1")
- .with(FederatedLexicon.SOURCE_NAME, "source 1")
- .with(FederatedLexicon.WORKSPACE_NAME, "s1 workspace")
- .and();
- batch.create("/a/b/Test Repository/dna:workspaces/fedSpace/dna:projections/projection2")
- .with(FederatedLexicon.PROJECTION_RULES, "/ => /s2")
- .with(FederatedLexicon.SOURCE_NAME, "source 2")
- .with(FederatedLexicon.WORKSPACE_NAME, "s2 worskspace")
- .and();
- batch.execute();
-
- configRepositoryConnection = configRepositorySource.getConnection();
- stub(repositoryContext.getExecutionContext()).toReturn(executionContextFactory);
- stub(repositoryContext.getRepositoryConnectionFactory()).toReturn(connectionFactory);
- stub(connectionFactory.createConnection(configurationSourceName)).toReturn(configRepositoryConnection);
- stub(executionContextFactory.with(anySecurityContext())).toReturn(context);
- }
-
- protected static SecurityContext anySecurityContext() {
- return argThat(new ArgumentMatcher<SecurityContext>() {
- @Override
- public boolean matches( Object callback ) {
- return callback != null;
- }
- });
- }
-
- @Test
- public void shouldReturnNonNullCapabilities() {
- assertThat(source.getCapabilities(), is(notNullValue()));
- }
-
- @Test
- public void shouldSupportSameNameSiblings() {
- assertThat(source.getCapabilities().supportsSameNameSiblings(), is(true));
- }
-
- @Test
- public void shouldSupportUpdates() {
- assertThat(source.getCapabilities().supportsUpdates(), is(true));
- }
-
- @Test
- public void shouldCreateConnectionsByAuthenticateUsingFederationRepository() throws Exception {
- connection = source.getConnection();
- assertThat(connection, is(notNullValue()));
- }
-
- @Test( expected = RepositorySourceException.class )
- public void shouldNotCreateConnectionWhenAuthenticationFails() throws Exception {
- // Stub the execution context factory to throw a LoginException to simulate failed authentication
- stub(executionContextFactory.with(anySecurityContext())).toThrow(new LoginException());
- source.getConnection();
- }
-
- @Test( expected = NullPointerException.class )
- public void shouldPropogateAllExceptionsExceptLoginExceptionThrownFromExecutionContextFactory() throws Exception {
- // Stub the execution context factory to throw a LoginException to simulate failed authentication
- stub(executionContextFactory.with(anySecurityContext())).toThrow(new NullPointerException());
- source.getConnection();
- }
-
- @Test
- public void shouldHaveNameSuppliedInConstructor() {
- source = new FederatedRepositorySource(repositoryName);
- assertThat(source.getRepositoryName(), is(repositoryName));
- }
-
- @Test
- public void shouldHaveNullSourceNameUponConstruction() {
- source = new FederatedRepositorySource(repositoryName);
- assertThat(source.getName(), is(nullValue()));
- }
-
- @Test
- public void shouldAllowSettingName() {
- source.setName("Something");
- assertThat(source.getName(), is("Something"));
- source.setName("another name");
- assertThat(source.getName(), is("another name"));
- }
-
- @Test
- public void shouldAllowSettingNameToNull() {
- source.setName("some name");
- source.setName(null);
- assertThat(source.getName(), is(nullValue()));
- }
-
- @Test
- public void shouldAllowSettingUsername() {
- source.setUsername("Something");
- assertThat(source.getUsername(), is("Something"));
- source.setUsername("another name");
- assertThat(source.getUsername(), is("another name"));
- }
-
- @Test
- public void shouldAllowSettingUsernameToNull() {
- source.setUsername("some name");
- source.setUsername(null);
- assertThat(source.getUsername(), is(nullValue()));
- }
-
- @Test
- public void shouldAllowSettingCredentials() {
- source.setPassword("Something");
- assertThat(source.getPassword(), is("Something"));
- source.setPassword("another name");
- assertThat(source.getPassword(), is("another name"));
- }
-
- @Test
- public void shouldAllowSettingCredentialsToNull() {
- source.setPassword("some name");
- source.setPassword(null);
- assertThat(source.getPassword(), is(nullValue()));
- }
-
- @Test
- public void shouldHaveDefaultRetryLimit() {
- assertThat(source.getRetryLimit(), is(FederatedRepositorySource.DEFAULT_RETRY_LIMIT));
- }
-
- @Test
- public void shouldSetRetryLimitToZeroWhenSetWithNonPositiveValue() {
- source.setRetryLimit(0);
- assertThat(source.getRetryLimit(), is(0));
- source.setRetryLimit(-1);
- assertThat(source.getRetryLimit(), is(0));
- source.setRetryLimit(-100);
- assertThat(source.getRetryLimit(), is(0));
- }
-
- @Test
- public void shouldAllowRetryLimitToBeSet() {
- for (int i = 0; i != 100; ++i) {
- source.setRetryLimit(i);
- assertThat(source.getRetryLimit(), is(i));
- }
- }
-
- @Test
- public void shouldCreateJndiReferenceAndRecreatedObjectFromReference() throws Exception {
- int retryLimit = 100;
- source.setPassword(credentials);
- source.setUsername(username);
- source.setRetryLimit(retryLimit);
- source.setName("Some source");
- source.setConfigurationSourceName("config source");
- source.setConfigurationSourcePath("/a/b/c");
-
- Reference ref = source.getReference();
- assertThat(ref.getClassName(), is(FederatedRepositorySource.class.getName()));
- assertThat(ref.getFactoryClassName(), is(FederatedRepositorySource.class.getName()));
-
- Map<String, Object> refAttributes = new HashMap<String, Object>();
- Enumeration<RefAddr> enumeration = ref.getAll();
- while (enumeration.hasMoreElements()) {
- RefAddr addr = enumeration.nextElement();
- refAttributes.put(addr.getType(), addr.getContent());
- }
-
- assertThat((String)refAttributes.remove(FederatedRepositorySource.USERNAME), is(username));
- assertThat((String)refAttributes.remove(FederatedRepositorySource.PASSWORD), is(credentials));
- assertThat((String)refAttributes.remove(FederatedRepositorySource.SOURCE_NAME), is(source.getName()));
- assertThat((String)refAttributes.remove(FederatedRepositorySource.REPOSITORY_NAME), is(repositoryName));
- assertThat((String)refAttributes.remove(FederatedRepositorySource.RETRY_LIMIT), is(Integer.toString(retryLimit)));
- assertThat((String)refAttributes.remove(FederatedRepositorySource.CONFIGURATION_SOURCE_NAME),
- is(source.getConfigurationSourceName()));
- assertThat((String)refAttributes.remove(FederatedRepositorySource.CONFIGURATION_SOURCE_PATH), is("/a/b/c/"));
- assertThat((String)refAttributes.remove(FederatedRepositorySource.SECURITY_DOMAIN), is(securityDomain));
- assertThat(refAttributes.isEmpty(), is(true));
-
- // Recreate the object, use a newly constructed source ...
- ObjectFactory factory = new FederatedRepositorySource();
- Name name = mock(Name.class);
- Context context = mock(Context.class);
- Hashtable<?, ?> env = new Hashtable<Object, Object>();
- FederatedRepositorySource recoveredSource = (FederatedRepositorySource)factory.getObjectInstance(ref, name, context, env);
- assertThat(recoveredSource, is(notNullValue()));
-
- assertThat(recoveredSource.getName(), is(source.getName()));
- assertThat(recoveredSource.getUsername(), is(source.getUsername()));
- assertThat(recoveredSource.getPassword(), is(source.getPassword()));
- assertThat(recoveredSource.getRepositoryName(), is(source.getRepositoryName()));
- assertThat(recoveredSource.getRetryLimit(), is(source.getRetryLimit()));
- assertThat(recoveredSource.getConfigurationSourceName(), is(source.getConfigurationSourceName()));
- assertThat(recoveredSource.getConfigurationSourcePath(), is(source.getConfigurationSourcePath()));
- assertThat(recoveredSource.getSecurityDomain(), is(source.getSecurityDomain()));
-
- assertThat(recoveredSource.equals(source), is(true));
- assertThat(source.equals(recoveredSource), is(true));
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatedRepositoryTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatedRepositoryTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatedRepositoryTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,75 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation;
-
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsNull.notNullValue;
-import static org.hamcrest.core.IsSame.sameInstance;
-import static org.junit.Assert.assertThat;
-import static org.mockito.Mockito.stub;
-import java.util.ArrayList;
-import java.util.Collection;
-import org.jboss.dna.graph.ExecutionContext;
-import org.jboss.dna.graph.connector.RepositoryConnectionFactory;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.MockitoAnnotations;
-import org.mockito.MockitoAnnotations.Mock;
-
-/**
- * @author Randall Hauch
- */
-public class FederatedRepositoryTest {
-
- private String name;
- private ExecutionContext context;
- private FederatedRepository repository;
- @Mock
- private FederatedWorkspace config;
- @Mock
- private RepositoryConnectionFactory connectionFactory;
-
- @Before
- public void beforeEach() {
- MockitoAnnotations.initMocks(this);
- name = "Repository";
- context = new ExecutionContext();
- stub(config.getName()).toReturn("workspace");
- Collection<FederatedWorkspace> configs = new ArrayList<FederatedWorkspace>();
- configs.add(config);
- repository = new FederatedRepository(name, context, connectionFactory, configs);
- }
-
- @Test
- public void shouldHaveNameUponCreation() {
- assertThat(repository.getName(), is(name));
- }
-
- @Test
- public void shouldHaveConfigurationAfterInitialization() {
- assertThat(repository.getWorkspaceConfigurations(), is(notNullValue()));
- assertThat(repository.getWorkspaceConfigurations().get("workspace"), is(sameInstance(config)));
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatingRequestProcessorTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatingRequestProcessorTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederatingRequestProcessorTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,854 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation;
-
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsNull.notNullValue;
-import static org.hamcrest.core.IsSame.sameInstance;
-import static org.jboss.dna.common.collection.IsIteratorContaining.hasItems;
-import static org.junit.Assert.assertThat;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.stub;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyNoMoreInteractions;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-import org.jboss.dna.connector.federation.contribution.Contribution;
-import org.jboss.dna.graph.ExecutionContext;
-import org.jboss.dna.graph.Graph;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.cache.BasicCachePolicy;
-import org.jboss.dna.graph.cache.CachePolicy;
-import org.jboss.dna.graph.connector.RepositoryConnection;
-import org.jboss.dna.graph.connector.RepositoryConnectionFactory;
-import org.jboss.dna.graph.connector.inmemory.InMemoryRepositorySource;
-import org.jboss.dna.graph.property.DateTime;
-import org.jboss.dna.graph.property.Name;
-import org.jboss.dna.graph.property.Path;
-import org.jboss.dna.graph.property.PathFactory;
-import org.jboss.dna.graph.property.Property;
-import org.jboss.dna.graph.request.CopyBranchRequest;
-import org.jboss.dna.graph.request.CreateNodeRequest;
-import org.jboss.dna.graph.request.DeleteBranchRequest;
-import org.jboss.dna.graph.request.MoveBranchRequest;
-import org.jboss.dna.graph.request.ReadAllChildrenRequest;
-import org.jboss.dna.graph.request.ReadAllPropertiesRequest;
-import org.jboss.dna.graph.request.ReadPropertyRequest;
-import org.jboss.dna.graph.request.UnsupportedRequestException;
-import org.jboss.dna.graph.request.UpdatePropertiesRequest;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.MockitoAnnotations;
-import org.mockito.MockitoAnnotations.Mock;
-
-/**
- * @author Randall Hauch
- */
-public class FederatingRequestProcessorTest {
-
- private FederatingRequestProcessor executor;
- private ExecutionContext context;
- private PathFactory pathFactory;
- private String sourceName;
- private Projection cacheProjection;
- private CachePolicy cachePolicy;
- private List<Projection> sourceProjections;
- private Projection.Rule[] cacheProjectionRules = new Projection.Rule[] {};
- private Map<String, FederatedWorkspace> workspaces;
- private FederatedWorkspace defaultWorkspace;
- private InMemoryRepositorySource cacheSource;
- private InMemoryRepositorySource source1;
- private InMemoryRepositorySource source2;
- private InMemoryRepositorySource source3;
- @Mock
- private RepositoryConnectionFactory connectionFactory;
-
- @Before
- public void beforeEach() throws Exception {
- MockitoAnnotations.initMocks(this);
- context = new ExecutionContext();
- pathFactory = context.getValueFactories().getPathFactory();
- sourceName = "Federated Source";
- cachePolicy = new BasicCachePolicy(219L, TimeUnit.SECONDS);
- cacheSource = new InMemoryRepositorySource();
- cacheSource.setName("Cache");
- cacheSource.setDefaultWorkspaceName("cacheSpace");
- ProjectionParser ruleParser = ProjectionParser.getInstance();
- cacheProjectionRules = ruleParser.rulesFromStrings(context, "/ => /cache/repo/A");
- cacheProjection = new Projection(cacheSource.getName(), "cacheSpace", cacheProjectionRules);
- source1 = new InMemoryRepositorySource();
- source2 = new InMemoryRepositorySource();
- source3 = new InMemoryRepositorySource();
- source1.setName("Source 1");
- source2.setName("Source 2");
- source3.setName("Source 3");
- // Set up the cache policies ...
- source1.setDefaultCachePolicy(new BasicCachePolicy(100, TimeUnit.SECONDS));
- source2.setDefaultCachePolicy(new BasicCachePolicy(200, TimeUnit.SECONDS));
- source3.setDefaultCachePolicy(new BasicCachePolicy(300, TimeUnit.SECONDS));
- sourceProjections = new ArrayList<Projection>();
- // Source 1 projects from '/source/one/a' into repository '/a'
- // and from '/source/one/b' into repository '/b'
- sourceProjections.add(new Projection(source1.getName(), "workspace1", ruleParser.rulesFromStrings(context,
- "/a => /source/one/a",
- "/b => /source/one/b")));
- // Source 2 projects from '/source/two/a' into repository '/a'
- sourceProjections.add(new Projection(source2.getName(), "workspace2", ruleParser.rulesFromStrings(context,
- "/a => /source/two/a")));
- // Source 3 projects everything into repository at root
- sourceProjections.add(new Projection(source3.getName(), "workspace3", ruleParser.rulesFromStrings(context, "/ => /")));
- workspaces = new HashMap<String, FederatedWorkspace>();
- defaultWorkspace = new FederatedWorkspace("fedSpace", cacheProjection, sourceProjections, cachePolicy);
- workspaces.put(defaultWorkspace.getName(), defaultWorkspace);
- executor = new FederatingRequestProcessor(context, sourceName, workspaces, defaultWorkspace, connectionFactory);
- // stub(connectionFactory.createConnection(source1.getName())).toReturn(source1.getConnection());
- doReturn(source1.getConnection()).when(connectionFactory).createConnection(source1.getName());
- doReturn(source2.getConnection()).when(connectionFactory).createConnection(source2.getName());
- doReturn(source3.getConnection()).when(connectionFactory).createConnection(source3.getName());
- doReturn(cacheSource.getConnection()).when(connectionFactory).createConnection(cacheSource.getName());
- }
-
- protected Name name( String name ) {
- return context.getValueFactories().getNameFactory().create(name);
- }
-
- protected Path path( String path ) {
- return pathFactory.create(path);
- }
-
- protected Path.Segment segment( String path ) {
- return pathFactory.createSegment(path);
- }
-
- protected Property property( String name,
- Object... values ) {
- return context.getPropertyFactory().create(name(name), values);
- }
-
- protected Map<Name, Property> addProperty( Map<Name, Property> properties,
- String name,
- Object... values ) {
- Property property = property(name, values);
- properties.put(property.getName(), property);
- return properties;
- }
-
- protected void assertNodeHasChildren( String path,
- String... expectedChildSegments ) {
- Location parent = Location.create(path(path));
- ReadAllChildrenRequest request = new ReadAllChildrenRequest(parent, "fedSpace");
- executor.process(request);
- assertThat(request.hasError(), is(false));
- assertThat(request.getActualLocationOfNode().getPath(), is(path(path)));
- List<Location> actualChildLocations = request.getChildren();
- Path.Segment[] actualChildren = new Path.Segment[actualChildLocations.size()];
- for (int i = 0; i != actualChildren.length; ++i) {
- Path actualChildPath = actualChildLocations.get(i).getPath();
- actualChildren[i] = actualChildPath.getLastSegment();
- assertThat(actualChildPath.getParent(), is(path(path)));
- }
- Path.Segment[] expectedChildren = new Path.Segment[expectedChildSegments.length];
- for (int i = 0; i != expectedChildren.length; ++i) {
- expectedChildren[i] = segment(expectedChildSegments[i]);
- }
- assertThat(actualChildren, is(expectedChildren));
- }
-
- protected void assertNodeHasProperty( String path,
- String propertyName,
- Object... expectedValues ) {
- Location parent = Location.create(path(path));
- ReadPropertyRequest request = new ReadPropertyRequest(parent, "fedSpace", name(propertyName));
- executor.process(request);
- assertThat(request.hasError(), is(false));
- assertThat(request.getActualLocationOfNode().getPath(), is(path(path)));
- Object[] actualValues = request.getProperty().getValuesAsArray();
- String[] actualValuesAsStrings = new String[actualValues.length];
- for (int i = 0; i != actualValues.length; ++i) {
- actualValuesAsStrings[i] = context.getValueFactories().getStringFactory().create(actualValues[i]);
- }
- String[] expectedValuesAsStrings = new String[expectedValues.length];
- for (int i = 0; i != expectedValues.length; ++i) {
- expectedValuesAsStrings[i] = context.getValueFactories().getStringFactory().create(expectedValues[i]);
- }
- assertThat(actualValuesAsStrings, is(expectedValuesAsStrings));
- }
-
- protected void assertNodeHasNoProperty( String path,
- String propertyName ) {
- Location parent = Location.create(path(path));
- ReadAllPropertiesRequest request = new ReadAllPropertiesRequest(parent, "fedSpace");
- executor.process(request);
- assertThat(request.hasError(), is(false));
- assertThat(request.getActualLocationOfNode().getPath(), is(path(path)));
- assertThat(request.getPropertiesByName().containsKey(name(propertyName)), is(false));
- }
-
- @Test( expected = IllegalArgumentException.class )
- public void shouldFailWhenExecutionContextIsNull() {
- context = null;
- executor = new FederatingRequestProcessor(context, sourceName, workspaces, defaultWorkspace, connectionFactory);
- }
-
- @Test( expected = IllegalArgumentException.class )
- public void shouldFailWhenSourceNameIsNull() {
- sourceName = null;
- executor = new FederatingRequestProcessor(context, sourceName, workspaces, defaultWorkspace, connectionFactory);
- }
-
- @Test( expected = IllegalArgumentException.class )
- public void shouldFailWhenSourceNameIsEmpty() {
- sourceName = "";
- executor = new FederatingRequestProcessor(context, sourceName, workspaces, defaultWorkspace, connectionFactory);
- }
-
- @Test( expected = IllegalArgumentException.class )
- public void shouldFailWhenSourceNameIsBlank() {
- sourceName = " ";
- executor = new FederatingRequestProcessor(context, sourceName, workspaces, defaultWorkspace, connectionFactory);
- }
-
- @Test( expected = IllegalArgumentException.class )
- public void shouldFailWhenConnectionFactoryIsNull() {
- connectionFactory = null;
- executor = new FederatingRequestProcessor(context, sourceName, workspaces, defaultWorkspace, connectionFactory);
- }
-
- @Test( expected = IllegalArgumentException.class )
- public void shouldFailWhenWorkspacesMapIsNull() {
- workspaces = null;
- executor = new FederatingRequestProcessor(context, sourceName, workspaces, defaultWorkspace, connectionFactory);
- }
-
- @Test( expected = IllegalArgumentException.class )
- public void shouldFailWhenWorkspacesMapIsEmpty() {
- workspaces.clear();
- executor = new FederatingRequestProcessor(context, sourceName, workspaces, defaultWorkspace, connectionFactory);
- }
-
- @Test
- public void shouldNotFailWhenDefaultWorkspaceIsNull() {
- defaultWorkspace = null;
- executor = new FederatingRequestProcessor(context, sourceName, workspaces, defaultWorkspace, connectionFactory);
- }
-
- @Test
- public void shouldHaveCurrentTimeInUtc() {
- DateTime currentTimeInUtc = executor.getCurrentTimeInUtc();
- assertThat(currentTimeInUtc, is(notNullValue()));
- assertThat(currentTimeInUtc.toUtcTimeZone(), is(currentTimeInUtc));
- }
-
- @Test
- public void shouldReturnSameExecutionContextSuppliedToConstructor() {
- assertThat(executor.getExecutionContext(), is(sameInstance(context)));
- }
-
- @Test
- public void shouldObtainCacheConnectionFromConnectionFactoryThenHoldOntoReference() throws Exception {
- // Stub the connection factory to return a connection instance that we specify ...
- RepositoryConnection connection = mock(RepositoryConnection.class);
- stub(connectionFactory.createConnection(cacheSource.getName())).toReturn(connection);
- // Obtain the connection to the cache ...
- assertThat(executor.getConnectionToCacheFor(defaultWorkspace), is(sameInstance(connection)));
- verify(connectionFactory, times(1)).createConnection(cacheSource.getName());
- // Call it again, and should not ask the factory ...
- assertThat(executor.getConnectionToCacheFor(defaultWorkspace), is(sameInstance(connection)));
- verifyNoMoreInteractions(connectionFactory);
- }
-
- @Test
- public void shouldObtainRepositoryConnectionFromConnectionFactoryThenHoldOntoReference() throws Exception {
- String sourceName = "Some source";
- Projection projection = mock(Projection.class);
- stub(projection.getSourceName()).toReturn(sourceName);
- RepositoryConnection connection = mock(RepositoryConnection.class);
- stub(connectionFactory.createConnection(sourceName)).toReturn(connection);
-
- assertThat(executor.getConnection(projection), is(sameInstance(connection)));
- verify(connectionFactory, times(1)).createConnection(sourceName);
- // Call it again, and should not ask the factory ...
- assertThat(executor.getConnection(projection), is(sameInstance(connection)));
- verifyNoMoreInteractions(connectionFactory);
- }
-
- @Test
- public void shouldCloseHavingNotOpenedConnections() throws Exception {
- assertThat(executor.getOpenConnections().isEmpty(), is(true));
- executor.close();
- assertThat(executor.getOpenConnections().isEmpty(), is(true));
- verifyNoMoreInteractions(connectionFactory);
- }
-
- @Test
- public void shouldCloseAllOpenConnectionsWhenClosingExecutor() throws Exception {
- // Load the connections
- assertThat(executor.getConnectionToCacheFor(defaultWorkspace), is(notNullValue()));
- for (Projection projection : sourceProjections) {
- assertThat(executor.getConnection(projection), is(notNullValue()));
- }
- verify(connectionFactory).createConnection(cacheSource.getName());
- verify(connectionFactory).createConnection(source1.getName());
- verify(connectionFactory).createConnection(source2.getName());
- verify(connectionFactory).createConnection(source3.getName());
- assertThat(executor.getOpenConnections().isEmpty(), is(false));
- // Close the executor and verify all connections have been closed
- executor.close();
- assertThat(executor.getOpenConnections().isEmpty(), is(true));
- verifyNoMoreInteractions(connectionFactory);
- }
-
- @Test
- public void shouldLoadContributionsForRootNodeFromSources() throws Exception {
- // Set up the content of source 3
- Graph repository3 = Graph.create(source3, context);
- repository3.createWorkspace().named("workspace3");
- Graph.Batch batch = repository3.batch();
- batch.create("/x").and();
- batch.create("/x/y").with("desc", "y description").and();
- batch.create("/x/y/zA").with("desc", "zA description").and();
- batch.create("/x/y/zB").with("desc", "zB description").and();
- batch.create("/x/y/zC").with("desc", "zC description").and();
- batch.create("/b").and();
- batch.create("/b/by").with("desc", "by description").and();
- batch.create("/b/by/bzA").with("desc", "bzA description").and();
- batch.create("/b/by/bzB").with("desc", "bzB description").and();
- batch.execute();
- Location nodeX = repository3.getNodeAt("/x").getLocation();
- Location nodeB = repository3.getNodeAt("/b").getLocation();
-
- Path path = pathFactory.createRootPath();
- List<Contribution> contributions = new LinkedList<Contribution>();
- executor.loadContributionsFromSources(Location.create(path), defaultWorkspace, null, contributions);
-
- assertThat(contributions.size(), is(3)); // order is based upon order of projections
- assertThat(contributions.get(0).getSourceName(), is(source1.getName()));
- assertThat(contributions.get(1).getSourceName(), is(source2.getName()));
- assertThat(contributions.get(2).getSourceName(), is(source3.getName()));
-
- Location childA = Location.create(pathFactory.create(path, "a"));
- Location childB = Location.create(pathFactory.create(path, "b"));
- assertThat(contributions.get(0).getChildren(), hasItems(childA, childB));
- assertThat(contributions.get(1).getChildren(), hasItems(childA));
- assertThat(contributions.get(2).getChildren(), hasItems(nodeX, nodeB));
- }
-
- protected void hasChildren( Contribution contribution,
- String... childNames ) {
- Location location = contribution.getLocationInSource();
- Iterator<Location> iter = contribution.getChildren();
- for (String childName : childNames) {
- Path expectedChildPath = context.getValueFactories().getPathFactory().create(location.getPath(), childName);
- Location expectedChild = Location.create(expectedChildPath);
- Location next = iter.next();
- if (!next.isSame(expectedChild)) {
- assertThat(next, is(expectedChild));
- }
- }
- assertThat(iter.hasNext(), is(false));
- }
-
- @Test
- public void shouldLoadContributionsForNonRootNodeWithOneContributionFromSources() throws Exception {
- // Set up the content of source 3
- Graph repository3 = Graph.create(source3, context);
- repository3.createWorkspace().named("workspace3");
- Graph.Batch batch = repository3.batch();
- batch.create("/x").and();
- batch.create("/x/y").with("desc", "y description").and();
- batch.create("/x/y/zA").with("desc", "zA description").and();
- batch.create("/x/y/zB").with("desc", "zB description").and();
- batch.create("/x/y/zC").with("desc", "zC description").and();
- batch.create("/b").and();
- batch.create("/b/by").with("desc", "by description").and();
- batch.create("/b/by/bzA").with("desc", "bzA description").and();
- batch.create("/b/by/bzB").with("desc", "bzB description").and();
- batch.execute();
-
- Path path = pathFactory.create("/x/y"); // from source 3
- List<Contribution> contributions = new LinkedList<Contribution>();
- executor.loadContributionsFromSources(Location.create(path), defaultWorkspace, null, contributions);
-
- assertThat(contributions.size(), is(3)); // order is based upon order of projections
- assertThat(contributions.get(0).getSourceName(), is(source1.getName()));
- assertThat(contributions.get(1).getSourceName(), is(source2.getName()));
- assertThat(contributions.get(2).getSourceName(), is(source3.getName()));
-
- hasChildren(contributions.get(0));
- hasChildren(contributions.get(1));
- hasChildren(contributions.get(2), "zA", "zB", "zC");
-
- path = pathFactory.create("/x"); // from source 3
- contributions.clear();
- executor.loadContributionsFromSources(Location.create(path), defaultWorkspace, null, contributions);
-
- assertThat(contributions.size(), is(3)); // order is based upon order of projections
- assertThat(contributions.get(0).getSourceName(), is(source1.getName()));
- assertThat(contributions.get(1).getSourceName(), is(source2.getName()));
- assertThat(contributions.get(2).getSourceName(), is(source3.getName()));
-
- hasChildren(contributions.get(0));
- hasChildren(contributions.get(1));
- hasChildren(contributions.get(2), "y");
- }
-
- @Test
- public void shouldLoadNonRootNodeWithTwoContributionFromSources() throws Exception {
- // Set up the content of source 1
- Graph repository1 = Graph.create(source1, context);
- repository1.createWorkspace().named("workspace1");
- Graph.Batch batch = repository1.batch();
- batch.create("/source").and();
- batch.create("/source/one").and();
- batch.create("/source/one/a").with("desc", "source 1 node a description").and();
- batch.create("/source/one/a/nA").with("desc", "source 1 node nA description").and();
- batch.create("/source/one/a/nB").with("desc", "source 1 node nB description").and();
- batch.create("/source/one/a/nC").with("desc", "source 1 node nC description").and();
- batch.create("/source/one/b").with("desc", "source 1 node b description").and();
- batch.create("/source/one/b/pA").with("desc", "source 1 node pA description").and();
- batch.create("/source/one/b/pB").with("desc", "source 1 node pB description").and();
- batch.create("/source/one/b/pC").with("desc", "source 1 node pC description").and();
- batch.execute();
-
- // Set up the content of source 2
- Graph repository2 = Graph.create(source2, context);
- repository2.createWorkspace().named("workspace2");
- batch = repository2.batch();
- batch.create("/source").and();
- batch.create("/source/two").and();
- batch.create("/source/two/a").with("desc", "source 2 node a description").and();
- batch.create("/source/two/a/qA").with("desc", "source 2 node qA description").and();
- batch.create("/source/two/a/qB").with("desc", "source 2 node qB description").and();
- batch.create("/source/two/a/qC").with("desc", "source 2 node qC description").and();
- batch.execute();
-
- // Set up the content of source 3
- Graph repository3 = Graph.create(source3, context);
- repository3.createWorkspace().named("workspace3");
- batch = repository3.batch();
- batch.create("/x").and();
- batch.create("/x/y").with("desc", "y description").and();
- batch.create("/x/y/zA").with("desc", "zA description").and();
- batch.create("/x/y/zB").with("desc", "zB description").and();
- batch.create("/x/y/zC").with("desc", "zC description").and();
- batch.create("/b").and();
- batch.create("/b/by").with("desc", "by description").and();
- batch.create("/b/by/bzA").with("desc", "bzA description").and();
- batch.create("/b/by/bzB").with("desc", "bzB description").and();
- batch.execute();
-
- Path path = pathFactory.create("/b"); // from source 2 and source 3
- List<Contribution> contributions = new LinkedList<Contribution>();
- executor.loadContributionsFromSources(Location.create(path), defaultWorkspace, null, contributions);
-
- assertThat(contributions.size(), is(3)); // order is based upon order of projections
- assertThat(contributions.get(0).getSourceName(), is(source1.getName()));
- assertThat(contributions.get(1).getSourceName(), is(source2.getName()));
- assertThat(contributions.get(2).getSourceName(), is(source3.getName()));
-
- hasChildren(contributions.get(0), "pA", "pB", "pC");
- hasChildren(contributions.get(1));
- hasChildren(contributions.get(2), "by");
-
- path = pathFactory.create("/b/by"); // from source 3
- contributions.clear();
- executor.loadContributionsFromSources(Location.create(path), defaultWorkspace, null, contributions);
-
- assertThat(contributions.size(), is(2)); // order is based upon order of projections
- assertThat(contributions.get(0).getSourceName(), is(source2.getName()));
- assertThat(contributions.get(1).getSourceName(), is(source3.getName()));
-
- hasChildren(contributions.get(0));
- hasChildren(contributions.get(1), "bzA", "bzB");
- }
-
- @Test
- public void shouldLoadNonRootNodeWithThreeContributionFromSources() throws Exception {
- // Set up the content of source 1
- Graph repository1 = Graph.create(source1, context);
- repository1.createWorkspace().named("workspace1");
- Graph.Batch batch = repository1.batch();
- batch.create("/source").and();
- batch.create("/source/one").and();
- batch.create("/source/one/a").with("desc", "source 1 node a description").and();
- batch.create("/source/one/a/nA").with("desc", "source 1 node nA description").and();
- batch.create("/source/one/a/nB").with("desc", "source 1 node nB description").and();
- batch.create("/source/one/a/nC").with("desc", "source 1 node nC description").and();
- batch.create("/source/one/b").with("desc", "source 1 node b description").and();
- batch.create("/source/one/b/pA").with("desc", "source 1 node pA description").and();
- batch.create("/source/one/b/pB").with("desc", "source 1 node pB description").and();
- batch.create("/source/one/b/pC").with("desc", "source 1 node pC description").and();
- batch.execute();
-
- // Set up the content of source 2
- Graph repository2 = Graph.create(source2, context);
- repository2.createWorkspace().named("workspace2");
- batch = repository2.batch();
- batch.create("/source").and();
- batch.create("/source/two").and();
- batch.create("/source/two/a").with("desc", "source 2 node a description").and();
- batch.create("/source/two/a/qA").with("desc", "source 2 node qA description").and();
- batch.create("/source/two/a/qB").with("desc", "source 2 node qB description").and();
- batch.create("/source/two/a/qC").with("desc", "source 2 node qC description").and();
- batch.execute();
-
- // Set up the content of source 3
- Graph repository3 = Graph.create(source3, context);
- repository3.createWorkspace().named("workspace3");
- batch = repository3.batch();
- batch.create("/x").and();
- batch.create("/x/y").with("desc", "y description").and();
- batch.create("/x/y/zA").with("desc", "zA description").and();
- batch.create("/x/y/zB").with("desc", "zB description").and();
- batch.create("/x/y/zC").with("desc", "zC description").and();
- batch.create("/b").and();
- batch.create("/b/by").with("desc", "by description").and();
- batch.create("/b/by/bzA").with("desc", "bzA description").and();
- batch.create("/b/by/bzB").with("desc", "bzB description").and();
- batch.create("/a").and();
- batch.create("/a/ay").with("desc", "ay description").and();
- batch.create("/a/ay/azA").with("desc", "azA description").and();
- batch.create("/a/ay/azB").with("desc", "azB description").and();
- batch.execute();
-
- Path path = pathFactory.create("/a"); // from sources 1, 2 and 3
- List<Contribution> contributions = new LinkedList<Contribution>();
- executor.loadContributionsFromSources(Location.create(path), defaultWorkspace, null, contributions);
-
- assertThat(contributions.size(), is(3)); // order is based upon order of projections
- assertThat(contributions.get(0).getSourceName(), is(source1.getName()));
- assertThat(contributions.get(1).getSourceName(), is(source2.getName()));
- assertThat(contributions.get(2).getSourceName(), is(source3.getName()));
-
- hasChildren(contributions.get(0), "nA", "nB", "nC");
- hasChildren(contributions.get(1), "qA", "qB", "qC");
- hasChildren(contributions.get(2), "ay");
-
- path = pathFactory.create("/a/ay"); // from source 3
- contributions.clear();
- executor.loadContributionsFromSources(Location.create(path), defaultWorkspace, null, contributions);
-
- assertThat(contributions.size(), is(1)); // order is based upon order of projections
- assertThat(contributions.get(0).getSourceName(), is(source3.getName()));
- hasChildren(contributions.get(0), "azA", "azB");
- }
-
- @Test
- public void shouldFailToLoadNodeFromSourcesWhenTheNodeDoesNotAppearInAnyOfTheSources() throws Exception {
- Path nonExistant = pathFactory.create("/nonExistant/Node/In/AnySource");
- List<Contribution> contributions = new LinkedList<Contribution>();
- executor.loadContributionsFromSources(Location.create(nonExistant), defaultWorkspace, null, contributions);
- // All of the contributions should be empty ...
- for (Contribution contribution : contributions) {
- assertThat(contribution.isEmpty(), is(true));
- }
- }
-
- @Test
- public void shouldComputeCachePolicyCorrectlyUsingCurrentTimeAndSourceDefaultCachePolicy() throws Exception {
- // Set up the content of source 1
- Graph repository1 = Graph.create(source1, context);
- repository1.createWorkspace().named("workspace1");
- Graph.Batch batch = repository1.batch();
- batch.create("/source").and();
- batch.create("/source/one").and();
- batch.create("/source/one/a").with("desc", "source 1 node a description").and();
- batch.create("/source/one/a/nA").with("desc", "source 1 node nA description").and();
- batch.create("/source/one/a/nB").with("desc", "source 1 node nB description").and();
- batch.create("/source/one/a/nC").with("desc", "source 1 node nC description").and();
- batch.create("/source/one/b").with("desc", "source 1 node b description").and();
- batch.create("/source/one/b/pA").with("desc", "source 1 node pA description").and();
- batch.create("/source/one/b/pB").with("desc", "source 1 node pB description").and();
- batch.create("/source/one/b/pC").with("desc", "source 1 node pC description").and();
- batch.execute();
-
- // Set up the content of source 2
- Graph repository2 = Graph.create(source2, context);
- repository2.createWorkspace().named("workspace2");
- batch = repository2.batch();
- batch.create("/source").and();
- batch.create("/source/two").and();
- batch.create("/source/two/a").with("desc", "source 2 node a description").and();
- batch.create("/source/two/a/qA").with("desc", "source 2 node qA description").and();
- batch.create("/source/two/a/qB").with("desc", "source 2 node qB description").and();
- batch.create("/source/two/a/qC").with("desc", "source 2 node qC description").and();
- batch.execute();
-
- // Set up the content of source 3
- Graph repository3 = Graph.create(source3, context);
- repository3.createWorkspace().named("workspace3");
- batch = repository3.batch();
- batch.create("/x").and();
- batch.create("/x/y").with("desc", "y description").and();
- batch.create("/x/y/zA").with("desc", "zA description").and();
- batch.create("/x/y/zB").with("desc", "zB description").and();
- batch.create("/x/y/zC").with("desc", "zC description").and();
- batch.create("/b").and();
- batch.create("/b/by").with("desc", "by description").and();
- batch.create("/b/by/bzA").with("desc", "bzA description").and();
- batch.create("/b/by/bzB").with("desc", "bzB description").and();
- batch.create("/a").and();
- batch.create("/a/ay").with("desc", "ay description").and();
- batch.create("/a/ay/azA").with("desc", "azA description").and();
- batch.create("/a/ay/azB").with("desc", "azB description").and();
- batch.execute();
-
- Path path = pathFactory.create("/a"); // from sources 1, 2 and 3
- List<Contribution> contributions = new LinkedList<Contribution>();
- executor.loadContributionsFromSources(Location.create(path), defaultWorkspace, null, contributions);
-
- // Check when the contributions expire ...
- DateTime nowInUtc = executor.getCurrentTimeInUtc();
- DateTime nowPlus10InUtc = nowInUtc.plusSeconds(10);
- DateTime nowPlus110InUtc = nowInUtc.plusSeconds(110);
- DateTime nowPlus210InUtc = nowInUtc.plusSeconds(210);
- DateTime nowPlus220InUtc = nowInUtc.plusSeconds(220);
- DateTime nowPlus310InUtc = nowInUtc.plusSeconds(310);
- assertThat(contributions.size(), is(3)); // order is based upon order of projections
- assertThat(contributions.get(0).getSourceName(), is(source1.getName()));
- assertThat(contributions.get(1).getSourceName(), is(source2.getName()));
- assertThat(contributions.get(2).getSourceName(), is(source3.getName()));
- // Nothing should be expired in 10 seconds ...
- assertThat(contributions.get(0).isExpired(nowPlus10InUtc), is(false));
- assertThat(contributions.get(1).isExpired(nowPlus10InUtc), is(false));
- assertThat(contributions.get(2).isExpired(nowPlus10InUtc), is(false));
- assertThat(contributions.get(0).isExpired(nowPlus110InUtc), is(true)); // expired by source
- assertThat(contributions.get(1).isExpired(nowPlus110InUtc), is(false));
- assertThat(contributions.get(2).isExpired(nowPlus110InUtc), is(false));
- assertThat(contributions.get(0).isExpired(nowPlus210InUtc), is(true)); // expired by source @ 100
- assertThat(contributions.get(1).isExpired(nowPlus210InUtc), is(true)); // expired by source @ 200
- assertThat(contributions.get(2).isExpired(nowPlus210InUtc), is(false));
- assertThat(contributions.get(0).isExpired(nowPlus220InUtc), is(true)); // expired by source @ 100
- assertThat(contributions.get(1).isExpired(nowPlus220InUtc), is(true)); // expired by source @ 200
- assertThat(contributions.get(2).isExpired(nowPlus220InUtc), is(true)); // expired by cache @ 219
- assertThat(contributions.get(2).isExpired(nowPlus310InUtc), is(true)); // expired by cache @ 219
- }
-
- /**
- * Set up the sources such that:
- * <ul>
- * <li>Source 1: "{@code /a => /source/one/a}", "{@code /b => /source/one/b}"</li>
- * <li>Source 2: "{@code /a => /source/two/a}"</li>
- * <li>Source 1: "{@code / => /}"</li>
- * </ul>
- */
- protected void initializeSourcesWithContent() {
- // Set up the content of source 1
- Graph repository1 = Graph.create(source1, context);
- repository1.createWorkspace().named("workspace1");
- Graph.Batch batch = repository1.batch();
- batch.create("/source").and();
- batch.create("/source/one").and();
- batch.create("/source/one/a").with("desc", "source 1 node a description").and();
- batch.create("/source/one/a/nA").with("desc", "source 1 node nA description").and();
- batch.create("/source/one/a/nB").with("desc", "source 1 node nB description").and();
- batch.create("/source/one/a/nC").with("desc", "source 1 node nC description").and();
- batch.create("/source/one/b").with("desc", "source 1 node b description").and();
- batch.create("/source/one/b/pA").with("desc", "source 1 node pA description").and();
- batch.create("/source/one/b/pB").with("desc", "source 1 node pB description").and();
- batch.create("/source/one/b/pC").with("desc", "source 1 node pC description").and();
- batch.execute();
-
- // Set up the content of source 2
- Graph repository2 = Graph.create(source2, context);
- repository2.createWorkspace().named("workspace2");
- batch = repository2.batch();
- batch.create("/source").and();
- batch.create("/source/two").and();
- batch.create("/source/two/a").with("desc", "source 2 node a description").and();
- batch.create("/source/two/a/qA").with("desc", "source 2 node qA description").and();
- batch.create("/source/two/a/qB").with("desc", "source 2 node qB description").and();
- batch.create("/source/two/a/qC").with("desc", "source 2 node qC description").and();
- batch.execute();
-
- // Set up the content of source 3
- Graph repository3 = Graph.create(source3, context);
- repository3.createWorkspace().named("workspace3");
- batch = repository3.batch();
- batch.create("/x").and();
- batch.create("/x/y").with("desc", "y description").and();
- batch.create("/x/y/zA").with("desc", "zA description").and();
- batch.create("/x/y/zB").with("desc", "zB description").and();
- batch.create("/x/y/zC").with("desc", "zC description").and();
- batch.create("/b").and();
- batch.create("/b/by").with("desc", "by description").and();
- batch.create("/b/by/bzA").with("desc", "bzA description").and();
- batch.create("/b/by/bzB").with("desc", "bzB description").and();
- batch.create("/a").and();
- batch.create("/a/ay").with("desc", "ay description").and();
- batch.create("/a/ay/azA").with("desc", "azA description").and();
- batch.create("/a/ay/azB").with("desc", "azB description").and();
- batch.execute();
-
- }
-
- @Test( expected = UnsupportedRequestException.class )
- public void shouldNotCreateNodeIfParentIsOutsideSingleProjection() throws Throwable {
- initializeSourcesWithContent();
- Location parent = Location.create(path("/a")); // source 2 or 3?
- CreateNodeRequest request = new CreateNodeRequest(parent, "fedSpace", name("child"));
- executor.process(request);
- if (request.hasError()) throw request.getError();
- }
-
- @Test
- public void shouldCreateNodeOnlyIfParentIsInsideSingleProjection() throws Throwable {
- initializeSourcesWithContent();
- Location parent = Location.create(path("/a/ay")); // source 3
- CreateNodeRequest request = new CreateNodeRequest(parent, "fedSpace", name("child"));
- executor.process(request);
- assertThat(request.hasError(), is(false));
- assertThat(request.getActualLocationOfNode().getPath(), is(path("/a/ay/child")));
- assertNodeHasChildren("/a/ay", "azA", "azB", "child");
- }
-
- @Test( expected = UnsupportedRequestException.class )
- public void shouldNotDestroyNodeIfOutsideSingleProjection() throws Throwable {
- initializeSourcesWithContent();
- Location location = Location.create(path("/a")); // source 2 or 3?
- DeleteBranchRequest request = new DeleteBranchRequest(location, "fedSpace");
- executor.process(request);
- if (request.hasError()) throw request.getError();
- }
-
- @Test
- public void shouldDestroyNodeOnlyIfInsideSingleProjection() throws Throwable {
- initializeSourcesWithContent();
- assertNodeHasChildren("/a", "nA", "nB", "nC", "qA", "qB", "qC", "ay");
- Location location = Location.create(path("/a/ay")); // source 3
- DeleteBranchRequest request = new DeleteBranchRequest(location, "fedSpace");
- executor.process(request);
- assertThat(request.hasError(), is(false));
- assertThat(request.getActualLocationOfNode().getPath(), is(path("/a/ay")));
- assertNodeHasChildren("/a", "nA", "nB", "nC", "qA", "qB", "qC");
- }
-
- @Test( expected = UnsupportedRequestException.class )
- public void shouldNotUpdateNodeIfOutsideSingleProjection() throws Throwable {
- initializeSourcesWithContent();
- Location location = Location.create(path("/a")); // source 2 or 3?
- Map<Name, Property> properties = new HashMap<Name, Property>();
- addProperty(properties, "prop1", "value1");
- addProperty(properties, "prop2", "value2a", "value2b");
- UpdatePropertiesRequest request = new UpdatePropertiesRequest(location, "fedSpace", properties);
- executor.process(request);
- if (request.hasError()) throw request.getError();
- }
-
- @Test
- public void shouldUpdateNodeOnlyIfInsideSingleProjection() throws Throwable {
- initializeSourcesWithContent();
- // assertNodeHasChildren("/a", "nA", "nB", "nC", "qA", "qB", "qC", "ay");
- assertNodeHasProperty("/a/ay", "desc", "ay description");
- assertNodeHasNoProperty("/a/ay", "prop1");
- assertNodeHasNoProperty("/a/ay", "prop2");
- Location location = Location.create(path("/a/ay")); // source 3
- Map<Name, Property> properties = new HashMap<Name, Property>();
- addProperty(properties, "desc", "ay description 2");
- addProperty(properties, "prop1", "value1");
- addProperty(properties, "prop2", "value2a", "value2b");
- UpdatePropertiesRequest request = new UpdatePropertiesRequest(location, "fedSpace", properties);
- executor.process(request);
- assertThat(request.hasError(), is(false));
- assertThat(request.getActualLocationOfNode().getPath(), is(path("/a/ay")));
- assertNodeHasChildren("/a", "nA", "nB", "nC", "qA", "qB", "qC", "ay");
- assertNodeHasProperty("/a/ay", "desc", "ay description 2");
- assertNodeHasProperty("/a/ay", "prop1", "value1");
- assertNodeHasProperty("/a/ay", "prop2", "value2a", "value2b");
- }
-
- @Test( expected = UnsupportedRequestException.class )
- public void shouldNotMoveNodeIfParentIsOutsideSingleProjection() throws Throwable {
- initializeSourcesWithContent();
- Location from = Location.create(path("/a/ay")); // source 3
- Location into = Location.create(path("/b")); // source 1 or source 3?
- assertNodeHasChildren("/a", "nA", "nB", "nC", "qA", "qB", "qC", "ay");
- assertNodeHasChildren("/b", "pA", "pB", "pC", "by");
- MoveBranchRequest request = new MoveBranchRequest(from, into, "fedSpace");
- executor.process(request);
- if (request.hasError()) throw request.getError();
- }
-
- @Test
- public void shouldMoveNodeOnlyIfParentIsInsideSingleProjection() throws Throwable {
- initializeSourcesWithContent();
- Location from = Location.create(path("/a/ay")); // source 3
- Location into = Location.create(path("/b/by")); // source 3
- assertNodeHasChildren("/a", "nA", "nB", "nC", "qA", "qB", "qC", "ay");
- assertNodeHasChildren("/b", "pA", "pB", "pC", "by");
- assertNodeHasChildren("/b/by", "bzA", "bzB");
- MoveBranchRequest request = new MoveBranchRequest(from, into, "fedSpace");
- executor.process(request);
- if (request.hasError()) {
- System.out.println(request.getError().getMessage());
- }
- assertThat(request.hasError(), is(false));
- assertThat(request.getActualLocationBefore().getPath(), is(path("/a/ay")));
- assertThat(request.getActualLocationAfter().getPath(), is(path("/b/by/ay")));
- assertNodeHasChildren("/a", "nA", "nB", "nC", "qA", "qB", "qC");
- assertNodeHasChildren("/b/by", "bzA", "bzB", "ay");
- }
-
- @Test( expected = UnsupportedRequestException.class )
- public void shouldNotCopyNodeIfParentIsOutsideSingleProjection() throws Throwable {
- initializeSourcesWithContent();
- Location from = Location.create(path("/a/ay")); // source 3
- Location into = Location.create(path("/b")); // source 1 or source 3?
- assertNodeHasChildren("/a", "nA", "nB", "nC", "qA", "qB", "qC", "ay");
- assertNodeHasChildren("/b", "pA", "pB", "pC", "by");
- CopyBranchRequest request = new CopyBranchRequest(from, "fedSpace", into, "fedSpace");
- executor.process(request);
- if (request.hasError()) throw request.getError();
- }
-
- @Test
- public void shouldCopyNodeOnlyIfParentIsInsideSingleProjection() throws Throwable {
- initializeSourcesWithContent();
- Location from = Location.create(path("/a/ay")); // source 3
- Location into = Location.create(path("/b/by")); // source 3
- assertNodeHasChildren("/a", "nA", "nB", "nC", "qA", "qB", "qC", "ay");
- assertNodeHasChildren("/a/ay", "azA", "azB");
- assertNodeHasChildren("/b", "pA", "pB", "pC", "by");
- assertNodeHasChildren("/b/by", "bzA", "bzB");
- CopyBranchRequest request = new CopyBranchRequest(from, "fedSpace", into, "fedSpace");
- executor.process(request);
- if (request.hasError()) {
- System.out.println(request.getError().getMessage());
- }
- assertThat(request.hasError(), is(false));
- assertThat(request.getActualLocationBefore().getPath(), is(path("/a/ay")));
- assertThat(request.getActualLocationAfter().getPath(), is(path("/b/by/ay")));
- assertNodeHasChildren("/a", "nA", "nB", "nC", "qA", "qB", "qC", "ay");
- assertNodeHasChildren("/b/by", "bzA", "bzB", "ay");
- assertNodeHasChildren("/b/by/ay", "azA", "azB");
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederationI18nTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederationI18nTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/FederationI18nTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,36 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation;
-
-import org.jboss.dna.common.AbstractI18nTest;
-
-/**
- * @author Randall Hauch
- */
-public class FederationI18nTest extends AbstractI18nTest {
-
- public FederationI18nTest() {
- super(FederationI18n.class);
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/ProjectionParserTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/ProjectionParserTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/ProjectionParserTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,43 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation;
-
-import static org.hamcrest.core.Is.is;
-import static org.junit.Assert.assertThat;
-import org.junit.Test;
-
-/**
- * @author Randall Hauch
- */
-public class ProjectionParserTest {
-
- private ProjectionParser parser;
-
- @Test
- public void shouldInitializeSingletonWithParserMethods() {
- parser = ProjectionParser.getInstance();
- assertThat(parser.getParserMethods().size(), is(1));
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/ProjectionPathRuleTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/ProjectionPathRuleTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/ProjectionPathRuleTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,250 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation;
-
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsNull.nullValue;
-import static org.hamcrest.core.IsSame.sameInstance;
-import static org.junit.Assert.assertThat;
-import static org.junit.matchers.JUnitMatchers.hasItems;
-import org.jboss.dna.common.text.TextEncoder;
-import org.jboss.dna.common.text.UrlEncoder;
-import org.jboss.dna.graph.ExecutionContext;
-import org.jboss.dna.graph.property.NamespaceRegistry;
-import org.jboss.dna.graph.property.Path;
-import org.jboss.dna.graph.property.PathFactory;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * @author Randall Hauch
- */
-public class ProjectionPathRuleTest {
-
- private ExecutionContext context;
- private Projection.PathRule rule;
- private PathFactory pathFactory;
- private Path repositoryPath;
- private Path sourcePath;
- private Path[] validExceptions;
- private NamespaceRegistry registry;
- private TextEncoder encoder;
-
- @Before
- public void beforeEach() {
- context = new ExecutionContext();
- pathFactory = context.getValueFactories().getPathFactory();
- registry = context.getNamespaceRegistry();
- encoder = new UrlEncoder();
- repositoryPath = pathFactory.create("/a/b/c");
- sourcePath = pathFactory.create("/x/y");
- validExceptions = new Path[] {pathFactory.create("e/f"), pathFactory.create("e/g")};
- rule = new Projection.PathRule(repositoryPath, sourcePath, validExceptions);
- }
-
- @Test
- public void shouldCreateInstanceWithValidRepositoryPathAndValidSourcePathAndNoExceptions() {
- rule = new Projection.PathRule(repositoryPath, sourcePath);
- assertThat(rule.getPathInRepository(), is(sameInstance(repositoryPath)));
- assertThat(rule.getPathInSource(), is(sameInstance(sourcePath)));
- assertThat(rule.hasExceptionsToRule(), is(false));
- }
-
- @Test
- public void shouldCreateInstanceWithValidRepositoryPathAndValidSourcePathAndValidExceptions() {
- rule = new Projection.PathRule(repositoryPath, sourcePath, validExceptions);
- assertThat(rule.getPathInRepository(), is(sameInstance(repositoryPath)));
- assertThat(rule.getPathInSource(), is(sameInstance(sourcePath)));
- assertThat(rule.hasExceptionsToRule(), is(true));
- assertThat(rule.getExceptionsToRule(), hasItems(validExceptions));
- }
-
- @Test( expected = AssertionError.class )
- public void shouldFailToCreateInstanceWithNullRepositoryPathAndValidSourcePathAndNoExceptions() {
- repositoryPath = null;
- new Projection.PathRule(repositoryPath, sourcePath);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldFailToCreateInstanceWithValidRepositoryPathAndNullSourcePathAndNoExceptions() {
- sourcePath = null;
- new Projection.PathRule(repositoryPath, sourcePath);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldFailToCreateInstanceWithValidRepositoryPathAndValidSourcePathAndAbsoluteExceptions() {
- Path relativePath = validExceptions[0];
- Path absolutePath = pathFactory.create("/j/k/l/m");
- new Projection.PathRule(repositoryPath, sourcePath, relativePath, absolutePath);
- }
-
- @Test
- public void shouldIncludeRepositoryPathsAtPathInRepository() {
- assertThat(rule.includes(sourcePath), is(true));
- }
-
- @Test
- public void shouldIncludeRepositoryPathsBelowPathInRepositoryThatAreNotExcluded() {
- assertThat(rule.includes(pathFactory.create(sourcePath, "m")), is(true));
- assertThat(rule.includes(pathFactory.create(sourcePath, "m/n")), is(true));
- assertThat(rule.includes(pathFactory.create(sourcePath, "o/p")), is(true));
- assertThat(rule.includes(pathFactory.create(sourcePath, "e/e")), is(true));
- assertThat(rule.includes(pathFactory.create(sourcePath, "e")), is(true));
- }
-
- @Test
- public void shouldNotIncludeRepositoryPathsBelowPathInRepositoryThatAreExcluded() {
- assertThat(rule.includes(pathFactory.create(sourcePath, "e/f")), is(false));
- assertThat(rule.includes(pathFactory.create(sourcePath, "e/g")), is(false));
- assertThat(rule.includes(pathFactory.create(sourcePath, "e/f/g")), is(false));
- assertThat(rule.includes(pathFactory.create(sourcePath, "e/g/h")), is(false));
- }
-
- @Test
- public void shouldNotIncludeRepositoryPathsNotBelowPathInRepository() {
- assertThat(rule.includes(pathFactory.create("/m/n")), is(false));
- assertThat(rule.includes(pathFactory.create("/x/y[3]")), is(false));
- }
-
- @Test
- public void shouldProjectRepositoryPathIntoSourcePath() {
- assertThat(rule.projectPathInRepositoryToPathInSource(repositoryPath, pathFactory), is(sourcePath));
- }
-
- @Test
- public void shouldProjectPathBelowRepositoryPathIntoPathBelowSourcePath() {
- Path pathInRepository = pathFactory.create(repositoryPath, "m/n");
- Path pathInSource = pathFactory.create(sourcePath, "m/n");
- assertThat(rule.projectPathInRepositoryToPathInSource(pathInRepository, pathFactory), is(pathInSource));
-
- pathInRepository = pathFactory.create(repositoryPath, "m");
- pathInSource = pathFactory.create(sourcePath, "m");
- assertThat(rule.projectPathInRepositoryToPathInSource(pathInRepository, pathFactory), is(pathInSource));
-
- pathInRepository = pathFactory.create(repositoryPath, "m/n[3]");
- pathInSource = pathFactory.create(sourcePath, "m/n[3]");
- assertThat(rule.projectPathInRepositoryToPathInSource(pathInRepository, pathFactory), is(pathInSource));
- }
-
- @Test
- public void shouldProjectSourcePathIntoRepositoryPath() {
- assertThat(rule.projectPathInSourceToPathInRepository(sourcePath, pathFactory), is(repositoryPath));
- }
-
- @Test
- public void shouldProjectPathBelowSourcePathIntoPathBelowRepositoryPath() {
- Path pathInRepository = pathFactory.create(repositoryPath, "m/n");
- Path pathInSource = pathFactory.create(sourcePath, "m/n");
- assertThat(rule.projectPathInSourceToPathInRepository(pathInSource, pathFactory), is(pathInRepository));
-
- pathInRepository = pathFactory.create(repositoryPath, "m");
- pathInSource = pathFactory.create(sourcePath, "m");
- assertThat(rule.projectPathInSourceToPathInRepository(pathInSource, pathFactory), is(pathInRepository));
-
- pathInRepository = pathFactory.create(repositoryPath, "m/n[3]");
- pathInSource = pathFactory.create(sourcePath, "m/n[3]");
- assertThat(rule.projectPathInSourceToPathInRepository(pathInSource, pathFactory), is(pathInRepository));
- }
-
- @Test
- public void shouldGetPathsInRepositoryGivenPathsInSourceAtOrBelowSourcePathIfNotExcluded() {
- assertThat(rule.getPathInRepository(sourcePath, pathFactory), is(repositoryPath));
- assertThatGetPathInRepositoryReturnsCorrectPathInSource("");
- assertThatGetPathInRepositoryReturnsCorrectPathInSource("m/n");
- assertThatGetPathInRepositoryReturnsCorrectPathInSource("m[1]");
- assertThatGetPathInRepositoryReturnsCorrectPathInSource("m[1]/n/o/p");
- }
-
- protected void assertThatGetPathInRepositoryReturnsCorrectPathInSource( String subpath ) {
- assertThat(rule.getPathInRepository(pathFactory.create(sourcePath, subpath), pathFactory),
- is(pathFactory.create(repositoryPath, subpath)));
- }
-
- @Test
- public void shouldGetNullPathInRepositoryGivenPathsInSourceAtOrBelowSourcePathIfExcluded() {
- assertThat(rule.getPathInRepository(pathFactory.create(sourcePath, "e/f"), pathFactory), is(nullValue()));
- assertThat(rule.getPathInRepository(pathFactory.create(sourcePath, "e/g"), pathFactory), is(nullValue()));
- assertThat(rule.getPathInRepository(pathFactory.create(sourcePath, "e/f/h"), pathFactory), is(nullValue()));
- assertThat(rule.getPathInRepository(pathFactory.create(sourcePath, "e/g/h"), pathFactory), is(nullValue()));
- }
-
- @Test
- public void shouldGetNullPathInRepositoryGivenPathsInRepositoryNotAtOrBelowSourcePath() {
- assertThat(rule.getPathInRepository(pathFactory.create("/m/n"), pathFactory), is(nullValue()));
- }
-
- @Test
- public void shouldGetPathsInSourceGivenPathsInRepositoryAtOrBelowRepositoryPathIfNotExcluded() {
- assertThat(rule.getPathInSource(repositoryPath, pathFactory), is(sourcePath));
- assertThatGetPathInSourceReturnsCorrectPathInRepository("");
- assertThatGetPathInSourceReturnsCorrectPathInRepository("m/n");
- assertThatGetPathInSourceReturnsCorrectPathInRepository("m[1]");
- assertThatGetPathInSourceReturnsCorrectPathInRepository("m[1]/n/o/p");
-
- }
-
- protected void assertThatGetPathInSourceReturnsCorrectPathInRepository( String subpath ) {
- assertThat(rule.getPathInSource(pathFactory.create(repositoryPath, subpath), pathFactory),
- is(pathFactory.create(sourcePath, subpath)));
- }
-
- @Test
- public void shouldGetNullPathInSourceGivenPathsInRepositoryAtOrBelowRepositoryPathIfExcluded() {
- assertThat(rule.getPathInSource(pathFactory.create(repositoryPath, "e/f"), pathFactory), is(nullValue()));
- assertThat(rule.getPathInSource(pathFactory.create(repositoryPath, "e/g"), pathFactory), is(nullValue()));
- assertThat(rule.getPathInSource(pathFactory.create(repositoryPath, "e/f/h"), pathFactory), is(nullValue()));
- assertThat(rule.getPathInSource(pathFactory.create(repositoryPath, "e/g/h"), pathFactory), is(nullValue()));
- }
-
- @Test
- public void shouldGetNullPathInSourceGivenPathsInRepositoryNotAtOrBelowRepositoryPath() {
- assertThat(rule.getPathInSource(pathFactory.create("/m/n"), pathFactory), is(nullValue()));
- }
-
- @Test
- public void shouldConvertToString() {
- assertThat(rule.getString(registry, encoder), is("/a/b/c => /x/y $ e/f $ e/g"));
-
- repositoryPath = pathFactory.create("/a/b/c");
- sourcePath = pathFactory.create("/");
- rule = new Projection.PathRule(repositoryPath, sourcePath, validExceptions);
- assertThat(rule.getString(registry, encoder), is("/a/b/c => / $ e/f $ e/g"));
-
- repositoryPath = pathFactory.create("/");
- sourcePath = pathFactory.create("/");
- rule = new Projection.PathRule(repositoryPath, sourcePath, validExceptions);
- assertThat(rule.getString(registry, encoder), is("/ => / $ e/f $ e/g"));
- }
-
- @Test
- public void shouldHaveToString() {
- assertThat(rule.toString(), is("/{}a/{}b/{}c => /{}x/{}y $ {}e/{}f $ {}e/{}g"));
-
- repositoryPath = pathFactory.create("/a/b/c");
- sourcePath = pathFactory.create("/");
- rule = new Projection.PathRule(repositoryPath, sourcePath, validExceptions);
- assertThat(rule.toString(), is("/{}a/{}b/{}c => / $ {}e/{}f $ {}e/{}g"));
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/ProjectionTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/ProjectionTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/ProjectionTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,288 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation;
-
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsInstanceOf.instanceOf;
-import static org.hamcrest.core.IsNull.nullValue;
-import static org.junit.Assert.assertThat;
-import static org.junit.matchers.JUnitMatchers.hasItems;
-import static org.mockito.Mockito.stub;
-import java.util.Set;
-import org.jboss.dna.graph.ExecutionContext;
-import org.jboss.dna.graph.property.Path;
-import org.jboss.dna.graph.property.PathFactory;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.MockitoAnnotations;
-import org.mockito.MockitoAnnotations.Mock;
-
-/**
- * @author Randall Hauch
- */
-public class ProjectionTest {
-
- private ExecutionContext context;
- private String sourceName;
- private String workspaceName;
- private Projection.Rule[] rules;
- private Projection projection;
- private PathFactory pathFactory;
- @Mock
- private Projection.Rule mockRule1;
- @Mock
- private Projection.Rule mockRule2;
- @Mock
- private Projection.Rule mockRule3;
-
- @Before
- public void beforeEach() {
- MockitoAnnotations.initMocks(this);
- context = new ExecutionContext();
- pathFactory = context.getValueFactories().getPathFactory();
- sourceName = "Valid name";
- workspaceName = "Valid workspace";
- rules = new Projection.Rule[] {mockRule1, mockRule2, mockRule3};
- projection = new Projection(sourceName, workspaceName, rules);
- }
-
- @Test
- public void shouldCreateInstanceWithValidNameAndValidRules() {
- projection = new Projection(sourceName, workspaceName, rules);
- assertThat(projection.getSourceName(), is(sourceName));
- assertThat(projection.getWorkspaceName(), is(workspaceName));
- assertThat(projection.getRules().size(), is(rules.length));
- assertThat(projection.getRules(), hasItems(mockRule1, mockRule2, mockRule3));
- }
-
- @Test( expected = IllegalArgumentException.class )
- public void shouldFailToCreateInstanceWithNullNameAndValidRules() {
- sourceName = null;
- projection = new Projection(sourceName, workspaceName, rules);
- }
-
- @Test( expected = IllegalArgumentException.class )
- public void shouldFailToCreateInstanceWithNullWorkspaceNameAndValidSourceNameAndRules() {
- sourceName = null;
- projection = new Projection(sourceName, workspaceName, rules);
- }
-
- @Test( expected = IllegalArgumentException.class )
- public void shouldFailToCreateInstanceWithEmptyNameAndValidRules() {
- sourceName = "";
- projection = new Projection(sourceName, workspaceName, rules);
- }
-
- @Test( expected = IllegalArgumentException.class )
- public void shouldFailToCreateInstanceWithBlankNameAndValidRules() {
- sourceName = " \t ";
- projection = new Projection(sourceName, workspaceName, rules);
- }
-
- @Test( expected = IllegalArgumentException.class )
- public void shouldFailToCreateInstanceWithValidNameAndNullRules() {
- rules = null;
- projection = new Projection(sourceName, workspaceName, rules);
- }
-
- @Test( expected = IllegalArgumentException.class )
- public void shouldFailToCreateInstanceWithValidNameAndEmptyRules() {
- rules = new Projection.Rule[] {};
- projection = new Projection(sourceName, workspaceName, rules);
- }
-
- @Test( expected = IllegalArgumentException.class )
- public void shouldFailToCreateInstanceWithValidNameAndRulesArrayContainingAllNulls() {
- projection = new Projection(sourceName, null, null, null);
- }
-
- @Test
- public void shouldCreateInstanceWithValidNameAndRulesAndShouldPruneNullRuleReferences() {
- projection = new Projection(sourceName, workspaceName, mockRule1, null, mockRule3);
- assertThat(projection.getRules().size(), is(2));
- assertThat(projection.getRules(), hasItems(mockRule1, mockRule3));
- }
-
- @Test( expected = IllegalArgumentException.class )
- public void shouldFailToGetPathsInSourceGivenValidPathAndNullPathFactory() {
- Path pathInRepository = pathFactory.create("/a/b/c");
- projection.getPathsInSource(pathInRepository, null);
- }
-
- @Test
- public void shouldGetNoPathsInSourceGivenNullPathInRepository() {
- Set<Path> pathsInSource = projection.getPathsInSource(null, pathFactory);
- assertThat(pathsInSource.isEmpty(), is(true));
- }
-
- @Test
- public void shouldGetNoPathsInSourceGivenPathInRepositoryAndNoApplicableRules() {
- Path pathInRepository = pathFactory.create("/a/b/c");
- stub(mockRule1.getPathInSource(pathInRepository, pathFactory)).toReturn(null);
- stub(mockRule2.getPathInSource(pathInRepository, pathFactory)).toReturn(null);
- stub(mockRule3.getPathInSource(pathInRepository, pathFactory)).toReturn(null);
- Set<Path> pathsInSource = projection.getPathsInSource(pathInRepository, pathFactory);
- assertThat(pathsInSource.isEmpty(), is(true));
- }
-
- @Test
- public void shouldGetPathInSourceGivenPathInRepositoryAndOneApplicableRules() {
- Path pathInRepository = pathFactory.create("/a/b/c");
- Path pathInSource = pathFactory.create("/d/e/f");
- stub(mockRule1.getPathInSource(pathInRepository, pathFactory)).toReturn(pathInSource);
- stub(mockRule2.getPathInSource(pathInRepository, pathFactory)).toReturn(null);
- stub(mockRule3.getPathInSource(pathInRepository, pathFactory)).toReturn(null);
- Set<Path> pathsInSource = projection.getPathsInSource(pathInRepository, pathFactory);
- assertThat(pathsInSource, hasItems(pathInSource));
- }
-
- @Test
- public void shouldGetPathsInSourceGivenPathInRepositoryAndMultipleApplicableRules() {
- Path pathInRepository = pathFactory.create("/a/b/c");
- Path pathInSource1 = pathFactory.create("/d/e/f");
- Path pathInSource2 = pathFactory.create("/d/e/g");
- Path pathInSource3 = pathFactory.create("/d/e/h");
- stub(mockRule1.getPathInSource(pathInRepository, pathFactory)).toReturn(pathInSource1);
- stub(mockRule2.getPathInSource(pathInRepository, pathFactory)).toReturn(pathInSource2);
- stub(mockRule3.getPathInSource(pathInRepository, pathFactory)).toReturn(pathInSource3);
- Set<Path> pathsInSource = projection.getPathsInSource(pathInRepository, pathFactory);
- assertThat(pathsInSource, hasItems(pathInSource1, pathInSource2, pathInSource3));
- }
-
- @Test
- public void shouldGetPathsInSourceGivenPathInRepositoryAndMultipleApplicableRulesReturningDuplicatePathsInSource() {
- Path pathInRepository = pathFactory.create("/a/b/c");
- Path pathInSource1 = pathFactory.create("/d/e/f");
- Path pathInSource23 = pathFactory.create("/d/e/g");
- stub(mockRule1.getPathInSource(pathInRepository, pathFactory)).toReturn(pathInSource1);
- stub(mockRule2.getPathInSource(pathInRepository, pathFactory)).toReturn(pathInSource23);
- stub(mockRule3.getPathInSource(pathInRepository, pathFactory)).toReturn(pathInSource23);
- Set<Path> pathsInSource = projection.getPathsInSource(pathInRepository, pathFactory);
- assertThat(pathsInSource, hasItems(pathInSource1, pathInSource23));
- }
-
- @Test( expected = IllegalArgumentException.class )
- public void shouldFailToGetPathsInRepositoryGivenValidPathAndNullPathFactory() {
- Path pathInSource = pathFactory.create("/a/b/c");
- projection.getPathsInRepository(pathInSource, null);
- }
-
- @Test
- public void shouldGetNoPathsInRepositoryGivenNullPathInSource() {
- Set<Path> pathsInRepository = projection.getPathsInRepository(null, pathFactory);
- assertThat(pathsInRepository.isEmpty(), is(true));
- }
-
- @Test
- public void shouldGetNoPathsInRepositoryGivenPathInSourceAndNoApplicableRules() {
- Path pathInSource = pathFactory.create("/d/e/f");
- stub(mockRule1.getPathInRepository(pathInSource, pathFactory)).toReturn(null);
- stub(mockRule2.getPathInRepository(pathInSource, pathFactory)).toReturn(null);
- stub(mockRule3.getPathInRepository(pathInSource, pathFactory)).toReturn(null);
- Set<Path> pathsInRepository = projection.getPathsInRepository(pathInSource, pathFactory);
- assertThat(pathsInRepository.isEmpty(), is(true));
- }
-
- @Test
- public void shouldGetPathInRepositoryGivenPathInSourceAndOneApplicableRules() {
- Path pathInRepository = pathFactory.create("/a/b/c");
- Path pathInSource = pathFactory.create("/d/e/f");
- stub(mockRule1.getPathInRepository(pathInSource, pathFactory)).toReturn(pathInRepository);
- stub(mockRule2.getPathInRepository(pathInSource, pathFactory)).toReturn(null);
- stub(mockRule3.getPathInRepository(pathInSource, pathFactory)).toReturn(null);
- Set<Path> pathsInRepository = projection.getPathsInRepository(pathInSource, pathFactory);
- assertThat(pathsInRepository, hasItems(pathInRepository));
- }
-
- @Test
- public void shouldGetPathsInRepositoryGivenPathInSourceAndMultipleApplicableRules() {
- Path pathInSource = pathFactory.create("/a/b/c");
- Path pathInRepository1 = pathFactory.create("/d/e/f");
- Path pathInRepository2 = pathFactory.create("/d/e/g");
- Path pathInRepository3 = pathFactory.create("/d/e/h");
- stub(mockRule1.getPathInRepository(pathInSource, pathFactory)).toReturn(pathInRepository1);
- stub(mockRule2.getPathInRepository(pathInSource, pathFactory)).toReturn(pathInRepository2);
- stub(mockRule3.getPathInRepository(pathInSource, pathFactory)).toReturn(pathInRepository3);
- Set<Path> pathsInRepository = projection.getPathsInRepository(pathInSource, pathFactory);
- assertThat(pathsInRepository, hasItems(pathInRepository1, pathInRepository2, pathInRepository3));
- }
-
- @Test
- public void shouldGetPathsInRepositoryGivenPathInSourceAndMultipleApplicableRulesReturningDuplicatePathsInRepository() {
- Path pathInSource = pathFactory.create("/a/b/c");
- Path pathInRepository1 = pathFactory.create("/d/e/f");
- Path pathInRepository23 = pathFactory.create("/d/e/g");
- stub(mockRule1.getPathInRepository(pathInSource, pathFactory)).toReturn(pathInRepository1);
- stub(mockRule2.getPathInRepository(pathInSource, pathFactory)).toReturn(pathInRepository23);
- stub(mockRule3.getPathInRepository(pathInSource, pathFactory)).toReturn(pathInRepository23);
- Set<Path> pathsInRepository = projection.getPathsInRepository(pathInSource, pathFactory);
- assertThat(pathsInRepository, hasItems(pathInRepository1, pathInRepository23));
- }
-
- @Test
- public void shouldParsePathRuleFromDefinitionWithNonRootRepositoryPathAndNonRootSourcePath() {
- Projection.Rule rule = Projection.parsePathRule("/a => /b", context);
- assertThat(rule, is(instanceOf(Projection.PathRule.class)));
- Projection.PathRule pathRule = (Projection.PathRule)rule;
- assertThat(pathRule.getPathInRepository(), is(pathFactory.create("/a")));
- assertThat(pathRule.getPathInSource(), is(pathFactory.create("/b")));
- }
-
- @Test
- public void shouldParsePathRuleFromDefinitionWithRootRepositoryPathAndNonRootSourcePath() {
- Projection.Rule rule = Projection.parsePathRule("/ => /b", context);
- assertThat(rule, is(instanceOf(Projection.PathRule.class)));
- Projection.PathRule pathRule = (Projection.PathRule)rule;
- assertThat(pathRule.getPathInRepository(), is(pathFactory.createRootPath()));
- assertThat(pathRule.getPathInSource(), is(pathFactory.create("/b")));
- }
-
- @Test
- public void shouldParsePathRuleFromDefinitionWithNonRootRepositoryPathAndRootSourcePath() {
- Projection.Rule rule = Projection.parsePathRule("/a => /", context);
- assertThat(rule, is(instanceOf(Projection.PathRule.class)));
- Projection.PathRule pathRule = (Projection.PathRule)rule;
- assertThat(pathRule.getPathInRepository(), is(pathFactory.create("/a")));
- assertThat(pathRule.getPathInSource(), is(pathFactory.createRootPath()));
- }
-
- @Test
- public void shouldParsePathRuleFromDefinitionWithRootRepositoryPathAndRootSourcePath() {
- Projection.Rule rule = Projection.parsePathRule("/ => /", context);
- assertThat(rule, is(instanceOf(Projection.PathRule.class)));
- Projection.PathRule pathRule = (Projection.PathRule)rule;
- assertThat(pathRule.getPathInRepository(), is(pathFactory.createRootPath()));
- assertThat(pathRule.getPathInSource(), is(pathFactory.createRootPath()));
- }
-
- @Test
- public void shouldNotParsePathRuleFromDefinitionWithRootRepositoryPathAndNoSourcePath() {
- assertThat(Projection.parsePathRule("/", context), is(nullValue()));
- }
-
- @Test
- public void shouldNotParsePathRuleFromDefinitionWithNonRootRepositoryPathAndNoSourcePath() {
- assertThat(Projection.parsePathRule("a/", context), is(nullValue()));
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/ContributionStatisticsTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/ContributionStatisticsTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/ContributionStatisticsTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,65 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.contribution;
-
-import static org.hamcrest.core.Is.is;
-import static org.junit.Assert.assertThat;
-import java.util.List;
-import org.junit.Test;
-
-/**
- * @author Randall Hauch
- */
-public class ContributionStatisticsTest {
-
- /**
- * Statistics should be recorded ONLY during testing within an IDE, and should <i>never</i> be committed to SVN with the
- * {@link ContributionStatistics#RECORD} set to <code>true</code>. This test verifies this, and thus will fail only during IDE
- * testing.
- */
- @Test
- public void shouldNotRecordStatisticsUnlessMeasuringStatisticsInLocalTests() {
- assertThat(ContributionStatistics.RECORD, is(false));
- }
-
- @Test
- public void shouldRecordTopFiveStatistics() {
- if (!ContributionStatistics.RECORD) return;
- for (int j = 0; j != 10; ++j) {
- for (int i = 0; i != j; ++i)
- ContributionStatistics.record(i, 1);
- }
- List<ContributionStatistics.Data> topData = ContributionStatistics.getTop(5);
- for (ContributionStatistics.Data data : topData) {
- System.out.println(data);
- }
- assertThat(topData.size(), is(5));
- assertThat(topData.get(0).getInstanceCount(), is(9l));
- assertThat(topData.get(1).getInstanceCount(), is(8l));
- assertThat(topData.get(2).getInstanceCount(), is(7l));
- assertThat(topData.get(3).getInstanceCount(), is(6l));
- assertThat(topData.get(4).getInstanceCount(), is(5l));
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/EmptyContributionTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/EmptyContributionTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/EmptyContributionTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,102 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.contribution;
-
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsNull.nullValue;
-import static org.hamcrest.core.IsSame.sameInstance;
-import static org.junit.Assert.assertThat;
-import static org.mockito.Mockito.mock;
-import org.jboss.dna.graph.property.DateTime;
-import org.jboss.dna.graph.property.Name;
-import org.jboss.dna.graph.property.basic.JodaDateTime;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * @author Randall Hauch
- */
-public class EmptyContributionTest {
-
- private static final long TWENTY_FOUR_HOURS_IN_MILLISECONDS = 24 * 60 * 60 * 1000;
- public static final DateTime NOW = new JodaDateTime(System.currentTimeMillis()).toUtcTimeZone();
- public static final DateTime YESTERDAY = new JodaDateTime(NOW.getMilliseconds() - TWENTY_FOUR_HOURS_IN_MILLISECONDS).toUtcTimeZone();
- public static final DateTime TOMORROW = new JodaDateTime(NOW.getMilliseconds() + TWENTY_FOUR_HOURS_IN_MILLISECONDS).toUtcTimeZone();
-
- private String sourceName;
- private String workspaceName;
- private EmptyContribution contribution;
- private DateTime expiration;
-
- @Before
- public void beforeEach() throws Exception {
- sourceName = "some source";
- workspaceName = "some workspace";
- expiration = TOMORROW;
- contribution = new EmptyContribution(sourceName, workspaceName, expiration);
- }
-
- @Test
- public void shouldAllowNullExpiration() {
- expiration = null;
- contribution = new EmptyContribution(sourceName, workspaceName, expiration);
- assertThat(contribution.getExpirationTimeInUtc(), is(nullValue()));
- }
-
- @Test( expected = IllegalArgumentException.class )
- public void shouldNotAllowExpirationTimeIfNotInUtcTime() {
- new EmptyContribution(sourceName, workspaceName, new JodaDateTime(System.currentTimeMillis(), "CST"));
- }
-
- @Test
- public void shouldHaveSameExpirationTimeSetInConstructor() {
- assertThat(contribution.getExpirationTimeInUtc(), is(sameInstance(expiration)));
- }
-
- @Test
- public void shouldHaveSameSourceNameSetInConstructor() {
- assertThat(contribution.getSourceName(), is(sourceName));
- }
-
- @Test
- public void shouldNotBeExpiredIfExpirationIsInTheFuture() {
- contribution = new EmptyContribution(sourceName, workspaceName, NOW);
- assertThat(contribution.isExpired(YESTERDAY), is(false));
- assertThat(contribution.isExpired(TOMORROW), is(true));
- }
-
- @Test
- public void shouldHaveNoChildren() {
- assertThat(contribution.getChildrenCount(), is(0));
- assertThat(contribution.getChildren().hasNext(), is(false));
- }
-
- @Test
- public void shouldHaveNoProperties() {
- assertThat(contribution.getPropertyCount(), is(0));
- assertThat(contribution.getProperties().hasNext(), is(false));
- Name propertyName = mock(Name.class); // doesn't matter what the name instance is
- assertThat(contribution.getProperty(propertyName), is(nullValue()));
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/MultiChildContributionTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/MultiChildContributionTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/MultiChildContributionTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,136 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.contribution;
-
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsNull.nullValue;
-import static org.hamcrest.core.IsSame.sameInstance;
-import static org.junit.Assert.assertThat;
-import static org.mockito.Mockito.mock;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.property.DateTime;
-import org.jboss.dna.graph.property.Name;
-import org.jboss.dna.graph.property.Path;
-import org.jboss.dna.graph.property.basic.JodaDateTime;
-import org.jboss.dna.graph.property.basic.RootPath;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * @author Randall Hauch
- */
-public class MultiChildContributionTest {
-
- private static final long TWENTY_FOUR_HOURS_IN_MILLISECONDS = 24 * 60 * 60 * 1000;
- public static final DateTime NOW = new JodaDateTime(System.currentTimeMillis()).toUtcTimeZone();
- public static final DateTime YESTERDAY = new JodaDateTime(NOW.getMilliseconds() - TWENTY_FOUR_HOURS_IN_MILLISECONDS).toUtcTimeZone();
- public static final DateTime TOMORROW = new JodaDateTime(NOW.getMilliseconds() + TWENTY_FOUR_HOURS_IN_MILLISECONDS).toUtcTimeZone();
-
- private String sourceName;
- private String workspaceName;
- private Path pathInSource;
- private MultiChildContribution contribution;
- private DateTime expiration;
- private List<Location> children;
- private Location child1;
- private Location child2;
- private Location child3;
-
- @Before
- public void beforeEach() throws Exception {
- sourceName = "some source";
- workspaceName = "some workspace";
- pathInSource = RootPath.INSTANCE;
- expiration = TOMORROW;
- child1 = mock(Location.class);
- child2 = mock(Location.class);
- child3 = mock(Location.class);
- children = Arrays.asList(child1, child2, child3);
- contribution = new MultiChildContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, children);
- }
-
- @Test
- public void shouldAllowNullExpiration() {
- expiration = null;
- contribution = new MultiChildContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, children);
- assertThat(contribution.getExpirationTimeInUtc(), is(nullValue()));
- }
-
- @Test( expected = IllegalArgumentException.class )
- public void shouldNotAllowExpirationTimeIfNotInUtcTime() {
- expiration = new JodaDateTime(System.currentTimeMillis(), "CST");
- contribution = new MultiChildContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, children);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldNotAllowNullChildren() {
- children = null;
- contribution = new MultiChildContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, children);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldNotAllowEmptyChildren() {
- children = Collections.emptyList();
- contribution = new MultiChildContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, children);
- }
-
- @Test
- public void shouldHaveSameExpirationTimeSetInConstructor() {
- assertThat(contribution.getExpirationTimeInUtc(), is(sameInstance(expiration)));
- }
-
- @Test
- public void shouldHaveSameSourceNameSetInConstructor() {
- assertThat(contribution.getSourceName(), is(sourceName));
- }
-
- @Test
- public void shouldNotBeExpiredIfExpirationIsInTheFuture() {
- contribution = new MultiChildContribution(sourceName, workspaceName, Location.create(pathInSource), NOW, children);
- assertThat(contribution.isExpired(YESTERDAY), is(false));
- assertThat(contribution.isExpired(TOMORROW), is(true));
- }
-
- @Test
- public void shouldHaveChildren() {
- assertThat(contribution.getChildrenCount(), is(3));
- Iterator<Location> iter = contribution.getChildren();
- assertThat(iter.next(), is(child1));
- assertThat(iter.next(), is(child2));
- assertThat(iter.next(), is(child3));
- assertThat(iter.hasNext(), is(false));
- }
-
- @Test
- public void shouldHaveNoProperties() {
- assertThat(contribution.getPropertyCount(), is(0));
- assertThat(contribution.getProperties().hasNext(), is(false));
- Name propertyName = mock(Name.class); // doesn't matter what the name instance is
- assertThat(contribution.getProperty(propertyName), is(nullValue()));
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/MultiPropertyContributionTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/MultiPropertyContributionTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/MultiPropertyContributionTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,148 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.contribution;
-
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsNull.nullValue;
-import static org.hamcrest.core.IsSame.sameInstance;
-import static org.junit.Assert.assertThat;
-import static org.junit.matchers.JUnitMatchers.hasItems;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.property.DateTime;
-import org.jboss.dna.graph.property.Path;
-import org.jboss.dna.graph.property.Property;
-import org.jboss.dna.graph.property.basic.BasicName;
-import org.jboss.dna.graph.property.basic.BasicSingleValueProperty;
-import org.jboss.dna.graph.property.basic.JodaDateTime;
-import org.jboss.dna.graph.property.basic.RootPath;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * @author Randall Hauch
- */
-public class MultiPropertyContributionTest {
-
- private static final long TWENTY_FOUR_HOURS_IN_MILLISECONDS = 24 * 60 * 60 * 1000;
- public static final DateTime NOW = new JodaDateTime(System.currentTimeMillis()).toUtcTimeZone();
- public static final DateTime YESTERDAY = new JodaDateTime(NOW.getMilliseconds() - TWENTY_FOUR_HOURS_IN_MILLISECONDS).toUtcTimeZone();
- public static final DateTime TOMORROW = new JodaDateTime(NOW.getMilliseconds() + TWENTY_FOUR_HOURS_IN_MILLISECONDS).toUtcTimeZone();
-
- private String sourceName;
- private String workspaceName;
- private Path pathInSource;
- private MultiPropertyContribution contribution;
- private DateTime expiration;
- private List<Property> properties;
- private Property property1;
- private Property property2;
- private Property property3;
-
- @Before
- public void beforeEach() throws Exception {
- sourceName = "some source";
- workspaceName = "some workspace";
- pathInSource = RootPath.INSTANCE;
- expiration = TOMORROW;
- String nsUri = "http://www.jboss.org/default";
- property1 = new BasicSingleValueProperty(new BasicName(nsUri, "property1"), "value1");
- property2 = new BasicSingleValueProperty(new BasicName(nsUri, "property2"), "value2");
- property3 = new BasicSingleValueProperty(new BasicName(nsUri, "property3"), "value3");
- properties = Arrays.asList(property1, property2, property3);
- contribution = new MultiPropertyContribution(sourceName, workspaceName, Location.create(pathInSource), expiration,
- properties);
- }
-
- @Test
- public void shouldAllowNullExpiration() {
- expiration = null;
- contribution = new MultiPropertyContribution(sourceName, workspaceName, Location.create(pathInSource), expiration,
- properties);
- assertThat(contribution.getExpirationTimeInUtc(), is(nullValue()));
- }
-
- @Test( expected = IllegalArgumentException.class )
- public void shouldNotAllowExpirationTimeIfNotInUtcTime() {
- expiration = new JodaDateTime(System.currentTimeMillis(), "CST");
- contribution = new MultiPropertyContribution(sourceName, workspaceName, Location.create(pathInSource), expiration,
- properties);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldNotAllowNullProperties() {
- properties = null;
- contribution = new MultiPropertyContribution(sourceName, workspaceName, Location.create(pathInSource), expiration,
- properties);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldNotAllowEmptyProperties() {
- properties = Collections.emptyList();
- contribution = new MultiPropertyContribution(sourceName, workspaceName, Location.create(pathInSource), expiration,
- properties);
- }
-
- @Test
- public void shouldHaveSameExpirationTimeSetInConstructor() {
- assertThat(contribution.getExpirationTimeInUtc(), is(sameInstance(expiration)));
- }
-
- @Test
- public void shouldHaveSameSourceNameSetInConstructor() {
- assertThat(contribution.getSourceName(), is(sourceName));
- }
-
- @Test
- public void shouldNotBeExpiredIfExpirationIsInTheFuture() {
- contribution = new MultiPropertyContribution(sourceName, workspaceName, Location.create(pathInSource), NOW, properties);
- assertThat(contribution.isExpired(YESTERDAY), is(false));
- assertThat(contribution.isExpired(TOMORROW), is(true));
- }
-
- @Test
- public void shouldHaveNoChildren() {
- assertThat(contribution.getChildrenCount(), is(0));
- assertThat(contribution.getChildren().hasNext(), is(false));
- }
-
- @Test
- public void shouldHaveProperties() {
- assertThat(contribution.getPropertyCount(), is(3));
- assertThat(contribution.getProperty(property1.getName()), is(sameInstance(property1)));
- assertThat(contribution.getProperty(property2.getName()), is(sameInstance(property2)));
- assertThat(contribution.getProperty(property3.getName()), is(sameInstance(property3)));
- assertThat(contribution.getProperty(new BasicName("http://www.jboss.org/x", "propertyX")), is(nullValue()));
- List<Property> properties = new ArrayList<Property>();
- for (Iterator<Property> iter = contribution.getProperties(); iter.hasNext();) {
- properties.add(iter.next());
- }
- assertThat(properties, hasItems(property1, property2, property3));
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/NodeContributionTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/NodeContributionTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/NodeContributionTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,175 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.contribution;
-
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsNull.nullValue;
-import static org.hamcrest.core.IsSame.sameInstance;
-import static org.junit.Assert.assertThat;
-import static org.junit.matchers.JUnitMatchers.hasItems;
-import static org.mockito.Mockito.mock;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.property.DateTime;
-import org.jboss.dna.graph.property.Path;
-import org.jboss.dna.graph.property.Property;
-import org.jboss.dna.graph.property.basic.BasicName;
-import org.jboss.dna.graph.property.basic.BasicSingleValueProperty;
-import org.jboss.dna.graph.property.basic.JodaDateTime;
-import org.jboss.dna.graph.property.basic.RootPath;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * @author Randall Hauch
- */
-public class NodeContributionTest {
-
- private static final long TWENTY_FOUR_HOURS_IN_MILLISECONDS = 24 * 60 * 60 * 1000;
- public static final DateTime NOW = new JodaDateTime(System.currentTimeMillis()).toUtcTimeZone();
- public static final DateTime YESTERDAY = new JodaDateTime(NOW.getMilliseconds() - TWENTY_FOUR_HOURS_IN_MILLISECONDS).toUtcTimeZone();
- public static final DateTime TOMORROW = new JodaDateTime(NOW.getMilliseconds() + TWENTY_FOUR_HOURS_IN_MILLISECONDS).toUtcTimeZone();
-
- private String sourceName;
- private String workspaceName;
- private Path pathInSource;
- private NodeContribution contribution;
- private DateTime expiration;
- private List<Property> properties;
- private Property property1;
- private Property property2;
- private Property property3;
- private List<Location> children;
- private Location child1;
- private Location child2;
- private Location child3;
-
- @Before
- public void beforeEach() throws Exception {
- sourceName = "some source";
- workspaceName = "some workspace";
- pathInSource = RootPath.INSTANCE;
- expiration = TOMORROW;
- String nsUri = "http://www.jboss.org/default";
- property1 = new BasicSingleValueProperty(new BasicName(nsUri, "property1"), "value1");
- property2 = new BasicSingleValueProperty(new BasicName(nsUri, "property2"), "value2");
- property3 = new BasicSingleValueProperty(new BasicName(nsUri, "property3"), "value3");
- properties = Arrays.asList(property1, property2, property3);
- child1 = mock(Location.class);
- child2 = mock(Location.class);
- child3 = mock(Location.class);
- children = Arrays.asList(child1, child2, child3);
- contribution = new NodeContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, properties,
- children);
- }
-
- @Test
- public void shouldAllowNullExpiration() {
- expiration = null;
- contribution = new NodeContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, properties,
- children);
- assertThat(contribution.getExpirationTimeInUtc(), is(nullValue()));
- }
-
- @Test( expected = IllegalArgumentException.class )
- public void shouldNotAllowExpirationTimeIfNotInUtcTime() {
- expiration = new JodaDateTime(System.currentTimeMillis(), "CST");
- contribution = new NodeContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, properties,
- children);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldNotAllowNullProperties() {
- properties = null;
- contribution = new NodeContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, properties,
- children);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldNotAllowEmptyProperties() {
- properties = Collections.emptyList();
- contribution = new NodeContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, properties,
- children);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldNotAllowNullChildren() {
- children = null;
- contribution = new NodeContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, properties,
- children);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldNotAllowEmptyChildren() {
- children = Collections.emptyList();
- contribution = new NodeContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, properties,
- children);
- }
-
- @Test
- public void shouldHaveSameExpirationTimeSetInConstructor() {
- assertThat(contribution.getExpirationTimeInUtc(), is(sameInstance(expiration)));
- }
-
- @Test
- public void shouldHaveSameSourceNameSetInConstructor() {
- assertThat(contribution.getSourceName(), is(sourceName));
- }
-
- @Test
- public void shouldNotBeExpiredIfExpirationIsInTheFuture() {
- contribution = new NodeContribution(sourceName, workspaceName, Location.create(pathInSource), NOW, properties, children);
- assertThat(contribution.isExpired(YESTERDAY), is(false));
- assertThat(contribution.isExpired(TOMORROW), is(true));
- }
-
- @Test
- public void shouldHaveChildren() {
- assertThat(contribution.getChildrenCount(), is(3));
- Iterator<Location> iter = contribution.getChildren();
- assertThat(iter.next(), is(child1));
- assertThat(iter.next(), is(child2));
- assertThat(iter.next(), is(child3));
- assertThat(iter.hasNext(), is(false));
- }
-
- @Test
- public void shouldHaveProperties() {
- assertThat(contribution.getPropertyCount(), is(3));
- assertThat(contribution.getProperty(property1.getName()), is(sameInstance(property1)));
- assertThat(contribution.getProperty(property2.getName()), is(sameInstance(property2)));
- assertThat(contribution.getProperty(property3.getName()), is(sameInstance(property3)));
- assertThat(contribution.getProperty(new BasicName("http://www.jboss.org/x", "propertyX")), is(nullValue()));
- List<Property> properties = new ArrayList<Property>();
- for (Iterator<Property> iter = contribution.getProperties(); iter.hasNext();) {
- properties.add(iter.next());
- }
- assertThat(properties, hasItems(property1, property2, property3));
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/OneChildContributionTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/OneChildContributionTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/OneChildContributionTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,119 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.contribution;
-
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsNull.nullValue;
-import static org.hamcrest.core.IsSame.sameInstance;
-import static org.junit.Assert.assertThat;
-import static org.mockito.Mockito.mock;
-import java.util.Iterator;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.property.DateTime;
-import org.jboss.dna.graph.property.Name;
-import org.jboss.dna.graph.property.Path;
-import org.jboss.dna.graph.property.basic.JodaDateTime;
-import org.jboss.dna.graph.property.basic.RootPath;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * @author Randall Hauch
- */
-public class OneChildContributionTest {
-
- private static final long TWENTY_FOUR_HOURS_IN_MILLISECONDS = 24 * 60 * 60 * 1000;
- public static final DateTime NOW = new JodaDateTime(System.currentTimeMillis()).toUtcTimeZone();
- public static final DateTime YESTERDAY = new JodaDateTime(NOW.getMilliseconds() - TWENTY_FOUR_HOURS_IN_MILLISECONDS).toUtcTimeZone();
- public static final DateTime TOMORROW = new JodaDateTime(NOW.getMilliseconds() + TWENTY_FOUR_HOURS_IN_MILLISECONDS).toUtcTimeZone();
-
- private String sourceName;
- private String workspaceName;
- private Path pathInSource;
- private OneChildContribution contribution;
- private DateTime expiration;
- private Location child1;
-
- @Before
- public void beforeEach() throws Exception {
- sourceName = "some source";
- workspaceName = "some workspace";
- pathInSource = RootPath.INSTANCE;
- expiration = TOMORROW;
- child1 = mock(Location.class);
- contribution = new OneChildContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, child1);
- }
-
- @Test
- public void shouldAllowNullExpiration() {
- expiration = null;
- contribution = new OneChildContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, child1);
- assertThat(contribution.getExpirationTimeInUtc(), is(nullValue()));
- }
-
- @Test( expected = IllegalArgumentException.class )
- public void shouldNotAllowExpirationTimeIfNotInUtcTime() {
- expiration = new JodaDateTime(System.currentTimeMillis(), "CST");
- contribution = new OneChildContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, child1);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldNotAllowNullChildren() {
- child1 = null;
- contribution = new OneChildContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, child1);
- }
-
- @Test
- public void shouldHaveSameExpirationTimeSetInConstructor() {
- assertThat(contribution.getExpirationTimeInUtc(), is(sameInstance(expiration)));
- }
-
- @Test
- public void shouldHaveSameSourceNameSetInConstructor() {
- assertThat(contribution.getSourceName(), is(sourceName));
- }
-
- @Test
- public void shouldNotBeExpiredIfExpirationIsInTheFuture() {
- contribution = new OneChildContribution(sourceName, workspaceName, Location.create(pathInSource), NOW, child1);
- assertThat(contribution.isExpired(YESTERDAY), is(false));
- assertThat(contribution.isExpired(TOMORROW), is(true));
- }
-
- @Test
- public void shouldHaveChildren() {
- assertThat(contribution.getChildrenCount(), is(1));
- Iterator<Location> iter = contribution.getChildren();
- assertThat(iter.next(), is(child1));
- assertThat(iter.hasNext(), is(false));
- }
-
- @Test
- public void shouldHaveNoProperties() {
- assertThat(contribution.getPropertyCount(), is(0));
- assertThat(contribution.getProperties().hasNext(), is(false));
- Name propertyName = mock(Name.class); // doesn't matter what the name instance is
- assertThat(contribution.getProperty(propertyName), is(nullValue()));
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/OnePropertyContributionTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/OnePropertyContributionTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/OnePropertyContributionTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,127 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.contribution;
-
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsNull.nullValue;
-import static org.hamcrest.core.IsSame.sameInstance;
-import static org.junit.Assert.assertThat;
-import static org.junit.matchers.JUnitMatchers.hasItems;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.property.DateTime;
-import org.jboss.dna.graph.property.Path;
-import org.jboss.dna.graph.property.Property;
-import org.jboss.dna.graph.property.basic.BasicName;
-import org.jboss.dna.graph.property.basic.BasicSingleValueProperty;
-import org.jboss.dna.graph.property.basic.JodaDateTime;
-import org.jboss.dna.graph.property.basic.RootPath;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * @author Randall Hauch
- */
-public class OnePropertyContributionTest {
-
- private static final long TWENTY_FOUR_HOURS_IN_MILLISECONDS = 24 * 60 * 60 * 1000;
- public static final DateTime NOW = new JodaDateTime(System.currentTimeMillis()).toUtcTimeZone();
- public static final DateTime YESTERDAY = new JodaDateTime(NOW.getMilliseconds() - TWENTY_FOUR_HOURS_IN_MILLISECONDS).toUtcTimeZone();
- public static final DateTime TOMORROW = new JodaDateTime(NOW.getMilliseconds() + TWENTY_FOUR_HOURS_IN_MILLISECONDS).toUtcTimeZone();
-
- private String sourceName;
- private String workspaceName;
- private Path pathInSource;
- private OnePropertyContribution contribution;
- private DateTime expiration;
- private Property property1;
-
- @Before
- public void beforeEach() throws Exception {
- sourceName = "some source";
- workspaceName = "some workspace";
- pathInSource = RootPath.INSTANCE;
- expiration = TOMORROW;
- String nsUri = "http://www.jboss.org/default";
- property1 = new BasicSingleValueProperty(new BasicName(nsUri, "property1"), "value1");
- contribution = new OnePropertyContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, property1);
- }
-
- @Test
- public void shouldAllowNullExpiration() {
- expiration = null;
- contribution = new OnePropertyContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, property1);
- assertThat(contribution.getExpirationTimeInUtc(), is(nullValue()));
- }
-
- @Test( expected = IllegalArgumentException.class )
- public void shouldNotAllowExpirationTimeIfNotInUtcTime() {
- expiration = new JodaDateTime(System.currentTimeMillis(), "CST");
- contribution = new OnePropertyContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, property1);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldNotAllowNullFirstProperty() {
- property1 = null;
- contribution = new OnePropertyContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, property1);
- }
-
- @Test
- public void shouldHaveSameExpirationTimeSetInConstructor() {
- assertThat(contribution.getExpirationTimeInUtc(), is(sameInstance(expiration)));
- }
-
- @Test
- public void shouldHaveSameSourceNameSetInConstructor() {
- assertThat(contribution.getSourceName(), is(sourceName));
- }
-
- @Test
- public void shouldNotBeExpiredIfExpirationIsInTheFuture() {
- contribution = new OnePropertyContribution(sourceName, workspaceName, Location.create(pathInSource), NOW, property1);
- assertThat(contribution.isExpired(YESTERDAY), is(false));
- assertThat(contribution.isExpired(TOMORROW), is(true));
- }
-
- @Test
- public void shouldHaveNoChildren() {
- assertThat(contribution.getChildrenCount(), is(0));
- assertThat(contribution.getChildren().hasNext(), is(false));
- }
-
- @Test
- public void shouldHaveProperties() {
- assertThat(contribution.getPropertyCount(), is(1));
- assertThat(contribution.getProperty(property1.getName()), is(sameInstance(property1)));
- assertThat(contribution.getProperty(new BasicName("http://www.jboss.org/x", "propertyX")), is(nullValue()));
- List<Property> properties = new ArrayList<Property>();
- for (Iterator<Property> iter = contribution.getProperties(); iter.hasNext();) {
- properties.add(iter.next());
- }
- assertThat(properties, hasItems(property1));
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/ThreePropertyContributionTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/ThreePropertyContributionTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/ThreePropertyContributionTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,152 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.contribution;
-
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsNull.nullValue;
-import static org.hamcrest.core.IsSame.sameInstance;
-import static org.junit.Assert.assertThat;
-import static org.junit.matchers.JUnitMatchers.hasItems;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.property.DateTime;
-import org.jboss.dna.graph.property.Path;
-import org.jboss.dna.graph.property.Property;
-import org.jboss.dna.graph.property.basic.BasicName;
-import org.jboss.dna.graph.property.basic.BasicSingleValueProperty;
-import org.jboss.dna.graph.property.basic.JodaDateTime;
-import org.jboss.dna.graph.property.basic.RootPath;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * @author Randall Hauch
- */
-public class ThreePropertyContributionTest {
-
- private static final long TWENTY_FOUR_HOURS_IN_MILLISECONDS = 24 * 60 * 60 * 1000;
- public static final DateTime NOW = new JodaDateTime(System.currentTimeMillis()).toUtcTimeZone();
- public static final DateTime YESTERDAY = new JodaDateTime(NOW.getMilliseconds() - TWENTY_FOUR_HOURS_IN_MILLISECONDS).toUtcTimeZone();
- public static final DateTime TOMORROW = new JodaDateTime(NOW.getMilliseconds() + TWENTY_FOUR_HOURS_IN_MILLISECONDS).toUtcTimeZone();
-
- private String sourceName;
- private String workspaceName;
- private Path pathInSource;
- private ThreePropertyContribution contribution;
- private DateTime expiration;
- private Property property1;
- private Property property2;
- private Property property3;
-
- @Before
- public void beforeEach() throws Exception {
- sourceName = "some source";
- workspaceName = "some workspace";
- pathInSource = RootPath.INSTANCE;
- expiration = TOMORROW;
- String nsUri = "http://www.jboss.org/default";
- property1 = new BasicSingleValueProperty(new BasicName(nsUri, "property1"), "value1");
- property2 = new BasicSingleValueProperty(new BasicName(nsUri, "property2"), "value2");
- property3 = new BasicSingleValueProperty(new BasicName(nsUri, "property3"), "value3");
- contribution = new ThreePropertyContribution(sourceName, workspaceName, Location.create(pathInSource), expiration,
- property1, property2, property3);
- }
-
- @Test
- public void shouldAllowNullExpiration() {
- expiration = null;
- contribution = new ThreePropertyContribution(sourceName, workspaceName, Location.create(pathInSource), expiration,
- property1, property2, property3);
- assertThat(contribution.getExpirationTimeInUtc(), is(nullValue()));
- }
-
- @Test( expected = IllegalArgumentException.class )
- public void shouldNotAllowExpirationTimeIfNotInUtcTime() {
- expiration = new JodaDateTime(System.currentTimeMillis(), "CST");
- contribution = new ThreePropertyContribution(sourceName, workspaceName, Location.create(pathInSource), expiration,
- property1, property2, property3);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldNotAllowNullFirstProperty() {
- property1 = null;
- contribution = new ThreePropertyContribution(sourceName, workspaceName, Location.create(pathInSource), expiration,
- property1, property2, property3);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldNotAllowNullSecondProperty() {
- property2 = null;
- contribution = new ThreePropertyContribution(sourceName, workspaceName, Location.create(pathInSource), expiration,
- property1, property2, property3);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldNotAllowNullThirdProperty() {
- property3 = null;
- contribution = new ThreePropertyContribution(sourceName, workspaceName, Location.create(pathInSource), expiration,
- property1, property2, property3);
- }
-
- @Test
- public void shouldHaveSameExpirationTimeSetInConstructor() {
- assertThat(contribution.getExpirationTimeInUtc(), is(sameInstance(expiration)));
- }
-
- @Test
- public void shouldHaveSameSourceNameSetInConstructor() {
- assertThat(contribution.getSourceName(), is(sourceName));
- }
-
- @Test
- public void shouldNotBeExpiredIfExpirationIsInTheFuture() {
- contribution = new ThreePropertyContribution(sourceName, workspaceName, Location.create(pathInSource), NOW, property1,
- property2, property3);
- assertThat(contribution.isExpired(YESTERDAY), is(false));
- assertThat(contribution.isExpired(TOMORROW), is(true));
- }
-
- @Test
- public void shouldHaveNoChildren() {
- assertThat(contribution.getChildrenCount(), is(0));
- assertThat(contribution.getChildren().hasNext(), is(false));
- }
-
- @Test
- public void shouldHaveProperties() {
- assertThat(contribution.getPropertyCount(), is(3));
- assertThat(contribution.getProperty(property1.getName()), is(sameInstance(property1)));
- assertThat(contribution.getProperty(property2.getName()), is(sameInstance(property2)));
- assertThat(contribution.getProperty(property3.getName()), is(sameInstance(property3)));
- assertThat(contribution.getProperty(new BasicName("http://www.jboss.org/x", "propertyX")), is(nullValue()));
- List<Property> properties = new ArrayList<Property>();
- for (Iterator<Property> iter = contribution.getProperties(); iter.hasNext();) {
- properties.add(iter.next());
- }
- assertThat(properties, hasItems(property1, property2, property3));
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/TwoChildContributionTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/TwoChildContributionTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/TwoChildContributionTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,128 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.contribution;
-
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsNull.nullValue;
-import static org.hamcrest.core.IsSame.sameInstance;
-import static org.junit.Assert.assertThat;
-import static org.mockito.Mockito.mock;
-import java.util.Iterator;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.property.DateTime;
-import org.jboss.dna.graph.property.Name;
-import org.jboss.dna.graph.property.Path;
-import org.jboss.dna.graph.property.basic.JodaDateTime;
-import org.jboss.dna.graph.property.basic.RootPath;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * @author Randall Hauch
- */
-public class TwoChildContributionTest {
-
- private static final long TWENTY_FOUR_HOURS_IN_MILLISECONDS = 24 * 60 * 60 * 1000;
- public static final DateTime NOW = new JodaDateTime(System.currentTimeMillis()).toUtcTimeZone();
- public static final DateTime YESTERDAY = new JodaDateTime(NOW.getMilliseconds() - TWENTY_FOUR_HOURS_IN_MILLISECONDS).toUtcTimeZone();
- public static final DateTime TOMORROW = new JodaDateTime(NOW.getMilliseconds() + TWENTY_FOUR_HOURS_IN_MILLISECONDS).toUtcTimeZone();
-
- private String sourceName;
- private String workspaceName;
- private Path pathInSource;
- private TwoChildContribution contribution;
- private DateTime expiration;
- private Location child1;
- private Location child2;
-
- @Before
- public void beforeEach() throws Exception {
- sourceName = "some source";
- workspaceName = "some workspace";
- pathInSource = RootPath.INSTANCE;
- expiration = TOMORROW;
- child1 = mock(Location.class);
- child2 = mock(Location.class);
- contribution = new TwoChildContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, child1, child2);
- }
-
- @Test
- public void shouldAllowNullExpiration() {
- expiration = null;
- contribution = new TwoChildContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, child1, child2);
- assertThat(contribution.getExpirationTimeInUtc(), is(nullValue()));
- }
-
- @Test( expected = IllegalArgumentException.class )
- public void shouldNotAllowExpirationTimeIfNotInUtcTime() {
- expiration = new JodaDateTime(System.currentTimeMillis(), "CST");
- contribution = new TwoChildContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, child1, child2);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldNotAllowNullFirstChild() {
- child1 = null;
- contribution = new TwoChildContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, child1, child2);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldNotAllowNullSecondChild() {
- child2 = null;
- contribution = new TwoChildContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, child1, child2);
- }
-
- @Test
- public void shouldHaveSameExpirationTimeSetInConstructor() {
- assertThat(contribution.getExpirationTimeInUtc(), is(sameInstance(expiration)));
- }
-
- @Test
- public void shouldHaveSameSourceNameSetInConstructor() {
- assertThat(contribution.getSourceName(), is(sourceName));
- }
-
- @Test
- public void shouldNotBeExpiredIfExpirationIsInTheFuture() {
- contribution = new TwoChildContribution(sourceName, workspaceName, Location.create(pathInSource), NOW, child1, child2);
- assertThat(contribution.isExpired(YESTERDAY), is(false));
- assertThat(contribution.isExpired(TOMORROW), is(true));
- }
-
- @Test
- public void shouldHaveChildren() {
- assertThat(contribution.getChildrenCount(), is(2));
- Iterator<Location> iter = contribution.getChildren();
- assertThat(iter.next(), is(child1));
- assertThat(iter.next(), is(child2));
- assertThat(iter.hasNext(), is(false));
- }
-
- @Test
- public void shouldHaveNoProperties() {
- assertThat(contribution.getPropertyCount(), is(0));
- assertThat(contribution.getProperties().hasNext(), is(false));
- Name propertyName = mock(Name.class); // doesn't matter what the name instance is
- assertThat(contribution.getProperty(propertyName), is(nullValue()));
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/TwoPropertyContributionTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/TwoPropertyContributionTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/contribution/TwoPropertyContributionTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,142 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.contribution;
-
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsNull.nullValue;
-import static org.hamcrest.core.IsSame.sameInstance;
-import static org.junit.Assert.assertThat;
-import static org.junit.matchers.JUnitMatchers.hasItems;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.property.DateTime;
-import org.jboss.dna.graph.property.Path;
-import org.jboss.dna.graph.property.Property;
-import org.jboss.dna.graph.property.basic.BasicName;
-import org.jboss.dna.graph.property.basic.BasicSingleValueProperty;
-import org.jboss.dna.graph.property.basic.JodaDateTime;
-import org.jboss.dna.graph.property.basic.RootPath;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * @author Randall Hauch
- */
-public class TwoPropertyContributionTest {
-
- private static final long TWENTY_FOUR_HOURS_IN_MILLISECONDS = 24 * 60 * 60 * 1000;
- public static final DateTime NOW = new JodaDateTime(System.currentTimeMillis()).toUtcTimeZone();
- public static final DateTime YESTERDAY = new JodaDateTime(NOW.getMilliseconds() - TWENTY_FOUR_HOURS_IN_MILLISECONDS).toUtcTimeZone();
- public static final DateTime TOMORROW = new JodaDateTime(NOW.getMilliseconds() + TWENTY_FOUR_HOURS_IN_MILLISECONDS).toUtcTimeZone();
-
- private String sourceName;
- private String workspaceName;
- private Path pathInSource;
- private TwoPropertyContribution contribution;
- private DateTime expiration;
- private Property property1;
- private Property property2;
-
- @Before
- public void beforeEach() throws Exception {
- sourceName = "some source";
- workspaceName = "some workspace";
- pathInSource = RootPath.INSTANCE;
- expiration = TOMORROW;
- String nsUri = "http://www.jboss.org/default";
- property1 = new BasicSingleValueProperty(new BasicName(nsUri, "property1"), "value1");
- property2 = new BasicSingleValueProperty(new BasicName(nsUri, "property2"), "value2");
- contribution = new TwoPropertyContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, property1,
- property2);
- }
-
- @Test
- public void shouldAllowNullExpiration() {
- expiration = null;
- contribution = new TwoPropertyContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, property1,
- property2);
- assertThat(contribution.getExpirationTimeInUtc(), is(nullValue()));
- }
-
- @Test( expected = IllegalArgumentException.class )
- public void shouldNotAllowExpirationTimeIfNotInUtcTime() {
- expiration = new JodaDateTime(System.currentTimeMillis(), "CST");
- contribution = new TwoPropertyContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, property1,
- property2);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldNotAllowNullFirstProperty() {
- property1 = null;
- contribution = new TwoPropertyContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, property1,
- property2);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldNotAllowNullSecondProperty() {
- property2 = null;
- contribution = new TwoPropertyContribution(sourceName, workspaceName, Location.create(pathInSource), expiration, property1,
- property2);
- }
-
- @Test
- public void shouldHaveSameExpirationTimeSetInConstructor() {
- assertThat(contribution.getExpirationTimeInUtc(), is(sameInstance(expiration)));
- }
-
- @Test
- public void shouldHaveSameSourceNameSetInConstructor() {
- assertThat(contribution.getSourceName(), is(sourceName));
- }
-
- @Test
- public void shouldNotBeExpiredIfExpirationIsInTheFuture() {
- contribution = new TwoPropertyContribution(sourceName, workspaceName, Location.create(pathInSource), NOW, property1,
- property2);
- assertThat(contribution.isExpired(YESTERDAY), is(false));
- assertThat(contribution.isExpired(TOMORROW), is(true));
- }
-
- @Test
- public void shouldHaveNoChildren() {
- assertThat(contribution.getChildrenCount(), is(0));
- assertThat(contribution.getChildren().hasNext(), is(false));
- }
-
- @Test
- public void shouldHaveProperties() {
- assertThat(contribution.getPropertyCount(), is(2));
- assertThat(contribution.getProperty(property1.getName()), is(sameInstance(property1)));
- assertThat(contribution.getProperty(property2.getName()), is(sameInstance(property2)));
- assertThat(contribution.getProperty(new BasicName("http://www.jboss.org/x", "propertyX")), is(nullValue()));
- List<Property> properties = new ArrayList<Property>();
- for (Iterator<Property> iter = contribution.getProperties(); iter.hasNext();) {
- properties.add(iter.next());
- }
- assertThat(properties, hasItems(property1, property2));
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/FederatedNodeTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/FederatedNodeTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/FederatedNodeTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,103 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.merge;
-
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsNull.nullValue;
-import static org.hamcrest.core.IsSame.sameInstance;
-import static org.junit.Assert.assertThat;
-import static org.mockito.Mockito.mock;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.property.Path;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.MockitoAnnotations;
-
-/**
- * @author Randall Hauch
- */
-public class FederatedNodeTest {
-
- private FederatedNode node;
- private Location location;
-
- @Before
- public void beforeEach() {
- MockitoAnnotations.initMocks(this);
- location = Location.create(mock(Path.class));
- node = new FederatedNode(location, "workspace");
- }
-
- @Test
- public void shouldHaveSamePathSuppliedToConstructor() {
- assertThat(node.at(), is(sameInstance(location)));
- assertThat(node.getActualLocationOfNode(), is(sameInstance(location)));
- }
-
- @Test
- public void shouldNotHaveMergePlanUponConstruction() {
- assertThat(node.getMergePlan(), is(nullValue()));
- }
-
- @Test
- public void shouldAllowSettingMergePlan() {
- MergePlan mergePlan = mock(MergePlan.class);
- node.setMergePlan(mergePlan);
- assertThat(node.getMergePlan(), is(sameInstance(mergePlan)));
- }
-
- // @Test
- // public void shouldHaveDefaultConflictBehaviorUponConstruction() {
- // assertThat(node.getConflictBehavior(), is(FederatedNode.DEFAULT_CONFLICT_BEHAVIOR));
- // }
- //
- // @Test
- // public void shouldAllowSettingConflictBehavior() {
- // NodeConflictBehavior behavior = NodeConflictBehavior.REPLACE;
- // assertThat(node.getConflictBehavior(), is(not(behavior)));
- // node.setConflictBehavior(behavior);
- // assertThat(node.getConflictBehavior(), is(behavior));
- // }
- //
- // @Test
- // public void shouldAllowSettingConflictBehaviorToNull() {
- // node.setConflictBehavior(null);
- // assertThat(node.getConflictBehavior(), is(FederatedNode.DEFAULT_CONFLICT_BEHAVIOR));
- //
- // // Set to something that is not the default, then set to null
- // NodeConflictBehavior behavior = NodeConflictBehavior.REPLACE;
- // assertThat(node.getConflictBehavior(), is(not(behavior)));
- // node.setConflictBehavior(behavior);
- // assertThat(node.getConflictBehavior(), is(behavior));
- // node.setConflictBehavior(null);
- // assertThat(node.getConflictBehavior(), is(FederatedNode.DEFAULT_CONFLICT_BEHAVIOR));
- // }
-
- @Test
- public void shouldHaveHashCodeThatIsTheHashCodeOfTheLocation() {
- node = new FederatedNode(location, "workspace");
- assertThat(node.hashCode(), is(location.hashCode()));
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/FiveContributionMergePlanTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/FiveContributionMergePlanTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/FiveContributionMergePlanTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,135 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.merge;
-
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsNull.nullValue;
-import static org.hamcrest.core.IsSame.sameInstance;
-import static org.junit.Assert.assertThat;
-import static org.junit.matchers.JUnitMatchers.hasItems;
-import static org.mockito.Mockito.stub;
-import org.jboss.dna.connector.federation.contribution.Contribution;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.MockitoAnnotations;
-import org.mockito.MockitoAnnotations.Mock;
-
-/**
- * @author Randall Hauch
- */
-public class FiveContributionMergePlanTest {
-
- private FiveContributionMergePlan plan;
- @Mock
- private Contribution contribution1;
- @Mock
- private Contribution contribution2;
- @Mock
- private Contribution contribution3;
- @Mock
- private Contribution contribution4;
- @Mock
- private Contribution contribution5;
-
- @Before
- public void beforeEach() throws Exception {
- MockitoAnnotations.initMocks(this);
- stub(contribution1.getSourceName()).toReturn("source1");
- stub(contribution2.getSourceName()).toReturn("source2");
- stub(contribution3.getSourceName()).toReturn("source3");
- stub(contribution4.getSourceName()).toReturn("source4");
- stub(contribution5.getSourceName()).toReturn("source5");
- plan = new FiveContributionMergePlan(contribution1, contribution2, contribution3, contribution4, contribution5);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldFailWhenCreatingMergePlanWithNullFirstContribution() {
- contribution1 = null;
- plan = new FiveContributionMergePlan(contribution1, contribution2, contribution3, contribution4, contribution5);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldFailWhenCreatingMergePlanWithNullSecondContribution() {
- contribution2 = null;
- plan = new FiveContributionMergePlan(contribution1, contribution2, contribution3, contribution4, contribution5);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldFailWhenCreatingMergePlanWithNullThirdContribution() {
- contribution3 = null;
- plan = new FiveContributionMergePlan(contribution1, contribution2, contribution3, contribution4, contribution5);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldFailWhenCreatingMergePlanWithNullFourthContribution() {
- contribution4 = null;
- plan = new FiveContributionMergePlan(contribution1, contribution2, contribution3, contribution4, contribution5);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldFailWhenCreatingMergePlanWithNullFifthContribution() {
- contribution5 = null;
- plan = new FiveContributionMergePlan(contribution1, contribution2, contribution3, contribution4, contribution5);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldFailWhenCreatingMergePlanWithMultipleContributionsFromTheSameSource() {
- stub(contribution5.getSourceName()).toReturn("source1");
- plan = new FiveContributionMergePlan(contribution1, contribution2, contribution3, contribution4, contribution5);
- }
-
- @Test
- public void shouldReturnIteratorOverContributions() {
- assertThat(plan, hasItems(contribution1, contribution2, contribution3, contribution4, contribution5));
- }
-
- @Test
- public void shouldHaveContributionCountOfFive() {
- assertThat(plan.getContributionCount(), is(5));
- }
-
- @Test
- public void shouldReturnContributionWhenSuppliedNameMatchesContributionsSourceName() {
- assertThat(plan.getContributionFrom(contribution1.getSourceName()), is(sameInstance(contribution1)));
- assertThat(plan.getContributionFrom(contribution2.getSourceName()), is(sameInstance(contribution2)));
- assertThat(plan.getContributionFrom(contribution3.getSourceName()), is(sameInstance(contribution3)));
- assertThat(plan.getContributionFrom(contribution4.getSourceName()), is(sameInstance(contribution4)));
- assertThat(plan.getContributionFrom(contribution5.getSourceName()), is(sameInstance(contribution5)));
- }
-
- @Test
- public void shouldReturnNullContributionWhenSuppliedNameDoesNotMatchContributionsSourceName() {
- assertThat(plan.getContributionFrom("other source"), is(nullValue()));
- }
-
- @Test
- public void shouldCompareSourceNameOfContributionsWhenCallingIsSource() {
- assertThat(plan.isSource(contribution1.getSourceName()), is(true));
- assertThat(plan.isSource(contribution2.getSourceName()), is(true));
- assertThat(plan.isSource(contribution3.getSourceName()), is(true));
- assertThat(plan.isSource(contribution4.getSourceName()), is(true));
- assertThat(plan.isSource(contribution5.getSourceName()), is(true));
- assertThat(plan.isSource("other source"), is(false));
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/FourContributionMergePlanTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/FourContributionMergePlanTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/FourContributionMergePlanTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,123 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.merge;
-
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsNull.nullValue;
-import static org.hamcrest.core.IsSame.sameInstance;
-import static org.junit.Assert.assertThat;
-import static org.junit.matchers.JUnitMatchers.hasItems;
-import static org.mockito.Mockito.stub;
-import org.jboss.dna.connector.federation.contribution.Contribution;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.MockitoAnnotations;
-import org.mockito.MockitoAnnotations.Mock;
-
-/**
- * @author Randall Hauch
- */
-public class FourContributionMergePlanTest {
-
- private FourContributionMergePlan plan;
- @Mock
- private Contribution contribution1;
- @Mock
- private Contribution contribution2;
- @Mock
- private Contribution contribution3;
- @Mock
- private Contribution contribution4;
-
- @Before
- public void beforeEach() throws Exception {
- MockitoAnnotations.initMocks(this);
- stub(contribution1.getSourceName()).toReturn("source1");
- stub(contribution2.getSourceName()).toReturn("source2");
- stub(contribution3.getSourceName()).toReturn("source3");
- stub(contribution4.getSourceName()).toReturn("source4");
- plan = new FourContributionMergePlan(contribution1, contribution2, contribution3, contribution4);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldFailWhenCreatingMergePlanWithNullFirstContribution() {
- contribution1 = null;
- plan = new FourContributionMergePlan(contribution1, contribution2, contribution3, contribution4);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldFailWhenCreatingMergePlanWithNullSecondContribution() {
- contribution2 = null;
- plan = new FourContributionMergePlan(contribution1, contribution2, contribution3, contribution4);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldFailWhenCreatingMergePlanWithNullThirdContribution() {
- contribution3 = null;
- plan = new FourContributionMergePlan(contribution1, contribution2, contribution3, contribution4);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldFailWhenCreatingMergePlanWithNullFourthContribution() {
- contribution4 = null;
- plan = new FourContributionMergePlan(contribution1, contribution2, contribution3, contribution4);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldFailWhenCreatingMergePlanWithMultipleContributionsFromTheSameSource() {
- plan = new FourContributionMergePlan(contribution1, contribution1, contribution3, contribution4);
- }
-
- @Test
- public void shouldReturnIteratorOverContributions() {
- assertThat(plan, hasItems(contribution1, contribution2, contribution3, contribution4));
- }
-
- @Test
- public void shouldHaveContributionCountOfFour() {
- assertThat(plan.getContributionCount(), is(4));
- }
-
- @Test
- public void shouldReturnContributionWhenSuppliedNameMatchesContributionsSourceName() {
- assertThat(plan.getContributionFrom(contribution1.getSourceName()), is(sameInstance(contribution1)));
- assertThat(plan.getContributionFrom(contribution2.getSourceName()), is(sameInstance(contribution2)));
- assertThat(plan.getContributionFrom(contribution3.getSourceName()), is(sameInstance(contribution3)));
- assertThat(plan.getContributionFrom(contribution4.getSourceName()), is(sameInstance(contribution4)));
- }
-
- @Test
- public void shouldReturnNullContributionWhenSuppliedNameDoesNotMatchContributionsSourceName() {
- assertThat(plan.getContributionFrom("other source"), is(nullValue()));
- }
-
- @Test
- public void shouldCompareSourceNameOfContributionsWhenCallingIsSource() {
- assertThat(plan.isSource(contribution1.getSourceName()), is(true));
- assertThat(plan.isSource(contribution2.getSourceName()), is(true));
- assertThat(plan.isSource(contribution3.getSourceName()), is(true));
- assertThat(plan.isSource(contribution4.getSourceName()), is(true));
- assertThat(plan.isSource("other source"), is(false));
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/MergePlanTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/MergePlanTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/MergePlanTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,332 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.merge;
-
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsInstanceOf.instanceOf;
-import static org.hamcrest.core.IsNot.not;
-import static org.hamcrest.core.IsNull.nullValue;
-import static org.hamcrest.core.IsSame.sameInstance;
-import static org.junit.Assert.assertThat;
-import static org.junit.matchers.JUnitMatchers.hasItems;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.stub;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyNoMoreInteractions;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import org.jboss.dna.connector.federation.contribution.Contribution;
-import org.jboss.dna.graph.property.DateTime;
-import org.jboss.dna.graph.property.Name;
-import org.jboss.dna.graph.property.Property;
-import org.jboss.dna.graph.property.basic.BasicEmptyProperty;
-import org.jboss.dna.graph.property.basic.BasicName;
-import org.jboss.dna.graph.property.basic.JodaDateTime;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * @author Randall Hauch
- */
-public class MergePlanTest {
-
- private MergePlan plan;
- private List<Contribution> contributions;
-
- @Before
- public void beforeEach() throws Exception {
- contributions = new ArrayList<Contribution>();
- }
-
- protected void addContributions( int number ) {
- for (int i = 0; i != number; ++i) {
- Contribution contribution = mock(Contribution.class);
- stub(contribution.getSourceName()).toReturn("source " + i);
- contributions.add(contribution);
- }
- }
-
- @Test( expected = IllegalArgumentException.class )
- public void shouldFailToCreateMergePlanFromArrayWithNoContributions() {
- MergePlan.create(contributions.toArray(new Contribution[contributions.size()]));
- }
-
- @Test
- public void shouldCreateMergePlanFromArrayWithOneContribution() {
- addContributions(1);
- plan = MergePlan.create(contributions.toArray(new Contribution[contributions.size()]));
- assertThat(plan, is(instanceOf(MergePlan.class)));
- assertThat(plan, is(instanceOf(OneContributionMergePlan.class)));
- assertThat(plan.getContributionCount(), is(1));
- assertThat(plan, hasItems(contributions.toArray(new Contribution[contributions.size()])));
- }
-
- @Test
- public void shouldCreateMergePlanFromArrayWithTwoContributions() {
- addContributions(2);
- plan = MergePlan.create(contributions.toArray(new Contribution[contributions.size()]));
- assertThat(plan, is(instanceOf(MergePlan.class)));
- assertThat(plan, is(instanceOf(TwoContributionMergePlan.class)));
- assertThat(plan.getContributionCount(), is(2));
- assertThat(plan, hasItems(contributions.toArray(new Contribution[contributions.size()])));
- }
-
- @Test
- public void shouldCreateMergePlanFromArrayWithThreeContributions() {
- addContributions(3);
- plan = MergePlan.create(contributions.toArray(new Contribution[contributions.size()]));
- assertThat(plan, is(instanceOf(MergePlan.class)));
- assertThat(plan, is(instanceOf(ThreeContributionMergePlan.class)));
- assertThat(plan.getContributionCount(), is(3));
- assertThat(plan, hasItems(contributions.toArray(new Contribution[contributions.size()])));
- }
-
- @Test
- public void shouldCreateMergePlanFromArrayWithFourContributions() {
- addContributions(4);
- plan = MergePlan.create(contributions.toArray(new Contribution[contributions.size()]));
- assertThat(plan, is(instanceOf(MergePlan.class)));
- assertThat(plan, is(instanceOf(FourContributionMergePlan.class)));
- assertThat(plan.getContributionCount(), is(4));
- assertThat(plan, hasItems(contributions.toArray(new Contribution[contributions.size()])));
- }
-
- @Test
- public void shouldCreateMergePlanFromArrayWithFiveContributions() {
- addContributions(5);
- plan = MergePlan.create(contributions.toArray(new Contribution[contributions.size()]));
- assertThat(plan, is(instanceOf(MergePlan.class)));
- assertThat(plan, is(instanceOf(FiveContributionMergePlan.class)));
- assertThat(plan.getContributionCount(), is(5));
- assertThat(plan, hasItems(contributions.toArray(new Contribution[contributions.size()])));
- }
-
- @Test
- public void shouldCreateMergePlanFromArrayWithSixContributions() {
- addContributions(6);
- plan = MergePlan.create(contributions.toArray(new Contribution[contributions.size()]));
- assertThat(plan, is(instanceOf(MergePlan.class)));
- assertThat(plan, is(instanceOf(MultipleContributionMergePlan.class)));
- assertThat(plan.getContributionCount(), is(6));
- assertThat(plan, hasItems(contributions.toArray(new Contribution[contributions.size()])));
- }
-
- @Test
- public void shouldCreateMergePlanFromArrayWithManyContributions() {
- addContributions(100);
- plan = MergePlan.create(contributions.toArray(new Contribution[contributions.size()]));
- assertThat(plan, is(instanceOf(MergePlan.class)));
- assertThat(plan, is(instanceOf(MultipleContributionMergePlan.class)));
- assertThat(plan.getContributionCount(), is(100));
- assertThat(plan, hasItems(contributions.toArray(new Contribution[contributions.size()])));
- }
-
- @Test( expected = IllegalArgumentException.class )
- public void shouldFailToCreateMergePlanFromListWithNoContributions() {
- MergePlan.create(contributions);
- }
-
- @Test
- public void shouldCreateMergePlanFromListWithOneContribution() {
- addContributions(1);
- plan = MergePlan.create(contributions);
- assertThat(plan, is(instanceOf(MergePlan.class)));
- assertThat(plan, is(instanceOf(OneContributionMergePlan.class)));
- assertThat(plan.getContributionCount(), is(1));
- assertThat(plan, hasItems(contributions.toArray(new Contribution[contributions.size()])));
- }
-
- @Test
- public void shouldCreateMergePlanFromListWithTwoContributions() {
- addContributions(2);
- plan = MergePlan.create(contributions);
- assertThat(plan, is(instanceOf(MergePlan.class)));
- assertThat(plan, is(instanceOf(TwoContributionMergePlan.class)));
- assertThat(plan.getContributionCount(), is(2));
- assertThat(plan, hasItems(contributions.toArray(new Contribution[contributions.size()])));
- }
-
- @Test
- public void shouldCreateMergePlanFromListWithThreeContributions() {
- addContributions(3);
- plan = MergePlan.create(contributions);
- assertThat(plan, is(instanceOf(MergePlan.class)));
- assertThat(plan, is(instanceOf(ThreeContributionMergePlan.class)));
- assertThat(plan.getContributionCount(), is(3));
- assertThat(plan, hasItems(contributions.toArray(new Contribution[contributions.size()])));
- }
-
- @Test
- public void shouldCreateMergePlanFromListWithFourContributions() {
- addContributions(4);
- plan = MergePlan.create(contributions);
- assertThat(plan, is(instanceOf(MergePlan.class)));
- assertThat(plan, is(instanceOf(FourContributionMergePlan.class)));
- assertThat(plan.getContributionCount(), is(4));
- assertThat(plan, hasItems(contributions.toArray(new Contribution[contributions.size()])));
- }
-
- @Test
- public void shouldCreateMergePlanFromListWithFiveContributions() {
- addContributions(5);
- plan = MergePlan.create(contributions);
- assertThat(plan, is(instanceOf(MergePlan.class)));
- assertThat(plan, is(instanceOf(FiveContributionMergePlan.class)));
- assertThat(plan.getContributionCount(), is(5));
- assertThat(plan, hasItems(contributions.toArray(new Contribution[contributions.size()])));
- }
-
- @Test
- public void shouldCreateMergePlanFromListWithSixContributions() {
- addContributions(6);
- plan = MergePlan.create(contributions);
- assertThat(plan, is(instanceOf(MergePlan.class)));
- assertThat(plan, is(instanceOf(MultipleContributionMergePlan.class)));
- assertThat(plan.getContributionCount(), is(6));
- assertThat(plan, hasItems(contributions.toArray(new Contribution[contributions.size()])));
- }
-
- @Test
- public void shouldCreateMergePlanFromListWithManyContributions() {
- addContributions(100);
- plan = MergePlan.create(contributions);
- assertThat(plan, is(instanceOf(MergePlan.class)));
- assertThat(plan, is(instanceOf(MultipleContributionMergePlan.class)));
- assertThat(plan.getContributionCount(), is(100));
- assertThat(plan, hasItems(contributions.toArray(new Contribution[contributions.size()])));
- }
-
- @Test
- public void shouldComputeOnlyOnceTheExpirationTimeFromTheContributions() {
- DateTime nowInUtc = new JodaDateTime().toUtcTimeZone();
- DateTime nowPlus100InUtc = nowInUtc.plusSeconds(100);
- DateTime nowPlus200InUtc = nowInUtc.plusSeconds(200);
-
- addContributions(2);
- stub(contributions.get(0).getExpirationTimeInUtc()).toReturn(nowPlus100InUtc);
- stub(contributions.get(1).getExpirationTimeInUtc()).toReturn(nowPlus200InUtc);
-
- plan = MergePlan.create(contributions);
- DateTime expires = plan.getExpirationTimeInUtc();
- assertThat(expires, is(nowPlus100InUtc));
- verify(contributions.get(0), times(1)).getSourceName();
- verify(contributions.get(1), times(1)).getSourceName();
- verify(contributions.get(0), times(1)).getExpirationTimeInUtc();
- verify(contributions.get(1), times(1)).getExpirationTimeInUtc();
-
- DateTime expires2 = plan.getExpirationTimeInUtc();
- assertThat(expires2, is(nowPlus100InUtc));
- verifyNoMoreInteractions(contributions.get(0));
- verifyNoMoreInteractions(contributions.get(1));
- }
-
- @Test
- public void shouldDetermineIfExpired() {
- DateTime nowInUtc = new JodaDateTime().toUtcTimeZone();
- DateTime nowPlus100InUtc = nowInUtc.plusSeconds(100);
- DateTime nowPlus200InUtc = nowInUtc.plusSeconds(200);
- DateTime nowPlus300InUtc = nowInUtc.plusSeconds(300);
-
- addContributions(2);
- stub(contributions.get(0).getExpirationTimeInUtc()).toReturn(nowPlus100InUtc);
- stub(contributions.get(1).getExpirationTimeInUtc()).toReturn(nowPlus200InUtc);
-
- plan = MergePlan.create(contributions);
- DateTime expires = plan.getExpirationTimeInUtc();
- assertThat(expires, is(nowPlus100InUtc));
- verify(contributions.get(0), times(1)).getExpirationTimeInUtc();
- verify(contributions.get(1), times(1)).getExpirationTimeInUtc();
- assertThat(plan.isExpired(nowInUtc), is(false));
- assertThat(plan.isExpired(nowPlus100InUtc), is(false));
- assertThat(plan.isExpired(nowPlus200InUtc), is(true));
- assertThat(plan.isExpired(nowPlus300InUtc), is(true));
- }
-
- @Test
- public void shouldHaveNoAnnotationsUponConstruction() {
- addContributions(2);
- plan = MergePlan.create(contributions);
- assertThat(plan.getAnnotationCount(), is(0));
- }
-
- @Test
- public void shouldAllowSettingAnnotationAndShouldReturnNullWhenSettingNullAnnotation() {
- addContributions(2);
- plan = MergePlan.create(contributions);
- assertThat(plan.setAnnotation(null), is(nullValue()));
- }
-
- @Test
- public void shouldAllowSettingAnnotationAndShouldReturnPreviousPropertyWhenSettingAnnotation() {
- Property property = new BasicEmptyProperty(new BasicName("uri", "name"));
- Property property2 = new BasicEmptyProperty(property.getName());
-
- addContributions(2);
- plan = MergePlan.create(contributions);
- assertThat(plan.setAnnotation(property), is(nullValue()));
- assertThat(plan.setAnnotation(property2), is(property));
- }
-
- @SuppressWarnings( "unchecked" )
- @Test
- public void shouldSetAnnotationsMapToNullIfPassedNullOrEmptyMap() {
- addContributions(2);
- plan = MergePlan.create(contributions);
- plan.setAnnotations(null);
- assertThat(plan.getAnnotationCount(), is(0));
-
- Map<Name, Property> newAnnotations = mock(Map.class);
- plan.setAnnotations(newAnnotations);
- assertThat(plan.getAnnotationCount(), is(0));
- verify(newAnnotations).size();
- }
-
- @SuppressWarnings( "unchecked" )
- @Test
- public void shouldSetAnnotationsMapToSameInstancePassedIn() {
- addContributions(2);
- plan = MergePlan.create(contributions);
- Map<Name, Property> newAnnotations = mock(Map.class);
- stub(newAnnotations.size()).toReturn(3);
- plan.setAnnotations(newAnnotations);
- assertThat(plan.getAnnotationCount(), is(3));
- verify(newAnnotations).size();
- }
-
- @Test
- public void shouldReturnCopyOfAnnotationsMapFromGetAnnotations() {
- Property property = new BasicEmptyProperty(new BasicName("uri", "name"));
- Map<Name, Property> annotations = new HashMap<Name, Property>();
- annotations.put(property.getName(), property);
-
- addContributions(2);
- plan = MergePlan.create(contributions);
- plan.setAnnotations(annotations);
- Map<Name, Property> annotationsCopy = plan.getAnnotations();
- assertThat(annotationsCopy, is(not(sameInstance(annotations))));
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/MultipleContributionMergePlanTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/MultipleContributionMergePlanTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/MultipleContributionMergePlanTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,127 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.merge;
-
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsNull.nullValue;
-import static org.hamcrest.core.IsSame.sameInstance;
-import static org.junit.Assert.assertThat;
-import static org.junit.matchers.JUnitMatchers.hasItems;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.stub;
-import java.util.LinkedList;
-import java.util.List;
-import org.jboss.dna.connector.federation.contribution.Contribution;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * @author Randall Hauch
- */
-public class MultipleContributionMergePlanTest {
-
- private MultipleContributionMergePlan plan;
- private List<Contribution> contributions;
-
- @Before
- public void beforeEach() throws Exception {
- contributions = new LinkedList<Contribution>();
- addContributions(10);
- plan = new MultipleContributionMergePlan(contributions);
- }
-
- protected void addContributions( int number ) {
- for (int i = 0; i != number; ++i) {
- Contribution contribution = mock(Contribution.class);
- stub(contribution.getSourceName()).toReturn("source " + i);
- contributions.add(contribution);
- }
- }
-
- @Test( expected = AssertionError.class )
- public void shouldFailWhenCreatingMergePlanWithNullFirstContribution() {
- contributions.add(0, null);
- plan = new MultipleContributionMergePlan(contributions);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldFailWhenCreatingMergePlanWithNullSecondContribution() {
- contributions.add(1, null);
- plan = new MultipleContributionMergePlan(contributions);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldFailWhenCreatingMergePlanWithNullThirdContribution() {
- contributions.add(2, null);
- plan = new MultipleContributionMergePlan(contributions);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldFailWhenCreatingMergePlanWithNullFourthContribution() {
- contributions.add(3, null);
- plan = new MultipleContributionMergePlan(contributions);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldFailWhenCreatingMergePlanWithNullFifthContribution() {
- contributions.add(4, null);
- plan = new MultipleContributionMergePlan(contributions);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldFailWhenCreatingMergePlanWithMultipleContributionsFromTheSameSource() {
- contributions.add(contributions.get(0));
- plan = new MultipleContributionMergePlan(contributions);
- }
-
- @Test
- public void shouldReturnIteratorOverContributions() {
- assertThat(plan, hasItems(contributions.toArray(new Contribution[contributions.size()])));
- }
-
- @Test
- public void shouldHaveContributionCountOfFive() {
- assertThat(plan.getContributionCount(), is(contributions.size()));
- }
-
- @Test
- public void shouldReturnContributionWhenSuppliedNameMatchesContributionsSourceName() {
- for (Contribution contribution : contributions) {
- assertThat(plan.getContributionFrom(contribution.getSourceName()), is(sameInstance(contribution)));
- }
- }
-
- @Test
- public void shouldReturnNullContributionWhenSuppliedNameDoesNotMatchContributionsSourceName() {
- assertThat(plan.getContributionFrom("other source"), is(nullValue()));
- }
-
- @Test
- public void shouldCompareSourceNameOfContributionsWhenCallingIsSource() {
- for (Contribution contribution : contributions) {
- assertThat(plan.isSource(contribution.getSourceName()), is(true));
- }
- assertThat(plan.isSource("other source"), is(false));
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/OneContributionMergePlanTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/OneContributionMergePlanTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/OneContributionMergePlanTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,90 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.merge;
-
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsNull.nullValue;
-import static org.hamcrest.core.IsSame.sameInstance;
-import static org.junit.Assert.assertThat;
-import static org.junit.matchers.JUnitMatchers.hasItem;
-import static org.mockito.Mockito.stub;
-import java.util.Iterator;
-import org.jboss.dna.connector.federation.contribution.Contribution;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.MockitoAnnotations;
-import org.mockito.MockitoAnnotations.Mock;
-
-/**
- * @author Randall Hauch
- */
-public class OneContributionMergePlanTest {
-
- private OneContributionMergePlan plan;
- @Mock
- private Contribution contribution1;
-
- @Before
- public void beforeEach() throws Exception {
- MockitoAnnotations.initMocks(this);
- plan = new OneContributionMergePlan(contribution1);
- stub(contribution1.getSourceName()).toReturn("source");
- }
-
- @Test( expected = AssertionError.class )
- public void shouldFailWhenCreatingMergePlanWithNullFirstContribution() {
- contribution1 = null;
- plan = new OneContributionMergePlan(contribution1);
- }
-
- @Test
- public void shouldReturnIteratorOverContributions() {
- Iterator<Contribution> iter = plan.iterator();
- assertThat(iter.hasNext(), is(true));
- assertThat(iter.next(), is(sameInstance(contribution1)));
- assertThat(iter.hasNext(), is(false));
- assertThat(plan, hasItem(contribution1));
- }
-
- @Test
- public void shouldHaveContributionCountOfOne() {
- assertThat(plan.getContributionCount(), is(1));
- }
-
- @Test
- public void shouldReturnContributionWhenSuppliedNameMatchesContributionsSourceName() {
- assertThat(plan.getContributionFrom(contribution1.getSourceName()), is(sameInstance(contribution1)));
- }
-
- @Test
- public void shouldReturnNullContributionWhenSuppliedNameDoesNotMatchContributionsSourceName() {
- assertThat(plan.getContributionFrom("other source"), is(nullValue()));
- }
-
- @Test
- public void shouldCompareSourceNameOfContributionsWhenCallingIsSource() {
- assertThat(plan.isSource(contribution1.getSourceName()), is(true));
- assertThat(plan.isSource("other source"), is(false));
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/ThreeContributionMergePlanTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/ThreeContributionMergePlanTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/ThreeContributionMergePlanTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,112 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.merge;
-
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsNull.nullValue;
-import static org.hamcrest.core.IsSame.sameInstance;
-import static org.junit.Assert.assertThat;
-import static org.junit.matchers.JUnitMatchers.hasItems;
-import static org.mockito.Mockito.stub;
-import org.jboss.dna.connector.federation.contribution.Contribution;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.MockitoAnnotations;
-import org.mockito.MockitoAnnotations.Mock;
-
-/**
- * @author Randall Hauch
- */
-public class ThreeContributionMergePlanTest {
-
- private ThreeContributionMergePlan plan;
- @Mock
- private Contribution contribution1;
- @Mock
- private Contribution contribution2;
- @Mock
- private Contribution contribution3;
-
- @Before
- public void beforeEach() throws Exception {
- MockitoAnnotations.initMocks(this);
- stub(contribution1.getSourceName()).toReturn("source1");
- stub(contribution2.getSourceName()).toReturn("source2");
- stub(contribution3.getSourceName()).toReturn("source3");
- plan = new ThreeContributionMergePlan(contribution1, contribution2, contribution3);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldFailWhenCreatingMergePlanWithNullFirstContribution() {
- contribution1 = null;
- plan = new ThreeContributionMergePlan(contribution1, contribution2, contribution3);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldFailWhenCreatingMergePlanWithNullSecondContribution() {
- contribution2 = null;
- plan = new ThreeContributionMergePlan(contribution1, contribution2, contribution3);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldFailWhenCreatingMergePlanWithNullThirdContribution() {
- contribution3 = null;
- plan = new ThreeContributionMergePlan(contribution1, contribution2, contribution3);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldFailWhenCreatingMergePlanWithMultipleContributionsFromTheSameSource() {
- plan = new ThreeContributionMergePlan(contribution1, contribution2, contribution1);
- }
-
- @Test
- public void shouldReturnIteratorOverContributions() {
- assertThat(plan, hasItems(contribution1, contribution2, contribution3));
- }
-
- @Test
- public void shouldHaveContributionCountOfThree() {
- assertThat(plan.getContributionCount(), is(3));
- }
-
- @Test
- public void shouldReturnContributionWhenSuppliedNameMatchesContributionsSourceName() {
- assertThat(plan.getContributionFrom(contribution1.getSourceName()), is(sameInstance(contribution1)));
- assertThat(plan.getContributionFrom(contribution2.getSourceName()), is(sameInstance(contribution2)));
- assertThat(plan.getContributionFrom(contribution3.getSourceName()), is(sameInstance(contribution3)));
- }
-
- @Test
- public void shouldReturnNullContributionWhenSuppliedNameDoesNotMatchContributionsSourceName() {
- assertThat(plan.getContributionFrom("other source"), is(nullValue()));
- }
-
- @Test
- public void shouldCompareSourceNameOfContributionsWhenCallingIsSource() {
- assertThat(plan.isSource(contribution1.getSourceName()), is(true));
- assertThat(plan.isSource(contribution2.getSourceName()), is(true));
- assertThat(plan.isSource(contribution3.getSourceName()), is(true));
- assertThat(plan.isSource("other source"), is(false));
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/TwoContributionMergePlanTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/TwoContributionMergePlanTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/TwoContributionMergePlanTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,101 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.merge;
-
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsNull.nullValue;
-import static org.hamcrest.core.IsSame.sameInstance;
-import static org.junit.Assert.assertThat;
-import static org.junit.matchers.JUnitMatchers.hasItems;
-import static org.mockito.Mockito.stub;
-import org.jboss.dna.connector.federation.contribution.Contribution;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.MockitoAnnotations;
-import org.mockito.MockitoAnnotations.Mock;
-
-/**
- * @author Randall Hauch
- */
-public class TwoContributionMergePlanTest {
-
- private TwoContributionMergePlan plan;
- @Mock
- private Contribution contribution1;
- @Mock
- private Contribution contribution2;
-
- @Before
- public void beforeEach() throws Exception {
- MockitoAnnotations.initMocks(this);
- stub(contribution1.getSourceName()).toReturn("source1");
- stub(contribution2.getSourceName()).toReturn("source2");
- plan = new TwoContributionMergePlan(contribution1, contribution2);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldFailWhenCreatingMergePlanWithNullFirstContribution() {
- contribution1 = null;
- plan = new TwoContributionMergePlan(contribution1, contribution2);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldFailWhenCreatingMergePlanWithNullSecondContribution() {
- contribution2 = null;
- plan = new TwoContributionMergePlan(contribution1, contribution2);
- }
-
- @Test( expected = AssertionError.class )
- public void shouldFailWhenCreatingMergePlanWithMultipleContributionsFromTheSameSource() {
- plan = new TwoContributionMergePlan(contribution1, contribution1);
- }
-
- @Test
- public void shouldReturnIteratorOverContributions() {
- assertThat(plan, hasItems(contribution1, contribution2));
- }
-
- @Test
- public void shouldHaveContributionCountOfTwo() {
- assertThat(plan.getContributionCount(), is(2));
- }
-
- @Test
- public void shouldReturnContributionWhenSuppliedNameMatchesContributionsSourceName() {
- assertThat(plan.getContributionFrom(contribution1.getSourceName()), is(sameInstance(contribution1)));
- assertThat(plan.getContributionFrom(contribution2.getSourceName()), is(sameInstance(contribution2)));
- }
-
- @Test
- public void shouldReturnNullContributionWhenSuppliedNameDoesNotMatchContributionsSourceName() {
- assertThat(plan.getContributionFrom("other source"), is(nullValue()));
- }
-
- @Test
- public void shouldCompareSourceNameOfContributionsWhenCallingIsSource() {
- assertThat(plan.isSource(contribution1.getSourceName()), is(true));
- assertThat(plan.isSource(contribution2.getSourceName()), is(true));
- assertThat(plan.isSource("other source"), is(false));
- }
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/strategy/OneContributionMergeStrategyTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/strategy/OneContributionMergeStrategyTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/strategy/OneContributionMergeStrategyTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,215 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.merge.strategy;
-
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsNot.not;
-import static org.hamcrest.core.IsNull.nullValue;
-import static org.hamcrest.core.IsSame.sameInstance;
-import static org.junit.Assert.assertThat;
-import static org.mockito.Mockito.stub;
-import java.util.HashMap;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import org.jboss.dna.connector.federation.contribution.Contribution;
-import org.jboss.dna.connector.federation.merge.FederatedNode;
-import org.jboss.dna.connector.federation.merge.MergePlan;
-import org.jboss.dna.graph.DnaLexicon;
-import org.jboss.dna.graph.ExecutionContext;
-import org.jboss.dna.graph.JcrLexicon;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.property.Name;
-import org.jboss.dna.graph.property.Path;
-import org.jboss.dna.graph.property.Property;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.mockito.MockitoAnnotations;
-import org.mockito.MockitoAnnotations.Mock;
-
-/**
- * @author Randall Hauch
- */
-public class OneContributionMergeStrategyTest {
-
- private OneContributionMergeStrategy strategy;
- private List<Contribution> contributions;
- private ExecutionContext context;
- private FederatedNode node;
- private Map<Name, Property> properties;
- private List<Location> children;
- private Path parentPath;
- @Mock
- private Contribution contribution;
-
- @Before
- public void beforeEach() throws Exception {
- MockitoAnnotations.initMocks(this);
- strategy = new OneContributionMergeStrategy();
- contributions = new LinkedList<Contribution>();
- contributions.add(contribution);
- context = new ExecutionContext();
- context.getNamespaceRegistry().register(DnaLexicon.Namespace.PREFIX, DnaLexicon.Namespace.URI);
- context.getNamespaceRegistry().register(JcrLexicon.Namespace.PREFIX, JcrLexicon.Namespace.URI);
- parentPath = context.getValueFactories().getPathFactory().create("/a/b/c");
- node = new FederatedNode(Location.create(parentPath), "some workspace");
- stub(contribution.getSourceName()).toReturn("source name");
- children = new LinkedList<Location>();
- for (int i = 0; i != 10; ++i) {
- Path childPath = context.getValueFactories().getPathFactory().create(parentPath, "a" + i);
- children.add(Location.create(childPath));
- }
- properties = new HashMap<Name, Property>();
- for (int i = 0; i != 10; ++i) {
- Name propertyName = context.getValueFactories().getNameFactory().create("property" + i);
- properties.put(propertyName, context.getPropertyFactory().create(propertyName, "value"));
- }
- }
-
- @Test
- public void shouldMergeTheChildrenFromTheFirstContribution() {
- stub(contribution.getChildren()).toReturn(children.iterator());
- stub(contribution.getProperties()).toReturn(properties.values().iterator());
- strategy.merge(node, contributions, context);
- assertThat(node.getChildren(), is(children));
- }
-
- @Test
- public void shouldMergeThePropertiesFromTheFirstContribution() {
- stub(contribution.getChildren()).toReturn(children.iterator());
- stub(contribution.getProperties()).toReturn(properties.values().iterator());
- stub(contribution.getProperties()).toReturn(properties.values().iterator());
- strategy.merge(node, contributions, context);
- properties.put(DnaLexicon.UUID, node.getPropertiesByName().get(DnaLexicon.UUID));
- properties.put(DnaLexicon.MERGE_PLAN, node.getPropertiesByName().get(DnaLexicon.MERGE_PLAN));
- assertThat(node.getPropertiesByName(), is(properties));
- }
-
- @Test
- public void shouldCreateMergePlanInTheFederatedNode() {
- stub(contribution.getChildren()).toReturn(children.iterator());
- stub(contribution.getProperties()).toReturn(properties.values().iterator());
- strategy.merge(node, contributions, context);
- MergePlan mergePlan = node.getMergePlan();
- assertThat(mergePlan.getContributionFrom(contribution.getSourceName()), is(sameInstance(contribution)));
- assertThat(mergePlan.getContributionCount(), is(1));
- }
-
- @Test
- public void shouldSetTheUuidOnTheNodeIfThereIsASingleValuedPropertyNamedUuidWithValueThatConvertsToUuidInstance() {
- // Test the "dna:uuid" property ...
- UUID uuid = UUID.randomUUID();
- Property uuidProperty = context.getPropertyFactory().create(DnaLexicon.UUID, uuid);
- properties.put(uuidProperty.getName(), uuidProperty);
- stub(contribution.getChildren()).toReturn(children.iterator());
- stub(contribution.getProperties()).toReturn(properties.values().iterator());
- assertThat(node.at().getUuid(), is(nullValue()));
- strategy.merge(node, contributions, context);
- assertThat(node.getActualLocationOfNode().getUuid(), is(uuid));
- properties.remove(uuidProperty.getName());
-
- // Test the "jcr:uuid" property ...
- uuid = UUID.randomUUID();
- uuidProperty = context.getPropertyFactory().create(JcrLexicon.UUID, uuid);
- properties.put(uuidProperty.getName(), uuidProperty);
- stub(contribution.getChildren()).toReturn(children.iterator());
- stub(contribution.getProperties()).toReturn(properties.values().iterator());
- assertThat(node.at().getUuid(), is(not(uuid)));
- strategy.merge(node, contributions, context);
- assertThat(node.getActualLocationOfNode().getUuid(), is(uuid));
- properties.remove(uuidProperty.getName());
-
- // Test the "uuid" property ...
- Name uuidName = context.getValueFactories().getNameFactory().create("uuid");
- uuid = UUID.randomUUID();
- uuidProperty = context.getPropertyFactory().create(uuidName, uuid);
- properties.put(uuidProperty.getName(), uuidProperty);
- stub(contribution.getChildren()).toReturn(children.iterator());
- stub(contribution.getProperties()).toReturn(properties.values().iterator());
- assertThat(node.at().getUuid(), is(not(uuid)));
- strategy.merge(node, contributions, context);
- assertThat(node.getActualLocationOfNode().getUuid(), is(uuid));
- properties.remove(uuidProperty.getName());
-
- // Test the "uuid" property whose value is a String ...
- uuid = UUID.randomUUID();
- uuidProperty = context.getPropertyFactory().create(DnaLexicon.UUID, uuid.toString());
- properties.put(uuidProperty.getName(), uuidProperty);
- stub(contribution.getChildren()).toReturn(children.iterator());
- stub(contribution.getProperties()).toReturn(properties.values().iterator());
- assertThat(node.at().getUuid(), is(not(uuid)));
- strategy.merge(node, contributions, context);
- assertThat(node.getActualLocationOfNode().getUuid(), is(uuid));
- properties.remove(uuidProperty.getName());
- }
-
- @Test
- public void shouldNotSetTheUuidOnTheNodeIfThereIsNoPropertyNamedUuid() {
- // Test the "dna:uuid" property ...
- Name uuidName = context.getValueFactories().getNameFactory().create("dna:uuid");
- UUID uuid = UUID.randomUUID();
- Property uuidProperty = context.getPropertyFactory().create(uuidName, uuid);
- properties.put(uuidProperty.getName(), uuidProperty);
- stub(contribution.getChildren()).toReturn(children.iterator());
- stub(contribution.getProperties()).toReturn(properties.values().iterator());
- assertThat(node.at().getUuid(), is(not(uuid)));
- strategy.merge(node, contributions, context);
- assertThat(node.getActualLocationOfNode().getUuid(), is(uuid));
- properties.remove(uuidProperty.getName());
- }
-
- @Ignore
- @Test
- public void shouldNotSetTheUuidOnTheNodeIfThereIsAMultiValuedPropertyNamedUuid() {
- final UUID originalUuid = node.at().getUuid();
- // Test the "dna:uuid" property ...
- Name uuidName = context.getValueFactories().getNameFactory().create("dna:uuid");
- Property uuidProperty = context.getPropertyFactory().create(uuidName,
- UUID.randomUUID(),
- UUID.randomUUID(),
- UUID.randomUUID());
- properties.put(uuidProperty.getName(), uuidProperty);
- stub(contribution.getChildren()).toReturn(children.iterator());
- stub(contribution.getProperties()).toReturn(properties.values().iterator());
- strategy.merge(node, contributions, context);
- assertThat(node.getActualLocationOfNode().getUuid(), is(originalUuid));
- }
-
- @Ignore
- @Test
- public void shouldNotSetTheUuidOnTheNodeIfThereIsASingleValuedPropertyNamedUuidWithValueThatDoesNotConvertToUuidInstance() {
- final UUID originalUuid = node.at().getUuid();
- // Test the "dna:uuid" property ...
- Name uuidName = context.getValueFactories().getNameFactory().create("dna:uuid");
- Property uuidProperty = context.getPropertyFactory().create(uuidName, 3.33d);
- properties.put(uuidProperty.getName(), uuidProperty);
- stub(contribution.getChildren()).toReturn(children.iterator());
- stub(contribution.getProperties()).toReturn(properties.values().iterator());
- strategy.merge(node, contributions, context);
- assertThat(node.getActualLocationOfNode().getUuid(), is(originalUuid));
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/strategy/SimpleMergeStrategyTest.java
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/strategy/SimpleMergeStrategyTest.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/java/org/jboss/dna/connector/federation/merge/strategy/SimpleMergeStrategyTest.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,300 +0,0 @@
-/*
- * JBoss DNA (http://www.jboss.org/dna)
- * See the COPYRIGHT.txt file distributed with this work for information
- * regarding copyright ownership. Some portions may be licensed
- * to Red Hat, Inc. under one or more contributor license agreements.
- * See the AUTHORS.txt file in the distribution for a full listing of
- * individual contributors.
- *
- * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
- * is licensed to you under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * JBoss DNA 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 software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.dna.connector.federation.merge.strategy;
-
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsEqual.equalTo;
-import static org.hamcrest.core.IsNull.notNullValue;
-import static org.hamcrest.core.IsSame.sameInstance;
-import static org.junit.Assert.assertThat;
-import static org.mockito.Mockito.stub;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import org.hamcrest.Matcher;
-import org.jboss.dna.common.collection.IsIteratorContaining;
-import org.jboss.dna.connector.federation.contribution.Contribution;
-import org.jboss.dna.connector.federation.merge.FederatedNode;
-import org.jboss.dna.graph.DnaLexicon;
-import org.jboss.dna.graph.ExecutionContext;
-import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.property.Name;
-import org.jboss.dna.graph.property.Path;
-import org.jboss.dna.graph.property.Property;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
-
-/**
- * @author Randall Hauch
- */
-public class SimpleMergeStrategyTest {
-
- private SimpleMergeStrategy strategy;
- private List<Contribution> contributions;
- private ExecutionContext context;
- private FederatedNode node;
- private String workspaceName;
- protected Path parentPath;
-
- @Before
- public void beforeEach() throws Exception {
- MockitoAnnotations.initMocks(this);
- strategy = new SimpleMergeStrategy();
- contributions = new LinkedList<Contribution>();
- context = new ExecutionContext();
- context.getNamespaceRegistry().register("dna", "http://www.jboss.org/dna/something");
- context.getNamespaceRegistry().register("jcr", "http://www.jcr.org");
- parentPath = context.getValueFactories().getPathFactory().create("/a/b/c");
- workspaceName = "some workspace";
- node = new FederatedNode(Location.create(parentPath), workspaceName);
- }
-
- @Test
- public void shouldAddChildrenFromOneContribution() {
- addContribution("source1").addChildren("childA", "childB[1]", "childB[2]");
- strategy.merge(node, contributions, context);
- assertThat(node.getChildren(), hasChildLocations("childA", "childB[1]", "childB[2]"));
- }
-
- @Test
- public void shouldCombinePropertiesFromOneContribution() {
- addContribution("source1").setProperty("p1", "p1 value");
- strategy.merge(node, contributions, context);
- assertThat(node.getProperties().size(), is(3));
- assertThat(node.getPropertiesByName().get(DnaLexicon.UUID), is(notNullValue()));
- assertThat(node.getPropertiesByName().get(DnaLexicon.MERGE_PLAN), is(notNullValue()));
- assertThat(node.getPropertiesByName().get(name("p1")), is(property("p1", "p1 value")));
- }
-
- @Test
- public void shouldAddChildrenFromMultipleContributionsInOrderAndShouldNotChangeSameNameSiblingIndexesWhenChildrenDoNotShareNamesWithChildrenFromDifferentContributions() {
- addContribution("source1").addChildren("childA", "childB[1]", "childB[2]");
- addContribution("source2").addChildren("childX", "childY[1]", "childY[2]");
- strategy.merge(node, contributions, context);
- assertThat(node.getChildren(), hasChildLocations("childA", "childB[1]", "childB[2]", "childX", "childY[1]", "childY[2]"));
- }
-
- @Test
- public void shouldAddChildrenFromMultipleContributionsInOrderAndShouldChangeSameNameSiblingIndexesWhenChildrenDoShareNamesWithChildrenFromDifferentContributions() {
- addContribution("source1").addChildren("childA", "childB[1]", "childB[2]");
- addContribution("source2").addChildren("childX", "childB", "childY");
- addContribution("source3").addChildren("childX", "childB");
- strategy.merge(node, contributions, context);
- assertThat(node.getChildren(), hasChildLocations("childA",
- "childB[1]",
- "childB[2]",
- "childX[1]",
- "childB[3]",
- "childY",
- "childX[2]",
- "childB[4]"));
- }
-
- @Test
- public void shouldCombinePropertiesFromMultipleContributionsAndRemoveNoValuesWhenNoContributionsContainSameProperty() {
- addContribution("source1").setProperty("p1", "p1 value");
- addContribution("source2").setProperty("p2", "p2 value");
- strategy.merge(node, contributions, context);
- assertThat(node.getProperties().size(), is(4));
- assertThat(node.getPropertiesByName().get(DnaLexicon.UUID), is(notNullValue()));
- assertThat(node.getPropertiesByName().get(DnaLexicon.MERGE_PLAN), is(notNullValue()));
- assertThat(node.getPropertiesByName().get(name("p1")), is(property("p1", "p1 value")));
- assertThat(node.getPropertiesByName().get(name("p2")), is(property("p2", "p2 value")));
- }
-
- @Test
- public void shouldCombinePropertiesFromMultipleContributionsAndRemoveDuplicateValuesWhenContributionsContainSameProperty() {
- addContribution("source1").setProperty("p1", "p1 value").setProperty("p12", "1", "2", "3");
- addContribution("source2").setProperty("p2", "p2 value").setProperty("p12", "3", "4");
- strategy.merge(node, contributions, context);
- assertThat(node.getProperties().size(), is(5));
- assertThat(node.getPropertiesByName().get(DnaLexicon.UUID), is(notNullValue()));
- assertThat(node.getPropertiesByName().get(DnaLexicon.MERGE_PLAN), is(notNullValue()));
- assertThat(node.getPropertiesByName().get(name("p1")), is(property("p1", "p1 value")));
- assertThat(node.getPropertiesByName().get(name("p2")), is(property("p2", "p2 value")));
- assertThat(node.getPropertiesByName().get(name("p12")), is(property("p12", "1", "2", "3", "4")));
- }
-
- @Test
- public void shouldCombinePropertiesFromMultipleContributionsAndMaintainAllValuesForEveryProperty() {
- addContribution("source1").setProperty("p1", "p1 value").setProperty("p12", "1", "2", "3");
- addContribution("source2").setProperty("p2", "p2 value").setProperty("p12", "3", "4");
- strategy.merge(node, contributions, context);
- assertThat(node.getProperties().size(), is(5));
- assertThat(node.getPropertiesByName().get(DnaLexicon.MERGE_PLAN), is(notNullValue()));
- assertThat(node.getPropertiesByName().get(DnaLexicon.UUID), is(notNullValue()));
- for (Contribution contribution : contributions) {
- Iterator<Property> iter = contribution.getProperties();
- while (iter.hasNext()) {
- Property contributionProperty = iter.next();
- Property mergedProperty = node.getPropertiesByName().get(contributionProperty.getName());
- assertThat(mergedProperty, is(notNullValue()));
- // Make sure that the merged property has each value ...
- for (Object contributedValue : contributionProperty.getValuesAsArray()) {
- boolean foundValue = false;
- for (Object mergedValue : mergedProperty.getValuesAsArray()) {
- if (mergedValue.equals(contributedValue)) {
- foundValue = true;
- break;
- }
- }
- assertThat(foundValue, is(true));
- }
- }
- }
- }
-
- @Test
- public void shouldCombinePropertiesFromMultipleContributionsWhenPropertyValuesAreOfDifferentPropertyTypes() {
- addContribution("source1").setProperty("p1", "p1 value").setProperty("p12", "1", "2", "3");
- addContribution("source2").setProperty("p2", "p2 value").setProperty("p12", 3, 4);
- strategy.merge(node, contributions, context);
- assertThat(node.getProperties().size(), is(5));
- assertThat(node.getPropertiesByName().get(DnaLexicon.UUID), is(notNullValue()));
- assertThat(node.getPropertiesByName().get(DnaLexicon.MERGE_PLAN), is(notNullValue()));
- assertThat(node.getPropertiesByName().get(name("p1")), is(property("p1", "p1 value")));
- assertThat(node.getPropertiesByName().get(name("p2")), is(property("p2", "p2 value")));
- assertThat(node.getPropertiesByName().get(name("p12")), is(property("p12", "1", "2", "3", 4)));
- }
-
- @Test
- public void shouldCreateMergePlanWhenMergingContributions() {
- addContribution("source1").addChildren("childA", "childB[1]", "childB[2]").setProperty("p1", "p1 value");
- addContribution("source2").addChildren("childX", "childB", "childY").setProperty("p2", "p2 value");
- strategy.merge(node, contributions, context);
- assertThat(node.getMergePlan(), is(notNullValue()));
- assertThat(node.getMergePlan().getContributionCount(), is(2));
- assertThat(node.getMergePlan().getContributionFrom("source1"), is(sameInstance(contributions.get(0))));
- assertThat(node.getMergePlan().getContributionFrom("source2"), is(sameInstance(contributions.get(1))));
- }
-
- @Test
- public void shouldCorrectlyBuildMockUsingContributionBuilder() {
- assertThat(contributions.size(), is(0));
- addContribution("source1").addChildren("childA", "childB[1]", "childB[2]").setProperty("p1", "p1 value");
- assertThat(contributions.size(), is(1));
- assertThat(contributions.get(0).getChildren(), hasLocationIterator("childA", "childB[1]", "childB[2]"));
- }
-
- protected Matcher<List<Location>> hasChildLocations( String... childNames ) {
- List<Location> locations = new ArrayList<Location>();
- for (String childName : childNames) {
- locations.add(Location.create(context.getValueFactories().getPathFactory().create(parentPath, childName)));
- }
- return equalTo(locations);
- }
-
- protected Matcher<Iterator<Location>> hasLocationIterator( String... childNames ) {
- Location[] locations = new Location[childNames.length];
- int index = 0;
- for (String childName : childNames) {
- locations[index++] = Location.create(context.getValueFactories().getPathFactory().create(parentPath, childName));
- }
- return IsIteratorContaining.hasItems(locations);
- }
-
- protected Name name( String name ) {
- return context.getValueFactories().getNameFactory().create(name);
- }
-
- protected Property property( String name,
- Object... values ) {
- return context.getPropertyFactory().create(name(name), values);
- }
-
- protected ContributionBuilder addContribution( String sourceName ) {
- ContributionBuilder builder = new ContributionBuilder(context, sourceName, contributions);
- contributions.add(builder.getMock());
- return builder;
- }
-
- protected class ContributionBuilder {
- protected final Contribution mockContribution;
- protected final ExecutionContext context;
- protected final Map<Name, Property> properties = new HashMap<Name, Property>();
- protected final List<Location> children = new ArrayList<Location>();
-
- protected ContributionBuilder( ExecutionContext context,
- String name,
- List<Contribution> contributions ) {
- this.context = context;
- this.mockContribution = Mockito.mock(Contribution.class);
- stub(mockContribution.getLocationInSource()).toReturn(Location.create(parentPath));
- stub(mockContribution.getSourceName()).toReturn(name);
- stub(mockContribution.getChildren()).toAnswer(new Answer<Iterator<Location>>() {
- public Iterator<Location> answer( InvocationOnMock invocation ) throws Throwable {
- return ContributionBuilder.this.children.iterator();
- }
- });
- stub(mockContribution.getChildrenCount()).toAnswer(new Answer<Integer>() {
- public Integer answer( InvocationOnMock invocation ) throws Throwable {
- return ContributionBuilder.this.children.size();
- }
- });
- stub(mockContribution.getProperties()).toAnswer(new Answer<Iterator<Property>>() {
- public Iterator<Property> answer( InvocationOnMock invocation ) throws Throwable {
- return ContributionBuilder.this.properties.values().iterator();
- }
- });
- stub(mockContribution.getPropertyCount()).toAnswer(new Answer<Integer>() {
- public Integer answer( InvocationOnMock invocation ) throws Throwable {
- return ContributionBuilder.this.properties.size();
- }
- });
- }
-
- public Contribution getMock() {
- return this.mockContribution;
- }
-
- public ContributionBuilder addChildren( String... pathsForChildren ) {
- for (String childPath : pathsForChildren) {
- Path path = context.getValueFactories().getPathFactory().create(parentPath, childPath);
- children.add(Location.create(path));
- }
- return this;
- }
-
- public ContributionBuilder setProperty( String name,
- Object... values ) {
- Name propertyName = context.getValueFactories().getNameFactory().create(name);
- Property property = context.getPropertyFactory().create(propertyName, values);
- stub(mockContribution.getProperty(propertyName)).toReturn(property);
- if (values != null && values.length > 0) {
- properties.put(propertyName, property);
- } else {
- properties.remove(propertyName);
- }
- return this;
- }
- }
-
-}
Deleted: trunk/extensions/dna-connector-federation/src/test/resources/log4j.properties
===================================================================
--- trunk/extensions/dna-connector-federation/src/test/resources/log4j.properties 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-federation/src/test/resources/log4j.properties 2009-09-12 17:55:25 UTC (rev 1218)
@@ -1,12 +0,0 @@
-# Direct log messages to stdout
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.Target=System.out
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %m%n
-
-# Root logger option
-log4j.rootLogger=INFO, stdout
-
-# Set up the default logging to be INFO level, then override specific units
-log4j.logger.org.jboss.dna=INFO
-log4j.logger.org.jboss.dna.connector.federation=TRACE
Modified: trunk/extensions/dna-connector-filesystem/src/main/java/org/jboss/dna/connector/filesystem/FileSystemConnection.java
===================================================================
--- trunk/extensions/dna-connector-filesystem/src/main/java/org/jboss/dna/connector/filesystem/FileSystemConnection.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-filesystem/src/main/java/org/jboss/dna/connector/filesystem/FileSystemConnection.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -39,8 +39,6 @@
/**
* The {@link RepositoryConnection} implementation for the file system connector. The bulk of the work is performed by the
* {@link FileSystemRequestProcessor}.
- *
- * @author Randall Hauch
*/
public class FileSystemConnection implements RepositoryConnection {
Modified: trunk/extensions/dna-connector-filesystem/src/main/java/org/jboss/dna/connector/filesystem/FileSystemI18n.java
===================================================================
--- trunk/extensions/dna-connector-filesystem/src/main/java/org/jboss/dna/connector/filesystem/FileSystemI18n.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-filesystem/src/main/java/org/jboss/dna/connector/filesystem/FileSystemI18n.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,7 +28,7 @@
import org.jboss.dna.common.i18n.I18n;
/**
- * @author Randall Hauch
+ * The internationalized string constants for the <code>org.jboss.dna.connector.filesystem*</code> packages.
*/
public final class FileSystemI18n {
@@ -51,7 +51,7 @@
public static I18n sourceIsReadOnly;
public static I18n pathIsReadOnly;
public static I18n unableToCreateWorkspaces;
-
+
// Writable messages
public static I18n parentIsReadOnly;
public static I18n fileAlreadyExists;
Modified: trunk/extensions/dna-connector-filesystem/src/main/java/org/jboss/dna/connector/filesystem/FileSystemRequestProcessor.java
===================================================================
--- trunk/extensions/dna-connector-filesystem/src/main/java/org/jboss/dna/connector/filesystem/FileSystemRequestProcessor.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-filesystem/src/main/java/org/jboss/dna/connector/filesystem/FileSystemRequestProcessor.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -86,8 +86,6 @@
/**
* The {@link RequestProcessor} implementation for the file systme connector. This is the class that does the bulk of the work in
* the file system connector, since it processes all requests.
- *
- * @author Randall Hauch
*/
public class FileSystemRequestProcessor extends RequestProcessor {
Modified: trunk/extensions/dna-connector-filesystem/src/main/java/org/jboss/dna/connector/filesystem/FileSystemSource.java
===================================================================
--- trunk/extensions/dna-connector-filesystem/src/main/java/org/jboss/dna/connector/filesystem/FileSystemSource.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-filesystem/src/main/java/org/jboss/dna/connector/filesystem/FileSystemSource.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -56,8 +56,6 @@
* The {@link RepositorySource} for the connector that exposes an area of the local file system as content in a repository. This
* source considers a workspace name to be the path to the directory on the file system that represents the root of that
* workspace. New workspaces can be created, as long as the names represent valid paths to existing directories.
- *
- * @author Randall Hauch
*/
@ThreadSafe
public class FileSystemSource implements RepositorySource, ObjectFactory {
Copied: trunk/extensions/dna-connector-filesystem/src/main/java/org/jboss/dna/connector/filesystem/package-info.java (from rev 1217, trunk/dna-repository/src/main/java/org/jboss/dna/repository/service/AdministeredService.java)
===================================================================
--- trunk/extensions/dna-connector-filesystem/src/main/java/org/jboss/dna/connector/filesystem/package-info.java (rev 0)
+++ trunk/extensions/dna-connector-filesystem/src/main/java/org/jboss/dna/connector/filesystem/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,29 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The classes that make up the connector that accesses the files and directories on a local file system and exposes them as content in a repository.
+ */
+
+package org.jboss.dna.connector.filesystem;
+
Modified: trunk/extensions/dna-connector-infinispan/src/main/java/org/jboss/dna/connector/infinispan/InfinispanConnectorI18n.java
===================================================================
--- trunk/extensions/dna-connector-infinispan/src/main/java/org/jboss/dna/connector/infinispan/InfinispanConnectorI18n.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-infinispan/src/main/java/org/jboss/dna/connector/infinispan/InfinispanConnectorI18n.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -4,6 +4,9 @@
import java.util.Set;
import org.jboss.dna.common.i18n.I18n;
+/**
+ * The internationalized string constants for the <code>org.jboss.dna.connector.infinispan*</code> packages.
+ */
public final class InfinispanConnectorI18n {
public static I18n connectorName;
@@ -19,7 +22,6 @@
public static I18n workspaceNameWasNotValidConfiguration;
public static I18n defaultCacheManagerConfigurationNameWasNotValidConfiguration;
-
static {
try {
I18n.initialize(InfinispanConnectorI18n.class);
Modified: trunk/extensions/dna-connector-infinispan/src/main/java/org/jboss/dna/connector/infinispan/InfinispanRepository.java
===================================================================
--- trunk/extensions/dna-connector-infinispan/src/main/java/org/jboss/dna/connector/infinispan/InfinispanRepository.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-infinispan/src/main/java/org/jboss/dna/connector/infinispan/InfinispanRepository.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -9,6 +9,9 @@
import org.jboss.dna.graph.connector.map.MapRepository;
import org.jboss.dna.graph.connector.map.MapWorkspace;
+/**
+ * The repository that uses an Infinispan instance.
+ */
public class InfinispanRepository extends MapRepository {
private final CacheManager cacheManager;
Copied: trunk/extensions/dna-connector-infinispan/src/main/java/org/jboss/dna/connector/infinispan/package-info.java (from rev 1217, trunk/dna-graph/src/main/java/org/jboss/dna/graph/NodeConflictBehavior.java)
===================================================================
--- trunk/extensions/dna-connector-infinispan/src/main/java/org/jboss/dna/connector/infinispan/package-info.java (rev 0)
+++ trunk/extensions/dna-connector-infinispan/src/main/java/org/jboss/dna/connector/infinispan/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,33 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The classes that make up the connector that stores content in a deployed instance of Infinispan.
+ * Infinispan is an extremely scalable, highly available data grid platform that distributes the data across
+ * the nodes in the grid. This connector makes it possible for repository content to be stored in a very efficient,
+ * fast, higly-concurrent (essentially lock- and synchronization-free) and reliable manner, even when the content
+ * size grows to massive sizes.
+ */
+
+package org.jboss.dna.connector.infinispan;
+
Modified: trunk/extensions/dna-connector-jbosscache/src/main/java/org/jboss/dna/connector/jbosscache/JBossCacheConnectorI18n.java
===================================================================
--- trunk/extensions/dna-connector-jbosscache/src/main/java/org/jboss/dna/connector/jbosscache/JBossCacheConnectorI18n.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-jbosscache/src/main/java/org/jboss/dna/connector/jbosscache/JBossCacheConnectorI18n.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,7 +28,7 @@
import org.jboss.dna.common.i18n.I18n;
/**
- * @author Randall Hauch
+ * The internationalized string constants for the <code>org.jboss.dna.connector.jbosscache*</code> packages.
*/
public final class JBossCacheConnectorI18n {
Modified: trunk/extensions/dna-connector-jbosscache/src/main/java/org/jboss/dna/connector/jbosscache/JBossCacheRepository.java
===================================================================
--- trunk/extensions/dna-connector-jbosscache/src/main/java/org/jboss/dna/connector/jbosscache/JBossCacheRepository.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-jbosscache/src/main/java/org/jboss/dna/connector/jbosscache/JBossCacheRepository.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -10,6 +10,9 @@
import org.jboss.dna.graph.connector.map.MapRepository;
import org.jboss.dna.graph.connector.map.MapWorkspace;
+/**
+ * A repository implementation that uses JBoss Cache.
+ */
public class JBossCacheRepository extends MapRepository {
private final Cache<UUID, MapNode> cache;
Modified: trunk/extensions/dna-connector-jbosscache/src/main/java/org/jboss/dna/connector/jbosscache/JBossCacheSource.java
===================================================================
--- trunk/extensions/dna-connector-jbosscache/src/main/java/org/jboss/dna/connector/jbosscache/JBossCacheSource.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-jbosscache/src/main/java/org/jboss/dna/connector/jbosscache/JBossCacheSource.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -81,8 +81,6 @@
* Like other {@link RepositorySource} classes, instances of JBossCacheSource can be placed into JNDI and do support the creation
* of {@link Referenceable JNDI referenceable} objects and resolution of references into JBossCacheSource.
* </p>
- *
- * @author Randall Hauch
*/
@ThreadSafe
public class JBossCacheSource implements MapRepositorySource, ObjectFactory {
Copied: trunk/extensions/dna-connector-jbosscache/src/main/java/org/jboss/dna/connector/jbosscache/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ClassMetadata.java)
===================================================================
--- trunk/extensions/dna-connector-jbosscache/src/main/java/org/jboss/dna/connector/jbosscache/package-info.java (rev 0)
+++ trunk/extensions/dna-connector-jbosscache/src/main/java/org/jboss/dna/connector/jbosscache/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,29 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The classes that make up the connector that stores content in a JBoss Cache instance.
+ */
+
+package org.jboss.dna.connector.jbosscache;
+
Modified: trunk/extensions/dna-connector-jdbc-metadata/src/main/java/org/jboss/dna/connector/jdbc/JdbcMetadataI18n.java
===================================================================
--- trunk/extensions/dna-connector-jdbc-metadata/src/main/java/org/jboss/dna/connector/jdbc/JdbcMetadataI18n.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-jdbc-metadata/src/main/java/org/jboss/dna/connector/jdbc/JdbcMetadataI18n.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,8 +28,7 @@
import org.jboss.dna.common.i18n.I18n;
/**
- * I18N
- * @author <a href="mailto:litsenko_sergey@yahoo.com">Sergiy Litsenko</a>
+ * The internationalized string constants for the <code>org.jboss.dna.connector.jdbc*</code> packages.
*/
public class JdbcMetadataI18n {
public static I18n connectorName;
Copied: trunk/extensions/dna-connector-jdbc-metadata/src/main/java/org/jboss/dna/connector/jdbc/package-info.java (from rev 1217, trunk/dna-repository/src/main/java/org/jboss/dna/repository/service/AdministeredService.java)
===================================================================
--- trunk/extensions/dna-connector-jdbc-metadata/src/main/java/org/jboss/dna/connector/jdbc/package-info.java (rev 0)
+++ trunk/extensions/dna-connector-jdbc-metadata/src/main/java/org/jboss/dna/connector/jdbc/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,29 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The classes that make up the connector that accesses schema and database metadata from JDBC databases, exposing that as content in a repository.
+ */
+
+package org.jboss.dna.connector.jdbc;
+
Modified: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/JpaConnection.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/JpaConnection.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/JpaConnection.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -36,7 +36,7 @@
import org.jboss.dna.graph.request.processor.RequestProcessor;
/**
- * @author Randall Hauch
+ * The repository connection to JPA repository sources.
*/
public class JpaConnection implements RepositoryConnection {
Modified: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/JpaConnectorI18n.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/JpaConnectorI18n.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/JpaConnectorI18n.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -25,11 +25,13 @@
import java.util.Locale;
import java.util.Set;
+import net.jcip.annotations.Immutable;
import org.jboss.dna.common.i18n.I18n;
/**
- * @author Randall Hauch
+ * The internationalized string constants for the <code>org.jboss.dna.connector.store.jpa*</code> packages.
*/
+@Immutable
public final class JpaConnectorI18n {
public static I18n connectorName;
Modified: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/JpaSource.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/JpaSource.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/JpaSource.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -65,8 +65,6 @@
* The {@link RepositorySource} for the connector that stores content in a (custom) relational database. This connector uses Java
* Persistence API as the interface to the database, with Hibernate as the JPA implementation. (Note that some Hibernate-specific
* features are used.)
- *
- * @author Randall Hauch
*/
public class JpaSource implements RepositorySource, ObjectFactory {
Modified: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/Model.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/Model.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/Model.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -40,7 +40,6 @@
* @see JpaSource.Models#addModel(Model)
* @see JpaSource#setModel(String)
* @see JpaSource#getModel()
- * @author Randall Hauch
*/
public abstract class Model {
private final String name;
Modified: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/BasicModel.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/BasicModel.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/BasicModel.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -90,8 +90,6 @@
* requests requires knowledge of the subgraph, and in fact all but the <code>ReadBranchRequest</code> need to know the complete
* subgraph.
* </p>
- *
- * @author Randall Hauch
*/
public class BasicModel extends Model {
Modified: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/BasicRequestProcessor.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/BasicRequestProcessor.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/BasicRequestProcessor.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -109,7 +109,7 @@
import org.jboss.dna.graph.request.processor.RequestProcessor;
/**
- * @author Randall Hauch
+ * A {@link RequestProcessor} implementation for the JPA connector.
*/
@NotThreadSafe
public class BasicRequestProcessor extends RequestProcessor {
Modified: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/ChildEntity.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/ChildEntity.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/ChildEntity.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -44,8 +44,6 @@
* nodes, this entity also maintains the indexInParent of the indexInParent within the parent node's list of all children, the
* child's name ( {@link #getChildName() local part} and {@link #getChildNamespace() namespace}), and the same-name-sibling
* indexInParent (if there is one).
- *
- * @author Randall Hauch
*/
@Entity
@Table( name = "DNA_BASIC_CHILDREN" )
@@ -312,15 +310,15 @@
@SuppressWarnings( "unchecked" )
public static int adjustSnsIndexesAndIndexes( EntityManager entities,
- Long workspaceId,
- String uuidParent,
- int afterIndex,
- int untilIndex,
- long childNamespaceIndex,
- String childName,
- int modifier ) {
+ Long workspaceId,
+ String uuidParent,
+ int afterIndex,
+ int untilIndex,
+ long childNamespaceIndex,
+ String childName,
+ int modifier ) {
int snsCount = 0;
-
+
// Decrement the 'indexInParent' index values for all nodes above the previously removed sibling ...
Query query = entities.createNamedQuery("ChildEntity.findChildrenAfterIndexUnderParent");
query.setParameter("workspaceId", workspaceId);
Modified: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/ChildId.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/ChildId.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/ChildId.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -31,8 +31,6 @@
/**
* A unique identifier for a parent-child relationship.
- *
- * @author Randall Hauch
*/
@Embeddable
@Immutable
Modified: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/LargeValueEntity.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/LargeValueEntity.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/LargeValueEntity.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -39,8 +39,6 @@
* A single property value that is too large to be stored on the individual node, and which will be shared among all properties
* that have the same value. Note that the large values are stored independently of workspace, so one large value may be shared by
* properties of nodes in different workspaces.
- *
- * @author Randall Hauch
*/
@Entity
@Table( name = "DNA_BASIC_LARGE_VALUES" )
Modified: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/LargeValueId.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/LargeValueId.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/LargeValueId.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -32,8 +32,6 @@
* A unique identifer for a large value, which is the 160-bit SHA-1 hash of this value, in hex form (40-bytes). The SHA-1
* algorithm is fast and has not yet proven to have any duplicates. Even if SHA-2 and SHA-3 are better for cryptographically
* secure purposes, it is doubtful whether a repository needs more than SHA-1 for identity purposes.
- *
- * @author Randall Hauch
*/
@Embeddable
@Immutable
Modified: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/NodeId.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/NodeId.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/NodeId.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -33,8 +33,6 @@
* An identifier for a node, comprised of a single {@link UUID}, and {@link Embeddable embeddable} in a persistent entity. The
* identifier takes the form of two <code>long</code> columns: one for the UUID's {@link UUID#getMostSignificantBits() most
* significant bits} and one for its {@link UUID#getLeastSignificantBits() least significant bits}.
- *
- * @author Randall Hauch
*/
@Embeddable
@Immutable
Modified: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/PropertiesEntity.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/PropertiesEntity.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/PropertiesEntity.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -44,8 +44,6 @@
* but nothing else. The PropertiesEntity doesn't even have the name. This is because this class is used to read, modify, and save
* the properties of a node. Finding a node by its name or working with the children, however, requires working with the
* {@link ChildEntity node children}.
- *
- * @author Randall Hauch
*/
@Entity
@Table( name = "DNA_BASIC_NODEPROPS" )
Modified: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/ReferenceEntity.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/ReferenceEntity.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/ReferenceEntity.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -37,8 +37,6 @@
/**
* A record of a reference from one node to another.
- *
- * @author Randall Hauch
*/
@Entity
@Table( name = "DNA_BASIC_REFERENCES" )
Modified: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/ReferenceId.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/ReferenceId.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/ReferenceId.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -32,8 +32,6 @@
/**
* An identifier for a reference, comprised of a single {@link NodeId} of the node containing the reference and a single
* {@link NodeId} of the node being referenced.
- *
- * @author Randall Hauch
*/
@Embeddable
@Immutable
Modified: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/SubgraphNodeEntity.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/SubgraphNodeEntity.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/SubgraphNodeEntity.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -36,7 +36,6 @@
/**
* Represents a single node that appears in a subgraph.
*
- * @author Randall Hauch
* @see SubgraphQueryEntity
*/
@Entity
Modified: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/SubgraphQuery.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/SubgraphQuery.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/SubgraphQuery.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -47,8 +47,6 @@
* The use of database joins also produces another benefit: the number of SQL statements necessary to build the set of nodes in a
* subgraph is equal to the depth of the subgraph, regardless of the number of child nodes at any level.
* </p>
- *
- * @author Randall Hauch
*/
public class SubgraphQuery {
Modified: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/SubgraphQueryEntity.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/SubgraphQueryEntity.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/SubgraphQueryEntity.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -31,8 +31,6 @@
/**
* Represents a temporary working area for a query that retrieves the nodes in a subgraph.
- *
- * @author Randall Hauch
*/
@Entity( name = "DNA_SUBGRAPH_QUERIES" )
public class SubgraphQueryEntity {
Copied: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/JavadocMetadata.java)
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/package-info.java (rev 0)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/basic/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,29 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The classes that define the "basic" storage model for the JPA connector.
+ */
+
+package org.jboss.dna.connector.store.jpa.model.basic;
+
Modified: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/common/ChangeLogEntity.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/common/ChangeLogEntity.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/common/ChangeLogEntity.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -39,8 +39,6 @@
/**
* Represents a record of the changes that have been made to the repository. The actual change events are serialized and stored in
* a binary (and compressed) format.
- *
- * @author Randall Hauch
*/
@Entity
@Table( name = "DNA_CHANGELOG" )
Modified: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/common/NamespaceEntity.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/common/NamespaceEntity.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/common/NamespaceEntity.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -40,8 +40,6 @@
/**
* A NamespaceEntity represents a namespace that has been used in the store. NamespaceEntity records are immutable and shared by
* one or more enities.
- *
- * @author Randall Hauch
*/
@Entity
@Table( name = "DNA_NAMESPACES" )
Modified: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/common/WorkspaceEntity.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/common/WorkspaceEntity.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/common/WorkspaceEntity.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -43,8 +43,6 @@
/**
* A WorkspaceEntity represents a workspace that has been create in the store. WorkspaceEntity records are immutable and shared by
* one or more enities.
- *
- * @author Randall Hauch
*/
@Entity
@Table( name = "DNA_WORKSPACES" )
Copied: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/common/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ModifierMetadata.java)
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/common/package-info.java (rev 0)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/model/common/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,29 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The classes that define the common JPA entities used in multiple storage models.
+ */
+
+package org.jboss.dna.connector.store.jpa.model.common;
+
Copied: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/InterfaceMetadata.java)
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/package-info.java (rev 0)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,29 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The classes that make up the connector that stores content in a relational database via JDBC and JPA.
+ */
+
+package org.jboss.dna.connector.store.jpa;
+
Modified: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/util/Namespaces.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/util/Namespaces.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/util/Namespaces.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -30,7 +30,7 @@
import org.jboss.dna.connector.store.jpa.model.common.NamespaceEntity;
/**
- * @author Randall Hauch
+ * A utility that wraps the {@link NamespaceEntity} objects appearing within an {@link EntityManager}.
*/
@NotThreadSafe
public class Namespaces {
Modified: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/util/RequestProcessorCache.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/util/RequestProcessorCache.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/util/RequestProcessorCache.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -43,8 +43,6 @@
/**
* Represents a cache of the known node information, including a node's actual {@link Location} and the complete set of children.
- *
- * @author Randall Hauch
*/
@NotThreadSafe
public class RequestProcessorCache {
Modified: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/util/Serializer.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/util/Serializer.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/util/Serializer.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -56,7 +56,7 @@
import org.jboss.dna.graph.property.ValueFormatException;
/**
- * @author Randall Hauch
+ * A class that is responsible for serializing and deserializing properties.
*/
public class Serializer {
Modified: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/util/StoreOptionEntity.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/util/StoreOptionEntity.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/util/StoreOptionEntity.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -39,8 +39,6 @@
* This JPA entity is always added to the {@link Ejb3Configuration} in the {@link JpaSource#getConnection() JpaSource}, and
* therefore should not be {@link Model#configure(Ejb3Configuration) added to the configuration} by a {@link Model}.
* </p>
- *
- * @author Randall Hauch
*/
@Entity( name = "DNA_OPTIONS" )
@NamedQueries( {@NamedQuery( name = "StoreOptionEntity.findAll", query = "SELECT option FROM DNA_OPTIONS AS option" )} )
Modified: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/util/StoreOptions.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/util/StoreOptions.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/util/StoreOptions.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -29,7 +29,7 @@
import org.jboss.dna.connector.store.jpa.Model;
/**
- * @author Randall Hauch
+ * A utility class that provides easy access to the options stored within a database.
*/
public class StoreOptions {
Modified: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/util/Workspaces.java
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/util/Workspaces.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/util/Workspaces.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -32,8 +32,6 @@
/**
* A manager and cache for {@link WorkspaceEntity} objects.
- *
- * @author Randall Hauch
*/
@NotThreadSafe
public class Workspaces {
Copied: trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/util/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/InterfaceMetadata.java)
===================================================================
--- trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/util/package-info.java (rev 0)
+++ trunk/extensions/dna-connector-store-jpa/src/main/java/org/jboss/dna/connector/store/jpa/util/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,29 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The classes that define the utility JPA entities that are not part of any storage model.
+ */
+
+package org.jboss.dna.connector.store.jpa.util;
+
Modified: trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/scm/ScmAction.java
===================================================================
--- trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/scm/ScmAction.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/scm/ScmAction.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,9 +24,8 @@
package org.jboss.dna.connector.scm;
/**
- * @author Serge Pagop
*
*/
public interface ScmAction {
- public void applyAction(Object context) throws Exception;
+ public void applyAction( Object context ) throws Exception;
}
Modified: trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/scm/ScmActionExecutor.java
===================================================================
--- trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/scm/ScmActionExecutor.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/scm/ScmActionExecutor.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,7 +24,6 @@
package org.jboss.dna.connector.scm;
/**
- * @author Serge Pagop
*
*/
public interface ScmActionExecutor {
Modified: trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/scm/ScmActionFactory.java
===================================================================
--- trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/scm/ScmActionFactory.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/scm/ScmActionFactory.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,11 +24,9 @@
package org.jboss.dna.connector.scm;
/**
- * @author Serge Pagop
*/
public interface ScmActionFactory {
-
public ScmAction addFile( String path,
String file,
byte[] content );
Copied: trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/scm/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/JavadocMetadata.java)
===================================================================
--- trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/scm/package-info.java (rev 0)
+++ trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/scm/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,29 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The classes that define the SVN actions.
+ */
+
+package org.jboss.dna.connector.scm;
+
Modified: trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNActionExecutor.java
===================================================================
--- trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNActionExecutor.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNActionExecutor.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -32,7 +32,6 @@
import org.tmatesoft.svn.core.io.SVNRepository;
/**
- * @author Serge Pagop
*/
public class SVNActionExecutor implements ScmActionExecutor {
Modified: trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNProtocol.java
===================================================================
--- trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNProtocol.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNProtocol.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,7 +24,6 @@
package org.jboss.dna.connector.svn;
/**
- * @author Serge Pagop
*/
public enum SVNProtocol {
FILE("file"),
Modified: trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNRepositoryConnection.java
===================================================================
--- trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNRepositoryConnection.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNRepositoryConnection.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -41,8 +41,6 @@
/**
* The defaultRepository connection to a SVN Repository instance.
- *
- * @author Serge Pagop
*/
public class SVNRepositoryConnection implements RepositoryConnection {
@@ -53,10 +51,10 @@
private final Set<String> availableWorkspaceNames;
private final boolean creatingWorkspacesAllowed;
private final RepositoryAccessData accessData;
-
+
/**
- * default workspace must can be a root repository or any folders from the root directory.
- * available workspace names must consist of URLs from repository folders.
+ * default workspace must can be a root repository or any folders from the root directory. available workspace names must
+ * consist of URLs from repository folders.
*
* @param sourceName
* @param defaultWorkspace
@@ -71,13 +69,14 @@
Set<String> availableWorkspaceNames,
boolean creatingWorkspacesAllowed,
CachePolicy cachePolicy,
- boolean updatesAllowed, RepositoryAccessData accessData ) {
+ boolean updatesAllowed,
+ RepositoryAccessData accessData ) {
CheckArg.isNotNull(defaultWorkspace, "defaultWorkspace");
CheckArg.isNotEmpty(sourceName, "sourceName");
assert availableWorkspaceNames != null;
assert accessData != null;
-
+
// Check if the default workspace is a folder.
SVNNodeKind nodeKind = null;
try {
@@ -168,10 +167,9 @@
public void execute( final ExecutionContext context,
final Request request ) throws RepositorySourceException {
-
- RequestProcessor processor = new SVNRepositoryRequestProcessor(sourceName, defaultWorkspace,
- availableWorkspaceNames, creatingWorkspacesAllowed,
- context, updatesAllowed, accessData);
+ RequestProcessor processor = new SVNRepositoryRequestProcessor(sourceName, defaultWorkspace, availableWorkspaceNames,
+ creatingWorkspacesAllowed, context, updatesAllowed,
+ accessData);
try {
processor.process(request);
} finally {
Modified: trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNRepositoryConnectorI18n.java
===================================================================
--- trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNRepositoryConnectorI18n.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNRepositoryConnectorI18n.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,7 +28,7 @@
import org.jboss.dna.common.i18n.I18n;
/**
- * @author Serge Pagop
+ * The internationalized string constants for the <code>org.jboss.dna.connector.svn*</code> packages.
*/
public final class SVNRepositoryConnectorI18n {
Modified: trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNRepositoryLexicon.java
===================================================================
--- trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNRepositoryLexicon.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNRepositoryLexicon.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -26,11 +26,8 @@
import org.jboss.dna.graph.property.Name;
import org.jboss.dna.graph.property.basic.BasicName;
-
/**
* The namespace and property names used within a {@link SVNRepositorySource} to store internal information.
- *
- * @author Serge Pagop
*/
public class SVNRepositoryLexicon {
Modified: trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNRepositoryRequestProcessor.java
===================================================================
--- trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNRepositoryRequestProcessor.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNRepositoryRequestProcessor.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -86,8 +86,6 @@
/**
* The {@link RequestProcessor} implementation for the file subversion repository connector. This is the class that does the bulk
* of the work in the subversion repository connector, since it processes all requests.
- *
- * @author Serge Pagop
*/
public class SVNRepositoryRequestProcessor extends RequestProcessor implements ScmActionFactory {
Modified: trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNRepositorySource.java
===================================================================
--- trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNRepositorySource.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNRepositorySource.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -54,8 +54,6 @@
* repository. This source considers a workspace name to be the path to the directory on the repository's root directory location
* that represents the root of that workspace. New workspaces can be created, as long as the names represent valid paths to
* existing directories.
- *
- * @author Serge Pagop
*/
@ThreadSafe
public class SVNRepositorySource implements RepositorySource, ObjectFactory {
Modified: trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNRepositoryUtil.java
===================================================================
--- trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNRepositoryUtil.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/SVNRepositoryUtil.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -17,7 +17,6 @@
import org.tmatesoft.svn.core.wc.SVNWCUtil;
/**
- * @author Serge Pagop
*/
public class SVNRepositoryUtil {
Copied: trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ClassMetadata.java)
===================================================================
--- trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/package-info.java (rev 0)
+++ trunk/extensions/dna-connector-svn/src/main/java/org/jboss/dna/connector/svn/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,29 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The classes that make up the connector that accesses content from an SVN repository.
+ */
+
+package org.jboss.dna.connector.svn;
+
Modified: trunk/extensions/dna-mimetype-detector-aperture/src/main/java/org/jboss/dna/mimetype/aperture/ApertureMimeTypeDetector.java
===================================================================
--- trunk/extensions/dna-mimetype-detector-aperture/src/main/java/org/jboss/dna/mimetype/aperture/ApertureMimeTypeDetector.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-mimetype-detector-aperture/src/main/java/org/jboss/dna/mimetype/aperture/ApertureMimeTypeDetector.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -31,7 +31,7 @@
import org.semanticdesktop.aperture.util.IOUtil;
/**
- * @author jverhaeg
+ * A {@link MimeTypeDetector} that uses the Aperture library.
*/
public class ApertureMimeTypeDetector implements MimeTypeDetector {
Copied: trunk/extensions/dna-mimetype-detector-aperture/src/main/java/org/jboss/dna/mimetype/aperture/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/JavadocMetadata.java)
===================================================================
--- trunk/extensions/dna-mimetype-detector-aperture/src/main/java/org/jboss/dna/mimetype/aperture/package-info.java (rev 0)
+++ trunk/extensions/dna-mimetype-detector-aperture/src/main/java/org/jboss/dna/mimetype/aperture/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,29 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The classes that make up the Aperture MIME type detector.
+ */
+
+package org.jboss.dna.mimetype.aperture;
+
Modified: trunk/extensions/dna-sequencer-cnd/src/main/java/org/jboss/dna/sequencer/cnd/CndSequencer.java
===================================================================
--- trunk/extensions/dna-sequencer-cnd/src/main/java/org/jboss/dna/sequencer/cnd/CndSequencer.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-cnd/src/main/java/org/jboss/dna/sequencer/cnd/CndSequencer.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -31,12 +31,12 @@
import org.jboss.dna.graph.io.Destination;
import org.jboss.dna.graph.property.Path;
import org.jboss.dna.graph.property.Property;
-import org.jboss.dna.graph.sequencer.StreamSequencerContext;
import org.jboss.dna.graph.sequencer.SequencerOutput;
import org.jboss.dna.graph.sequencer.StreamSequencer;
+import org.jboss.dna.graph.sequencer.StreamSequencerContext;
/**
- *
+ * A sequencer of CND files.
*/
public class CndSequencer implements StreamSequencer {
Modified: trunk/extensions/dna-sequencer-cnd/src/main/java/org/jboss/dna/sequencer/cnd/CndSequencerI18n.java
===================================================================
--- trunk/extensions/dna-sequencer-cnd/src/main/java/org/jboss/dna/sequencer/cnd/CndSequencerI18n.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-cnd/src/main/java/org/jboss/dna/sequencer/cnd/CndSequencerI18n.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,7 +28,7 @@
import org.jboss.dna.common.i18n.I18n;
/**
- * @author Randall Hauch
+ * The internationalized string constants for the <code>org.jboss.dna.sequencer.cnd*</code> packages.
*/
public final class CndSequencerI18n {
Copied: trunk/extensions/dna-sequencer-cnd/src/main/java/org/jboss/dna/sequencer/cnd/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/JavadocMetadata.java)
===================================================================
--- trunk/extensions/dna-sequencer-cnd/src/main/java/org/jboss/dna/sequencer/cnd/package-info.java (rev 0)
+++ trunk/extensions/dna-sequencer-cnd/src/main/java/org/jboss/dna/sequencer/cnd/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,29 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The classes that make up the JCR Compact Node Definition (CND) file sequencer.
+ */
+
+package org.jboss.dna.sequencer.cnd;
+
Modified: trunk/extensions/dna-sequencer-images/src/main/java/org/jboss/dna/sequencer/image/ImageMetadataSequencer.java
===================================================================
--- trunk/extensions/dna-sequencer-images/src/main/java/org/jboss/dna/sequencer/image/ImageMetadataSequencer.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-images/src/main/java/org/jboss/dna/sequencer/image/ImageMetadataSequencer.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -27,9 +27,9 @@
import org.jboss.dna.graph.property.NameFactory;
import org.jboss.dna.graph.property.Path;
import org.jboss.dna.graph.property.PathFactory;
-import org.jboss.dna.graph.sequencer.StreamSequencerContext;
import org.jboss.dna.graph.sequencer.SequencerOutput;
import org.jboss.dna.graph.sequencer.StreamSequencer;
+import org.jboss.dna.graph.sequencer.StreamSequencerContext;
/**
* A sequencer that processes the binary content of an image file, extracts the metadata for the image, and then writes that image
@@ -63,9 +63,6 @@
* 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.
* </p>
- *
- * @author Randall Hauch
- * @author John Verhaeg
*/
public class ImageMetadataSequencer implements StreamSequencer {
Modified: trunk/extensions/dna-sequencer-images/src/main/java/org/jboss/dna/sequencer/image/ImageSequencerI18n.java
===================================================================
--- trunk/extensions/dna-sequencer-images/src/main/java/org/jboss/dna/sequencer/image/ImageSequencerI18n.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-images/src/main/java/org/jboss/dna/sequencer/image/ImageSequencerI18n.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,7 +28,7 @@
import org.jboss.dna.common.i18n.I18n;
/**
- * @author Randall Hauch
+ * The internationalized string constants for the <code>org.jboss.dna.sequencer.image*</code> packages.
*/
public final class ImageSequencerI18n {
Copied: trunk/extensions/dna-sequencer-images/src/main/java/org/jboss/dna/sequencer/image/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/JavadocMetadata.java)
===================================================================
--- trunk/extensions/dna-sequencer-images/src/main/java/org/jboss/dna/sequencer/image/package-info.java (rev 0)
+++ trunk/extensions/dna-sequencer-images/src/main/java/org/jboss/dna/sequencer/image/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,29 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The classes that make up the image sequencer.
+ */
+
+package org.jboss.dna.sequencer.image;
+
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/AbstractJavaMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/AbstractJavaMetadata.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/AbstractJavaMetadata.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -72,8 +72,6 @@
/**
* Abstract definition of a <code>JavaMetadata<code>. This class exposes some useful methods, that can
* be used to create meta data of a compilation unit. Methods can also separately be used.
- *
- * @author Serge Pagop
*/
public abstract class AbstractJavaMetadata {
@@ -320,11 +318,13 @@
// TODO
}
if (type.isSimpleType()) {
- SimpleTypeFieldMetadata simpleTypeFieldMetadata = (SimpleTypeFieldMetadata)processVariableDeclaration(singleVariableDeclaration, type);
+ SimpleTypeFieldMetadata simpleTypeFieldMetadata = (SimpleTypeFieldMetadata)processVariableDeclaration(singleVariableDeclaration,
+ type);
methodMetadata.getParameters().add(simpleTypeFieldMetadata);
}
if (type.isArrayType()) {
- ArrayTypeFieldMetadata arrayTypeFieldMetadata = (ArrayTypeFieldMetadata)processVariableDeclaration(singleVariableDeclaration, type);
+ ArrayTypeFieldMetadata arrayTypeFieldMetadata = (ArrayTypeFieldMetadata)processVariableDeclaration(singleVariableDeclaration,
+ type);
methodMetadata.getParameters().add(arrayTypeFieldMetadata);
}
if (type.isWildcardType()) {
@@ -364,14 +364,14 @@
}
return primitiveFieldMetadata;
}
- if(type.isSimpleType()) {
+ if (type.isSimpleType()) {
SimpleType simpleType = (SimpleType)type;
SimpleTypeFieldMetadata simpleTypeFieldMetadata = new SimpleTypeFieldMetadata();
simpleTypeFieldMetadata.setType(JavaMetadataUtil.getName(simpleType.getName()));
variable = new Variable();
variable.setName(JavaMetadataUtil.getName(singleVariableDeclaration.getName()));
simpleTypeFieldMetadata.getVariables().add(variable);
- for (IExtendedModifier simpleTypeExtendedModifier : (List<IExtendedModifier> )singleVariableDeclaration.modifiers()) {
+ for (IExtendedModifier simpleTypeExtendedModifier : (List<IExtendedModifier>)singleVariableDeclaration.modifiers()) {
ModifierMetadata modifierMetadata = new ModifierMetadata();
if (simpleTypeExtendedModifier.isAnnotation()) {
// TODO
@@ -392,32 +392,32 @@
parameterizedTypeFieldMetadata.getVariables().add(variable);
for (IExtendedModifier parameterizedExtendedModifier : (List<IExtendedModifier>)singleVariableDeclaration.modifiers()) {
ModifierMetadata modifierMetadata = new ModifierMetadata();
- if(parameterizedExtendedModifier.isAnnotation()) {
+ if (parameterizedExtendedModifier.isAnnotation()) {
// TODO
} else {
Modifier modifier = (Modifier)parameterizedExtendedModifier;
modifierMetadata.setName(modifier.getKeyword().toString());
- parameterizedTypeFieldMetadata.getModifiers().add(modifierMetadata);
+ parameterizedTypeFieldMetadata.getModifiers().add(modifierMetadata);
}
}
return parameterizedTypeFieldMetadata;
}
- if(type.isArrayType()) {
+ if (type.isArrayType()) {
ArrayTypeFieldMetadata arrayTypeFieldMetadata = new ArrayTypeFieldMetadata();
ArrayType arrayType = (ArrayType)type;
arrayTypeFieldMetadata.setType(getTypeName(arrayType));
variable = new Variable();
variable.setName(JavaMetadataUtil.getName(singleVariableDeclaration.getName()));
arrayTypeFieldMetadata.getVariables().add(variable);
-
+
for (IExtendedModifier arrayTypeExtendedModifier : (List<IExtendedModifier>)singleVariableDeclaration.modifiers()) {
ModifierMetadata modifierMetadata = new ModifierMetadata();
- if(arrayTypeExtendedModifier.isAnnotation()) {
+ if (arrayTypeExtendedModifier.isAnnotation()) {
// TODO
} else {
Modifier modifier = (Modifier)arrayTypeExtendedModifier;
modifierMetadata.setName(modifier.getKeyword().toString());
- arrayTypeFieldMetadata.getModifiers().add(modifierMetadata);
+ arrayTypeFieldMetadata.getModifiers().add(modifierMetadata);
}
}
return arrayTypeFieldMetadata;
@@ -442,19 +442,19 @@
SimpleType simpleType = (SimpleType)type;
return JavaMetadataUtil.getName(simpleType.getName());
}
- if(type.isArrayType()) {
+ if (type.isArrayType()) {
ArrayType arrayType = (ArrayType)type;
// the element type is never an array type
Type elementType = arrayType.getElementType();
if (elementType.isPrimitiveType()) {
- return ((PrimitiveType)elementType).getPrimitiveTypeCode().toString();
+ return ((PrimitiveType)elementType).getPrimitiveTypeCode().toString();
}
// can't be an array type
if (elementType.isSimpleType()) {
return JavaMetadataUtil.getName(((SimpleType)elementType).getName());
}
-
+
}
return null;
}
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/ArrayTypeFieldMetadataSequencer.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/ArrayTypeFieldMetadataSequencer.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/ArrayTypeFieldMetadataSequencer.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -34,8 +34,6 @@
/**
* Sequencer for array types.
- *
- * @author Serge Pagop
*/
public class ArrayTypeFieldMetadataSequencer implements JavaSourceCndDefinition {
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/CompilationUnitParser.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/CompilationUnitParser.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/CompilationUnitParser.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -29,8 +29,6 @@
/**
* The Parser, that process the a compilation unit.
- *
- * @author Serge Pagop
*/
public class CompilationUnitParser {
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/JavaMetadataI18n.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/JavaMetadataI18n.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/JavaMetadataI18n.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,7 +28,7 @@
import org.jboss.dna.common.i18n.I18n;
/**
- * @author Serge Pagop
+ * The internationalized string constants for the <code>org.jboss.dna.sequencer.java*</code> packages.
*/
public class JavaMetadataI18n {
public static I18n sequencerTaskName;
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/JavaMetadataSequencer.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/JavaMetadataSequencer.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/JavaMetadataSequencer.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -29,9 +29,9 @@
import org.jboss.dna.graph.property.NameFactory;
import org.jboss.dna.graph.property.Path;
import org.jboss.dna.graph.property.PathFactory;
-import org.jboss.dna.graph.sequencer.StreamSequencerContext;
import org.jboss.dna.graph.sequencer.SequencerOutput;
import org.jboss.dna.graph.sequencer.StreamSequencer;
+import org.jboss.dna.graph.sequencer.StreamSequencerContext;
import org.jboss.dna.sequencer.java.metadata.AnnotationMetadata;
import org.jboss.dna.sequencer.java.metadata.ArrayTypeFieldMetadata;
import org.jboss.dna.sequencer.java.metadata.ClassMetadata;
@@ -165,9 +165,6 @@
* </li>
* </ul>
* </p>
- *
- * @author Serge Pagop
- * @author John Verhaeg
*/
public class JavaMetadataSequencer implements JavaSourceCndDefinition, StreamSequencer {
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/JavaMetadataUtil.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/JavaMetadataUtil.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/JavaMetadataUtil.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -30,7 +30,7 @@
import org.jboss.dna.common.util.CheckArg;
/**
- * @author Serge Pagop
+ * Utility class for working with metadata.
*/
public class JavaMetadataUtil {
/**
@@ -70,7 +70,7 @@
CheckArg.isNotNull(name, "name");
return name.getFullyQualifiedName();
}
-
+
/**
* Create a path for the tree with index.
*
@@ -80,7 +80,7 @@
* @throws IllegalArgumentException if the path is null, blank or empty, or if the index is not a positive value
*/
public static String createPathWithIndex( String path,
- int index ) {
+ int index ) {
CheckArg.isNotEmpty(path, "path");
CheckArg.isPositive(index, "index");
return path + "[" + index + "]";
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/JavaSourceCndDefinition.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/JavaSourceCndDefinition.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/JavaSourceCndDefinition.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -25,8 +25,6 @@
/**
* JavaSourceCndDefinition defines each elements and sub elements, that must be found in the java source cnd document.
- *
- * @author Serge Pagop
*/
public interface JavaSourceCndDefinition {
@@ -120,19 +118,19 @@
public static final String JAVA_SIMPLE_TYPE_NAME = "java:simpleTypeName";
public static final String JAVA_SIMPLE_TYPE_VARIABLE = "java:simpleTypeVariable";
public static final String JAVA_SIMPLE_TYPE_MODIFIER_CHILD_NODE = "java:simpleTypeModifier";
-
+
// Parameterized type
- public static final String JAVA_PARAMETERIZED_TYPE_CHILD_NODE="java:parameterizedType";
- public static final String JAVA_PARAMETERIZED_TYPE_DESCRIPTION ="java:parameterizedTypeDescription";
- public static final String JAVA_PARAMETERIZED_TYPE_MODIFIER_CHILD_NODE ="java:parameterizedTypeModifier";
- public static final String JAVA_PARAMETERIZED_TYPE_NAME ="java:parameterizedTypeName";
- public static final String JAVA_PARAMETERIZED_TYPE_VARIABLE ="java:parameterizedTypeVariable";
-
+ public static final String JAVA_PARAMETERIZED_TYPE_CHILD_NODE = "java:parameterizedType";
+ public static final String JAVA_PARAMETERIZED_TYPE_DESCRIPTION = "java:parameterizedTypeDescription";
+ public static final String JAVA_PARAMETERIZED_TYPE_MODIFIER_CHILD_NODE = "java:parameterizedTypeModifier";
+ public static final String JAVA_PARAMETERIZED_TYPE_NAME = "java:parameterizedTypeName";
+ public static final String JAVA_PARAMETERIZED_TYPE_VARIABLE = "java:parameterizedTypeVariable";
+
// Array type
- public static final String JAVA_ARRAY_TYPE_CHILD_NODE="java:arrayType";
- public static final String JAVA_ARRAY_TYPE_DESCRIPTION ="java:arrayTypeDescription";
- public static final String JAVA_ARRAY_TYPE_MODIFIER_CHILD_NODE ="java:arrayTypeModifier";
- public static final String JAVA_ARRAY_TYPE_NAME ="java:arrayTypeName";
- public static final String JAVA_ARRAY_TYPE_VARIABLE ="java:arrayTypeVariable";
+ public static final String JAVA_ARRAY_TYPE_CHILD_NODE = "java:arrayType";
+ public static final String JAVA_ARRAY_TYPE_DESCRIPTION = "java:arrayTypeDescription";
+ public static final String JAVA_ARRAY_TYPE_MODIFIER_CHILD_NODE = "java:arrayTypeModifier";
+ public static final String JAVA_ARRAY_TYPE_NAME = "java:arrayTypeName";
+ public static final String JAVA_ARRAY_TYPE_VARIABLE = "java:arrayTypeVariable";
}
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/MethodMetadataSequencer.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/MethodMetadataSequencer.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/MethodMetadataSequencer.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -29,24 +29,20 @@
/**
* Sequencer for a {@link MethodMetadata}.
- *
- * @author Serge PAgop
- *
*/
public class MethodMetadataSequencer implements JavaSourceCndDefinition {
-
+
/**
- * Create a path of method/constructor parameter.
+ * Create a path of method/constructor parameter.
+ *
* @param pathFactory - {@link PathFactory}.
* @param rootPath - Root path of the method/constructor.
* @return the path of the parameter.
*/
public static Path createMethodParamPath( PathFactory pathFactory,
- String rootPath ) {
- String methodPrimitiveParamVariablePath = JavaMetadataUtil.createPath(rootPath
- + SLASH
- + JAVA_PRIMITIVE_TYPE_VARIABLE
- + SLASH + JAVA_VARIABLE);
+ String rootPath ) {
+ String methodPrimitiveParamVariablePath = JavaMetadataUtil.createPath(rootPath + SLASH + JAVA_PRIMITIVE_TYPE_VARIABLE
+ + SLASH + JAVA_VARIABLE);
Path methodParamChildNode = pathFactory.create(methodPrimitiveParamVariablePath);
return methodParamChildNode;
}
@@ -59,8 +55,8 @@
*/
public static String createMethodParamRootPath( String constructorParameterRootPath ) {
String constructPrimitiveFormalParamRootPath = JavaMetadataUtil.createPath(constructorParameterRootPath + SLASH
- + JAVA_TYPE_CHILD_NODE + SLASH
- + JAVA_PRIMITIVE_TYPE_CHILD_NODE);
+ + JAVA_TYPE_CHILD_NODE + SLASH
+ + JAVA_PRIMITIVE_TYPE_CHILD_NODE);
return constructPrimitiveFormalParamRootPath;
}
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/ParameterizedTypeFieldMetadataSequencer.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/ParameterizedTypeFieldMetadataSequencer.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/ParameterizedTypeFieldMetadataSequencer.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -32,8 +32,6 @@
/**
* Sequencer for all paths of a {@link ParameterizedTypeFieldMetadata}.
- *
- * @author Serge Pagop
*/
public class ParameterizedTypeFieldMetadataSequencer implements JavaSourceCndDefinition {
@@ -45,13 +43,15 @@
*/
public static String getParameterizedTypeFieldRootPath( int parameterizedIndex ) {
String simpleTypeFieldRootPath = JavaMetadataUtil.createPathWithIndex(JAVA_COMPILATION_UNIT_NODE + SLASH
- + JAVA_UNIT_TYPE_CHILD_NODE + SLASH
- + JAVA_CLASS_DECLARATION_CHILD_NODE + SLASH
- + JAVA_NORMAL_CLASS_CHILD_NODE + SLASH
- + JAVA_NORMAL_CLASS_DECLARATION_CHILD_NODE + SLASH
- + JAVA_FIELD_CHILD_NODE + SLASH + JAVA_FIELD_TYPE_CHILD_NODE
- + SLASH + JAVA_TYPE_CHILD_NODE + SLASH
- + JAVA_PARAMETERIZED_TYPE_CHILD_NODE, parameterizedIndex);
+ + JAVA_UNIT_TYPE_CHILD_NODE + SLASH
+ + JAVA_CLASS_DECLARATION_CHILD_NODE + SLASH
+ + JAVA_NORMAL_CLASS_CHILD_NODE + SLASH
+ + JAVA_NORMAL_CLASS_DECLARATION_CHILD_NODE + SLASH
+ + JAVA_FIELD_CHILD_NODE + SLASH
+ + JAVA_FIELD_TYPE_CHILD_NODE + SLASH
+ + JAVA_TYPE_CHILD_NODE + SLASH
+ + JAVA_PARAMETERIZED_TYPE_CHILD_NODE,
+ parameterizedIndex);
return simpleTypeFieldRootPath;
}
@@ -85,9 +85,10 @@
public static String getParameterizedTypeFieldRModifierPath( String parameterizedTypeFieldRootPath,
int parameterizedTypeModifierIndex ) {
String parameterizedTypeModifierPath = JavaMetadataUtil.createPathWithIndex(parameterizedTypeFieldRootPath + SLASH
- + JAVA_PARAMETERIZED_TYPE_MODIFIER_CHILD_NODE + SLASH
- + JAVA_MODIFIER_DECLARATION_CHILD_NODE,
- parameterizedTypeModifierIndex);
+ + JAVA_PARAMETERIZED_TYPE_MODIFIER_CHILD_NODE
+ + SLASH
+ + JAVA_MODIFIER_DECLARATION_CHILD_NODE,
+ parameterizedTypeModifierIndex);
return parameterizedTypeModifierPath;
}
@@ -121,12 +122,12 @@
String parameterizedTypeFieldRootPath,
int parameterizedTypeVariableIndex ) {
String variablePath = JavaMetadataUtil.createPathWithIndex(parameterizedTypeFieldRootPath + SLASH
- + JAVA_PARAMETERIZED_TYPE_VARIABLE + SLASH + JAVA_VARIABLE,
- parameterizedTypeVariableIndex);
+ + JAVA_PARAMETERIZED_TYPE_VARIABLE + SLASH + JAVA_VARIABLE,
+ parameterizedTypeVariableIndex);
Path parameterizedTypeVariableChildNode = pathFactory.create(variablePath);
return parameterizedTypeVariableChildNode;
}
-
+
private ParameterizedTypeFieldMetadataSequencer() {
// prevent constructor
}
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/SimpleTypeMetadataSequencer.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/SimpleTypeMetadataSequencer.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/SimpleTypeMetadataSequencer.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -32,8 +32,6 @@
/**
* The sequencer of the {@link SimpleTypeFieldMetadata}
- *
- * @author Serge Pagop
*/
public class SimpleTypeMetadataSequencer implements JavaSourceCndDefinition {
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/VariableSequencer.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/VariableSequencer.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/VariableSequencer.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -30,11 +30,9 @@
/**
* Sequencer for variabels.
- * @author Perge Pagop
- *
*/
public class VariableSequencer implements JavaSourceCndDefinition {
-
+
/**
* Sequence a variable.
*
@@ -44,9 +42,9 @@
* @param path - the path
*/
public static void sequenceTheVariable( SequencerOutput output,
- NameFactory nameFactory,
- Variable variable,
- Path path ) {
+ NameFactory nameFactory,
+ Variable variable,
+ Path path ) {
output.setProperty(path, nameFactory.create(JAVA_VARIABLE_NAME), variable.getName());
}
}
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/AnnotationMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/AnnotationMetadata.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/AnnotationMetadata.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,7 +24,7 @@
package org.jboss.dna.sequencer.java.metadata;
/**
- * @author Serge Pagop
+ * Abstract class for annotations.
*/
public abstract class AnnotationMetadata {
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ArrayTypeFieldMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ArrayTypeFieldMetadata.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ArrayTypeFieldMetadata.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,17 +23,14 @@
*/
package org.jboss.dna.sequencer.java.metadata;
-
/**
* ArrayTypeFieldMetadata represents the meta data for an array type.
- *
- * @author Serge Pagop
*/
public class ArrayTypeFieldMetadata extends FieldMetadata {
-
+
/**
* {@inheritDoc}
- *
+ *
* @see org.jboss.dna.sequencer.java.metadata.FieldMetadata#isArrayType()
*/
@Override
@@ -41,14 +38,14 @@
return true;
}
- // Element type
+ // Element type
private FieldMetadata elementType;
-
+
// Component type
private FieldMetadata componentType;
public ArrayTypeFieldMetadata() {
-
+
}
/**
@@ -81,7 +78,7 @@
/**
* {@inheritDoc}
- *
+ *
* @see java.lang.Object#toString()
*/
@Override
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ClassMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ClassMetadata.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ClassMetadata.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,7 +24,7 @@
package org.jboss.dna.sequencer.java.metadata;
/**
- * @author Serge Pagop
+ * Class metadata.
*/
public class ClassMetadata extends TypeMetadata {
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ConstructorMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ConstructorMetadata.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ConstructorMetadata.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,7 +24,7 @@
package org.jboss.dna.sequencer.java.metadata;
/**
- *
+ * Constructor metadata.
*/
public class ConstructorMetadata extends MethodMetadata {
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/FieldMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/FieldMetadata.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/FieldMetadata.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,8 +28,6 @@
/**
* FieldMetadata is the base class of all fields.
- *
- * @author Serge Pagop
*/
public class FieldMetadata {
@@ -82,7 +80,7 @@
public void setModifiers( List<ModifierMetadata> modifierMetadatas ) {
this.modifierMetadatas = modifierMetadatas;
}
-
+
/**
* Find out if a field is primitive type or not.
*
@@ -91,7 +89,7 @@
public boolean isPrimitiveType() {
return false;
}
-
+
/**
* Find out if a field is a simple type or not.
*
@@ -100,7 +98,7 @@
public boolean isSimpleType() {
return false;
}
-
+
/**
* Find out if a field is a array type or not.
*
@@ -118,7 +116,7 @@
public boolean isQualifiedType() {
return false;
}
-
+
/**
* Find out if a field is a parameterized type or not.
*
@@ -127,7 +125,7 @@
public boolean isParameterizedType() {
return false;
}
-
+
/**
* Find out if a field is a wild card type or not.
*
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ImportMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ImportMetadata.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ImportMetadata.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,7 +24,7 @@
package org.jboss.dna.sequencer.java.metadata;
/**
- * @author Serge Pagop
+ * Import metadata.
*/
public abstract class ImportMetadata {
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ImportOnDemandMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ImportOnDemandMetadata.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ImportOnDemandMetadata.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,7 +24,7 @@
package org.jboss.dna.sequencer.java.metadata;
/**
- * @author Serge Pagop
+ * On-demand import metadata.
*/
public class ImportOnDemandMetadata extends ImportMetadata {
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/InterfaceMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/InterfaceMetadata.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/InterfaceMetadata.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,7 +24,7 @@
package org.jboss.dna.sequencer.java.metadata;
/**
- * @author Serge Pagop
+ * Interface metadata.
*/
public class InterfaceMetadata extends TypeMetadata {
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/JavaMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/JavaMetadata.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/JavaMetadata.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -31,8 +31,7 @@
import org.jboss.dna.sequencer.java.JavaMetadataUtil;
/**
- * @author Serge Pagop
- * @author John Verhaeg
+ * Metadata for a Java source file.
*/
public class JavaMetadata extends AbstractJavaMetadata {
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/JavadocMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/JavadocMetadata.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/JavadocMetadata.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,7 +24,7 @@
package org.jboss.dna.sequencer.java.metadata;
/**
- *
+ * JavaDoc metadata.
*/
public class JavadocMetadata {
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/MarkerAnnotationMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/MarkerAnnotationMetadata.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/MarkerAnnotationMetadata.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,7 +24,7 @@
package org.jboss.dna.sequencer.java.metadata;
/**
- *
+ * Metadata for marker annotations.
*/
public class MarkerAnnotationMetadata extends AnnotationMetadata {
private boolean marker;
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/MethodTypeMemberMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/MethodTypeMemberMetadata.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/MethodTypeMemberMetadata.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,7 +24,7 @@
package org.jboss.dna.sequencer.java.metadata;
/**
- *
+ * Metadata for method type members.
*/
public class MethodTypeMemberMetadata extends MethodMetadata {
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ModifierMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ModifierMetadata.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ModifierMetadata.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,7 +24,7 @@
package org.jboss.dna.sequencer.java.metadata;
/**
- *
+ * Metadata for modifiers.
*/
public class ModifierMetadata extends AnnotationMetadata {
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/NormalAnnotationMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/NormalAnnotationMetadata.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/NormalAnnotationMetadata.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,7 +24,7 @@
package org.jboss.dna.sequencer.java.metadata;
/**
- *
+ * Metadata for normal annotations.
*/
public class NormalAnnotationMetadata extends AnnotationMetadata {
private boolean normal;
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/PackageMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/PackageMetadata.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/PackageMetadata.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,8 +28,6 @@
/**
* Package meta data.
- *
- * @author Serge Pagop.
*/
public class PackageMetadata {
private JavadocMetadata javadocMetadata;
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ParameterizedTypeFieldMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ParameterizedTypeFieldMetadata.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ParameterizedTypeFieldMetadata.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -25,16 +25,15 @@
/**
* ParameterizedTypeFieldMetadata is a meta data for a parameterized type.
- *
- * @author Serge Pagop
*/
public class ParameterizedTypeFieldMetadata extends FieldMetadata {
-
- public ParameterizedTypeFieldMetadata() {}
+ public ParameterizedTypeFieldMetadata() {
+ }
+
/**
* {@inheritDoc}
- *
+ *
* @see org.jboss.dna.sequencer.java.metadata.FieldMetadata#isParameterizedType()
*/
@Override
@@ -44,14 +43,12 @@
/**
* {@inheritDoc}
- *
+ *
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "ParameterizedTypeFieldMetadata [ " + getType() + " ]";
}
-
-
}
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/QualifiedTypeFieldMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/QualifiedTypeFieldMetadata.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/QualifiedTypeFieldMetadata.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,11 +23,8 @@
*/
package org.jboss.dna.sequencer.java.metadata;
-
/**
* QualifiedTypeFieldMetadata meta data for a qualified type.
- *
- * @author Serge Pagop
*/
public class QualifiedTypeFieldMetadata extends FieldMetadata {
@@ -36,7 +33,7 @@
/**
* {@inheritDoc}
- *
+ *
* @see org.jboss.dna.sequencer.java.metadata.FieldMetadata#isQualifiedType()
*/
@Override
@@ -46,7 +43,7 @@
/**
* {@inheritDoc}
- *
+ *
* @see java.lang.Object#toString()
*/
@Override
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/SimpleTypeFieldMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/SimpleTypeFieldMetadata.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/SimpleTypeFieldMetadata.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,17 +24,14 @@
package org.jboss.dna.sequencer.java.metadata;
/**
- * SimpleTypeFieldMetadata is a meta data for simple class type reference ,
- * a simple interface type reference, or a simple type variable.
- *
- * @author serge pagop
- *
+ * SimpleTypeFieldMetadata is a meta data for simple class type reference , a simple interface type reference, or a simple type
+ * variable.
*/
public class SimpleTypeFieldMetadata extends FieldMetadata {
/**
* {@inheritDoc}
- *
+ *
* @see org.jboss.dna.sequencer.java.metadata.FieldMetadata#isSimpleType()
*/
@Override
@@ -44,12 +41,12 @@
/**
* {@inheritDoc}
- *
+ *
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
- return "SimpleTypeFieldMetadata [ " + getType() + "]" ;
+ return "SimpleTypeFieldMetadata [ " + getType() + "]";
}
}
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/SingleImportMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/SingleImportMetadata.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/SingleImportMetadata.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,7 +24,7 @@
package org.jboss.dna.sequencer.java.metadata;
/**
- * Serge Pagop
+ * Single-import metadata.
*/
public class SingleImportMetadata extends ImportMetadata {
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/SingleMemberAnnotationMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/SingleMemberAnnotationMetadata.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/SingleMemberAnnotationMetadata.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,7 +24,7 @@
package org.jboss.dna.sequencer.java.metadata;
/**
- *
+ * Metadata for single member annotations.
*/
public class SingleMemberAnnotationMetadata extends AnnotationMetadata {
private boolean single;
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/TypeMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/TypeMetadata.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/TypeMetadata.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,8 +28,6 @@
/**
* Exposes meta data of a top level type.
- *
- * @author Serge Pagop
*/
public class TypeMetadata {
Modified: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/WildcardTypeFieldMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/WildcardTypeFieldMetadata.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/WildcardTypeFieldMetadata.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,15 +23,12 @@
*/
package org.jboss.dna.sequencer.java.metadata;
-
/**
* WildcardTypeFieldMetadata represents meta data for wild card type.
* <p>
* It is important to know that, it is nonsense if a wild card type appears anywhere other than as an argument of a
* <code>ParameterizedTypeFieldMetadata</code> node.
* </p>
- *
- * @author Serge Pagop
*/
public class WildcardTypeFieldMetadata extends FieldMetadata {
@@ -40,7 +37,7 @@
/**
* {@inheritDoc}
- *
+ *
* @see org.jboss.dna.sequencer.java.metadata.FieldMetadata#isWildcardType()
*/
@Override
@@ -50,7 +47,7 @@
/**
* {@inheritDoc}
- *
+ *
* @see java.lang.Object#toString()
*/
@Override
Copied: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/ClassMetadata.java)
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/package-info.java (rev 0)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,29 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The classes that make up the metadata definitions for the Java source file sequencer.
+ */
+
+package org.jboss.dna.sequencer.java.metadata;
+
Copied: trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/JavadocMetadata.java)
===================================================================
--- trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/package-info.java (rev 0)
+++ trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,29 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The classes that make up the Java source file sequencer.
+ */
+
+package org.jboss.dna.sequencer.java;
+
Copied: trunk/extensions/dna-sequencer-jbpm-jpdl/src/main/java/org/jboss/dna/sequencer/jpdl3/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/JavadocMetadata.java)
===================================================================
--- trunk/extensions/dna-sequencer-jbpm-jpdl/src/main/java/org/jboss/dna/sequencer/jpdl3/package-info.java (rev 0)
+++ trunk/extensions/dna-sequencer-jbpm-jpdl/src/main/java/org/jboss/dna/sequencer/jpdl3/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,29 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The classes that make up the jPDL3 file sequencer.
+ */
+
+package org.jboss.dna.sequencer.jpdl3;
+
Modified: trunk/extensions/dna-sequencer-mp3/src/main/java/org/jboss/dna/sequencer/mp3/Mp3Metadata.java
===================================================================
--- trunk/extensions/dna-sequencer-mp3/src/main/java/org/jboss/dna/sequencer/mp3/Mp3Metadata.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-mp3/src/main/java/org/jboss/dna/sequencer/mp3/Mp3Metadata.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -33,8 +33,6 @@
/**
* Utility for extracting metadata from MP3 files.
- *
- * @author Stefano Maestri
*/
public class Mp3Metadata {
Modified: trunk/extensions/dna-sequencer-mp3/src/main/java/org/jboss/dna/sequencer/mp3/Mp3MetadataSequencer.java
===================================================================
--- trunk/extensions/dna-sequencer-mp3/src/main/java/org/jboss/dna/sequencer/mp3/Mp3MetadataSequencer.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-mp3/src/main/java/org/jboss/dna/sequencer/mp3/Mp3MetadataSequencer.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,9 +24,9 @@
package org.jboss.dna.sequencer.mp3;
import java.io.InputStream;
-import org.jboss.dna.graph.sequencer.StreamSequencerContext;
import org.jboss.dna.graph.sequencer.SequencerOutput;
import org.jboss.dna.graph.sequencer.StreamSequencer;
+import org.jboss.dna.graph.sequencer.StreamSequencerContext;
/**
* A sequencer that processes the binary content of an MP3 audio file, extracts the metadata for the file, and then writes that
@@ -45,10 +45,6 @@
* </li>
* </ul>
* </p>
- *
- * @author Stefano Maestri
- * @author Randall Hauch
- * @author John Verhaeg
*/
public class Mp3MetadataSequencer implements StreamSequencer {
Copied: trunk/extensions/dna-sequencer-mp3/src/main/java/org/jboss/dna/sequencer/mp3/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/JavadocMetadata.java)
===================================================================
--- trunk/extensions/dna-sequencer-mp3/src/main/java/org/jboss/dna/sequencer/mp3/package-info.java (rev 0)
+++ trunk/extensions/dna-sequencer-mp3/src/main/java/org/jboss/dna/sequencer/mp3/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,29 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The classes that make up the MP3 file sequencer.
+ */
+
+package org.jboss.dna.sequencer.mp3;
+
Modified: trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/MSOfficeMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/MSOfficeMetadata.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/MSOfficeMetadata.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -30,6 +30,9 @@
import org.apache.poi.poifs.eventfilesystem.POIFSReaderListener;
import org.jboss.dna.common.util.Logger;
+/**
+ * Metadata about an Microsoft Office file.
+ */
public class MSOfficeMetadata implements POIFSReaderListener {
private String title;
Modified: trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/MSOfficeMetadataI18n.java
===================================================================
--- trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/MSOfficeMetadataI18n.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/MSOfficeMetadataI18n.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,13 +23,12 @@
*/
package org.jboss.dna.sequencer.msoffice;
-import org.jboss.dna.common.i18n.I18n;
-
import java.util.Locale;
import java.util.Set;
+import org.jboss.dna.common.i18n.I18n;
/**
- * @author Randall Hauch
+ * The internationalized string constants for the <code>org.jboss.dna.sequencer.msoffice*</code> packages.
*/
public final class MSOfficeMetadataI18n {
@@ -54,4 +53,4 @@
public static Set<String> getLocalizationProblems( Locale locale ) {
return I18n.getLocalizationProblems(MSOfficeMetadataI18n.class, locale);
}
-}
\ No newline at end of file
+}
Modified: trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/MSOfficeMetadataReader.java
===================================================================
--- trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/MSOfficeMetadataReader.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/MSOfficeMetadataReader.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,18 +23,15 @@
*/
package org.jboss.dna.sequencer.msoffice;
-
import java.io.InputStream;
-import org.apache.poi.poifs.eventfilesystem.*;
+import org.apache.poi.poifs.eventfilesystem.POIFSReader;
-
/**
* Utility for extracting metadata from Excel files
- * @author Michael Trezzi
*/
public class MSOfficeMetadataReader {
- public static MSOfficeMetadata instance( InputStream stream ) {
+ public static MSOfficeMetadata instance( InputStream stream ) {
try {
POIFSReader r = new POIFSReader();
MSOfficeMetadata MSOfficeMetadataListener = new MSOfficeMetadata();
Modified: trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/MSOfficeMetadataSequencer.java
===================================================================
--- trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/MSOfficeMetadataSequencer.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/MSOfficeMetadataSequencer.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -27,9 +27,9 @@
import java.io.InputStream;
import java.util.Iterator;
import java.util.List;
-import org.jboss.dna.graph.sequencer.StreamSequencerContext;
import org.jboss.dna.graph.sequencer.SequencerOutput;
import org.jboss.dna.graph.sequencer.StreamSequencer;
+import org.jboss.dna.graph.sequencer.StreamSequencerContext;
import org.jboss.dna.sequencer.msoffice.excel.ExcelMetadata;
import org.jboss.dna.sequencer.msoffice.excel.ExcelMetadataReader;
import org.jboss.dna.sequencer.msoffice.powerpoint.PowerPointMetadataReader;
@@ -76,9 +76,6 @@
* </li>
* </ul>
* </p>
- *
- * @author Michael Trezzi
- * @author John Verhaeg
*/
public class MSOfficeMetadataSequencer implements StreamSequencer {
@@ -112,7 +109,7 @@
// Excel specific
public static final String EXCEL_FULL_CONTENT = "msoffice:full_contents";
public static final String EXCEL_SHEET_NAME = "msoffice:sheet_name";
-
+
// Word specific
public static final String WORD_HEADING_NODE = "msoffice:heading";
public static final String WORD_HEADING_NAME = "msoffice:heading_name";
@@ -176,14 +173,14 @@
try {
WordMetadata wordMetadata = WordMetadataReader.instance(stream);
- for (Iterator<WordMetadata.WordHeading> iter = wordMetadata.getHeadings().iterator(); iter.hasNext(); ) {
+ for (Iterator<WordMetadata.WordHeading> iter = wordMetadata.getHeadings().iterator(); iter.hasNext();) {
WordMetadata.WordHeading heading = iter.next();
-
+
output.setProperty(METADATA_NODE + "/" + WORD_HEADING_NODE, WORD_HEADING_NAME, heading.getText());
- output.setProperty(METADATA_NODE + "/" + WORD_HEADING_NODE, WORD_HEADING_LEVEL, heading.getHeaderLevel());
-
+ output.setProperty(METADATA_NODE + "/" + WORD_HEADING_NODE, WORD_HEADING_LEVEL, heading.getHeaderLevel());
+
}
-
+
} catch (IOException e) {
// There was an error reading, so log and continue ...
context.getLogger(this.getClass()).debug(e, "Error while extracting the Word document metadata");
Modified: trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/excel/ExcelMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/excel/ExcelMetadata.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/excel/ExcelMetadata.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -26,8 +26,7 @@
import java.util.List;
/**
- * @author Michael Trezzi
- * @description Metadata for Excel (Full text contents and list of sheet names
+ * Metadata for Excel (Full text contents and list of sheet names)
*/
public class ExcelMetadata {
@@ -35,7 +34,7 @@
return text;
}
- public void setText(String text) {
+ public void setText( String text ) {
this.text = text;
}
@@ -43,7 +42,7 @@
return sheets;
}
- public void setSheets(List<String> sheets) {
+ public void setSheets( List<String> sheets ) {
this.sheets = sheets;
}
Modified: trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/excel/ExcelMetadataReader.java
===================================================================
--- trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/excel/ExcelMetadataReader.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/excel/ExcelMetadataReader.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -27,7 +27,6 @@
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
-
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFComment;
import org.apache.poi.hssf.usermodel.HSSFRow;
@@ -36,82 +35,80 @@
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
/**
- * @author Michael Trezzi
- * @description Extracts data and some metadata from excel files
+ * Extracts data and some metadata from Excel files
*/
public class ExcelMetadataReader {
- /** The character to output after each row. */
- private static final char ROW_DELIMITER_CHAR = '\n';
- /** The character to output after each cell (column). */
- private static final char CELL_DELIMITER_CHAR = '\t';
-
+ /** The character to output after each row. */
+ private static final char ROW_DELIMITER_CHAR = '\n';
+ /** The character to output after each cell (column). */
+ private static final char CELL_DELIMITER_CHAR = '\t';
+
public static ExcelMetadata instance( InputStream stream ) throws IOException {
ExcelMetadata metadata = new ExcelMetadata();
HSSFWorkbook wb = new HSSFWorkbook(new POIFSFileSystem(stream));
StringBuffer buff = new StringBuffer();
List<String> sheets = new ArrayList<String>();
-
+
for (int sheetInd = 0; sheetInd < wb.getNumberOfSheets(); sheetInd++) {
sheets.add(wb.getSheetName(sheetInd));
HSSFSheet worksheet = wb.getSheetAt(sheetInd);
int lastRowNum = worksheet.getLastRowNum();
-
+
for (int rowNum = worksheet.getFirstRowNum(); rowNum <= lastRowNum; rowNum++) {
- HSSFRow row = worksheet.getRow(rowNum);
-
- // Empty rows are returned as null
- if (row == null) {
- continue;
- }
-
- int lastCellNum = row.getLastCellNum();
- for (int cellNum = row.getFirstCellNum(); cellNum < lastCellNum; cellNum++) {
- HSSFCell cell = row.getCell(cellNum);
-
- /*
- * Builds a string of body content from all string, numeric,
- * and formula values in the body of each worksheet.
- *
- * This code currently duplicates the POI 3.1 ExcelExtractor behavior of
- * combining the body text from all worksheets into a single string.
- */
- switch (cell.getCellType()) {
- case HSSFCell.CELL_TYPE_STRING:
- buff.append(cell.getRichStringCellValue().getString());
- break;
- case HSSFCell.CELL_TYPE_NUMERIC:
- buff.append(cell.getNumericCellValue());
- break;
- case HSSFCell.CELL_TYPE_FORMULA:
- buff.append(cell.getCellFormula());
- break;
- }
+ HSSFRow row = worksheet.getRow(rowNum);
- HSSFComment comment = cell.getCellComment();
- if (comment != null) {
- // Filter out row delimiter characters from comment
- String commentText = comment.getString().getString().replace(ROW_DELIMITER_CHAR, ' ');
-
- buff.append(" [");
- buff.append(commentText);
- buff.append(" by ");
- buff.append(comment.getAuthor());
- buff.append(']');
- }
-
- if (cellNum < lastCellNum - 1) {
- buff.append(CELL_DELIMITER_CHAR);
- }
- else {
- buff.append(ROW_DELIMITER_CHAR);
- }
- }
+ // Empty rows are returned as null
+ if (row == null) {
+ continue;
+ }
+
+ int lastCellNum = row.getLastCellNum();
+ for (int cellNum = row.getFirstCellNum(); cellNum < lastCellNum; cellNum++) {
+ HSSFCell cell = row.getCell(cellNum);
+
+ /*
+ * Builds a string of body content from all string, numeric,
+ * and formula values in the body of each worksheet.
+ *
+ * This code currently duplicates the POI 3.1 ExcelExtractor behavior of
+ * combining the body text from all worksheets into a single string.
+ */
+ switch (cell.getCellType()) {
+ case HSSFCell.CELL_TYPE_STRING:
+ buff.append(cell.getRichStringCellValue().getString());
+ break;
+ case HSSFCell.CELL_TYPE_NUMERIC:
+ buff.append(cell.getNumericCellValue());
+ break;
+ case HSSFCell.CELL_TYPE_FORMULA:
+ buff.append(cell.getCellFormula());
+ break;
+ }
+
+ HSSFComment comment = cell.getCellComment();
+ if (comment != null) {
+ // Filter out row delimiter characters from comment
+ String commentText = comment.getString().getString().replace(ROW_DELIMITER_CHAR, ' ');
+
+ buff.append(" [");
+ buff.append(commentText);
+ buff.append(" by ");
+ buff.append(comment.getAuthor());
+ buff.append(']');
+ }
+
+ if (cellNum < lastCellNum - 1) {
+ buff.append(CELL_DELIMITER_CHAR);
+ } else {
+ buff.append(ROW_DELIMITER_CHAR);
+ }
+ }
}
}
-
+
metadata.setText(buff.toString());
metadata.setSheets(sheets);
return metadata;
Copied: trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/excel/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/JavadocMetadata.java)
===================================================================
--- trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/excel/package-info.java (rev 0)
+++ trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/excel/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,29 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The classes for reading Microsoft Excel metadata.
+ */
+
+package org.jboss.dna.sequencer.msoffice.excel;
+
Copied: trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/JavadocMetadata.java)
===================================================================
--- trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/package-info.java (rev 0)
+++ trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,29 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The classes that make up the sequencer of Microsoft Office files.
+ */
+
+package org.jboss.dna.sequencer.msoffice;
+
Modified: trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/powerpoint/PowerPointMetadataReader.java
===================================================================
--- trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/powerpoint/PowerPointMetadataReader.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/powerpoint/PowerPointMetadataReader.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -23,20 +23,22 @@
*/
package org.jboss.dna.sequencer.msoffice.powerpoint;
-import java.util.List;
-import java.io.*;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Graphics2D;
+import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
-import java.awt.*;
-import java.awt.geom.Rectangle2D;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
import java.util.ArrayList;
-import org.apache.poi.hslf.usermodel.SlideShow;
+import java.util.List;
import org.apache.poi.hslf.model.Slide;
import org.apache.poi.hslf.model.TextRun;
+import org.apache.poi.hslf.usermodel.SlideShow;
/**
* Utility for extracting metadata from PowerPoint files
- *
- * @author Michael Trezzi
*/
public class PowerPointMetadataReader {
Modified: trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/powerpoint/SlideMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/powerpoint/SlideMetadata.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/powerpoint/SlideMetadata.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -24,7 +24,7 @@
package org.jboss.dna.sequencer.msoffice.powerpoint;
/**
- * @author Michael Trezzi
+ * Metadata for Microsoft Office PowerPoint slides.
*/
public class SlideMetadata {
private String title;
@@ -36,7 +36,7 @@
return title;
}
- public void setTitle(String title) {
+ public void setTitle( String title ) {
this.title = title;
}
@@ -44,7 +44,7 @@
return text;
}
- public void setText(String text) {
+ public void setText( String text ) {
this.text = text;
}
@@ -52,16 +52,15 @@
return thumbnail;
}
- public void setThumbnail(byte[] thumbnail) {
+ public void setThumbnail( byte[] thumbnail ) {
this.thumbnail = thumbnail;
}
-
public String getNotes() {
return notes;
}
- public void setNotes(String notes) {
+ public void setNotes( String notes ) {
this.notes = notes;
}
}
Copied: trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/powerpoint/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/JavadocMetadata.java)
===================================================================
--- trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/powerpoint/package-info.java (rev 0)
+++ trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/powerpoint/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,29 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The classes for reading Microsoft PowerPoint metadata.
+ */
+
+package org.jboss.dna.sequencer.msoffice.powerpoint;
+
Modified: trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/word/WordMetadata.java
===================================================================
--- trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/word/WordMetadata.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/word/WordMetadata.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -27,46 +27,46 @@
import java.util.List;
/**
- * @author Michael Trezzi
+ * Metadata for Microsoft Word documents.
*/
public class WordMetadata {
- private List<WordMetadata.WordHeading> headings;
+ private List<WordMetadata.WordHeading> headings;
- public List<WordMetadata.WordHeading> getHeadings() {
- return headings;
- }
+ public List<WordMetadata.WordHeading> getHeadings() {
+ return headings;
+ }
- public void setHeadings(List<WordMetadata.WordHeading> headings) {
- this.headings = headings;
- }
+ public void setHeadings( List<WordMetadata.WordHeading> headings ) {
+ this.headings = headings;
+ }
+ public static class WordHeading {
+ private String text;
+ private int headingLevel;
- public static class WordHeading {
- private String text;
- private int headingLevel;
+ public WordHeading( String text,
+ int headerLevel ) {
+ super();
+ this.text = text;
+ this.headingLevel = headerLevel;
+ }
- public WordHeading(String text, int headerLevel) {
- super();
- this.text = text;
- this.headingLevel = headerLevel;
- }
+ public String getText() {
+ return text;
+ }
- public String getText() {
- return text;
- }
-
- public void setText(String text) {
- this.text = text;
- }
-
- public int getHeaderLevel() {
- return headingLevel;
- }
-
- public void setHeaderLevel(int headerLevel) {
- this.headingLevel = headerLevel;
- }
-
- }
+ public void setText( String text ) {
+ this.text = text;
+ }
+
+ public int getHeaderLevel() {
+ return headingLevel;
+ }
+
+ public void setHeaderLevel( int headerLevel ) {
+ this.headingLevel = headerLevel;
+ }
+
+ }
}
Modified: trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/word/WordMetadataReader.java
===================================================================
--- trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/word/WordMetadataReader.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/word/WordMetadataReader.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -28,7 +28,6 @@
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
-
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.model.StyleSheet;
import org.apache.poi.hwpf.usermodel.Paragraph;
@@ -36,54 +35,50 @@
import org.jboss.dna.common.util.Logger;
/**
- * Infers table of contents from Word document by reading all paragraphs
- * with style <code>Heading*</code>. This is analogous to the default
- * behavior of Word when generating a table of contents.
- *
- * @author Michael Trezzi
+ * Infers table of contents from Word document by reading all paragraphs with style <code>Heading*</code>. This is analogous to
+ * the default behavior of Word when generating a table of contents.
*/
public class WordMetadataReader {
- private static final Logger log = Logger.getLogger(WordMetadataReader.class);
-
- /** Prefix for styles that will be extracted and treated as outline information for the document */
- private static final String HEADER_PREFIX = "Heading";
-
+ private static final Logger log = Logger.getLogger(WordMetadataReader.class);
+
+ /** Prefix for styles that will be extracted and treated as outline information for the document */
+ private static final String HEADER_PREFIX = "Heading";
+
public static WordMetadata instance( InputStream stream ) throws IOException {
- WordMetadata metadata = new WordMetadata();
+ WordMetadata metadata = new WordMetadata();
List<WordMetadata.WordHeading> headings = new ArrayList<WordMetadata.WordHeading>();
HWPFDocument document = new HWPFDocument(stream);
Range range = document.getRange();
StyleSheet stylesheet = document.getStyleSheet();
-
+
for (int i = 0; i < range.numParagraphs(); i++) {
- Paragraph paragraph = range.getParagraph(i);
-
- String styleName = stylesheet.getStyleDescription(paragraph.getStyleIndex()).getName();
-
- if (styleName.startsWith(HEADER_PREFIX)) {
- String rawLevelNum = styleName.substring(HEADER_PREFIX.length() + 1).trim();
- int levelNum = 0;
-
- try {
- levelNum = Integer.parseInt(rawLevelNum);
- }
- catch (NumberFormatException nfe) {
- log.debug("Could not parse heading level from: " + styleName);
- }
+ Paragraph paragraph = range.getParagraph(i);
- String text = Paragraph.stripFields(paragraph.text());
-
- if ('\r' == text.charAt(text.length() - 1)) {
- text = text.substring(0, text.length() - 1);
- }
-
- headings.add(new WordMetadata.WordHeading(text, levelNum));
- }
+ String styleName = stylesheet.getStyleDescription(paragraph.getStyleIndex()).getName();
+
+ if (styleName.startsWith(HEADER_PREFIX)) {
+ String rawLevelNum = styleName.substring(HEADER_PREFIX.length() + 1).trim();
+ int levelNum = 0;
+
+ try {
+ levelNum = Integer.parseInt(rawLevelNum);
+ } catch (NumberFormatException nfe) {
+ log.debug("Could not parse heading level from: " + styleName);
+ }
+
+ String text = Paragraph.stripFields(paragraph.text());
+
+ if ('\r' == text.charAt(text.length() - 1)) {
+ text = text.substring(0, text.length() - 1);
+ }
+
+ headings.add(new WordMetadata.WordHeading(text, levelNum));
+ }
}
-
+
metadata.setHeadings(headings);
return metadata;
}
Copied: trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/word/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/JavadocMetadata.java)
===================================================================
--- trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/word/package-info.java (rev 0)
+++ trunk/extensions/dna-sequencer-msoffice/src/main/java/org/jboss/dna/sequencer/msoffice/word/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,29 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The classes for reading Microsoft Word metadata.
+ */
+
+package org.jboss.dna.sequencer.msoffice.word;
+
Modified: trunk/extensions/dna-sequencer-xml/src/main/java/org/jboss/dna/sequencer/xml/DnaDtdLexicon.java
===================================================================
--- trunk/extensions/dna-sequencer-xml/src/main/java/org/jboss/dna/sequencer/xml/DnaDtdLexicon.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-xml/src/main/java/org/jboss/dna/sequencer/xml/DnaDtdLexicon.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -27,7 +27,7 @@
import org.jboss.dna.graph.property.basic.BasicName;
/**
- * @author Randall Hauch
+ * Lexicon of names for XML DTD concepts.
*/
public class DnaDtdLexicon {
Modified: trunk/extensions/dna-sequencer-xml/src/main/java/org/jboss/dna/sequencer/xml/DnaXmlLexicon.java
===================================================================
--- trunk/extensions/dna-sequencer-xml/src/main/java/org/jboss/dna/sequencer/xml/DnaXmlLexicon.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-xml/src/main/java/org/jboss/dna/sequencer/xml/DnaXmlLexicon.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -27,7 +27,7 @@
import org.jboss.dna.graph.property.basic.BasicName;
/**
- * @author Randall Hauch
+ * Lexicon of names for XML concepts.
*/
public class DnaXmlLexicon {
Modified: trunk/extensions/dna-sequencer-xml/src/main/java/org/jboss/dna/sequencer/xml/InheritingXmlSequencer.java
===================================================================
--- trunk/extensions/dna-sequencer-xml/src/main/java/org/jboss/dna/sequencer/xml/InheritingXmlSequencer.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-xml/src/main/java/org/jboss/dna/sequencer/xml/InheritingXmlSequencer.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -27,8 +27,6 @@
* An XML sequencer that is a specialization of {@link XmlSequencer} by inheriting unqualified attribute namespaces
* {@link XmlSequencer.AttributeScoping#INHERIT_ELEMENT_NAMESPACE from the element} rather than from the
* {@link XmlSequencer.AttributeScoping#USE_DEFAULT_NAMESPACE default namespace}.
- *
- * @author Randall Hauch
*/
public class InheritingXmlSequencer extends XmlSequencer {
Modified: trunk/extensions/dna-sequencer-xml/src/main/java/org/jboss/dna/sequencer/xml/XmlSequencer.java
===================================================================
--- trunk/extensions/dna-sequencer-xml/src/main/java/org/jboss/dna/sequencer/xml/XmlSequencer.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-xml/src/main/java/org/jboss/dna/sequencer/xml/XmlSequencer.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -27,9 +27,9 @@
import org.jboss.dna.common.text.TextDecoder;
import org.jboss.dna.graph.JcrNtLexicon;
import org.jboss.dna.graph.property.Name;
-import org.jboss.dna.graph.sequencer.StreamSequencerContext;
import org.jboss.dna.graph.sequencer.SequencerOutput;
import org.jboss.dna.graph.sequencer.StreamSequencer;
+import org.jboss.dna.graph.sequencer.StreamSequencerContext;
import org.xml.sax.InputSource;
import org.xml.sax.SAXNotRecognizedException;
import org.xml.sax.SAXNotSupportedException;
@@ -41,8 +41,6 @@
* the {@link XmlSequencer.AttributeScoping#USE_DEFAULT_NAMESPACE default namespace} for unqualified attribute rather than
* {@link XmlSequencer.AttributeScoping#INHERIT_ELEMENT_NAMESPACE inheriting the namespace from the element}. (See also
* {@link InheritingXmlSequencer}.
- *
- * @author John Verhaeg
*/
public class XmlSequencer implements StreamSequencer {
Modified: trunk/extensions/dna-sequencer-xml/src/main/java/org/jboss/dna/sequencer/xml/XmlSequencerHandler.java
===================================================================
--- trunk/extensions/dna-sequencer-xml/src/main/java/org/jboss/dna/sequencer/xml/XmlSequencerHandler.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-xml/src/main/java/org/jboss/dna/sequencer/xml/XmlSequencerHandler.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -43,14 +43,14 @@
import org.jboss.dna.graph.property.PropertyFactory;
import org.jboss.dna.graph.property.ValueFormatException;
import org.jboss.dna.graph.property.basic.LocalNamespaceRegistry;
+import org.jboss.dna.graph.sequencer.SequencerOutput;
import org.jboss.dna.graph.sequencer.StreamSequencerContext;
-import org.jboss.dna.graph.sequencer.SequencerOutput;
import org.xml.sax.Attributes;
import org.xml.sax.SAXParseException;
import org.xml.sax.ext.DefaultHandler2;
/**
- * @author Randall Hauch
+ * A {@link DefaultHandler2} implementation that is used by the sequencer.
*/
public class XmlSequencerHandler extends DefaultHandler2 {
Modified: trunk/extensions/dna-sequencer-xml/src/main/java/org/jboss/dna/sequencer/xml/XmlSequencerI18n.java
===================================================================
--- trunk/extensions/dna-sequencer-xml/src/main/java/org/jboss/dna/sequencer/xml/XmlSequencerI18n.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-xml/src/main/java/org/jboss/dna/sequencer/xml/XmlSequencerI18n.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -29,8 +29,7 @@
import org.jboss.dna.common.i18n.I18n;
/**
- * @author Randall Hauch
- * @author John Verhaeg
+ * The internationalized string constants for the <code>org.jboss.dna.sequencer.xml*</code> packages.
*/
public final class XmlSequencerI18n {
Copied: trunk/extensions/dna-sequencer-xml/src/main/java/org/jboss/dna/sequencer/xml/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/JavadocMetadata.java)
===================================================================
--- trunk/extensions/dna-sequencer-xml/src/main/java/org/jboss/dna/sequencer/xml/package-info.java (rev 0)
+++ trunk/extensions/dna-sequencer-xml/src/main/java/org/jboss/dna/sequencer/xml/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,29 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The classes that make up the XML sequencer.
+ */
+
+package org.jboss.dna.sequencer.xml;
+
Modified: trunk/extensions/dna-sequencer-zip/src/main/java/org/jboss/dna/sequencer/zip/ZipSequencer.java
===================================================================
--- trunk/extensions/dna-sequencer-zip/src/main/java/org/jboss/dna/sequencer/zip/ZipSequencer.java 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/extensions/dna-sequencer-zip/src/main/java/org/jboss/dna/sequencer/zip/ZipSequencer.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -35,8 +35,7 @@
import org.jboss.dna.graph.sequencer.StreamSequencerContext;
/**
- * @author Michael Trezzi
- * @author John Verhaeg
+ * A sequencer that processes and extract metadata from ZIP files.
*/
public class ZipSequencer implements StreamSequencer {
@@ -66,15 +65,13 @@
} else { // If entry is File, create nt:file
output.setProperty("zip:content/" + entry.getName(), "jcr:primaryType", "nt:file");
output.setProperty("zip:content/" + entry.getName() + "/jcr:content", "jcr:primaryType", "dna:resource");
- int n;
+ int n;
ByteArrayOutputStream baout = new ByteArrayOutputStream();
while ((n = in.read(buf, 0, 1024)) > -1) {
baout.write(buf, 0, n);
}
byte[] bytes = baout.toByteArray();
- output.setProperty("zip:content/" + entry.getName() + "/jcr:content",
- "jcr:data",
- binaryFactory.create(bytes));
+ output.setProperty("zip:content/" + entry.getName() + "/jcr:content", "jcr:data", binaryFactory.create(bytes));
// all other nt:file properties should be generated by other sequencers (mimetype, encoding,...) but we'll
// default them here
output.setProperty("zip:content/" + entry.getName() + "/jcr:content", "jcr:encoding", "binary");
Copied: trunk/extensions/dna-sequencer-zip/src/main/java/org/jboss/dna/sequencer/zip/package-info.java (from rev 1217, trunk/extensions/dna-sequencer-java/src/main/java/org/jboss/dna/sequencer/java/metadata/JavadocMetadata.java)
===================================================================
--- trunk/extensions/dna-sequencer-zip/src/main/java/org/jboss/dna/sequencer/zip/package-info.java (rev 0)
+++ trunk/extensions/dna-sequencer-zip/src/main/java/org/jboss/dna/sequencer/zip/package-info.java 2009-09-12 17:55:25 UTC (rev 1218)
@@ -0,0 +1,29 @@
+/*
+ * JBoss DNA (http://www.jboss.org/dna)
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership. Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * See the AUTHORS.txt file in the distribution for a full listing of
+ * individual contributors.
+ *
+ * JBoss DNA is free software. Unless otherwise indicated, all code in JBoss DNA
+ * is licensed to you under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * JBoss DNA 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 software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+/**
+ * The classes that make up the ZIP file sequencer.
+ */
+
+package org.jboss.dna.sequencer.zip;
+
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2009-09-12 17:43:41 UTC (rev 1217)
+++ trunk/pom.xml 2009-09-12 17:55:25 UTC (rev 1218)
@@ -126,15 +126,14 @@
<module>extensions/dna-sequencer-msoffice</module>
<module>extensions/dna-sequencer-xml</module>
<module>extensions/dna-sequencer-zip</module>
- <module>extensions/dna-connector-federation</module>
<module>extensions/dna-connector-filesystem</module>
<module>extensions/dna-connector-infinispan</module>
<module>extensions/dna-connector-jbosscache</module>
<module>extensions/dna-connector-svn</module>
<module>extensions/dna-connector-store-jpa</module>
<module>extensions/dna-mimetype-detector-aperture</module>
- <module>extensions/dna-common-jdbc</module>
- <module>extensions/dna-connector-jdbc-metadata</module>
+ <!--module>extensions/dna-common-jdbc</module-->
+ <!--module>extensions/dna-connector-jdbc-metadata</module-->
<module>web/dna-web-jcr-rest</module>
<module>web/dna-web-jcr-rest-war</module>
</modules>
@@ -232,6 +231,64 @@
</descriptors>
</configuration>
</plugin>
+ <plugin>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>2.5</version>
+ <executions>
+ <execution>
+ <id>generate-javadoc</id>
+ <phase>package</phase>
+ <goals>
+ <goal>javadoc</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <doclet>org.jboss.apiviz.APIviz</doclet>
+ <docletArtifact>
+ <groupId>org.jboss.apiviz</groupId>
+ <artifactId>apiviz</artifactId>
+ <version>1.3.0.GA</version>
+ </docletArtifact>
+ <attach>false</attach>
+ <!--stylesheetfile>${basedir}/src/javadoc/stylesheet.css</stylesheetfile-->
+ <useStandardDocletOptions>true</useStandardDocletOptions>
+ <outputDirectory>${project.build.directory}/api</outputDirectory>
+ <reportOutputDirectory>${project.build.directory}/api</reportOutputDirectory>
+ <destDir>api</destDir>
+ <charset>UTF-8</charset>
+ <docencoding>UTF-8</docencoding>
+ <breakiterator>true</breakiterator>
+ <version>true</version>
+ <author>true</author>
+ <keywords>true</keywords>
+ <overview>${basedir}/src/javadoc/overview.html</overview>
+ <doctitle>${project.name} API Reference (${project.version})</doctitle>
+ <windowtitle>${project.name} API Reference (${project.version})</windowtitle>
+ <maxmemory>1024m</maxmemory>
+ <additionalparam>
+ -link http://java.sun.com/javase/6/docs/api/
+ -link http://java.sun.com/products/servlet/2.5/docs/servlet-2_5-mr2/
+ -link http://www.slf4j.org/apidocs/
+ -link http://logging.apache.org/log4j/1.2/apidocs/
+
+ -group "JCR implementation" ${project.groupId}.jcr*:${project.groupId}.cnd*
+ -group "Repository engine" ${project.groupId}.repository*
+ -group "Graph API" ${project.groupId}.graph:${project.groupId}.graph.io*:${project.groupId}.graph.property*:${project.groupId}.graph.request*:${project.groupId}.graph.session*:${project.groupId}.graph.xml*
+ -group "Connectors" ${project.groupId}.graph.cache*:${project.groupId}.graph.connector*:${project.groupId}.connector*
+ -group "Observation" ${project.groupId}.graph.observation*
+ -group "Sequencers" ${project.groupId}.graph.sequencer*:${project.groupId}.sequencer*
+ -group "MIME type detectors" ${project.groupId}.graph.mimetype*:${project.groupId}.mimetype*
+ -group "Web services" ${project.groupId}.web*
+ -group "Common utilities" ${project.groupId}.common*
+
+ -nopackagediagram
+ </additionalparam>
+ <encoding>UTF-8</encoding>
+ <locale>en_US</locale>
+ <excludePackageNames>${project.groupId}.test*:org.jboss.example.dna*</excludePackageNames>
+ </configuration>
+ </plugin>
</plugins>
</build>
<modules>
@@ -345,64 +402,6 @@
</archive>
</configuration>
</plugin>
- <plugin>
- <artifactId>maven-javadoc-plugin</artifactId>
- <version>2.5</version>
- <executions>
- <execution>
- <id>generate-javadoc</id>
- <phase>package</phase>
- <goals>
- <goal>javadoc</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <doclet>org.jboss.apiviz.APIviz</doclet>
- <docletArtifact>
- <groupId>org.jboss.apiviz</groupId>
- <artifactId>apiviz</artifactId>
- <version>1.3.0.GA</version>
- </docletArtifact>
- <attach>false</attach>
- <!--stylesheetfile>${basedir}/src/javadoc/stylesheet.css</stylesheetfile-->
- <useStandardDocletOptions>true</useStandardDocletOptions>
- <outputDirectory>${project.build.directory}/api</outputDirectory>
- <reportOutputDirectory>${project.build.directory}/api</reportOutputDirectory>
- <destDir>api</destDir>
- <charset>UTF-8</charset>
- <docencoding>UTF-8</docencoding>
- <breakiterator>true</breakiterator>
- <version>true</version>
- <author>true</author>
- <keywords>true</keywords>
- <overview>${basedir}/src/javadoc/overview.html</overview>
- <doctitle>${project.name} API Reference (${project.version})</doctitle>
- <windowtitle>${project.name} API Reference (${project.version})</windowtitle>
- <maxmemory>1024m</maxmemory>
- <additionalparam>
- -link http://java.sun.com/javase/6/docs/api/
- -link http://java.sun.com/products/servlet/2.5/docs/servlet-2_5-mr2/
- -link http://www.slf4j.org/apidocs/
- -link http://logging.apache.org/log4j/1.2/apidocs/
-
- -group "JCR implementation" ${project.groupId}.jcr*:${project.groupId}.cnd*
- -group "Repository engine" ${project.groupId}.repository*
- -group "Graph API" ${project.groupId}.graph:${project.groupId}.graph.io*:${project.groupId}.graph.property*:${project.groupId}.graph.request*:${project.groupId}.graph.session*:${project.groupId}.graph.xml*
- -group "Connectors" ${project.groupId}.graph.cache*:${project.groupId}.graph.connector*:${project.groupId}.connector*
- -group "Observation" ${project.groupId}.graph.observation*
- -group "Sequencers" ${project.groupId}.graph.sequencer*:${project.groupId}.sequencer*
- -group "MIME type detectors" ${project.groupId}.graph.mimetype*:${project.groupId}.mimetype*
- -group "Web services" ${project.groupId}.web*
- -group "Common utilities" ${project.groupId}.common*
-
- -nopackagediagram
- </additionalparam>
- <encoding>UTF-8</encoding>
- <locale>en_US</locale>
- <excludePackageNames>${project.groupId}.test*:org.jboss.example.dna*</excludePackageNames>
- </configuration>
- </plugin>
</plugins>
</build>
<!--
@@ -449,11 +448,6 @@
</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>
16 years, 7 months