Fixed AccumuloIndex Security Bug

Project: http://git-wip-us.apache.org/repos/asf/incubator-rya/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-rya/commit/a28472b3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-rya/tree/a28472b3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-rya/diff/a28472b3

Branch: refs/heads/develop
Commit: a28472b3a5db7f3943cc1b56b70d7a670a0f9cbb
Parents: 96dd55e
Author: Caleb Meier <[email protected]>
Authored: Thu Jun 2 13:42:27 2016 -0400
Committer: Caleb Meier <[email protected]>
Committed: Thu Jun 2 13:42:27 2016 -0400

----------------------------------------------------------------------
 extras/indexing/pom.xml                         | 294 ++++++++++---------
 .../external/tupleSet/AccumuloIndexSet.java     |  57 ++--
 .../rya/indexing/pcj/matching/PCJOptimizer.java |   2 +-
 .../external/AccumuloPcjIntegrationTest.java    |  35 ++-
 .../AccumuloIndexSetColumnVisibilityTest.java   | 218 ++++++++++++++
 .../external/tupleSet/AccumuloIndexSetTest.java | 102 +++----
 6 files changed, 475 insertions(+), 233 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/a28472b3/extras/indexing/pom.xml
----------------------------------------------------------------------
diff --git a/extras/indexing/pom.xml b/extras/indexing/pom.xml
index d819199..ad38855 100644
--- a/extras/indexing/pom.xml
+++ b/extras/indexing/pom.xml
@@ -1,160 +1,162 @@
 <?xml version='1.0'?>
 
-<!--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more 
contributor 
+       license agreements. See the NOTICE file distributed with this work for 
additional 
+       information regarding copyright ownership. The ASF licenses this file 
to 
+       you under the Apache License, Version 2.0 (the "License"); you may not 
use 
+       this file except in compliance with the License. You may obtain a copy 
of 
+       the License at http://www.apache.org/licenses/LICENSE-2.0 Unless 
required 
+       by applicable law or agreed to in writing, software distributed under 
the 
+       License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 
CONDITIONS 
+       OF ANY KIND, either express or implied. See the License for the 
specific 
+       language governing permissions and limitations under the License. -->
 
-  http://www.apache.org/licenses/LICENSE-2.0
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+       <modelVersion>4.0.0</modelVersion>
+       <parent>
+               <groupId>org.apache.rya</groupId>
+               <artifactId>rya.extras</artifactId>
+               <version>3.2.10-SNAPSHOT</version>
+       </parent>
 
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
--->
+       <artifactId>rya.indexing</artifactId>
+       <name>Apache Rya Secondary Indexing</name>
 
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.rya</groupId>
-        <artifactId>rya.extras</artifactId>
-        <version>3.2.10-SNAPSHOT</version>
-    </parent>
+       <dependencies>
 
-    <artifactId>rya.indexing</artifactId>
-    <name>Apache Rya Secondary Indexing</name>
+               <dependency>
+                  <groupId>org.apache.accumulo</groupId>
+            <artifactId>accumulo-minicluster</artifactId>
+            <version>${accumulo.version}</version>
+            <scope>test</scope>
+               </dependency>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.rya</groupId>
-            <artifactId>rya.sail</artifactId>
-            <exclusions>
-                <exclusion>
-                    <artifactId>hsqldb</artifactId>
-                    <groupId>hsqldb</groupId>
-                </exclusion>
-            </exclusions>
-        </dependency>
+               <dependency>
+                       <groupId>org.apache.rya</groupId>
+                       <artifactId>rya.sail</artifactId>
+                       <exclusions>
+                               <exclusion>
+                                       <artifactId>hsqldb</artifactId>
+                                       <groupId>hsqldb</groupId>
+                               </exclusion>
+                       </exclusions>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.rya</groupId>
+                       <artifactId>accumulo.rya</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.rya</groupId>
+                       <artifactId>mongodb.rya</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.rya</groupId>
+                       <artifactId>rya.prospector</artifactId>
+               </dependency>
 
-        <dependency>
-            <groupId>org.apache.rya</groupId>
-            <artifactId>accumulo.rya</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.rya</groupId>
-            <artifactId>mongodb.rya</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.rya</groupId>
-            <artifactId>rya.prospector</artifactId>
-        </dependency>
+               <!-- Free Text Indexing -->
+               <dependency>
+                       <groupId>org.apache.lucene</groupId>
+                       <artifactId>lucene-core</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.lucene</groupId>
+                       <artifactId>lucene-analyzers</artifactId>
+               </dependency>
 
-        <!-- Free Text Indexing -->
-        <dependency>
-            <groupId>org.apache.lucene</groupId>
-            <artifactId>lucene-core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.lucene</groupId>
-            <artifactId>lucene-analyzers</artifactId>
-        </dependency>
+               <dependency>
+                       <groupId>commons-codec</groupId>
+                       <artifactId>commons-codec</artifactId>
+               </dependency>
 
-        <dependency>
-            <groupId>commons-codec</groupId>
-            <artifactId>commons-codec</artifactId>
-        </dependency>
+               <!-- Geo Indexing -->
+               <dependency>
+                       <groupId>org.locationtech.geomesa</groupId>
+                       <artifactId>geomesa-accumulo-datastore</artifactId>
+               </dependency>
 
-        <!-- Geo Indexing -->
-        <dependency>
-            <groupId>org.locationtech.geomesa</groupId>
-            <artifactId>geomesa-accumulo-datastore</artifactId>
-        </dependency>
+               <!-- PCJ Indexing -->
+               <dependency>
+                       <groupId>org.apache.rya</groupId>
+                       <artifactId>rya.indexing.pcj</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.rya</groupId>
+                       <artifactId>rya.pcj.fluo.api</artifactId>
+               </dependency>
 
-        <!-- PCJ Indexing -->
-        <dependency>
-            <groupId>org.apache.rya</groupId>
-            <artifactId>rya.indexing.pcj</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.rya</groupId>
-            <artifactId>rya.pcj.fluo.api</artifactId>
-        </dependency>
-        
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-    <build>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <groupId>org.apache.rat</groupId>
-                    <artifactId>apache-rat-plugin</artifactId>
-                    <configuration>
-                        <excludes>
-                            <!-- RDF data Files -->
-                            <exclude>**/*.ttl</exclude>
+               <dependency>
+                       <groupId>junit</groupId>
+                       <artifactId>junit</artifactId>
+                       <scope>test</scope>
+               </dependency>
+               <dependency>
+                       <groupId>org.mockito</groupId>
+                       <artifactId>mockito-all</artifactId>
+                       <scope>test</scope>
+               </dependency>
+       </dependencies>
+       <build>
+               <pluginManagement>
+                       <plugins>
+                               <plugin>
+                                       <groupId>org.apache.rat</groupId>
+                                       
<artifactId>apache-rat-plugin</artifactId>
+                                       <configuration>
+                                               <excludes>
+                                                       <!-- RDF data Files -->
+                                                       
<exclude>**/*.ttl</exclude>
 
