[dna-commits] DNA SVN: r1375 - in trunk/dna-graph/src: main/java/org/jboss/dna/graph/request and 4 other directories.

dna-commits at lists.jboss.org dna-commits at lists.jboss.org
Tue Dec 1 10:20:21 EST 2009


Author: rhauch
Date: 2009-12-01 10:20:21 -0500 (Tue, 01 Dec 2009)
New Revision: 1375

Added:
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/FullTextSearchRequest.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/QueryRequest.java
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/SearchRequest.java
Modified:
   trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/map/MapRepositoryConnection.java
   trunk/dna-graph/src/test/java/org/jboss/dna/graph/connector/federation/AbstractFederatedRepositorySourceIntegrationTest.java
   trunk/dna-graph/src/test/java/org/jboss/dna/graph/connector/federation/FederatedRepositorySourceTest.java
   trunk/dna-graph/src/test/java/org/jboss/dna/graph/io/GraphSequencerOutputTest.java
   trunk/dna-graph/src/test/java/org/jboss/dna/graph/search/SearchEngineTest.java
   trunk/dna-graph/src/test/java/org/jboss/dna/graph/session/GraphSessionTest.java
Log:
DNA-467 Fixed the previous commmit, which had several missing changes.

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-12-01 15:19:45 UTC (rev 1374)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/connector/map/MapRepositoryConnection.java	2009-12-01 15:20:21 UTC (rev 1375)
@@ -31,7 +31,9 @@
 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.RepositoryContext;
 import org.jboss.dna.graph.connector.RepositorySourceException;
+import org.jboss.dna.graph.observe.Observer;
 import org.jboss.dna.graph.request.Request;
 import org.jboss.dna.graph.request.processor.RequestProcessor;
 
@@ -101,8 +103,9 @@
             sw.start();
         }
         // Do any commands update/write?
-        RequestProcessor processor = new MapRequestProcessor(context, this.repository, this.source.getRepositoryContext()
-                                                                                                  .getObserver());
+        RepositoryContext repositoryContext = this.source.getRepositoryContext();
+        Observer observer = repositoryContext != null ? repositoryContext.getObserver() : null;
+        RequestProcessor processor = new MapRequestProcessor(context, this.repository, observer);
 
         Lock lock = request.isReadOnly() ? repository.getLock().readLock() : repository.getLock().writeLock();
         lock.lock();

