[dna-commits] DNA SVN: r1373 - in trunk: dna-common/src/main/java/org/jboss/dna/common/collection and 10 other directories.

dna-commits at lists.jboss.org dna-commits at lists.jboss.org
Tue Dec 1 10:19:32 EST 2009


Author: rhauch
Date: 2009-12-01 10:19:31 -0500 (Tue, 01 Dec 2009)
New Revision: 1373

Modified:
   trunk/.gitignore
   trunk/dna-common/src/main/java/org/jboss/dna/common/collection/AbstractProblems.java
   trunk/dna-common/src/main/java/org/jboss/dna/common/collection/ImmutableProblems.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/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/component/ComponentLibrary.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/Location.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/LocationWithPath.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/LocationWithPathAndProperties.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/LocationWithPathAndProperty.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/LocationWithPathAndUuid.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/LocationWithProperties.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/LocationWithProperty.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/LocationWithUuid.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/map/AbstractMapWorkspace.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/map/MapRepository.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/connector/map/MapRequestProcessor.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/map/MapWorkspace.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/QueryResults.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/AllNodes.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/And.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Between.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/BindVariableName.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/ChildNode.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/ChildNodeJoinCondition.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Column.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Command.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Comparison.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Constraint.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/DescendantNode.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/DescendantNodeJoinCondition.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/DynamicOperand.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/EquiJoinCondition.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/FullTextSearch.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/FullTextSearchScore.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Join.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/JoinCondition.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/LanguageObject.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Length.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Limit.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Literal.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/LowerCase.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/NamedSelector.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/NodeDepth.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/NodeLocalName.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/NodeName.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/NodePath.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Not.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Or.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Ordering.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/PropertyExistence.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/PropertyValue.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Query.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/QueryCommand.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/SameNode.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/SameNodeJoinCondition.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Selector.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/SelectorName.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/SetCriteria.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/SetQuery.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Source.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/StaticOperand.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/TypeSystem.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/UpperCase.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/optimize/RewriteAsRangeCriteria.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/plan/PlanHints.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/process/QueryResultColumns.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/process/QueryResults.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/processor/RequestProcessor.java
   trunk/pom.xml
Log:
DNA-467 Made the abstract query model classes implement Serializable so they can be used in Request objects.  Also did the same for the Location and Problems class families.

Modified: trunk/.gitignore
===================================================================
--- trunk/.gitignore	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/.gitignore	2009-12-01 15:19:31 UTC (rev 1373)
@@ -52,6 +52,7 @@
 /extensions/dna-connector-infinispan/target
 /extensions/dna-connector-jdbc-metadata/target
 /extensions/dna-connector-store-jpa/target