-                            <!-- Services Files -->
-                            
<exclude>**/resources/META-INF/services/**</exclude>
-                        </excludes>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-shade-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <configuration>
-                            
<shadedArtifactAttached>true</shadedArtifactAttached>
-                            
<shadedClassifierName>map-reduce</shadedClassifierName>
-                            <transformers>
-                                <transformer 
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"
 />
-                            </transformers>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>accumulo-server</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>shade</goal>
-                        </goals>
-                        <configuration>
-                            
<shadedArtifactAttached>true</shadedArtifactAttached>
-                            
<shadedClassifierName>accumulo-server</shadedClassifierName>
-                            <artifactSet>
-                                <excludes>
-                                    
<exclude>org.locationtech.geomesa:*</exclude>
-                                    <exclude>scala:*</exclude>
-                                    <exclude>org.apache.accumulo:*</exclude>
-                                    <exclude>org.apache.thrift:*</exclude>
-                                    <exclude>org.apache.hadoop:*</exclude>
-                                    <exclude>org.apache.zookeeper:*</exclude>
-                                </excludes>
-                            </artifactSet>
-                            <transformers>
-                                <transformer 
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"
 />
-                            </transformers>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+                                                       <!-- Services Files -->
+                                                       
<exclude>**/resources/META-INF/services/**</exclude>
+                                               </excludes>
+                                       </configuration>
+                               </plugin>
+                       </plugins>
+               </pluginManagement>
+               <plugins>
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-shade-plugin</artifactId>
+                               <executions>
+                                       <execution>
+                                               <configuration>
+                                                       
<shadedArtifactAttached>true</shadedArtifactAttached>
+                                                       
<shadedClassifierName>map-reduce</shadedClassifierName>
+                                                       <transformers>
+                                                               <transformer
+                                                                       
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"
 />
+                                                       </transformers>
+                                               </configuration>
+                                       </execution>
+                                       <execution>
+                                               <id>accumulo-server</id>
+                                               <phase>package</phase>
+                                               <goals>
+                                                       <goal>shade</goal>
+                                               </goals>
+                                               <configuration>
+                                                       
<shadedArtifactAttached>true</shadedArtifactAttached>
+                                                       
<shadedClassifierName>accumulo-server</shadedClassifierName>
+                                                       <artifactSet>
+                                                               <excludes>
+                                                                       
<exclude>org.locationtech.geomesa:*</exclude>
+                                                                       
<exclude>scala:*</exclude>
+                                                                       
<exclude>org.apache.accumulo:*</exclude>
+                                                                       
<exclude>org.apache.thrift:*</exclude>
+                                                                       
<exclude>org.apache.hadoop:*</exclude>
+                                                                       
<exclude>org.apache.zookeeper:*</exclude>
+                                                               </excludes>
+                                                       </artifactSet>
+                                                       <transformers>
+                                                               <transformer
+                                                                       
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"
 />
+                                                       </transformers>
+                                               </configuration>
+                                       </execution>
+                               </executions>
+                       </plugin>
+               </plugins>
+       </build>
 </project>

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/a28472b3/extras/indexing/src/main/java/mvm/rya/indexing/external/tupleSet/AccumuloIndexSet.java
----------------------------------------------------------------------
diff --git 
a/extras/indexing/src/main/java/mvm/rya/indexing/external/tupleSet/AccumuloIndexSet.java
 
b/extras/indexing/src/main/java/mvm/rya/indexing/external/tupleSet/AccumuloIndexSet.java
index 2ca8f4a..a45ba2b 100644
--- 
a/extras/indexing/src/main/java/mvm/rya/indexing/external/tupleSet/AccumuloIndexSet.java
+++ 
b/extras/indexing/src/main/java/mvm/rya/indexing/external/tupleSet/AccumuloIndexSet.java
@@ -35,7 +35,9 @@ import 
mvm.rya.accumulo.pcj.iterators.BindingSetHashJoinIterator.HashJoinType;
 import mvm.rya.accumulo.pcj.iterators.IteratorCombiner;
 import mvm.rya.accumulo.pcj.iterators.PCJKeyToCrossProductBindingSetIterator;
 import mvm.rya.accumulo.pcj.iterators.PCJKeyToJoinBindingSetIterator;
+import mvm.rya.api.RdfCloudTripleStoreConfiguration;
 import mvm.rya.api.utils.IteratorWrapper;
+import mvm.rya.indexing.accumulo.ConfigUtils;
 import mvm.rya.indexing.pcj.matching.PCJOptimizerUtilities;
 import mvm.rya.rdftriplestore.evaluation.ExternalBatchingIterator;
 
@@ -43,11 +45,11 @@ import org.apache.accumulo.core.client.AccumuloException;
 import org.apache.accumulo.core.client.AccumuloSecurityException;
 import org.apache.accumulo.core.client.BatchScanner;
 import org.apache.accumulo.core.client.Connector;
-import org.apache.accumulo.core.client.MutationsRejectedException;
 import org.apache.accumulo.core.client.Scanner;
 import org.apache.accumulo.core.client.TableNotFoundException;
 import org.apache.accumulo.core.data.Range;
 import org.apache.accumulo.core.security.Authorizations;
+import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.io.Text;
 import org.apache.rya.indexing.pcj.storage.PcjException;
 import org.apache.rya.indexing.pcj.storage.PcjMetadata;
@@ -105,12 +107,14 @@ import com.google.common.collect.Sets;
 public class AccumuloIndexSet extends ExternalTupleSet implements
                ExternalBatchingIterator {
 
-       private final Connector accCon; // connector to Accumulo table where 
results
+       private Connector accCon; // connector to Accumulo table where results
                                                                        // are 
stored
-       private final String tablename; // name of Accumulo table
+       private String tablename; // name of Accumulo table
        private List<String> varOrder = null; // orders in which results are 
written
                                                                                
        // to table
        private PcjTables pcj = new PcjTables();
+       private Authorizations auths;
+
 
        @Override
        public Map<String, Set<String>> getSupportedVariableOrders() {
@@ -135,15 +139,16 @@ public class AccumuloIndexSet extends ExternalTupleSet 
implements
         * @throws MalformedQueryException
         * @throws SailException
         * @throws QueryEvaluationException
-        * @throws MutationsRejectedException
         * @throws TableNotFoundException
+        * @throws AccumuloSecurityException
+        * @throws AccumuloException
         */