Added: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/FullTextSearchRequest.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/FullTextSearchRequest.java	                        (rev 0)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/FullTextSearchRequest.java	2009-12-01 15:20:21 UTC (rev 1375)
@@ -0,0 +1,117 @@
+/*
+ * 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.graph.request;
+
+import org.jboss.dna.common.util.CheckArg;
+
+/**
+ * A {@link Request} to perform a full-text search on a graph.
+ */
+public class FullTextSearchRequest extends SearchRequest {
+
+    private static final long serialVersionUID = 1L;
+
+    private final String expression;
+    private final String workspaceName;
+
+    /**
+     * Create a new request to execute the supplied query against the name workspace.
+     * 
+     * @param fullTextSearch the full-text search to be performed; may not be null
+     * @param workspace the name of the workspace to be queried
+     * @throws IllegalArgumentException if the query or workspace name is null
+     */
+    public FullTextSearchRequest( String fullTextSearch,
+                                  String workspace ) {
+        CheckArg.isNotEmpty(fullTextSearch, "fullTextSearch");
+        CheckArg.isNotNull(workspace, "workspace");
+        this.expression = fullTextSearch;
+        this.workspaceName = workspace;
+    }
+
+    /**
+     * {@inheritDoc}
+     * 
+     * @see org.jboss.dna.graph.request.Request#isReadOnly()
+     */
+    @Override
+    public boolean isReadOnly() {
+        return true;
+    }
+
+    /**
+     * Get the full-text search expression that is to be executed.
+     * 
+     * @return the full-text search expression; never null and never empty
+     */
+    public String expression() {
+        return expression;
+    }
+
+    /**
+     * Get the name of the workspace in which the node exists.
+     * 
+     * @return the name of the workspace; never null
+     */
+    public String workspace() {
+        return workspaceName;
+    }
+
+    /**
+     * {@inheritDoc}
+     * 
+     * @see java.lang.Object#hashCode()
+     */
+    @Override
+    public int hashCode() {
+        return expression.hashCode();
+    }
+
+    /**
+     * {@inheritDoc}
+     * 
+     * @see java.lang.Object#equals(java.lang.Object)
+     */
+    @Override
+    public boolean equals( Object obj ) {
+        if (obj == this) return true;
+        if (this.getClass().isInstance(obj)) {
+            FullTextSearchRequest that = (FullTextSearchRequest)obj;
+            if (!this.expression().equals(that.expression())) return false;
+            if (!this.workspace().equals(that.workspace())) return false;
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * {@inheritDoc}
+     * 
+     * @see java.lang.Object#toString()
+     */
+    @Override
+    public String toString() {
+        return "search the \"" + workspaceName + "\" workspace with \"" + expression + "\"";
+    }
+}


Property changes on: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/FullTextSearchRequest.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/QueryRequest.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/QueryRequest.java	                        (rev 0)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/QueryRequest.java	2009-12-01 15:20:21 UTC (rev 1375)
@@ -0,0 +1,184 @@
+/*
+ * 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.graph.request;
+
+import java.util.Collections;
+import java.util.Map;
+import org.jboss.dna.common.util.CheckArg;
+import org.jboss.dna.graph.query.model.QueryCommand;
+import org.jboss.dna.graph.query.model.Visitors;
+import org.jboss.dna.graph.query.plan.PlanHints;
+import org.jboss.dna.graph.query.validate.Schemata;
+
+/**
+ * A {@link Request} to query a graph.
+ */
+public class QueryRequest extends SearchRequest {
+
+    private static final Map<String, Object> EMPTY_VARIABLES = Collections.emptyMap();
+
+    private static final long serialVersionUID = 1L;
+
+    private final QueryCommand query;
+    private final String workspaceName;
+    private final Map<String, Object> variables;
+    private final PlanHints hints;
+    private final transient Schemata schemata;
+
+    /**
+     * Create a new request to execute the supplied query against the name workspace.
+     * 
+     * @param query the query to be executed
+     * @param workspace the name of the workspace to be queried
+     * @throws IllegalArgumentException if the query or workspace name is null
+     */
+    public QueryRequest( QueryCommand query,
+                         String workspace ) {
+        CheckArg.isNotNull(query, "query");
+        CheckArg.isNotNull(workspace, "workspace");
+        this.query = query;
+        this.workspaceName = workspace;
+        this.variables = EMPTY_VARIABLES;
+        this.hints = null;
+        this.schemata = null;
+    }
+
+    /**
+     * Create a new request to execute the supplied query against the name workspace.
+     * 
+     * @param query the query to be executed
+     * @param workspace the name of the workspace to be queried
+     * @param variables the variables that are available to be substituted upon execution; may be null if there are no variables
+     * @param hints the hints; may be null if there are no hints
+     * @param schemata the schemata defining the structure of the tables that may be queried, or null if the default schemata
+     *        should be used
+     * @throws IllegalArgumentException if the query or workspace name is null
+     */
+    public QueryRequest( QueryCommand query,
+                         String workspace,
+                         Map<String, Object> variables,
+                         PlanHints hints,
+                         Schemata schemata ) {
+        CheckArg.isNotNull(query, "query");
+        CheckArg.isNotNull(workspace, "workspace");
+        this.query = query;
+        this.workspaceName = workspace;
+        this.variables = variables != null ? variables : EMPTY_VARIABLES;
+        this.hints = hints;
+        this.schemata = schemata;
+    }
+
+    /**
+     * {@inheritDoc}
+     * 
+     * @see org.jboss.dna.graph.request.Request#isReadOnly()
+     */
+    @Override
+    public boolean isReadOnly() {
+        return true;
+    }
+
+    /**
+     * Get the query that is to be executed.
+     * 
+     * @return the query; never null
+     */
+    public QueryCommand query() {
+        return query;
+    }
+
+    /**
+     * Get the name of the workspace in which the node exists.
+     * 
+     * @return the name of the workspace; never null
+     */
+    public String workspace() {
+        return workspaceName;
+    }
+
+    /**
+     * The variables that are available to be substituted upon execution.
+     * 
+     * @return the variables; never null but possibly empty
+     */
+    public Map<String, Object> variables() {
+        return variables;
+    }
+
+    /**
+     * Get the hints for the query.
+     * 
+     * @return the hints, or null if there are no hints
+     */
+    public PlanHints hints() {
+        return hints;
+    }
+
+    /**
+     * Get the schemata that defines the structure of the tables that may be queried.
+     * 
+     * @return the schemata, or null if the default schemata should be used
+     */
+    public Schemata schemata() {
+        return schemata;
+    }
+
+    /**
+     * {@inheritDoc}
+     * 
+     * @see java.lang.Object#hashCode()
+     */
+    @Override
+    public int hashCode() {
+        return query.hashCode();
+    }
+
+    /**
+     * {@inheritDoc}
+     * 
+     * @see java.lang.Object#equals(java.lang.Object)
+     */
+    @Override
+    public boolean equals( Object obj ) {
+        if (obj == this) return true;
+        if (this.getClass().isInstance(obj)) {
+            QueryRequest that = (QueryRequest)obj;
+            if (!this.query().equals(that.query())) return false;
+            if (!this.workspace().equals(that.workspace())) return false;
+            if (!this.variables().equals(that.variables())) return false;
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * {@inheritDoc}
+     * 
+     * @see java.lang.Object#toString()
+     */
+    @Override
+    public String toString() {
+        return "query the \"" + workspaceName + "\" workspace with \"" + Visitors.readable(query) + "\"";
+    }
+}


Property changes on: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/QueryRequest.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/SearchRequest.java
===================================================================
--- trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/SearchRequest.java	                        (rev 0)
+++ trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/SearchRequest.java	2009-12-01 15:20:21 UTC (rev 1375)
@@ -0,0 +1,66 @@
+/*
+ * 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.
+ *
+ * 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.graph.request;
+
+import org.jboss.dna.graph.query.QueryResults;
+
+/**
+ * A {@link Request} to search or query a graph.
+ */
+public abstract class SearchRequest extends Request {
+
+    private static final long serialVersionUID = 1L;
+
+    private QueryResults results;
+
+    /**
+     * Set the results for this request.
+     * 
+     * @param results the results
+     */
+    public void setResults( QueryResults results ) {
+        this.results = results;
+    }
+
+    /**
+     * Get the results of this query.
+     * 
+     * @return the results of the query, or null if this request has not been processed
+     */
+    public QueryResults getResults() {
+        return results;
+    }
+
+    /**
+     * {@inheritDoc}
+     * 
+     * @see org.jboss.dna.graph.request.Request#cancel()
+     */
+    @Override
+    public void cancel() {
+        super.cancel();
+        this.results = null;
+    }
+
+}


Property changes on: trunk/dna-graph/src/main/java/org/jboss/dna/graph/request/SearchRequest.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Modified: trunk/dna-graph/src/test/java/org/jboss/dna/graph/connector/federation/AbstractFederatedRepositorySourceIntegrationTest.java
===================================================================
--- trunk/dna-graph/src/test/java/org/jboss/dna/graph/connector/federation/AbstractFederatedRepositorySourceIntegrationTest.java	2009-12-01 15:19:45 UTC (rev 1374)
+++ trunk/dna-graph/src/test/java/org/jboss/dna/graph/connector/federation/AbstractFederatedRepositorySourceIntegrationTest.java	2009-12-01 15:20:21 UTC (rev 1375)
@@ -96,12 +96,8 @@
         configRepositorySource = new InMemoryRepositorySource();
         configRepositorySource.setName("Configuration Repository");
         configRepositorySource.setDefaultWorkspaceName(configurationWorkspaceName);
-        Graph config = Graph.create(configRepositorySource, context);
-        config.create("/a").and();
-        config.create("/a/b").and();
-        config.create("/a/b/Test Repository").and();
-        config.create("/a/b/Test Repository/dna:workspaces").and();
 
+        // Set up the repository context ...
         repositoryContext = new RepositoryContext() {
             public ExecutionContext getExecutionContext() {
                 return context;
@@ -123,7 +119,15 @@
                 return result.getSubgraphOfDepth(depth).at("/a/b/Test Repository");
             }
         };
+        configRepositorySource.initialize(repositoryContext);
 
+        // Populate the configuration repository ...
+        Graph config = Graph.create(configRepositorySource, context);
+        config.create("/a").and();
+        config.create("/a/b").and();
+        config.create("/a/b/Test Repository").and();
+        config.create("/a/b/Test Repository/dna:workspaces").and();
+
         // Set up the source ...
         source = new FederatedRepositorySource();
         source.setName(repositoryName);
@@ -217,6 +221,7 @@
                     return newSource.getConnection();
                 }
             });
+            source.initialize(repositoryContext);
         }
         // Make sure there's a workspace for it ...
         Graph sourceGraph = Graph.create(sourceName, connectionFactory, context);