+/extensions/dna-connector-store-lucene/target
 /extensions/dna-connector-svn/target
 /extensions/dna-mimetype-detector-aperture/.settings
 /extensions/dna-mimetype-detector-aperture/target

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-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/collection/AbstractProblems.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -33,6 +33,7 @@
  * were encountered (although this cannot be guaranteed in contexts involving multiple threads or processes).
  */
 public abstract class AbstractProblems implements Problems {
+    private static final long serialVersionUID = 1L;
 
     protected static final List<Problem> EMPTY_PROBLEMS = Collections.emptyList();
 

Modified: trunk/dna-common/src/main/java/org/jboss/dna/common/collection/ImmutableProblems.java
===================================================================
--- trunk/dna-common/src/main/java/org/jboss/dna/common/collection/ImmutableProblems.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/collection/ImmutableProblems.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -34,6 +34,7 @@
 @Immutable
 public class ImmutableProblems implements Problems {
 
+    private static final long serialVersionUID = 1L;
     private final Problems delegate;
 
     public ImmutableProblems( Problems delegate ) {

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-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/collection/Problems.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -23,6 +23,7 @@
  */
 package org.jboss.dna.common.collection;
 
+import java.io.Serializable;
 import java.util.Iterator;
 import org.jboss.dna.common.i18n.I18n;
 
@@ -30,7 +31,7 @@
  * 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> {
+public interface Problems extends Iterable<Problem>, Serializable {
 
     /**
      * Add an error message with the parameters that should be used when localizing the message.

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-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/collection/SimpleProblems.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -34,6 +34,7 @@
  */
 @NotThreadSafe
 public class SimpleProblems extends AbstractProblems {
+    private static final long serialVersionUID = 1L;
 
     private List<Problem> problems;
 

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-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/collection/ThreadSafeProblems.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -37,6 +37,7 @@
  */
 @ThreadSafe
 public class ThreadSafeProblems extends AbstractProblems {
+    private static final long serialVersionUID = 1L;
 
     private final ReadWriteLock lock = new ReentrantReadWriteLock();
     private final List<Problem> problems = new LinkedList<Problem>();

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-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-common/src/main/java/org/jboss/dna/common/component/ComponentLibrary.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -40,9 +40,9 @@
 
 /**
  * Maintains the list of component instances for the system. This class does not actively update the component configurations, but
- * is designed to properly maintain the sequencer instances when those configurations are changed by other callers. If the
- * components are subclasses of {@link Component}, then they will be {@link Component#setConfiguration(ComponentConfig)
- * configured} with the appropriate configuration.
+ * is designed to properly maintain the instances when those configurations are changed by other callers. If the components are
+ * subclasses of {@link Component}, then they will be {@link Component#setConfiguration(ComponentConfig) configured} with the
+ * appropriate configuration.
  * <p>
  * Therefore, this library does guarantee that the {@link #getInstances() instances} at the time they are {@link #getInstances()
  * obtained} are always reflected by the configurations.
@@ -106,7 +106,7 @@
     }
 
     /**
-     * Set the Maven Repository that should be used to load the sequencer classes. Unless changed, the library uses the
+     * Set the Maven Repository that should be used to load the component classes. Unless changed, the library uses the
      * {@link #DEFAULT default} class loader factory, which uses the {@link Thread#getContextClassLoader() current thread's
      * context class loader} if not null or the class loader that loaded the library class.
      * 
@@ -120,7 +120,7 @@
     }
 
     /**
-     * Add the configuration for a sequencer, or update any existing one that represents the {@link ConfigType#equals(Object) same
+     * Add the configuration for a component, or update any existing one that represents the {@link ConfigType#equals(Object) same
      * configuration}
      * 
      * @param config the new configuration
@@ -161,7 +161,25 @@
     }
 
     /**
-     * Update the configuration for a sequencer, or add it if there is no {@link ConfigType#equals(Object) matching configuration}
+     * Get the instance given by the configuration with the supplied name.
+     * 
+     * @param name the configuration name
+     * @return the instance, or null if the configuration doesn't exist
+     */
+    public ComponentType getInstance( String name ) {
+        CheckArg.isNotNull(name, "name");
+        try {
+            this.lock.lock();
+            // Find an existing configuration that matches ...
+            int index = findIndexOfMatchingConfiguration(name);
+            return index >= 0 ? this.instances.get(index) : null;
+        } finally {
+            this.lock.unlock();
+        }
+    }
+
+    /**
+     * Update the configuration for a component, or add it if there is no {@link ConfigType#equals(Object) matching configuration}
      * .
      * 
      * @param config the updated (or new) configuration
@@ -176,7 +194,7 @@
     }
 
     /**
-     * Remove the configuration for a sequencer.
+     * Remove the configuration for a component.
      * 
      * @param config the configuration to be removed
      * @return true if the component was remove, or false if there was no existing configuration
@@ -191,7 +209,7 @@
             // Find an existing configuration that matches ...
             int index = findIndexOfMatchingConfiguration(config);
             if (index >= 0) {
-                // Remove the configuration and the sequencer instance ...
+                // Remove the configuration and the component instance ...
                 this.configs.remove(index);
                 this.instances.remove(index);
                 return true;
@@ -226,21 +244,21 @@
     }
 
     /**
-     * Return the list of sequencers.
+     * Return the list of components.
      * 
-     * @return the unmodifiable list of sequencers; never null
+     * @return the unmodifiable list of components; never null
      */
     public List<ComponentType> getInstances() {
         return this.unmodifiableInstances;
     }
 
     /**
-     * Instantiate, configure and return a new sequencer described by the supplied configuration. This method does not manage the
+     * Instantiate, configure and return a new component described by the supplied configuration. This method does not manage the
      * returned instance.
      * 
-     * @param config the configuration describing the sequencer
-     * @return the new sequencer, or null if the sequencer could not be successfully configured
-     * @throws IllegalArgumentException if the sequencer could not be configured properly
+     * @param config the configuration describing the component
+     * @return the new component, or null if the component could not be successfully configured
+     * @throws IllegalArgumentException if the component could not be configured properly
      */
     @SuppressWarnings( "unchecked" )
     protected ComponentType newInstance( ConfigType config ) {
@@ -288,7 +306,7 @@
     }
 
     /**
-     * Find the index for the matching {@link #configs configuration} and {@link #instances sequencer}.
+     * Find the index for the matching {@link #configs configuration} and {@link #instances component}.
      * 
      * @param config the configuration; may not be null
      * @return the index, or -1 if not found
@@ -306,4 +324,22 @@
         return -1;
     }
 
+    /**
+     * Find the index for the matching {@link #configs configuration} and {@link #instances component}.
+     * 
+     * @param name the configuration name; may not be null
+     * @return the index, or -1 if not found
+     */
+    @GuardedBy( value = "lock" )
+    protected int findIndexOfMatchingConfiguration( String name ) {
+        // Iterate through the configurations and look for an existing one that matches
+        for (int i = 0, length = this.configs.size(); i != length; i++) {
+            ConfigType existingConfig = this.configs.get(i);
+            assert existingConfig != null;
+            if (existingConfig.getName().equals(name)) {
+                return i;
+            }
+        }
+        return -1;
+    }
 }

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-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/Location.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -23,6 +23,7 @@
  */
 package org.jboss.dna.graph;
 
+import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.HashSet;
@@ -45,8 +46,10 @@
  * in this base class to allow immutable subclasses to calculate and cache the hash code during object construction.
  */
 @Immutable
-public abstract class Location implements Iterable<Property>, Comparable<Location> {
+public abstract class Location implements Iterable<Property>, Comparable<Location>, Serializable {
 
+    private static final long serialVersionUID = 1L;
+
     private static final Comparator<Location> COMPARATOR = new Comparator<Location>() {
         /**
          * {@inheritDoc}

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/LocationWithPath.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/LocationWithPath.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/LocationWithPath.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -41,6 +41,8 @@
 @Immutable
 class LocationWithPath extends Location {
 
+    private static final long serialVersionUID = 1L;
+
     private final Path path;
     private final int hashCode;
 

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/LocationWithPathAndProperties.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/LocationWithPathAndProperties.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/LocationWithPathAndProperties.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -27,9 +27,7 @@
 import java.util.Collections;
 import java.util.List;
 import java.util.UUID;
-
 import net.jcip.annotations.Immutable;
-
 import org.jboss.dna.graph.property.Path;
 import org.jboss.dna.graph.property.Property;
 import org.jboss.dna.graph.property.basic.BasicSingleValueProperty;
@@ -43,6 +41,8 @@
 @Immutable
 class LocationWithPathAndProperties extends LocationWithPath {
 
+    private static final long serialVersionUID = 1L;
+
     private final List<Property> idProperties;
 
     /**
@@ -53,7 +53,7 @@
      */
     LocationWithPathAndProperties( Path path,
                                    List<Property> idProperties ) {
-    	super(path);
+        super(path);
         assert idProperties != null;
         assert !idProperties.isEmpty();
         this.idProperties = Collections.unmodifiableList(idProperties);

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/LocationWithPathAndProperty.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/LocationWithPathAndProperty.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/LocationWithPathAndProperty.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -41,6 +41,8 @@
 @Immutable
 class LocationWithPathAndProperty extends LocationWithPathAndProperties {
 
+    private static final long serialVersionUID = 1L;
+
     /**
      * Create a new location with a given path and identification property.
      * 
@@ -84,14 +86,14 @@
 
     /**
      * {@inheritDoc}
-     *
+     * 
      * @see org.jboss.dna.graph.LocationWithPathAndProperties#hasIdProperties()
      */
     @Override
     public final boolean hasIdProperties() {
         return true;
     }
-    
+
     /**
      * {@inheritDoc}
      * 

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/LocationWithPathAndUuid.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/LocationWithPathAndUuid.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/LocationWithPathAndUuid.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -38,6 +38,8 @@
 @Immutable
 final class LocationWithPathAndUuid extends LocationWithPathAndProperty {
 
+    private static final long serialVersionUID = 1L;
+
     private final UUID uuid;
 
     /**

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/LocationWithProperties.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/LocationWithProperties.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/LocationWithProperties.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -42,6 +42,8 @@
 @Immutable
 class LocationWithProperties extends Location {
 
+    private static final long serialVersionUID = 1L;
+
     private final List<Property> idProperties;
     private final int hashCode;
 

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/LocationWithProperty.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/LocationWithProperty.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/LocationWithProperty.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -43,6 +43,8 @@
 @Immutable
 final class LocationWithProperty extends LocationWithProperties {
 
+    private static final long serialVersionUID = 1L;
+
     /**
      * Create a new location with a given path and identification property.
      * 

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/LocationWithUuid.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/LocationWithUuid.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/LocationWithUuid.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -41,6 +41,8 @@
 @Immutable
 final class LocationWithUuid extends Location {
 
+    private static final long serialVersionUID = 1L;
+
     private final UUID uuid;
     private final int hashCode;
     private final List<Property> properties;

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-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/RepositorySourceCapabilities.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -55,11 +55,21 @@
     public static final boolean DEFAULT_SUPPORT_CREATING_WORKSPACES = false;
 
     /**
-     * The default support for creating workspaces is {@value} .
+     * The default support for references is {@value} .
      */
     public static final boolean DEFAULT_SUPPORT_REFERENCES = true;
 
     /**
+     * The default support for querying workspaces is {@value} .
+     */
+    public static final boolean DEFAULT_SUPPORT_QUERIES = false;
+
+    /**
+     * The default support for searching workspaces is {@value} .
+     */
+    public static final boolean DEFAULT_SUPPORT_SEARCHES = false;
+
+    /**
      * The default support for creating locks is {@value} .
      */
     public static final boolean DEFAULT_SUPPORT_LOCKS = false;
@@ -69,19 +79,23 @@
     private final boolean events;
     private final boolean creatingWorkspaces;
     private final boolean references;
+    private final boolean locks;
+    private final boolean queries;
+    private final boolean searches;
 
     /**
      * Create a capabilities object using the defaults, .
      */
     public RepositorySourceCapabilities() {
         this(DEFAULT_SUPPORT_SAME_NAME_SIBLINGS, DEFAULT_SUPPORT_UPDATES, DEFAULT_SUPPORT_EVENTS,
-             DEFAULT_SUPPORT_CREATING_WORKSPACES, DEFAULT_SUPPORT_REFERENCES);
+             DEFAULT_SUPPORT_CREATING_WORKSPACES, DEFAULT_SUPPORT_REFERENCES, DEFAULT_SUPPORT_LOCKS, DEFAULT_SUPPORT_QUERIES,
+             DEFAULT_SUPPORT_SEARCHES);
     }
 
     public RepositorySourceCapabilities( boolean supportsSameNameSiblings,
                                          boolean supportsUpdates ) {
         this(supportsSameNameSiblings, supportsUpdates, DEFAULT_SUPPORT_EVENTS, DEFAULT_SUPPORT_CREATING_WORKSPACES,
-             DEFAULT_SUPPORT_REFERENCES);
+             DEFAULT_SUPPORT_REFERENCES, DEFAULT_SUPPORT_LOCKS, DEFAULT_SUPPORT_QUERIES, DEFAULT_SUPPORT_SEARCHES);
     }
 
     public RepositorySourceCapabilities( boolean supportsSameNameSiblings,
@@ -89,12 +103,27 @@
                                          boolean supportsEvents,
                                          boolean supportsCreatingWorkspaces,
                                          boolean supportsReferences ) {
+        this(supportsSameNameSiblings, supportsUpdates, supportsEvents, supportsCreatingWorkspaces, supportsReferences,
+             DEFAULT_SUPPORT_LOCKS, DEFAULT_SUPPORT_QUERIES, DEFAULT_SUPPORT_SEARCHES);
+    }
 
+    public RepositorySourceCapabilities( boolean supportsSameNameSiblings,
+                                         boolean supportsUpdates,
+                                         boolean supportsEvents,
+                                         boolean supportsCreatingWorkspaces,
+                                         boolean supportsReferences,
+                                         boolean supportsLocks,
+                                         boolean supportsQueries,
+                                         boolean supportsSearches ) {
+
         this.sameNameSiblings = supportsSameNameSiblings;
         this.updates = supportsUpdates;
         this.events = supportsEvents;
         this.creatingWorkspaces = supportsCreatingWorkspaces;
         this.references = supportsReferences;
+        this.locks = supportsLocks;
+        this.queries = supportsQueries;
+        this.searches = supportsSearches;
     }
 
     /**
@@ -143,4 +172,31 @@
     public boolean supportsCreatingWorkspaces() {
         return creatingWorkspaces;
     }
+
+    /**
+     * Return whether the source supports creating locks.
+     * 
+     * @return true if locks are supported, or false if the source is not capable of creating locks
+     */
+    public boolean supportsLocks() {
+        return locks;
+    }
+
+    /**
+     * Return whether the source supports queries.
+     * 
+     * @return true if queries are supported, or false if the source is not capable of querying content
+     */
+    public boolean supportsQueries() {
+        return queries;
+    }
+
+    /**
+     * Return whether the source supports full-text searches.
+     * 
+     * @return true if searches are supported, or false if the source is not capable of searching content
+     */
+    public boolean supportsSearches() {
+        return searches;
+    }
 }

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/map/AbstractMapWorkspace.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/map/AbstractMapWorkspace.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/map/AbstractMapWorkspace.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -48,6 +48,8 @@
 import org.jboss.dna.graph.property.ValueFactory;
 import org.jboss.dna.graph.property.Path.Segment;
 import org.jboss.dna.graph.property.basic.RootPath;
+import org.jboss.dna.graph.query.QueryResults;
+import org.jboss.dna.graph.query.model.QueryCommand;
 
 /**
  * A default implementation of {@link MapWorkspace} that only requires the user to implement some simple, map-like operations.
@@ -620,6 +622,27 @@
     }
 
     /**
+     * {@inheritDoc}
+     * 
+     * @see org.jboss.dna.graph.connector.map.MapWorkspace#query(org.jboss.dna.graph.ExecutionContext,
+     *      org.jboss.dna.graph.query.model.QueryCommand)
+     */
+    public QueryResults query( ExecutionContext context,
+                               QueryCommand command ) {
+        return null;
+    }
+
+    /**
+     * {@inheritDoc}
+     * 
+     * @see org.jboss.dna.graph.connector.map.MapWorkspace#search(org.jboss.dna.graph.ExecutionContext, java.lang.String)
+     */
+    public QueryResults search( ExecutionContext context,
+                                String fullTextSearchExpression ) {
+        return null;
+    }
+
+    /**
      * Returns all of the UUIDs in the branch rooted at {@code node}. The UUID of {@code node} <i>will</i> be included in the set
      * of returned UUIDs.
      * 

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/map/MapRepository.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/map/MapRepository.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/map/MapRepository.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -57,8 +57,8 @@
      * @param rootNodeUuid the UUID that will be used as the root node UUID for each workspace in the repository; may not be null
      *        or empty
      */
-    public MapRepository( String sourceName,
-                          UUID rootNodeUuid ) {
+    protected MapRepository( String sourceName,
+                             UUID rootNodeUuid ) {
         this(sourceName, rootNodeUuid, null);
     }
 
@@ -71,9 +71,9 @@
      *        or empty
      * @param defaultWorkspaceName the name of the default, auto-created workspace
      */
-    public MapRepository( String sourceName,
-                          UUID rootNodeUuid,
-                          String defaultWorkspaceName ) {
+    protected MapRepository( String sourceName,
+                             UUID rootNodeUuid,
+                             String defaultWorkspaceName ) {
         CheckArg.isNotEmpty(sourceName, "sourceName");
         CheckArg.isNotNull(rootNodeUuid, "rootNodeUUID");
         this.rootNodeUuid = rootNodeUuid;

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-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/map/MapRepositoryConnection.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -101,7 +101,8 @@
             sw.start();
         }
         // Do any commands update/write?
-        RequestProcessor processor = new MapRequestProcessor(context, this.repository, this.source.getRepositoryContext());
+        RequestProcessor processor = new MapRequestProcessor(context, this.repository, this.source.getRepositoryContext()
+                                                                                                  .getObserver());
 
         Lock lock = request.isReadOnly() ? repository.getLock().readLock() : repository.getLock().writeLock();
         lock.lock();
@@ -131,5 +132,4 @@
     public String toString() {
         return "Connection to the \"" + getSourceName() + "\" " + repository.getClass().getSimpleName();
     }
-
 }

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/map/MapRequestProcessor.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/map/MapRequestProcessor.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/map/MapRequestProcessor.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -38,7 +38,7 @@
 import org.jboss.dna.graph.GraphI18n;
 import org.jboss.dna.graph.JcrLexicon;
 import org.jboss.dna.graph.Location;
-import org.jboss.dna.graph.connector.RepositoryContext;
+import org.jboss.dna.graph.observe.Observer;
 import org.jboss.dna.graph.property.Name;
 import org.jboss.dna.graph.property.Path;
 import org.jboss.dna.graph.property.PathFactory;
@@ -46,6 +46,7 @@
 import org.jboss.dna.graph.property.Property;
 import org.jboss.dna.graph.property.PropertyFactory;
 import org.jboss.dna.graph.property.Path.Segment;
+import org.jboss.dna.graph.query.QueryResults;
 import org.jboss.dna.graph.request.CloneBranchRequest;
 import org.jboss.dna.graph.request.CloneWorkspaceRequest;
 import org.jboss.dna.graph.request.CopyBranchRequest;
@@ -53,10 +54,12 @@
 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.FullTextSearchRequest;
 import org.jboss.dna.graph.request.GetWorkspacesRequest;
 import org.jboss.dna.graph.request.InvalidWorkspaceException;
 import org.jboss.dna.graph.request.LockBranchRequest;
 import org.jboss.dna.graph.request.MoveBranchRequest;
+import org.jboss.dna.graph.request.QueryRequest;
 import org.jboss.dna.graph.request.ReadAllChildrenRequest;
 import org.jboss.dna.graph.request.ReadAllPropertiesRequest;
 import org.jboss.dna.graph.request.Request;
@@ -75,8 +78,8 @@
 
     public MapRequestProcessor( ExecutionContext context,
                                 MapRepository repository,
-                                RepositoryContext repositoryContext ) {
-        super(repository.getSourceName(), context, repositoryContext != null ? repositoryContext.getObserver() : null);
+                                Observer observer ) {
+        super(repository.getSourceName(), context, observer);
         this.repository = repository;
         pathFactory = context.getValueFactories().getPathFactory();
         propertyFactory = context.getPropertyFactory();
@@ -491,6 +494,42 @@
         }
     }
 
+    /**
+     * {@inheritDoc}
+     * 
+     * @see org.jboss.dna.graph.request.processor.RequestProcessor#process(org.jboss.dna.graph.request.QueryRequest)
+     */
+    @Override
+    public void process( QueryRequest request ) {
+        MapWorkspace workspace = getWorkspace(request, request.workspace());
+        if (workspace == null) return;
+        final ExecutionContext context = getExecutionContext();
+        QueryResults results = workspace.query(context, request.query());
+        if (results != null) {
+            request.setResults(results);
+        } else {
+            super.processUnknownRequest(request);
+        }
+    }
+
+    /**
+     * {@inheritDoc}
+     * 
+     * @see org.jboss.dna.graph.request.processor.RequestProcessor#process(org.jboss.dna.graph.request.FullTextSearchRequest)
+     */
+    @Override
+    public void process( FullTextSearchRequest request ) {
+        MapWorkspace workspace = getWorkspace(request, request.workspace());
+        if (workspace == null) return;
+        final ExecutionContext context = getExecutionContext();
+        QueryResults results = workspace.search(context, request.expression());
+        if (results != null) {
+            request.setResults(results);
+        } else {
+            super.processUnknownRequest(request);
+        }
+    }
+
     protected Location getActualLocation( Location location,
                                           MapNode node ) {
         Path path = location.getPath();

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/map/MapWorkspace.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/map/MapWorkspace.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/map/MapWorkspace.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -33,6 +33,8 @@
 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.query.QueryResults;
+import org.jboss.dna.graph.query.model.QueryCommand;
 import org.jboss.dna.graph.request.LockBranchRequest.LockScope;
 
 /**
@@ -89,7 +91,7 @@
      * @return whether a node was removed as a result of this operation
      */
     boolean removeNode( ExecutionContext context,
-                     MapNode node );
+                        MapNode node );
 
     /**
      * Create a node at the supplied path. The parent of the new node must already exist.
@@ -226,4 +228,24 @@
      */
     Path pathFor( PathFactory pathFactory,
                   MapNode node );
+
+    /**
+     * Perform a query of this workspace.
+     * 
+     * @param context the context in which the query is to be executed; may not be null
+     * @param command the query command; may not be null
+     * @return the query results, or null if the query is not supported
+     */
+    QueryResults query( ExecutionContext context,
+                        QueryCommand command );
+
+    /**
+     * Perform a full-text search of this workspace.
+     * 
+     * @param context the context in which the query is to be executed; may not be null
+     * @param fullTextSearchExpression the full-text search expression; may not be null
+     * @return the query results, or null if the query is not supported
+     */
+    QueryResults search( ExecutionContext context,
+                         String fullTextSearchExpression );
 }

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/QueryResults.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/QueryResults.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/QueryResults.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -23,6 +23,7 @@
  */
 package org.jboss.dna.graph.query;
 
+import java.io.Serializable;
 import java.text.DecimalFormat;
 import java.util.List;
 import java.util.NoSuchElementException;
@@ -33,22 +34,14 @@
 import org.jboss.dna.graph.Location;
 import org.jboss.dna.graph.query.model.Column;
 import org.jboss.dna.graph.query.model.QueryCommand;
-import org.jboss.dna.graph.query.model.TypeSystem;
 
 /**
  * The resulting output of a query.
  */
 @Immutable
-public interface QueryResults {
+public interface QueryResults extends Serializable {
 
     /**
-     * Get the type system used to evaluate the query.
-     * 
-     * @return the type system; never null
-     */
-    public TypeSystem getTypeSystem();
-
-    /**
      * Get the original query command.
      * 
      * @return the query; never null
@@ -186,7 +179,7 @@
      * the tuples.
      */
     @Immutable
-    public interface Columns {
+    public interface Columns extends Serializable {
         /**
          * Get the columns.
          * 
@@ -365,7 +358,10 @@
         public Columns subSelect( Column... columns );
     }
 
-    public static class Statistics implements Comparable<Statistics> {
+    @Immutable
+    public static class Statistics implements Comparable<Statistics>, Serializable {
+        private static final long serialVersionUID = 1L;
+
         protected static final Statistics EMPTY_STATISTICS = new Statistics();
 
         private final long planningNanos;

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/AllNodes.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/AllNodes.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/AllNodes.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -32,6 +32,8 @@
 @Immutable
 public class AllNodes extends Selector {
 
+    private static final long serialVersionUID = 1L;
+
     public static final SelectorName ALL_NODES_NAME = new SelectorName("__ALLNODES__");
 
     public AllNodes() {

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/And.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/And.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/And.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -33,6 +33,8 @@
 @Immutable
 public class And extends Constraint {
 
+    private static final long serialVersionUID = 1L;
+
     private final Constraint left;
     private final Constraint right;
     private final int hc;

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Between.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Between.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Between.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -33,6 +33,8 @@
 @Immutable
 public class Between extends Constraint {
 
+    private static final long serialVersionUID = 1L;
+
     private final DynamicOperand operand;
     private final StaticOperand lowerBound;
     private final StaticOperand upperBound;

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/BindVariableName.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/BindVariableName.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/BindVariableName.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -32,6 +32,8 @@
 @Immutable
 public class BindVariableName extends StaticOperand {
 
+    private static final long serialVersionUID = 1L;
+
     private final String variableName;
 
     public BindVariableName( String variableName ) {

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/ChildNode.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/ChildNode.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/ChildNode.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -32,6 +32,8 @@
  */
 @Immutable
 public class ChildNode extends Constraint {
+    private static final long serialVersionUID = 1L;
+
     private final SelectorName selectorName;
     private final String parentPath;
     private final int hc;

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/ChildNodeJoinCondition.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/ChildNodeJoinCondition.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/ChildNodeJoinCondition.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -32,6 +32,8 @@
  */
 @Immutable
 public class ChildNodeJoinCondition extends JoinCondition {
+    private static final long serialVersionUID = 1L;
+
     private final SelectorName childSelectorName;
     private final SelectorName parentSelectorName;
     private final int hc;

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Column.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Column.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Column.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -32,6 +32,7 @@
  */
 @Immutable
 public class Column implements LanguageObject {
+    private static final long serialVersionUID = 1L;
 
     private final SelectorName selectorName;
     private final String propertyName;

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Command.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Command.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Command.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -27,5 +27,5 @@
  * Represents the abstract base class for all top-level language objects that are the root of a language object tree.
  */
 public abstract class Command implements LanguageObject {
-
+    private static final long serialVersionUID = 1L;
 }

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Comparison.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Comparison.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Comparison.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -33,6 +33,8 @@
 @Immutable
 public class Comparison extends Constraint {
 
+    private static final long serialVersionUID = 1L;
+
     private final DynamicOperand operand1;
     private final StaticOperand operand2;
     private final Operator operator;

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Constraint.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Constraint.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Constraint.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -30,5 +30,5 @@
  */
 @Immutable
 public abstract class Constraint implements LanguageObject {
-
+    private static final long serialVersionUID = 1L;
 }

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/DescendantNode.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/DescendantNode.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/DescendantNode.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -31,6 +31,8 @@
  */
 @Immutable
 public class DescendantNode extends Constraint {
+    private static final long serialVersionUID = 1L;
+
     private final SelectorName selectorName;
     private final String ancestorPath;
 

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/DescendantNodeJoinCondition.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/DescendantNodeJoinCondition.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/DescendantNodeJoinCondition.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -32,6 +32,8 @@
  */
 @Immutable
 public class DescendantNodeJoinCondition extends JoinCondition {
+    private static final long serialVersionUID = 1L;
+
     private final SelectorName descendantSelectorName;
     private final SelectorName ancestorSelectorName;
     private final int hc;

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/DynamicOperand.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/DynamicOperand.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/DynamicOperand.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -30,6 +30,7 @@
  */
 @Immutable
 public abstract class DynamicOperand implements LanguageObject {
+    private static final long serialVersionUID = 1L;
 
     /**
      * Get the selector symbol to which this operand applies.

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/EquiJoinCondition.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/EquiJoinCondition.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/EquiJoinCondition.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -38,6 +38,8 @@
  */
 @Immutable
 public class EquiJoinCondition extends JoinCondition {
+    private static final long serialVersionUID = 1L;
+
     private final SelectorName selector1Name;
     private final String property1Name;
     private final SelectorName selector2Name;

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/FullTextSearch.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/FullTextSearch.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/FullTextSearch.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -38,6 +38,8 @@
  */
 @Immutable
 public class FullTextSearch extends Constraint {
+    private static final long serialVersionUID = 1L;
+
     private final SelectorName selectorName;
     private final String propertyName;
     private final String fullTextSearchExpression;

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/FullTextSearchScore.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/FullTextSearchScore.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/FullTextSearchScore.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -32,6 +32,8 @@
  */
 @Immutable
 public class FullTextSearchScore extends DynamicOperand {
+    private static final long serialVersionUID = 1L;
+
     private final SelectorName selectorName;
 
     /**

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Join.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Join.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Join.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -32,6 +32,7 @@
  */
 @Immutable
 public class Join extends Source {
+    private static final long serialVersionUID = 1L;
 
     private final Source left;
     private final Source right;

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/JoinCondition.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/JoinCondition.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/JoinCondition.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -30,5 +30,5 @@
  */
 @Immutable
 public abstract class JoinCondition implements LanguageObject {
-
+    private static final long serialVersionUID = 1L;
 }

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/LanguageObject.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/LanguageObject.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/LanguageObject.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -23,8 +23,10 @@
  */
 package org.jboss.dna.graph.query.model;
 
+import java.io.Serializable;
+
 /**
  * A common interface for all query language objects.
  */
-public interface LanguageObject extends Visitable {
+public interface LanguageObject extends Visitable, Serializable {
 }

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Length.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Length.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Length.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -31,6 +31,8 @@
  */
 @Immutable
 public class Length extends DynamicOperand {
+    private static final long serialVersionUID = 1L;
+
     private final PropertyValue propertyValue;
 
     /**

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Limit.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Limit.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Limit.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -31,6 +31,7 @@
  */
 @Immutable
 public class Limit implements LanguageObject {
+    private static final long serialVersionUID = 1L;
 
     public static final Limit NONE = new Limit(Integer.MAX_VALUE, 0);
 

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Literal.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Literal.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Literal.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -31,6 +31,7 @@
  */
 @Immutable
 public class Literal extends StaticOperand {
+    private static final long serialVersionUID = 1L;
 
     private final Object value;
 

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/LowerCase.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/LowerCase.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/LowerCase.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -32,6 +32,8 @@
  */
 @Immutable
 public class LowerCase extends DynamicOperand {
+    private static final long serialVersionUID = 1L;
+
     private final DynamicOperand operand;
 
     /**

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/NamedSelector.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/NamedSelector.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/NamedSelector.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -31,6 +31,7 @@
  */
 @Immutable
 public class NamedSelector extends Selector {
+    private static final long serialVersionUID = 1L;
 
     /**
      * Create a selector with a name.

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/NodeDepth.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/NodeDepth.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/NodeDepth.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -31,6 +31,8 @@
  */
 @Immutable
 public class NodeDepth extends DynamicOperand {
+    private static final long serialVersionUID = 1L;
+
     private final SelectorName selectorName;
 
     /**

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/NodeLocalName.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/NodeLocalName.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/NodeLocalName.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -31,6 +31,8 @@
  */
 @Immutable
 public class NodeLocalName extends DynamicOperand {
+    private static final long serialVersionUID = 1L;
+
     private final SelectorName selectorName;
 
     /**

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/NodeName.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/NodeName.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/NodeName.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -31,6 +31,8 @@
  */
 @Immutable
 public class NodeName extends DynamicOperand {
+    private static final long serialVersionUID = 1L;
+
     private final SelectorName selectorName;
 
     /**

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/NodePath.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/NodePath.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/NodePath.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -31,6 +31,8 @@
  */
 @Immutable
 public class NodePath extends DynamicOperand {
+    private static final long serialVersionUID = 1L;
+
     private final SelectorName selectorName;
 
     /**

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Not.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Not.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Not.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -31,6 +31,7 @@
  */
 @Immutable
 public class Not extends Constraint {
+    private static final long serialVersionUID = 1L;
 
     private final Constraint constraint;
 

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Or.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Or.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Or.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -32,6 +32,7 @@
  */
 @Immutable
 public class Or extends Constraint {
+    private static final long serialVersionUID = 1L;
 
     private final Constraint left;
     private final Constraint right;

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Ordering.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Ordering.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Ordering.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -31,6 +31,7 @@
  */
 @Immutable
 public class Ordering implements LanguageObject {
+    private static final long serialVersionUID = 1L;
 
     private final DynamicOperand operand;
     private final Order order;

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/PropertyExistence.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/PropertyExistence.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/PropertyExistence.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -32,6 +32,8 @@
  */
 @Immutable
 public class PropertyExistence extends Constraint {
+    private static final long serialVersionUID = 1L;
+
     private final SelectorName selectorName;
     private final String propertyName;
     private final int hc;

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/PropertyValue.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/PropertyValue.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/PropertyValue.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -32,6 +32,8 @@
  */
 @Immutable
 public class PropertyValue extends DynamicOperand {
+    private static final long serialVersionUID = 1L;
+
     private final SelectorName selectorName;
     private final String propertyName;
     private final int hc;

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Query.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Query.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Query.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -37,6 +37,7 @@
  */
 @Immutable
 public class Query extends QueryCommand {
+    private static final long serialVersionUID = 1L;
 
     public static final boolean IS_DISTINCT_DEFAULT = false;
 

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/QueryCommand.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/QueryCommand.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/QueryCommand.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -30,6 +30,7 @@
  * Represents the abstract base class for all query commands. Subclasses include {@link Query} and {@link SetQuery}.
  */
 public abstract class QueryCommand extends Command {
+    private static final long serialVersionUID = 1L;
 
     private final List<Ordering> orderings;
     private final Limit limits;

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/SameNode.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/SameNode.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/SameNode.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -32,6 +32,8 @@
  */
 @Immutable
 public class SameNode extends Constraint {
+    private static final long serialVersionUID = 1L;
+
     private final SelectorName selectorName;
     private final String path;
     private final int hc;

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/SameNodeJoinCondition.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/SameNodeJoinCondition.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/SameNodeJoinCondition.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -34,6 +34,8 @@
  */
 @Immutable
 public class SameNodeJoinCondition extends JoinCondition {
+    private static final long serialVersionUID = 1L;
+
     private final SelectorName selector1Name;
     private final SelectorName selector2Name;
     private final String selector2Path;

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Selector.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Selector.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Selector.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -31,6 +31,7 @@
  */
 @Immutable
 public abstract class Selector extends Source {
+    private static final long serialVersionUID = 1L;
 
     private final SelectorName name;
     private final SelectorName alias;

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/SelectorName.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/SelectorName.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/SelectorName.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -23,6 +23,7 @@
  */
 package org.jboss.dna.graph.query.model;
 
+import java.io.Serializable;
 import net.jcip.annotations.Immutable;
 import org.jboss.dna.common.util.CheckArg;
 
@@ -30,7 +31,8 @@
  * A representation of a qualified or expanded name.
  */
 @Immutable
-public class SelectorName implements Readable {
+public class SelectorName implements Readable, Serializable {
+    private static final long serialVersionUID = 1L;
 
     private final String name;
 

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/SetCriteria.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/SetCriteria.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/SetCriteria.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -34,6 +34,7 @@
  */
 @Immutable
 public class SetCriteria extends Constraint {
+    private static final long serialVersionUID = 1L;
 
     private final DynamicOperand left;
     private final Collection<StaticOperand> setOperands;

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/SetQuery.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/SetQuery.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/SetQuery.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -44,6 +44,7 @@
  */
 @Immutable
 public class SetQuery extends QueryCommand {
+    private static final long serialVersionUID = 1L;
 
     public enum Operation implements Readable {
         UNION("UNION"),

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Source.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Source.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/Source.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -30,5 +30,5 @@
  */
 @Immutable
 public abstract class Source implements LanguageObject {
-
+    private static final long serialVersionUID = 1L;
 }

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/StaticOperand.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/StaticOperand.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/StaticOperand.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -30,5 +30,5 @@
  */
 @Immutable
 public abstract class StaticOperand implements LanguageObject {
-
+    private static final long serialVersionUID = 1L;
 }

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/TypeSystem.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/TypeSystem.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/TypeSystem.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -29,29 +29,81 @@
 import org.jboss.dna.graph.property.ValueFormatException;
 
 /**
- * 
+ * An interface that defines the value types used in tuples.
  */
 @Immutable
 public interface TypeSystem {
 
+    /**
+     * Get the type factory given the name of the type.
+     * 
+     * @param typeName the name of the type
+     * @return the type factory, or null if there is no such type in this system
+     */
     TypeFactory<?> getTypeFactory( String typeName );
 
+    /**
+     * Get the type factory for the type denoted by the supplied prototype value.
+     * 
+     * @param prototype the value whose type is to be identified
+     * @return the type factory, or null if there is no such type in this system
+     */
     TypeFactory<?> getTypeFactory( Object prototype );
 
+    /**
+     * Get the type factory for boolean types.
+     * 
+     * @return the boolean factory; never null
+     */
     TypeFactory<Boolean> getBooleanFactory();
 
+    /**
+     * Get the type factory for long types.
+     * 
+     * @return the long factory; never null
+     */
     TypeFactory<Long> getLongFactory();
 
+    /**
+     * Get the type factory for string types.
+     * 
+     * @return the string factory; never null
+     */
     TypeFactory<String> getStringFactory();
 
+    /**
+     * Get the type factory for double types.
+     * 
+     * @return the double factory; never null
+     */
     TypeFactory<Double> getDoubleFactory();
 
+    /**
+     * Get the type factory for date-time objects.
+     * 
+     * @return the date-time factory, or null if this type system doesn't support date-time objects
+     */
     TypeFactory<?> getDateTimeFactory();
 
+    /**
+     * Get the type factory for path objects.
+     * 
+     * @return the path factory, or null if this type system doesn't support path objects
+     */
     TypeFactory<?> getPathFactory();
 
+    /**
+     * Get the name of the type that is used by default.
+     * 
+     * @return the default type name; never null
+     */
     String getDefaultType();
 
+    /**
+     * Get the comparator that should be used by default.
+     * 
+     * @return the default comparator; never null
+     */
     Comparator<Object> getDefaultComparator();
 
     /**

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/UpperCase.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/UpperCase.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/model/UpperCase.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -32,6 +32,8 @@
  */
 @Immutable
 public class UpperCase extends DynamicOperand {
+    private static final long serialVersionUID = 1L;
+
     private final DynamicOperand operand;
 
     /**

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/optimize/RewriteAsRangeCriteria.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/optimize/RewriteAsRangeCriteria.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/optimize/RewriteAsRangeCriteria.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -58,6 +58,8 @@
 public class RewriteAsRangeCriteria implements OptimizerRule {
 
     protected static final Constraint CONFLICTING_CONSTRAINT = new Constraint() {
+        private static final long serialVersionUID = 1L;
+
         public void accept( Visitor visitor ) {
             throw new UnsupportedOperationException();
         }

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/plan/PlanHints.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/plan/PlanHints.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/plan/PlanHints.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -23,11 +23,14 @@
  */
 package org.jboss.dna.graph.query.plan;
 
+import java.io.Serializable;
 import net.jcip.annotations.NotThreadSafe;
 
 @NotThreadSafe
-public final class PlanHints {
+public final class PlanHints implements Serializable {
 
+    private static final long serialVersionUID = 1L;
+
     /** This flag indicates that the plan has a criteria somewhere */
     public boolean hasCriteria = false;
 

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/process/QueryResultColumns.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/process/QueryResultColumns.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/process/QueryResultColumns.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -43,6 +43,7 @@
  */
 @Immutable
 public final class QueryResultColumns implements Columns {
+    private static final long serialVersionUID = 1L;
 
     private static final QueryResultColumns EMPTY = new QueryResultColumns(Collections.<Column>emptyList(), false);
 

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/process/QueryResults.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/process/QueryResults.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/query/process/QueryResults.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -33,7 +33,6 @@
 import org.jboss.dna.graph.Location;
 import org.jboss.dna.graph.query.QueryContext;
 import org.jboss.dna.graph.query.model.QueryCommand;
-import org.jboss.dna.graph.query.model.TypeSystem;
 import org.jboss.dna.graph.query.model.TypeSystem.TypeFactory;
 
 /**
@@ -41,6 +40,7 @@
  */
 @Immutable
 public class QueryResults implements org.jboss.dna.graph.query.QueryResults {
+    private static final long serialVersionUID = 1L;
 
     private final QueryContext context;
     private final QueryCommand command;
@@ -91,15 +91,6 @@
     /**
      * {@inheritDoc}
      * 
-     * @see org.jboss.dna.graph.query.QueryResults#getTypeSystem()
-     */
-    public TypeSystem getTypeSystem() {
-        return context.getTypeSystem();
-    }
-
-    /**
-     * {@inheritDoc}
-     * 
      * @see org.jboss.dna.graph.query.QueryResults#getCommand()
      */
     public QueryCommand getCommand() {

Modified: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/processor/RequestProcessor.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/processor/RequestProcessor.java	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/processor/RequestProcessor.java	2009-12-01 15:19:31 UTC (rev 1373)
@@ -56,10 +56,12 @@
 import org.jboss.dna.graph.request.DeleteBranchRequest;
 import org.jboss.dna.graph.request.DeleteChildrenRequest;
 import org.jboss.dna.graph.request.DestroyWorkspaceRequest;
+import org.jboss.dna.graph.request.FullTextSearchRequest;
 import org.jboss.dna.graph.request.GetWorkspacesRequest;
 import org.jboss.dna.graph.request.InvalidRequestException;
 import org.jboss.dna.graph.request.LockBranchRequest;
 import org.jboss.dna.graph.request.MoveBranchRequest;
+import org.jboss.dna.graph.request.QueryRequest;
 import org.jboss.dna.graph.request.ReadAllChildrenRequest;
 import org.jboss.dna.graph.request.ReadAllPropertiesRequest;
 import org.jboss.dna.graph.request.ReadBlockOfChildrenRequest;
@@ -272,6 +274,10 @@
                 process((DestroyWorkspaceRequest)request);
             } else if (request instanceof UpdateValuesRequest) {
                 process((UpdateValuesRequest)request);
+            } else if (request instanceof QueryRequest) {
+                process((QueryRequest)request);
+            } else if (request instanceof FullTextSearchRequest) {
+                process((FullTextSearchRequest)request);
             } else {
                 processUnknownRequest(request);
             }
@@ -913,6 +919,32 @@
     }
 
     /**
+     * Process a request to query a workspace.
+     * <p>
+     * The default implementation of this method behaves as though the implementation does not support queries by setting an error
+     * on the request
+     * </p>
+     * 
+     * @param request the request
+     */
+    public void process( QueryRequest request ) {
+        processUnknownRequest(request);
+    }
+
+    /**
+     * Process a request to search a workspace.
+     * <p>
+     * The default implementation of this method behaves as though the implementation does not support full-text searches by
+     * setting an error on the request
+     * </p>
+     * 
+     * @param request the request
+     */
+    public void process( FullTextSearchRequest request ) {
+        processUnknownRequest(request);
+    }
+
+    /**
      * A class that represents a location at a known depth
      * 
      * @author Randall Hauch

Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml	2009-11-30 21:53:47 UTC (rev 1372)
+++ trunk/pom.xml	2009-12-01 15:19:31 UTC (rev 1373)
@@ -139,6 +139,7 @@
 		<module>extensions/dna-connector-jbosscache</module>
 		<module>extensions/dna-connector-svn</module>
 		<module>extensions/dna-connector-store-jpa</module>
+		<module>extensions/dna-connector-store-lucene</module>
 		<module>extensions/dna-mimetype-detector-aperture</module>
 		<!--module>extensions/dna-common-jdbc</module--> 
 		<!--module>extensions/dna-connector-jdbc-metadata</module--> 



More information about the dna-commits mailing list