-       public AccumuloIndexSet(String sparql, Connector accCon,
+       public AccumuloIndexSet(String sparql, Configuration conf,
                        String tablename) throws MalformedQueryException, 
SailException,
-                       QueryEvaluationException, MutationsRejectedException,
-                       TableNotFoundException {
+                       QueryEvaluationException, TableNotFoundException, 
AccumuloException, AccumuloSecurityException {
                this.tablename = tablename;
-               this.accCon = accCon;
+               this.accCon = ConfigUtils.getConnector(conf);
+               this.auths = getAuthorizations(conf);
                SPARQLParser sp = new SPARQLParser();
                ParsedTupleQuery pq = (ParsedTupleQuery) sp.parseQuery(sparql, 
null);
                TupleExpr te = pq.getTupleExpr();
@@ -181,13 +186,15 @@ public class AccumuloIndexSet extends ExternalTupleSet 
implements
         * @throws MalformedQueryException
         * @throws SailException
         * @throws QueryEvaluationException
-        * @throws MutationsRejectedException
         * @throws TableNotFoundException
+        * @throws AccumuloSecurityException
+        * @throws AccumuloException
         */
-       public AccumuloIndexSet(Connector accCon, String tablename)
+       public AccumuloIndexSet(Configuration conf, String tablename)
                        throws MalformedQueryException, SailException,
-                       QueryEvaluationException, MutationsRejectedException,
-                       TableNotFoundException {
+                       QueryEvaluationException, TableNotFoundException, 
AccumuloException, AccumuloSecurityException {
+               this.accCon = ConfigUtils.getConnector(conf);
+               this.auths = getAuthorizations(conf);
                PcjMetadata meta = null;
                try {
                        meta = pcj.getPcjMetadata(accCon, tablename);
@@ -196,7 +203,6 @@ public class AccumuloIndexSet extends ExternalTupleSet 
implements
                }
 
                this.tablename = tablename;
-               this.accCon = accCon;
                SPARQLParser sp = new SPARQLParser();
                ParsedTupleQuery pq = (ParsedTupleQuery) sp.parseQuery(
                                meta.getSparql(), null);
@@ -212,6 +218,15 @@ public class AccumuloIndexSet extends ExternalTupleSet 
implements
                this.setSupportedVariableOrderMap(varOrder);
        }
 
+
+       private Authorizations getAuthorizations(Configuration conf) {
+               final String authString = 
conf.get(RdfCloudTripleStoreConfiguration.CONF_QUERY_AUTH, "");
+        if (authString.isEmpty()) {
+            return new Authorizations();
+        }
+        return new Authorizations(authString.split(","));
+       }
+
        /**
         * returns size of table for query planning
         */
@@ -392,9 +407,7 @@ public class AccumuloIndexSet extends ExternalTupleSet 
implements
                        // BindingSets
                        if ((useColumnScan || crossProductBs.size() > 0)
                                        && bindingSetHashMap.size() == 0) {
-                               // TODO doesn't use user specified 
Authorizations
-                               Scanner scanner = 
accCon.createScanner(tablename,
-                                               new Authorizations());
+                               Scanner scanner = 
accCon.createScanner(tablename, auths);
                                // cross product with no cross product 
constraints here
                                scanner.setRange(crossProductRange);
                                scanner.fetchColumnFamily(new 
Text(localityGroupOrder));
@@ -411,9 +424,7 @@ public class AccumuloIndexSet extends ExternalTupleSet 
implements
                                List<CloseableIteration<BindingSet, 
QueryEvaluationException>> iteratorList = new ArrayList<>();
 
                                // create cross product iterator
-                               // TODO doesn't use user specified 
Authorizations
-                               Scanner scanner1 = 
accCon.createScanner(tablename,
-                                               new Authorizations());
+                               Scanner scanner1 = 
accCon.createScanner(tablename, auths);
                                scanner1.setRange(crossProductRange);
                                scanner1.fetchColumnFamily(new 
Text(localityGroupOrder));
                                iteratorList.add(new 
PCJKeyToCrossProductBindingSetIterator(
@@ -421,9 +432,7 @@ public class AccumuloIndexSet extends ExternalTupleSet 
implements
                                                getTableVarMap()));
 
                                // create hash join iterator
-                               // TODO doesn't use user specified 
Authorizations
-                               BatchScanner scanner2 = 
accCon.createBatchScanner(tablename,
-                                               new Authorizations(), 10);
+                               BatchScanner scanner2 = 
accCon.createBatchScanner(tablename, auths, 10);
                                scanner2.setRanges(hashJoinRanges);
                                PCJKeyToJoinBindingSetIterator iterator = new 
PCJKeyToJoinBindingSetIterator(
                                                scanner2, getTableVarMap(), 
maxPrefixLen);
@@ -435,9 +444,7 @@ public class AccumuloIndexSet extends ExternalTupleSet 
implements
 
                        } else {
                                // only hash join BindingSets exist
-                               // TODO doesn't use user specified auths
-                               BatchScanner scanner = 
accCon.createBatchScanner(tablename,
-                                               new Authorizations(), 10);
+                               BatchScanner scanner = 
accCon.createBatchScanner(tablename, auths, 10);
                                // only need to create hash join iterator
                                scanner.setRanges(hashJoinRanges);
                                PCJKeyToJoinBindingSetIterator iterator = new 
PCJKeyToJoinBindingSetIterator(

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/a28472b3/extras/indexing/src/main/java/mvm/rya/indexing/pcj/matching/PCJOptimizer.java
----------------------------------------------------------------------
diff --git 
a/extras/indexing/src/main/java/mvm/rya/indexing/pcj/matching/PCJOptimizer.java 
b/extras/indexing/src/main/java/mvm/rya/indexing/pcj/matching/PCJOptimizer.java
index a4ec2a0..a481c96 100644
--- 
a/extras/indexing/src/main/java/mvm/rya/indexing/pcj/matching/PCJOptimizer.java
+++ 
b/extras/indexing/src/main/java/mvm/rya/indexing/pcj/matching/PCJOptimizer.java
@@ -339,7 +339,7 @@ public class PCJOptimizer implements QueryOptimizer, 
Configurable {
                } else {
                        for (final String table : indexTables.keySet()) {
                                final String indexSparqlString = 
indexTables.get(table);
-                               index.add(new 
AccumuloIndexSet(indexSparqlString, c, table));
+                               index.add(new 
AccumuloIndexSet(indexSparqlString, conf, table));
                        }
                }
                return index;

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/a28472b3/extras/indexing/src/test/java/mvm/rya/indexing/external/AccumuloPcjIntegrationTest.java
----------------------------------------------------------------------
diff --git 
a/extras/indexing/src/test/java/mvm/rya/indexing/external/AccumuloPcjIntegrationTest.java
 
b/extras/indexing/src/test/java/mvm/rya/indexing/external/AccumuloPcjIntegrationTest.java
index a8136a0..393ae74 100644
--- 
a/extras/indexing/src/test/java/mvm/rya/indexing/external/AccumuloPcjIntegrationTest.java
+++ 
b/extras/indexing/src/test/java/mvm/rya/indexing/external/AccumuloPcjIntegrationTest.java
@@ -24,8 +24,11 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Set;
 
+import mvm.rya.accumulo.AccumuloRdfConfiguration;
+import mvm.rya.api.RdfCloudTripleStoreConfiguration;
 import mvm.rya.api.persist.RyaDAOException;
 import mvm.rya.indexing.IndexPlanValidator.IndexPlanValidator;
+import mvm.rya.indexing.accumulo.ConfigUtils;
 import mvm.rya.indexing.external.tupleSet.AccumuloIndexSet;
 import mvm.rya.indexing.external.tupleSet.ExternalTupleSet;
 import mvm.rya.indexing.pcj.matching.PCJOptimizer;
@@ -38,8 +41,7 @@ import 
org.apache.accumulo.core.client.MutationsRejectedException;
 import org.apache.accumulo.core.client.TableExistsException;
 import org.apache.accumulo.core.client.TableNotFoundException;
 import org.apache.accumulo.core.client.admin.TableOperations;
-import org.apache.accumulo.core.client.mock.MockInstance;
-import org.apache.accumulo.core.client.security.tokens.PasswordToken;
+import org.apache.hadoop.conf.Configuration;
 import org.apache.rya.indexing.pcj.storage.PcjException;
 import org.apache.rya.indexing.pcj.storage.accumulo.PcjVarOrderFactory;
 import org.junit.After;
@@ -75,6 +77,7 @@ public class AccumuloPcjIntegrationTest {
        private SailRepositoryConnection conn, pcjConn;
        private SailRepository repo, pcjRepo;
        private Connector accCon;
+       private Configuration conf = getConf();
        private final String prefix = "table_";
        private final String tablename = "table_INDEX_";
        private URI obj, obj2, subclass, subclass2, talksTo;
@@ -109,7 +112,7 @@ public class AccumuloPcjIntegrationTest {
                conn.add(sub2, RDFS.LABEL, new LiteralImpl("label2"));
                conn.add(sub2, talksTo, obj2);
 
-               accCon = new MockInstance("instance").getConnector("root", new 
PasswordToken(""));
+               accCon = ConfigUtils.getConnector(conf);
 
 
        }
@@ -1079,14 +1082,14 @@ public class AccumuloPcjIntegrationTest {
                                indexSparqlString, new String[] { "dog", "pig", 
"duck" },
                                Optional.<PcjVarOrderFactory> absent());
 
-               final AccumuloIndexSet ais1 = new AccumuloIndexSet(accCon,
+               final AccumuloIndexSet ais1 = new AccumuloIndexSet(conf,
                                tablename + 1);
 
                PcjIntegrationTestingUtil.createAndPopulatePcj(conn, accCon, 
tablename + 2,
                                indexSparqlString2, new String[] { "o", "f", 
"e", "c", "l" },
                                Optional.<PcjVarOrderFactory> absent());
 
-               final AccumuloIndexSet ais2 = new AccumuloIndexSet(accCon,
+               final AccumuloIndexSet ais2 = new AccumuloIndexSet(conf,
                                tablename + 2);
 
                final Set<String> ais1Set1 = Sets.newHashSet();
@@ -1253,13 +1256,13 @@ public class AccumuloPcjIntegrationTest {
                                indexSparqlString, new String[] { "dog", "pig", 
"duck" },
                                Optional.<PcjVarOrderFactory> absent());
 
-               final AccumuloIndexSet ais1 = new AccumuloIndexSet(accCon, 
tablename+1);
+               final AccumuloIndexSet ais1 = new AccumuloIndexSet(conf, 
tablename+1);
 
                PcjIntegrationTestingUtil.createAndPopulatePcj(conn, accCon, 
tablename+2,
                                indexSparqlString2, new String[] { "o", "f", 
"e", "c", "l" },
                                Optional.<PcjVarOrderFactory> absent());
 
-               final AccumuloIndexSet ais2 = new AccumuloIndexSet(accCon, 
tablename+2);
+               final AccumuloIndexSet ais2 = new AccumuloIndexSet(conf, 
tablename+2);
 
                final List<ExternalTupleSet> index = new ArrayList<>();
                index.add(ais1);
@@ -1347,20 +1350,20 @@ public class AccumuloPcjIntegrationTest {
                                indexSparqlString, new String[] { "dog", "pig", 
"duck" },
                                Optional.<PcjVarOrderFactory> absent());
 
-               final AccumuloIndexSet ais1 = new AccumuloIndexSet(accCon, 
tablename+1);
+               final AccumuloIndexSet ais1 = new AccumuloIndexSet(conf, 
tablename+1);
 
                PcjIntegrationTestingUtil.createAndPopulatePcj(conn, accCon, 
tablename+2,
                                indexSparqlString2, new String[] { "o", "f", 
"e", "c", "l" },
                                Optional.<PcjVarOrderFactory> absent());
 
-               final AccumuloIndexSet ais2 = new AccumuloIndexSet(accCon, 
tablename+2);
+               final AccumuloIndexSet ais2 = new AccumuloIndexSet(conf, 
tablename+2);
 
                PcjIntegrationTestingUtil.createAndPopulatePcj(conn, accCon, 
tablename+3,
                                indexSparqlString3,
                                new String[] { "wolf", "sheep", "chicken" },
                                Optional.<PcjVarOrderFactory> absent());
 
-               final AccumuloIndexSet ais3 = new AccumuloIndexSet(accCon, 
tablename+3);
+               final AccumuloIndexSet ais3 = new AccumuloIndexSet(conf, 
tablename+3);
 
                final List<ExternalTupleSet> index = new ArrayList<>();
                index.add(ais1);
@@ -1423,6 +1426,18 @@ public class AccumuloPcjIntegrationTest {
                                throws QueryResultHandlerException {
 
                }
+
+       }
+
+       private static Configuration getConf() {
+               final AccumuloRdfConfiguration conf = new 
AccumuloRdfConfiguration();
+               conf.setBoolean(ConfigUtils.USE_MOCK_INSTANCE, true);
+               conf.set(RdfCloudTripleStoreConfiguration.CONF_TBL_PREFIX, 
"rya_");
+               conf.set(ConfigUtils.CLOUDBASE_USER, "root");
+               conf.set(ConfigUtils.CLOUDBASE_PASSWORD, "");
+               conf.set(ConfigUtils.CLOUDBASE_INSTANCE, "instance");
+               conf.set(ConfigUtils.CLOUDBASE_AUTHS, "");
+               return conf;
        }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/a28472b3/extras/indexing/src/test/java/mvm/rya/indexing/external/tupleSet/AccumuloIndexSetColumnVisibilityTest.java
----------------------------------------------------------------------
diff --git 
a/extras/indexing/src/test/java/mvm/rya/indexing/external/tupleSet/AccumuloIndexSetColumnVisibilityTest.java
 
b/extras/indexing/src/test/java/mvm/rya/indexing/external/tupleSet/AccumuloIndexSetColumnVisibilityTest.java
new file mode 100644
index 0000000..8951e30
--- /dev/null
+++ 
b/extras/indexing/src/test/java/mvm/rya/indexing/external/tupleSet/AccumuloIndexSetColumnVisibilityTest.java
@@ -0,0 +1,218 @@
+package mvm.rya.indexing.external.tupleSet;
+
+import info.aduna.iteration.CloseableIteration;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.HashSet;
+import java.util.Set;
+
+import mvm.rya.accumulo.AccumuloRdfConfiguration;
+import mvm.rya.api.RdfCloudTripleStoreConfiguration;
+import mvm.rya.indexing.accumulo.ConfigUtils;
+import mvm.rya.indexing.external.accumulo.AccumuloPcjStorage;
+
+import org.apache.accumulo.core.client.AccumuloException;
+import org.apache.accumulo.core.client.AccumuloSecurityException;
+import org.apache.accumulo.core.client.Connector;
+import org.apache.accumulo.core.client.Instance;
+import org.apache.accumulo.core.client.TableNotFoundException;
+import org.apache.accumulo.core.client.ZooKeeperInstance;
+import org.apache.accumulo.core.client.security.tokens.PasswordToken;
+import org.apache.accumulo.core.security.Authorizations;
+import org.apache.accumulo.minicluster.MiniAccumuloCluster;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.log4j.Logger;
+import 
org.apache.rya.indexing.pcj.storage.PrecomputedJoinStorage.PCJStorageException;
+import org.apache.rya.indexing.pcj.storage.accumulo.VariableOrder;
+import org.apache.rya.indexing.pcj.storage.accumulo.VisibilityBindingSet;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.openrdf.model.impl.NumericLiteralImpl;
+import org.openrdf.model.impl.URIImpl;
+import org.openrdf.model.vocabulary.XMLSchema;
+import org.openrdf.query.Binding;
+import org.openrdf.query.BindingSet;
+import org.openrdf.query.QueryEvaluationException;
+import org.openrdf.query.algebra.evaluation.QueryBindingSet;
+import org.openrdf.query.impl.BindingImpl;
+import org.openrdf.repository.RepositoryException;
+
+import com.google.common.collect.Sets;
+import com.google.common.io.Files;
+
+public class AccumuloIndexSetColumnVisibilityTest {
+
+       private static final Logger log = Logger
+                       .getLogger(AccumuloIndexSetColumnVisibilityTest.class);
+
+       private static Connector accCon;
+       private static String pcjTableName;
+       private static AccumuloPcjStorage storage;
+       private static Configuration conf;
+       private static final String sparql = "SELECT ?name ?age " + "{"
+                       + "?name <http://hasAge> ?age ."
+                       + "?name <http://playsSport> \"Soccer\" " + "}";
+       private static QueryBindingSet pcjBs1, pcjBs2, pcjBs3;
+       private static MiniAccumuloCluster accumulo;
+       private static String instance;
+       private static String zooKeepers;
+
+       @BeforeClass
+       public static void init() throws AccumuloException,
+                       AccumuloSecurityException, PCJStorageException, 
IOException,
+                       InterruptedException, TableNotFoundException {
+               accumulo = startMiniAccumulo();
+               accumulo.getZooKeepers();
+               instance = accumulo.getInstanceName();
+               zooKeepers = accumulo.getZooKeepers();
+               conf = getConf();
+               accCon.securityOperations().changeUserAuthorizations("root", 
new Authorizations("U","USA"));
+               storage = new AccumuloPcjStorage(accCon, "rya_");
+               Set<VariableOrder> varOrders = new HashSet<>();
+               varOrders.add(new VariableOrder("age;name"));
+               varOrders.add(new VariableOrder("name;age"));
+               pcjTableName = storage.createPcj(sparql, varOrders);
+
+               Binding exBinding1 = new BindingImpl("age", new 
NumericLiteralImpl(14,
+                               XMLSchema.INTEGER));
+               Binding exBinding2 = new BindingImpl("name",
+                               new URIImpl("http://Alice";));
+               Binding exBinding3 = new BindingImpl("age", new 
NumericLiteralImpl(16,
+                               XMLSchema.INTEGER));
+               Binding exBinding4 = new BindingImpl("name", new 
URIImpl("http://Bob";));
+               Binding exBinding5 = new BindingImpl("age", new 
NumericLiteralImpl(34,
+                               XMLSchema.INTEGER));
+               Binding exBinding6 = new BindingImpl("name", new 
URIImpl("http://Joe";));
+
+               pcjBs1 = new QueryBindingSet();
+               pcjBs1.addBinding(exBinding1);
+               pcjBs1.addBinding(exBinding2);
+
+               pcjBs2 = new QueryBindingSet();
+               pcjBs2.addBinding(exBinding3);
+               pcjBs2.addBinding(exBinding4);
+
+               pcjBs3 = new QueryBindingSet();
+               pcjBs3.addBinding(exBinding5);
+               pcjBs3.addBinding(exBinding6);
+
+               Set<BindingSet> bindingSets = new HashSet<>();
+               bindingSets.add(pcjBs1);
+               bindingSets.add(pcjBs2);
+               bindingSets.add(pcjBs3);
+
+               Set<VisibilityBindingSet> visBs = new HashSet<>();
+               for (BindingSet bs : bindingSets) {
+                       visBs.add(new VisibilityBindingSet(bs, "U|USA"));
+               }
+
+               storage.addResults(pcjTableName, visBs);
+
+//             Scanner scanner = accCon.createScanner(pcjTableName, new 
Authorizations("U","USA"));
+//             for(Entry<Key, Value> entry : scanner) {
+//                     System.out.println(entry.getKey());
+//             }
+
+
+       }
+
+       @AfterClass
+       public static void close() throws RepositoryException, 
PCJStorageException {
+               storage.close();
+
+               if (accumulo != null) {
+                       try {
+                               log.info("Shutting down the Mini Accumulo being 
used as a Rya store.");
+                               accumulo.stop();
+                               log.info("Mini Accumulo being used as a Rya 
store shut down.");
+                       } catch (final Exception e) {
+                               log.error("Could not shut down the Mini 
Accumulo.", e);
+                       }
+               }
+       }
+
+       @Test
+       public void variableInstantiationTest() throws Exception {
+
+               final AccumuloIndexSet ais = new AccumuloIndexSet(conf, 
pcjTableName);
+               final QueryBindingSet bs = new QueryBindingSet();
+               bs.addBinding("name", new URIImpl("http://Alice";));
+
+               final QueryBindingSet bs2 = new QueryBindingSet();
+               bs2.addBinding("name", new URIImpl("http://Bob";));
+
+               final Set<BindingSet> bSets = Sets.<BindingSet> newHashSet(bs, 
bs2);
+
+               final CloseableIteration<BindingSet, QueryEvaluationException> 
results = ais
+                               .evaluate(bSets);
+
+               Set<BindingSet> expected = new HashSet<>();
+               expected.add(pcjBs1);
+               expected.add(pcjBs2);
+               final Set<BindingSet> fetchedResults = new HashSet<>();
+               while (results.hasNext()) {
+                       final BindingSet next = results.next();
+                       fetchedResults.add(next);
+               }
+
+               Assert.assertEquals(expected, fetchedResults);
+       }
+
+       @Test
+       public void accumuloIndexSetTestAttemptJoinAccrossTypes() throws 
Exception {
+               // Load some Triples into Rya.
+               AccumuloIndexSet ais = new AccumuloIndexSet(conf, pcjTableName);
+
+               final QueryBindingSet bs1 = new QueryBindingSet();
+               bs1.addBinding("age", new NumericLiteralImpl(16, 
XMLSchema.INTEGER));
+               final QueryBindingSet bs2 = new QueryBindingSet();
+               bs2.addBinding("age", new NumericLiteralImpl(14, 
XMLSchema.INTEGER));
+
+               final Set<BindingSet> bSets = Sets.<BindingSet> newHashSet(bs1, 
bs2);
+
+               final CloseableIteration<BindingSet, QueryEvaluationException> 
results = ais
+                               .evaluate(bSets);
+               Set<BindingSet> expected = new HashSet<>();
+               expected.add(pcjBs1);
+               expected.add(pcjBs2);
+               final Set<BindingSet> fetchedResults = new HashSet<>();
+               while (results.hasNext()) {
+                       final BindingSet next = results.next();
+                       fetchedResults.add(next);
+               }
+
+               Assert.assertEquals(expected, fetchedResults);
+       }
+
+       private static MiniAccumuloCluster startMiniAccumulo() throws 
IOException,
+                       InterruptedException, AccumuloException, 
AccumuloSecurityException {
+               final File miniDataDir = Files.createTempDir();
+
+               // Setup and start the Mini Accumulo.
+               final MiniAccumuloCluster accumulo = new MiniAccumuloCluster(
+                               miniDataDir, "password");
+               accumulo.start();
+
+               // Store a connector to the Mini Accumulo.
+               final Instance instance = new ZooKeeperInstance(
+                               accumulo.getInstanceName(), 
accumulo.getZooKeepers());
+               accCon = instance.getConnector("root", new 
PasswordToken("password"));
+
+               return accumulo;
+       }
+
+       private static Configuration getConf() {
+               final AccumuloRdfConfiguration conf = new 
AccumuloRdfConfiguration();
+               conf.set(RdfCloudTripleStoreConfiguration.CONF_TBL_PREFIX, 
"rya_");
+               conf.set(ConfigUtils.CLOUDBASE_USER, "root");
+               conf.set(ConfigUtils.CLOUDBASE_PASSWORD, "password");
+               conf.set(ConfigUtils.CLOUDBASE_INSTANCE, instance);
+               conf.set(ConfigUtils.CLOUDBASE_ZOOKEEPERS, zooKeepers);
+               conf.set(RdfCloudTripleStoreConfiguration.CONF_QUERY_AUTH, 
"U,USA");
+               return conf;
+       }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/a28472b3/extras/indexing/src/test/java/mvm/rya/indexing/external/tupleSet/AccumuloIndexSetTest.java
----------------------------------------------------------------------
diff --git 
a/extras/indexing/src/test/java/mvm/rya/indexing/external/tupleSet/AccumuloIndexSetTest.java
 
b/extras/indexing/src/test/java/mvm/rya/indexing/external/tupleSet/AccumuloIndexSetTest.java
index f7f249f..9aac2d6 100644
--- 
a/extras/indexing/src/test/java/mvm/rya/indexing/external/tupleSet/AccumuloIndexSetTest.java
+++ 
b/extras/indexing/src/test/java/mvm/rya/indexing/external/tupleSet/AccumuloIndexSetTest.java
@@ -40,12 +40,8 @@ import mvm.rya.sail.config.RyaSailFactory;
 import org.apache.accumulo.core.client.AccumuloException;
 import org.apache.accumulo.core.client.AccumuloSecurityException;
 import org.apache.accumulo.core.client.Connector;
-import org.apache.accumulo.core.client.MutationsRejectedException;
-import org.apache.accumulo.core.client.Scanner;
 import org.apache.accumulo.core.client.TableNotFoundException;
 import org.apache.accumulo.core.client.admin.TableOperations;
-import org.apache.accumulo.core.data.Key;
-import org.apache.accumulo.core.security.Authorizations;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.rya.indexing.pcj.storage.PcjException;
 import org.apache.rya.indexing.pcj.storage.accumulo.PcjTableNameFactory;
@@ -111,16 +107,17 @@ public class AccumuloIndexSetTest {
        /**
         * TODO doc
         *
-        * @throws MutationsRejectedException
         * @throws QueryEvaluationException
         * @throws SailException
         * @throws MalformedQueryException
+        * @throws AccumuloSecurityException
+        * @throws AccumuloException
         */
        @Test
        public void accumuloIndexSetTestWithEmptyBindingSet()
                        throws RepositoryException, PcjException, 
TableNotFoundException,
                        RyaTypeResolverException, MalformedQueryException, 
SailException,
-                       QueryEvaluationException, MutationsRejectedException {
+                       QueryEvaluationException, AccumuloException, 
AccumuloSecurityException {
                // Load some Triples into Rya.
                final Set<Statement> triples = new HashSet<>();
                triples.add(new StatementImpl(new URIImpl("http://Alice";), new 
URIImpl(
@@ -145,6 +142,12 @@ public class AccumuloIndexSetTest {
                        ryaConn.add(triple);
                }
 
+//             Scanner scanner = accumuloConn.createScanner(prefix + "spo",
+//                             new Authorizations("U","USA"));
+//             for (Map.Entry<Key, org.apache.accumulo.core.data.Value> e : 
scanner) {
+//                     System.out.println(e.getKey());
+//             }
+
                // Create a PCJ table will include those triples in its results.
                final String sparql = "SELECT ?name ?age " + "{"
                                + "FILTER(?age < 30) ." + "?name 
<http://hasAge> ?age."
@@ -157,8 +160,7 @@ public class AccumuloIndexSetTest {
                                pcjTableName, sparql, new String[] { "name", 
"age" },
                                Optional.<PcjVarOrderFactory> absent());
 
-               final AccumuloIndexSet ais = new AccumuloIndexSet(accumuloConn,
-                               pcjTableName);
+               final AccumuloIndexSet ais = new AccumuloIndexSet(conf, 
pcjTableName);
 
                final CloseableIteration<BindingSet, QueryEvaluationException> 
results = ais
                                .evaluate(new QueryBindingSet());
@@ -187,16 +189,17 @@ public class AccumuloIndexSetTest {
        /**
         * TODO doc
         *
-        * @throws MutationsRejectedException
         * @throws QueryEvaluationException
         * @throws SailException
         * @throws MalformedQueryException
+        * @throws AccumuloSecurityException
+        * @throws AccumuloException
         */
        @Test
        public void accumuloIndexSetTestWithBindingSet()
                        throws RepositoryException, PcjException, 
TableNotFoundException,
                        RyaTypeResolverException, MalformedQueryException, 
SailException,
-                       QueryEvaluationException, MutationsRejectedException {
+                       QueryEvaluationException, AccumuloException, 
AccumuloSecurityException {
                // Load some Triples into Rya.
                final Set<Statement> triples = new HashSet<>();
                triples.add(new StatementImpl(new URIImpl("http://Alice";), new 
URIImpl(
@@ -234,8 +237,7 @@ public class AccumuloIndexSetTest {
                                pcjTableName, sparql, new String[] { "name", 
"age" },
                                Optional.<PcjVarOrderFactory> absent());
 
-               final AccumuloIndexSet ais = new AccumuloIndexSet(accumuloConn,
-                               pcjTableName);
+               final AccumuloIndexSet ais = new AccumuloIndexSet(conf, 
pcjTableName);
 
                final QueryBindingSet bs = new QueryBindingSet();
                bs.addBinding("name", new URIImpl("http://Alice";));
@@ -253,7 +255,7 @@ public class AccumuloIndexSetTest {
        public void accumuloIndexSetTestWithTwoBindingSets()
                        throws RepositoryException, PcjException, 
TableNotFoundException,
                        RyaTypeResolverException, MalformedQueryException, 
SailException,
-                       QueryEvaluationException, MutationsRejectedException {
+                       QueryEvaluationException, AccumuloException, 
AccumuloSecurityException {
                // Load some Triples into Rya.
                final Set<Statement> triples = new HashSet<>();
                triples.add(new StatementImpl(new URIImpl("http://Alice";), new 
URIImpl(
@@ -291,8 +293,7 @@ public class AccumuloIndexSetTest {
                                pcjTableName, sparql, new String[] { "name", 
"age" },
                                Optional.<PcjVarOrderFactory> absent());
 
-               final AccumuloIndexSet ais = new AccumuloIndexSet(accumuloConn,
-                               pcjTableName);
+               final AccumuloIndexSet ais = new AccumuloIndexSet(conf, 
pcjTableName);
 
                final QueryBindingSet bs = new QueryBindingSet();
                bs.addBinding("birthDate", new LiteralImpl("1983-03-17", new 
URIImpl(
@@ -324,7 +325,6 @@ public class AccumuloIndexSetTest {
                final Set<BindingSet> fetchedResults = new HashSet<>();
                while (results.hasNext()) {
                        final BindingSet next = results.next();
-                       System.out.println(next);
                        fetchedResults.add(next);
                }
 
@@ -336,7 +336,7 @@ public class AccumuloIndexSetTest {
        public void accumuloIndexSetTestWithNoBindingSet()
                        throws RepositoryException, PcjException, 
TableNotFoundException,
                        RyaTypeResolverException, MalformedQueryException, 
SailException,
-                       QueryEvaluationException, MutationsRejectedException {
+                       QueryEvaluationException, AccumuloException, 
AccumuloSecurityException {
                // Load some Triples into Rya.
                final Set<Statement> triples = new HashSet<>();
                triples.add(new StatementImpl(new URIImpl("http://Alice";), new 
URIImpl(
@@ -374,7 +374,7 @@ public class AccumuloIndexSetTest {
                                pcjTableName, sparql, new String[] { "name", 
"age" },
                                Optional.<PcjVarOrderFactory> absent());
 
-               final AccumuloIndexSet ais = new AccumuloIndexSet(accumuloConn,
+               final AccumuloIndexSet ais = new AccumuloIndexSet(conf,
                                pcjTableName);
 
                final CloseableIteration<BindingSet, QueryEvaluationException> 
results = ais
@@ -388,7 +388,7 @@ public class AccumuloIndexSetTest {
        public void multipleCommonVarBindingTest() throws RepositoryException,
                        PcjException, TableNotFoundException, 
RyaTypeResolverException,
                        MalformedQueryException, SailException, 
QueryEvaluationException,
-                       MutationsRejectedException {
+                       AccumuloException, AccumuloSecurityException {
                // Load some Triples into Rya.
                final Set<Statement> triples = new HashSet<>();
                triples.add(new StatementImpl(new URIImpl("http://Alice";), new 
URIImpl(
@@ -426,7 +426,7 @@ public class AccumuloIndexSetTest {
                                pcjTableName, sparql, new String[] { "name", 
"age" },
                                Optional.<PcjVarOrderFactory> absent());
 
-               final AccumuloIndexSet ais = new AccumuloIndexSet(accumuloConn,
+               final AccumuloIndexSet ais = new AccumuloIndexSet(conf,
                                pcjTableName);
 
                final QueryBindingSet bs = new QueryBindingSet();
@@ -465,7 +465,7 @@ public class AccumuloIndexSetTest {
        public void manyCommonVarBindingTest() throws RepositoryException,
                        PcjException, TableNotFoundException, 
RyaTypeResolverException,
                        MalformedQueryException, SailException, 
QueryEvaluationException,
-                       MutationsRejectedException {
+                       AccumuloException, AccumuloSecurityException {
                // Load some Triples into Rya.
                final Set<Statement> triples = new HashSet<>();
                triples.add(new StatementImpl(new URIImpl("http://Alice";), new 
URIImpl(
@@ -503,7 +503,7 @@ public class AccumuloIndexSetTest {
                                pcjTableName, sparql, new String[] { "name", 
"age" },
                                Optional.<PcjVarOrderFactory> absent());
 
-               final AccumuloIndexSet ais = new AccumuloIndexSet(accumuloConn,
+               final AccumuloIndexSet ais = new AccumuloIndexSet(conf,
                                pcjTableName);
 
                final QueryBindingSet bs = new QueryBindingSet();
@@ -556,7 +556,6 @@ public class AccumuloIndexSetTest {
                final Set<BindingSet> fetchedResults = new HashSet<>();
                while (results.hasNext()) {
                        final BindingSet next = results.next();
-                       System.out.println(next);
                        fetchedResults.add(next);
                }
 
@@ -568,7 +567,7 @@ public class AccumuloIndexSetTest {
        public void variableNormalizationTest() throws RepositoryException,
                        PcjException, TableNotFoundException, 
RyaTypeResolverException,
                        MalformedQueryException, SailException, 
QueryEvaluationException,
-                       MutationsRejectedException {
+                       AccumuloException, AccumuloSecurityException {
                // Load some Triples into Rya.
                final Set<Statement> triples = new HashSet<>();
                triples.add(new StatementImpl(new URIImpl("http://Alice";), new 
URIImpl(
@@ -616,7 +615,7 @@ public class AccumuloIndexSetTest {
                final Map<String, String> map = new HashMap<>();
                map.put("x", "name");
                map.put("y", "age");
-               final AccumuloIndexSet ais = new AccumuloIndexSet(accumuloConn,
+               final AccumuloIndexSet ais = new AccumuloIndexSet(conf,
                                pcjTableName);
                ais.setProjectionExpr((Projection) pq.getTupleExpr());
                ais.setTableVarMap(map);
@@ -653,7 +652,6 @@ public class AccumuloIndexSetTest {
                final Set<BindingSet> fetchedResults = new HashSet<>();
                while (results.hasNext()) {
                        final BindingSet next = results.next();
-                       System.out.println(next);
                        fetchedResults.add(next);
                }
 
@@ -707,7 +705,7 @@ public class AccumuloIndexSetTest {
                final ParsedQuery pq1 = p.parseQuery(sparql, null);
                final ParsedQuery pq2 = p.parseQuery(sparql2, null);
 
-               final AccumuloIndexSet ais = new AccumuloIndexSet(accumuloConn,
+               final AccumuloIndexSet ais = new AccumuloIndexSet(conf,
                                pcjTableName);
                ais.setProjectionExpr((Projection) QueryVariableNormalizer
                                .getNormalizedIndex(pq2.getTupleExpr(), 
pq1.getTupleExpr())
@@ -766,7 +764,7 @@ public class AccumuloIndexSetTest {
                PcjIntegrationTestingUtil.createAndPopulatePcj(ryaConn, 
accumuloConn,
                                pcjTableName, sparql, new String[] { "name", 
"age" },
                                Optional.<PcjVarOrderFactory> absent());
-               AccumuloIndexSet ais = new AccumuloIndexSet(accumuloConn, 
pcjTableName);
+               AccumuloIndexSet ais = new AccumuloIndexSet(conf, pcjTableName);
 
                final QueryBindingSet bs1 = new QueryBindingSet();
                bs1.addBinding("age", new LiteralImpl("16"));
@@ -821,7 +819,7 @@ public class AccumuloIndexSetTest {
                PcjIntegrationTestingUtil.createAndPopulatePcj(ryaConn, 
accumuloConn,
                                pcjTableName, sparql, new String[] { "name", 
"age" },
                                Optional.<PcjVarOrderFactory> absent());
-               AccumuloIndexSet ais = new AccumuloIndexSet(accumuloConn, 
pcjTableName);
+               AccumuloIndexSet ais = new AccumuloIndexSet(conf, pcjTableName);
 
                final QueryBindingSet bs1 = new QueryBindingSet();
                bs1.addBinding("name", new URIImpl("http://Alice";));
@@ -895,7 +893,7 @@ public class AccumuloIndexSetTest {
                PcjIntegrationTestingUtil.createAndPopulatePcj(ryaConn, 
accumuloConn,
                                pcjTableName, sparql, new String[] { "name", 
"age" },
                                Optional.<PcjVarOrderFactory> absent());
-               AccumuloIndexSet ais = new AccumuloIndexSet(accumuloConn, 
pcjTableName);
+               AccumuloIndexSet ais = new AccumuloIndexSet(conf, pcjTableName);
 
                QueryBindingSet bs1 = new QueryBindingSet();
                bs1.addBinding("name", new URIImpl("http://Alice";));
@@ -996,7 +994,7 @@ public class AccumuloIndexSetTest {
                final ParsedQuery pq1 = p.parseQuery(sparql, null);
                final ParsedQuery pq2 = p.parseQuery(sparql2, null);
 
-               final AccumuloIndexSet ais = new AccumuloIndexSet(accumuloConn,
+               final AccumuloIndexSet ais = new AccumuloIndexSet(conf,
                                pcjTableName);
                ais.setProjectionExpr((Projection) QueryVariableNormalizer
                                .getNormalizedIndex(pq2.getTupleExpr(), 
pq1.getTupleExpr())
@@ -1080,7 +1078,7 @@ public class AccumuloIndexSetTest {
                ParsedQuery pq1 = p.parseQuery(sparql, null);
                ParsedQuery pq2 = p.parseQuery(sparql2, null);
 
-               AccumuloIndexSet ais = new AccumuloIndexSet(accumuloConn, 
pcjTableName);
+               AccumuloIndexSet ais = new AccumuloIndexSet(conf, pcjTableName);
                ais.setProjectionExpr((Projection) QueryVariableNormalizer
                                .getNormalizedIndex(pq2.getTupleExpr(), 
pq1.getTupleExpr())
                                .get(0));
@@ -1163,7 +1161,7 @@ public class AccumuloIndexSetTest {
                PcjIntegrationTestingUtil.createAndPopulatePcj(ryaConn, 
accumuloConn,
                                pcjTableName, sparql, new String[] { "name", 
"age", "sport",
                                                "weight" }, 
Optional.<PcjVarOrderFactory> absent());
-               AccumuloIndexSet ais = new AccumuloIndexSet(accumuloConn, 
pcjTableName);
+               AccumuloIndexSet ais = new AccumuloIndexSet(conf, pcjTableName);
 
                QueryBindingSet bs = new QueryBindingSet();
                bs.addBinding("name", new URIImpl("http://Bob";));
@@ -1246,7 +1244,7 @@ public class AccumuloIndexSetTest {
                ParsedQuery pq1 = p.parseQuery(sparql, null);
                ParsedQuery pq2 = p.parseQuery(sparql2, null);
 
-               AccumuloIndexSet ais = new AccumuloIndexSet(accumuloConn, 
pcjTableName);
+               AccumuloIndexSet ais = new AccumuloIndexSet(conf, pcjTableName);
                ais.setProjectionExpr((Projection) QueryVariableNormalizer
                                .getNormalizedIndex(pq2.getTupleExpr(), 
pq1.getTupleExpr())
                                .get(0));
@@ -1336,7 +1334,7 @@ public class AccumuloIndexSetTest {
                ParsedQuery pq1 = p.parseQuery(sparql, null);
                ParsedQuery pq2 = p.parseQuery(sparql2, null);
 
-               AccumuloIndexSet ais = new AccumuloIndexSet(accumuloConn, 
pcjTableName);
+               AccumuloIndexSet ais = new AccumuloIndexSet(conf, pcjTableName);
                ais.setProjectionExpr((Projection) QueryVariableNormalizer
                                .getNormalizedIndex(pq2.getTupleExpr(), 
pq1.getTupleExpr())
                                .get(0));
@@ -1408,17 +1406,17 @@ public class AccumuloIndexSetTest {
                PcjIntegrationTestingUtil.createAndPopulatePcj(ryaConn, 
accumuloConn,
                                pcjTableName, sparql, new String[] { "name", 
"age", "sport",
                                                "weight" }, 
Optional.<PcjVarOrderFactory> absent());
-               Scanner scanner = accumuloConn.createScanner(pcjTableName,
-                               new Authorizations());
-               for (Map.Entry<Key, org.apache.accumulo.core.data.Value> e : 
scanner) {
-                       System.out.println(e.getKey().getRow());
-               }
+//             Scanner scanner = accumuloConn.createScanner(pcjTableName,
+//                             new Authorizations());
+//             for (Map.Entry<Key, org.apache.accumulo.core.data.Value> e : 
scanner) {
+//                     System.out.println(e.getKey().getRow());
+//             }
 
                SPARQLParser p = new SPARQLParser();
                ParsedQuery pq1 = p.parseQuery(sparql, null);
                ParsedQuery pq2 = p.parseQuery(sparql2, null);
 
-               AccumuloIndexSet ais = new AccumuloIndexSet(accumuloConn, 
pcjTableName);
+               AccumuloIndexSet ais = new AccumuloIndexSet(conf, pcjTableName);
                ais.setProjectionExpr((Projection) QueryVariableNormalizer
                                .getNormalizedIndex(pq2.getTupleExpr(), 
pq1.getTupleExpr())
                                .get(0));
@@ -1505,7 +1503,7 @@ public class AccumuloIndexSetTest {
                // {
                // System.out.println(e.getKey().getRow());
                // }
-               AccumuloIndexSet ais = new AccumuloIndexSet(accumuloConn, 
pcjTableName);
+               AccumuloIndexSet ais = new AccumuloIndexSet(conf, pcjTableName);
 
                QueryBindingSet bs = new QueryBindingSet();
                bs.addBinding("location", new URIImpl("http://Virginia";));
@@ -1612,7 +1610,7 @@ public class AccumuloIndexSetTest {
                // {
                // System.out.println(e.getKey().getRow());
                // }
-               AccumuloIndexSet ais = new AccumuloIndexSet(accumuloConn, 
pcjTableName);
+               AccumuloIndexSet ais = new AccumuloIndexSet(conf, pcjTableName);
 
                QueryBindingSet bs = new QueryBindingSet();
                bs.addBinding("name", new URIImpl("http://Joe";));
@@ -1705,7 +1703,7 @@ public class AccumuloIndexSetTest {
                // {
                // System.out.println(e.getKey().getRow());
                // }
-               AccumuloIndexSet ais = new AccumuloIndexSet(accumuloConn, 
pcjTableName);
+               AccumuloIndexSet ais = new AccumuloIndexSet(conf, pcjTableName);
 
                QueryBindingSet bs = new QueryBindingSet();
                bs.addBinding("name", new URIImpl("http://Joe";));
@@ -1826,6 +1824,7 @@ public class AccumuloIndexSetTest {
                                + "OPTIONAL{?name <http://playsSport> ?sport} . 
"
                                + "?name <http://hasWeight> ?weight " + "}";
 
+
                String pcjTableName = new 
PcjTableNameFactory().makeTableName(prefix,
                                "testPcj");
 
@@ -1833,13 +1832,14 @@ public class AccumuloIndexSetTest {
                PcjIntegrationTestingUtil.createAndPopulatePcj(ryaConn, 
accumuloConn,
                                pcjTableName, sparql, new String[] { "name", 
"age", "sport",
                                                "weight" }, 
Optional.<PcjVarOrderFactory> absent());
-               // Scanner scanner = accumuloConn.createScanner(pcjTableName,
-               // new Authorizations());
-               // for (Map.Entry<Key, org.apache.accumulo.core.data.Value> e : 
scanner)
-               // {
-               // System.out.println(e.getKey().getRow());
-               // }
-               AccumuloIndexSet ais = new AccumuloIndexSet(accumuloConn, 
pcjTableName);
+
+//             scanner = accumuloConn.createScanner(pcjTableName,
+//                             new Authorizations("U"));
+//             for (Map.Entry<Key, org.apache.accumulo.core.data.Value> e : 
scanner) {
+//                     System.out.println(e.getKey());
+//             }
+
+               AccumuloIndexSet ais = new AccumuloIndexSet(conf, pcjTableName);
 
                QueryBindingSet bs = new QueryBindingSet();
                bs.addBinding("name", new URIImpl("http://Alice";));

Reply via email to