Modified: trunk/dna-graph/src/test/java/org/jboss/dna/graph/connector/federation/FederatedRepositorySourceTest.java
===================================================================
--- trunk/dna-graph/src/test/java/org/jboss/dna/graph/connector/federation/FederatedRepositorySourceTest.java	2009-12-01 15:19:45 UTC (rev 1374)
+++ trunk/dna-graph/src/test/java/org/jboss/dna/graph/connector/federation/FederatedRepositorySourceTest.java	2009-12-01 15:20:21 UTC (rev 1375)
@@ -107,6 +107,7 @@
                 return result.getSubgraphOfDepth(depth).at("/a/b/Test Repository");
             }
         };
+        configRepositorySource.initialize(repositoryContext);
 
         source = new FederatedRepositorySource();
         source.setName(repositoryName);

Modified: trunk/dna-graph/src/test/java/org/jboss/dna/graph/io/GraphSequencerOutputTest.java
===================================================================
--- trunk/dna-graph/src/test/java/org/jboss/dna/graph/io/GraphSequencerOutputTest.java	2009-12-01 15:19:45 UTC (rev 1374)
+++ trunk/dna-graph/src/test/java/org/jboss/dna/graph/io/GraphSequencerOutputTest.java	2009-12-01 15:20:21 UTC (rev 1375)
@@ -29,7 +29,10 @@
 import org.jboss.dna.graph.ExecutionContext;
 import org.jboss.dna.graph.Graph;
 import org.jboss.dna.graph.Subgraph;
+import org.jboss.dna.graph.connector.RepositoryConnectionFactory;
+import org.jboss.dna.graph.connector.RepositoryContext;
 import org.jboss.dna.graph.connector.inmemory.InMemoryRepositorySource;
+import org.jboss.dna.graph.observe.Observer;
 import org.jboss.dna.graph.property.Name;
 import org.jboss.dna.graph.property.Path;
 import org.junit.Before;
@@ -47,8 +50,31 @@
     public void beforeEach() {
         context = new ExecutionContext();
 
-        InMemoryRepositorySource source = new InMemoryRepositorySource();
+        final InMemoryRepositorySource source = new InMemoryRepositorySource();
         source.setName("actual");
+        RepositoryContext repositoryContext = new RepositoryContext() {
+            @SuppressWarnings( "synthetic-access" )
+            public ExecutionContext getExecutionContext() {
+                return context;
+            }
+
+            public Observer getObserver() {
+                return null;
+            }
+
+            public RepositoryConnectionFactory getRepositoryConnectionFactory() {
+                return null;
+            }
+
+            @SuppressWarnings( "synthetic-access" )
+            public Subgraph getConfiguration( int depth ) {
+                Graph result = Graph.create(source, context);
+                result.useWorkspace("configSpace");
+                return result.getSubgraphOfDepth(depth).at("/");
+            }
+        };
+        source.initialize(repositoryContext);
+
         graph = Graph.create(source, context);
 
         output = new GraphSequencerOutput(graph);

Modified: trunk/dna-graph/src/test/java/org/jboss/dna/graph/search/SearchEngineTest.java
===================================================================
--- trunk/dna-graph/src/test/java/org/jboss/dna/graph/search/SearchEngineTest.java	2009-12-01 15:19:45 UTC (rev 1374)
+++ trunk/dna-graph/src/test/java/org/jboss/dna/graph/search/SearchEngineTest.java	2009-12-01 15:20:21 UTC (rev 1375)
@@ -39,10 +39,13 @@
 import org.jboss.dna.graph.Graph;
 import org.jboss.dna.graph.Location;
 import org.jboss.dna.graph.Node;
+import org.jboss.dna.graph.Subgraph;
 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.jboss.dna.graph.observe.Observer;
 import org.jboss.dna.graph.property.Path;
 import org.jboss.dna.graph.query.QueryContext;
 import org.jboss.dna.graph.query.model.Query;
@@ -77,6 +80,28 @@
         // Set up the source and graph instance ...
         source = new InMemoryRepositorySource();
         source.setName(sourceName);
+        RepositoryContext repositoryContext = new RepositoryContext() {
+            @SuppressWarnings( "synthetic-access" )
+            public ExecutionContext getExecutionContext() {
+                return context;
+            }
+
+            public Observer getObserver() {
+                return null;
+            }
+
+            public RepositoryConnectionFactory getRepositoryConnectionFactory() {
+                return null;
+            }
+
+            @SuppressWarnings( "synthetic-access" )
+            public Subgraph getConfiguration( int depth ) {
+                Graph result = Graph.create(source, context);
+                result.useWorkspace("configSpace");
+                return result.getSubgraphOfDepth(depth).at("/");
+            }
+        };
+        source.initialize(repositoryContext);
         content = Graph.create(source, context);
 
         // Create the workspaces ...

Modified: trunk/dna-graph/src/test/java/org/jboss/dna/graph/session/GraphSessionTest.java
===================================================================
--- trunk/dna-graph/src/test/java/org/jboss/dna/graph/session/GraphSessionTest.java	2009-12-01 15:19:45 UTC (rev 1374)
+++ trunk/dna-graph/src/test/java/org/jboss/dna/graph/session/GraphSessionTest.java	2009-12-01 15:20:21 UTC (rev 1375)
@@ -35,10 +35,13 @@
 import org.jboss.dna.common.statistic.Stopwatch;
 import org.jboss.dna.graph.ExecutionContext;
 import org.jboss.dna.graph.Graph;
+import org.jboss.dna.graph.Subgraph;
 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.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;
@@ -79,6 +82,28 @@
                 return null;
             }
         };
+
+        RepositoryContext repositoryContext = new RepositoryContext() {
+            public ExecutionContext getExecutionContext() {
+                return context;
+            }
+
+            public Observer getObserver() {
+                return null;
+            }
+
+            public RepositoryConnectionFactory getRepositoryConnectionFactory() {
+                return null;
+            }
+
+            public Subgraph getConfiguration( int depth ) {
+                Graph result = Graph.create(source, context);
+                result.useWorkspace("configSpace");
+                return result.getSubgraphOfDepth(depth).at("/");
+            }
+        };
+        source.initialize(repositoryContext);
+
         store = Graph.create(source.getName(), connectionFactory, context);
 
         // Load the store with content ...



More information about the dna-commits mailing list