RYA-112 Integrate RyaDetails with secondary indexers

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

Branch: refs/heads/develop
Commit: 39a46dad6202bec8901add29c4fe3d24330af454
Parents: e4ef9a9
Author: David W. Lotts <david.lo...@parsons.com>
Authored: Thu Jul 28 00:19:17 2016 -0400
Committer: Aaron Mihalik <miha...@alum.mit.edu>
Committed: Tue Aug 23 10:41:37 2016 -0400

----------------------------------------------------------------------
 .gitignore                                      |  1 +
 .../api/persist/index/RyaSecondaryIndexer.java  |  8 +-
 .../mvm/rya/indexing/accumulo/ConfigUtils.java  | 87 ++++++++------------
 .../accumulo/entity/AccumuloDocIdIndexer.java   | 40 ++++-----
 .../accumulo/entity/EntityCentricIndex.java     | 19 ++++-
 .../freetext/AccumuloFreeTextIndexer.java       | 52 ++++++++++--
 .../accumulo/geo/GeoMesaGeoIndexer.java         | 15 +++-
 .../temporal/AccumuloTemporalIndexer.java       |  6 +-
 .../external/tupleSet/AccumuloIndexSet.java     | 10 +--
 .../mongodb/freetext/MongoFreeTextIndexer.java  |  3 +-
 .../indexing/mongodb/geo/MongoGeoIndexer.java   |  3 +-
 .../mongodb/temporal/MongoTemporalIndexer.java  |  3 +-
 .../rya/indexing/pcj/matching/PCJOptimizer.java |  6 +-
 .../mvm/rya/sail/config/RyaSailFactory.java     | 16 +++-
 .../accumulo/entity/AccumuloDocIndexerTest.java | 62 ++++++--------
 .../freetext/AccumuloFreeTextIndexerTest.java   | 26 +++---
 .../indexing/accumulo/geo/GeoIndexerSfTest.java | 13 ++-
 .../indexing/accumulo/geo/GeoIndexerTest.java   | 14 ++--
 .../temporal/AccumuloTemporalIndexerTest.java   | 48 ++++-------
 .../external/AccumuloPcjIntegrationTest.java    |  4 +-
 .../external/PcjIntegrationTestingUtil.java     |  2 +
 .../AccumuloIndexSetColumnVisibilityTest.java   |  2 +-
 .../mongo/MongoFreeTextIndexerTest.java         | 10 +--
 .../indexing/mongo/MongoGeoIndexerSfTest.java   |  6 +-
 .../rya/indexing/mongo/MongoGeoIndexerTest.java |  8 +-
 .../mongo/MongoTemporalIndexerTest.java         | 15 +---
 .../src/main/java/EntityDirectExample.java      |  3 +-
 .../src/main/java/MongoRyaDirectExample.java    |  8 +-
 .../src/main/java/RyaDirectExample.java         |  7 +-
 29 files changed, 260 insertions(+), 237 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index 8ce329e..cb7f0ff 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,6 +13,7 @@ local.properties
 .classpath
 .settings/
 .loadpath
+.recommenders/
 
 # External tool builders
 .externalToolBuilders/

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/common/rya.api/src/main/java/mvm/rya/api/persist/index/RyaSecondaryIndexer.java
----------------------------------------------------------------------
diff --git 
a/common/rya.api/src/main/java/mvm/rya/api/persist/index/RyaSecondaryIndexer.java
 
b/common/rya.api/src/main/java/mvm/rya/api/persist/index/RyaSecondaryIndexer.java
index e92adef..4047670 100644
--- 
a/common/rya.api/src/main/java/mvm/rya/api/persist/index/RyaSecondaryIndexer.java
+++ 
b/common/rya.api/src/main/java/mvm/rya/api/persist/index/RyaSecondaryIndexer.java
@@ -34,7 +34,13 @@ import mvm.rya.api.domain.RyaURI;
 
 public interface RyaSecondaryIndexer extends Closeable, Flushable, 
Configurable {
 
-    public String getTableName();
+    /**
+     * Returns the table name if the implementation supports it.
+     * Note that some indexers use multiple tables, this only returns one.
+     * TODO recommend that we deprecate this method because it's a leaky 
interface. 
+     * @return table name as a string.
+     */
+    public String getTableName(); 
 
     public void storeStatements(Collection<RyaStatement> statements) throws 
IOException;
 

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/ConfigUtils.java
----------------------------------------------------------------------
diff --git 
a/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/ConfigUtils.java 
b/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/ConfigUtils.java
index c15ba1b..7540de4 100644
--- a/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/ConfigUtils.java
+++ b/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/ConfigUtils.java
@@ -19,27 +19,12 @@ package mvm.rya.indexing.accumulo;
  * under the License.
  */
 
-
+import static java.util.Objects.requireNonNull;
 
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import mvm.rya.accumulo.AccumuloRdfConfiguration;
-import mvm.rya.api.RdfCloudTripleStoreConfiguration;
-import mvm.rya.indexing.FilterFunctionOptimizer;
-import mvm.rya.indexing.accumulo.entity.EntityCentricIndex;
-import mvm.rya.indexing.accumulo.entity.EntityOptimizer;
-import mvm.rya.indexing.accumulo.freetext.AccumuloFreeTextIndexer;
-import mvm.rya.indexing.accumulo.freetext.LuceneTokenizer;
-import mvm.rya.indexing.accumulo.freetext.Tokenizer;
-import mvm.rya.indexing.accumulo.geo.GeoMesaGeoIndexer;
-import mvm.rya.indexing.accumulo.temporal.AccumuloTemporalIndexer;
-import mvm.rya.indexing.external.PrecomputedJoinIndexer;
-import mvm.rya.indexing.mongodb.freetext.MongoFreeTextIndexer;
-import mvm.rya.indexing.mongodb.geo.MongoGeoIndexer;
-import mvm.rya.indexing.pcj.matching.PCJOptimizer;
-
 import org.apache.accumulo.core.client.AccumuloException;
 import org.apache.accumulo.core.client.AccumuloSecurityException;
 import org.apache.accumulo.core.client.BatchScanner;
@@ -54,7 +39,6 @@ import org.apache.accumulo.core.client.ZooKeeperInstance;
 import org.apache.accumulo.core.client.admin.TableOperations;
 import org.apache.accumulo.core.client.mock.MockInstance;
 import org.apache.accumulo.core.security.Authorizations;
-import org.apache.commons.lang.Validate;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.mapreduce.JobContext;
 import org.apache.hadoop.util.ReflectionUtils;
@@ -65,8 +49,27 @@ import org.openrdf.model.impl.URIImpl;
 import com.google.common.base.Optional;
 import com.google.common.collect.Lists;
 
+import mvm.rya.accumulo.AccumuloRdfConfiguration;
+import mvm.rya.api.RdfCloudTripleStoreConfiguration;
+import mvm.rya.api.instance.RyaDetails;
+import mvm.rya.indexing.FilterFunctionOptimizer;
+import mvm.rya.indexing.accumulo.entity.EntityCentricIndex;
+import mvm.rya.indexing.accumulo.entity.EntityOptimizer;
+import mvm.rya.indexing.accumulo.freetext.AccumuloFreeTextIndexer;
+import mvm.rya.indexing.accumulo.freetext.LuceneTokenizer;
+import mvm.rya.indexing.accumulo.freetext.Tokenizer;
+import mvm.rya.indexing.accumulo.geo.GeoMesaGeoIndexer;
+import mvm.rya.indexing.accumulo.temporal.AccumuloTemporalIndexer;
+import mvm.rya.indexing.external.PrecomputedJoinIndexer;
+import mvm.rya.indexing.mongodb.freetext.MongoFreeTextIndexer;
+import mvm.rya.indexing.mongodb.geo.MongoGeoIndexer;
+import mvm.rya.indexing.pcj.matching.PCJOptimizer;
+
 /**
  * A set of configuration utils to read a Hadoop {@link Configuration} object 
and create Cloudbase/Accumulo objects.
+ * Soon will deprecate this class.  Use installer for the set methods, use 
{@link RyaDetails} for the get methods. 
+ * New code must separate parameters that are set at Rya install time from 
that which is specific to the client.
+ * Also Accumulo index tables are pushed down to the implementation and not 
configured in conf.   
  */
 public class ConfigUtils {
     private static final Logger logger = Logger.getLogger(ConfigUtils.class);
@@ -84,12 +87,7 @@ public class ConfigUtils {
 
     public static final String FREE_TEXT_QUERY_TERM_LIMIT = 
"sc.freetext.querytermlimit";
 
-    public static final String FREE_TEXT_DOC_TABLENAME = 
"sc.freetext.doctable";
-    public static final String FREE_TEXT_TERM_TABLENAME = 
"sc.freetext.termtable";
-    public static final String GEO_TABLENAME = "sc.geo.table";
     public static final String GEO_NUM_PARTITIONS = "sc.geo.numPartitions";
-    public static final String TEMPORAL_TABLENAME = "sc.temporal.index";
-    public static final String ENTITY_TABLENAME = "sc.entity.index";
 
     public static final String USE_GEO = "sc.use_geo";
     public static final String USE_FREETEXT = "sc.use_freetext";
@@ -142,7 +140,7 @@ public class ConfigUtils {
      */
     private static String getStringCheckSet(final Configuration conf, final 
String key) {
         final String value = conf.get(key);
-        Validate.notNull(value, key + " not set");
+        requireNonNull(value, key + " not set");
         return value;
     }
 
@@ -165,42 +163,25 @@ public class ConfigUtils {
         return false;
     }
 
-    private static String getIndexTableName(final Configuration conf, final 
String indexTableNameConf, final String altSuffix){
-        String value = conf.get(indexTableNameConf);
-        if (value == null){
-            final String defaultTableName = 
conf.get(RdfCloudTripleStoreConfiguration.CONF_TBL_PREFIX);
-            Validate.notNull(defaultTableName, indexTableNameConf + " not set 
and " + RdfCloudTripleStoreConfiguration.CONF_TBL_PREFIX + " not set.  Cannot 
generate table name.");
-            value = conf.get(RdfCloudTripleStoreConfiguration.CONF_TBL_PREFIX) 
+ altSuffix;
-        }
-        return value;
-    }
-
-    public static String getFreeTextDocTablename(final Configuration conf) {
-        return getIndexTableName(conf, FREE_TEXT_DOC_TABLENAME, "freetext");
-    }
-
-    public static String getFreeTextTermTablename(final Configuration conf) {
-        return getIndexTableName(conf, FREE_TEXT_TERM_TABLENAME, 
"freetext_term");
+    /**
+     * Lookup the table name prefix in the conf and throw an error if it is 
null.
+     * Future,  get table prefix from RyaDetails -- the Rya instance name
+     *  -- also getting info from the RyaDetails should happen within 
RyaSailFactory and not ConfigUtils.
+     * @param conf  Rya configuration map where it extracts the prefix 
(instance name)
+     * @return  index table prefix corresponding to this Rya instance
+     */
+    public static String getTablePrefix(final Configuration conf) {
+        final String tablePrefix;
+        tablePrefix = 
conf.get(RdfCloudTripleStoreConfiguration.CONF_TBL_PREFIX);
+        requireNonNull(tablePrefix, "Configuration key: " + 
RdfCloudTripleStoreConfiguration.CONF_TBL_PREFIX
+                + " not set.  Cannot generate table name.");
+        return tablePrefix;
     }
 
     public static int getFreeTextTermLimit(final Configuration conf) {
         return conf.getInt(FREE_TEXT_QUERY_TERM_LIMIT, 100);
     }
 
-    public static String getGeoTablename(final Configuration conf) {
-        return getIndexTableName(conf, GEO_TABLENAME, "geo");
-    }
-
-    public static String getTemporalTableName(final Configuration conf) {
-        return getIndexTableName(conf, TEMPORAL_TABLENAME, "temporal");
-    }
-
-
-    public static String getEntityTableName(final Configuration conf) {
-        return getIndexTableName(conf, ENTITY_TABLENAME, "entity");
-    }
-
-
     public static Set<URI> getFreeTextPredicates(final Configuration conf) {
         return getPredicates(conf, FREETEXT_PREDICATES_LIST);
     }

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/entity/AccumuloDocIdIndexer.java
----------------------------------------------------------------------
diff --git 
a/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/entity/AccumuloDocIdIndexer.java
 
b/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/entity/AccumuloDocIdIndexer.java
index 73378cf..4c1a3ad 100644
--- 
a/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/entity/AccumuloDocIdIndexer.java
+++ 
b/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/entity/AccumuloDocIdIndexer.java
@@ -398,9 +398,9 @@ public class AccumuloDocIdIndexer implements DocIdIndexer {
         return currentSolutionBs;
     }
 
-   private BatchScanner runQuery(StarQuery query, Collection<Range> ranges) 
throws QueryEvaluationException {
+    private BatchScanner runQuery(StarQuery query, Collection<Range> ranges) 
throws QueryEvaluationException {
 
-    try {
+        try {
             if (ranges.size() == 0) {
                 String rangeText = query.getCommonVarValue();
                 Range r;
@@ -412,31 +412,25 @@ public class AccumuloDocIdIndexer implements DocIdIndexer 
{
                 ranges = Collections.singleton(r);
             }
 
-        Connector accCon = ConfigUtils.getConnector(conf);
-        IteratorSetting is = new IteratorSetting(30, "fii", 
DocumentIndexIntersectingIterator.class);
+            Connector accCon = ConfigUtils.getConnector(conf);
+            IteratorSetting is = new IteratorSetting(30, "fii", 
DocumentIndexIntersectingIterator.class);
+
+            DocumentIndexIntersectingIterator.setColumnFamilies(is, 
query.getColumnCond());
 
-        DocumentIndexIntersectingIterator.setColumnFamilies(is, 
query.getColumnCond());
+            if (query.hasContext()) {
+                DocumentIndexIntersectingIterator.setContext(is, 
query.getContextURI());
+            }
+            bs = 
accCon.createBatchScanner(EntityCentricIndex.getTableName(conf),
+                    new Authorizations(conf.get(ConfigUtils.CLOUDBASE_AUTHS)), 
15);
+            bs.addScanIterator(is);
+            bs.setRanges(ranges);
 
-        if(query.hasContext()) {
-            DocumentIndexIntersectingIterator.setContext(is, 
query.getContextURI());
+            return bs;
+
+        } catch (TableNotFoundException | AccumuloException | 
AccumuloSecurityException e) {
+            throw new QueryEvaluationException(e);
         }
-        bs = accCon.createBatchScanner(ConfigUtils.getEntityTableName(conf),
-                new Authorizations(conf.get(ConfigUtils.CLOUDBASE_AUTHS)), 15);
-        bs.addScanIterator(is);
-        bs.setRanges(ranges);
-
-        return bs;
-
-    } catch (TableNotFoundException e) {
-        e.printStackTrace();
-    } catch (AccumuloException e) {
-        e.printStackTrace();
-    } catch (AccumuloSecurityException e) {
-        e.printStackTrace();
     }
-        throw new QueryEvaluationException();
-   }
-
 
     @Override
     public void close() throws IOException {

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/entity/EntityCentricIndex.java
----------------------------------------------------------------------
diff --git 
a/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/entity/EntityCentricIndex.java
 
b/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/entity/EntityCentricIndex.java
index cd2d516..9a9daa5 100644
--- 
a/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/entity/EntityCentricIndex.java
+++ 
b/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/entity/EntityCentricIndex.java
@@ -73,11 +73,9 @@ public class EntityCentricIndex extends 
AbstractAccumuloIndexer {
     private BatchWriter writer;
     private boolean isInit = false;
 
-    public static final String CONF_TABLE_SUFFIX = "ac.indexer.eci.tablename";
-
     private void initInternal() throws AccumuloException, 
AccumuloSecurityException, TableNotFoundException, IOException,
             TableExistsException {
-        ConfigUtils.createTableIfNotExists(conf, 
ConfigUtils.getEntityTableName(conf));
+        ConfigUtils.createTableIfNotExists(conf, getTableName());
     }
 
     @Override
@@ -116,9 +114,22 @@ public class EntityCentricIndex extends 
AbstractAccumuloIndexer {
         }
     }
 
+    /**
+     * Get the Accumulo table used by this index.  
+     * @return table used by instances of this index
+     */
     @Override
     public String getTableName() {
-        return ConfigUtils.getEntityTableName(conf);
+        return getTableName(conf);
+    }
+    
+    /**
+     * Get the Accumulo table that will be used by this index.  
+     * @param conf
+     * @return table name guaranteed to be used by instances of this index
+     */
+    public static String getTableName(Configuration conf) {
+        return ConfigUtils.getTablePrefix(conf)  + TABLE_SUFFIX;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/freetext/AccumuloFreeTextIndexer.java
----------------------------------------------------------------------
diff --git 
a/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/freetext/AccumuloFreeTextIndexer.java
 
b/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/freetext/AccumuloFreeTextIndexer.java
index fe70d82..a15ab45 100644
--- 
a/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/freetext/AccumuloFreeTextIndexer.java
+++ 
b/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/freetext/AccumuloFreeTextIndexer.java
@@ -26,6 +26,8 @@ import static 
mvm.rya.indexing.accumulo.freetext.query.ASTNodeUtils.getNodeItera
 import java.io.IOException;
 import java.nio.charset.CharacterCodingException;
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -185,6 +187,10 @@ import 
mvm.rya.indexing.accumulo.freetext.query.TokenMgrError;
  * <pre>
  */
 public class AccumuloFreeTextIndexer extends AbstractAccumuloIndexer 
implements FreeTextIndexer  {
+    private static final String TABLE_SUFFIX_TERM = "freetext_term";
+
+    private static final String TABLE_SUFFFIX_DOC = "freetext";
+
     private static final Logger logger = 
Logger.getLogger(AccumuloFreeTextIndexer.class);
 
     private static final boolean IS_TERM_TABLE_TOKEN_DELETION_ENABLED = true;
@@ -212,8 +218,8 @@ public class AccumuloFreeTextIndexer extends 
AbstractAccumuloIndexer implements
 
     private void initInternal() throws AccumuloException, 
AccumuloSecurityException, TableNotFoundException,
             TableExistsException {
-        String doctable = ConfigUtils.getFreeTextDocTablename(conf);
-        String termtable = ConfigUtils.getFreeTextTermTablename(conf);
+        String doctable = getFreeTextDocTablename(conf);
+        String termtable = getFreeTextTermTablename(conf);
 
         docTableNumPartitions = ConfigUtils.getFreeTextDocNumPartitions(conf);
         int termTableNumPartitions = 
ConfigUtils.getFreeTextTermNumPartitions(conf);
@@ -397,7 +403,7 @@ public class AccumuloFreeTextIndexer extends 
AbstractAccumuloIndexer implements
     }
 
     private Set<String> unrollWildcard(String string, boolean reverse) throws 
IOException {
-        Scanner termTableScan = 
getScanner(ConfigUtils.getFreeTextTermTablename(conf));
+        Scanner termTableScan = getScanner(getFreeTextTermTablename(conf));
 
         Set<String> unrolledTerms = new HashSet<String>();
 
@@ -482,7 +488,7 @@ public class AccumuloFreeTextIndexer extends 
AbstractAccumuloIndexer implements
     @Override
     public CloseableIteration<Statement, QueryEvaluationException> 
queryText(String query, StatementConstraints contraints)
             throws IOException {
-        Scanner docTableScan = 
getScanner(ConfigUtils.getFreeTextDocTablename(conf));
+        Scanner docTableScan = getScanner(getFreeTextDocTablename(conf));
 
         // test the query to see if it's parses correctly.
         SimpleNode root = parseQuery(query);
@@ -598,10 +604,42 @@ public class AccumuloFreeTextIndexer extends 
AbstractAccumuloIndexer implements
         return root;
     }
 
-
+    /**
+     * Get Free Text Document index table's name 
+     * Use the two table version of this below. This one is required by base 
class. 
+     */
     @Override
     public String getTableName() {
-       return ConfigUtils.getFreeTextDocTablename(conf);
+       return getFreeTextDocTablename(conf);
+    }
+    
+    /**
+     * Get all the tables used by this index.
+     * @param conf configuration map
+     * @return an unmodifiable list of all the table names.
+     */
+    public static List<String> getTableNames(Configuration conf) {
+        return Collections.unmodifiableList( Arrays.asList( 
+                getFreeTextDocTablename(conf),
+                getFreeTextTermTablename(conf) ));
+    }
+    
+    /**
+     * Get the Document index's table name.
+     * @param conf
+     * @return the Free Text Document index table's name
+     */
+    public static String getFreeTextDocTablename(Configuration conf) {
+        return mvm.rya.indexing.accumulo.ConfigUtils.getTablePrefix(conf)  + 
TABLE_SUFFFIX_DOC;
+    }
+
+    /**
+     * Get the Term index's table name.
+     * @param conf
+     * @return the Free Text Term index table's name
+     */
+    public static String getFreeTextTermTablename(Configuration conf) {
+        return mvm.rya.indexing.accumulo.ConfigUtils.getTablePrefix(conf)  + 
TABLE_SUFFIX_TERM;
     }
 
     private void deleteStatement(Statement statement) throws IOException {
@@ -682,7 +720,7 @@ public class AccumuloFreeTextIndexer extends 
AbstractAccumuloIndexer implements
      */
     private boolean doesTermExistInOtherDocs(String term, int currentDocId, 
Text docIdText) {
         try {
-            String freeTextDocTableName = 
ConfigUtils.getFreeTextDocTablename(conf);
+            String freeTextDocTableName = getFreeTextDocTablename(conf);
             Scanner scanner = getScanner(freeTextDocTableName);
 
             String t = StringUtils.removeEnd(term, "*").toLowerCase();

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/geo/GeoMesaGeoIndexer.java
----------------------------------------------------------------------
diff --git 
a/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/geo/GeoMesaGeoIndexer.java
 
b/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/geo/GeoMesaGeoIndexer.java
index becd893..0c8c898 100644
--- 
a/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/geo/GeoMesaGeoIndexer.java
+++ 
b/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/geo/GeoMesaGeoIndexer.java
@@ -124,6 +124,8 @@ import mvm.rya.indexing.accumulo.ConfigUtils;
  */
 public class GeoMesaGeoIndexer extends AbstractAccumuloIndexer implements 
GeoIndexer  {
 
+    private static final String TABLE_SUFFIX = "geo";
+
     private static final Logger logger = 
Logger.getLogger(GeoMesaGeoIndexer.class);
 
     private static final String FEATURE_NAME = "RDF";
@@ -190,7 +192,7 @@ public class GeoMesaGeoIndexer extends 
AbstractAccumuloIndexer implements GeoInd
         final String user = ConfigUtils.getUsername(conf);
         final String password = ConfigUtils.getPassword(conf);
         final String auths = ConfigUtils.getAuthorizations(conf).toString();
-        final String tableName = ConfigUtils.getGeoTablename(conf);
+        final String tableName = getTableName(conf);
         final int numParitions = ConfigUtils.getGeoNumPartitions(conf);
 
         final String featureSchemaFormat = "%~#s%" + numParitions + "#r%" + 
FEATURE_NAME
@@ -435,7 +437,16 @@ public class GeoMesaGeoIndexer extends 
AbstractAccumuloIndexer implements GeoInd
 
     @Override
     public String getTableName() {
-       return ConfigUtils.getGeoTablename(conf);
+            return getTableName(conf);
+    }
+
+    /**
+     * Get the Accumulo table that will be used by this index.  
+     * @param conf
+     * @return table name guaranteed to be used by instances of this index
+     */
+    public static String getTableName(Configuration conf) {
+        return ConfigUtils.getTablePrefix(conf)  + TABLE_SUFFIX;
     }
 
     private void deleteStatements(final Collection<RyaStatement> 
ryaStatements) throws IOException {

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/temporal/AccumuloTemporalIndexer.java
----------------------------------------------------------------------
diff --git 
a/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/temporal/AccumuloTemporalIndexer.java
 
b/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/temporal/AccumuloTemporalIndexer.java
index be29d3c..35a9982 100644
--- 
a/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/temporal/AccumuloTemporalIndexer.java
+++ 
b/extras/indexing/src/main/java/mvm/rya/indexing/accumulo/temporal/AccumuloTemporalIndexer.java
@@ -77,6 +77,8 @@ import mvm.rya.indexing.accumulo.ConfigUtils;
 
 public class AccumuloTemporalIndexer extends AbstractAccumuloIndexer 
implements TemporalIndexer {
 
+    private static final String TABLE_SUFFIX = "temporal";
+
     private static final Logger logger = 
Logger.getLogger(AccumuloTemporalIndexer.class);
 
     private static final String CF_INTERVAL = "interval";
@@ -103,7 +105,7 @@ public class AccumuloTemporalIndexer extends 
AbstractAccumuloIndexer implements
 
     private void initInternal() throws AccumuloException, 
AccumuloSecurityException, TableNotFoundException,
             TableExistsException {
-        temporalIndexTableName = ConfigUtils.getTemporalTableName(conf);
+        temporalIndexTableName = getTableName();
         // Create one index table on first run.
         ConfigUtils.createTableIfNotExists(conf, temporalIndexTableName);
 
@@ -878,7 +880,7 @@ public class AccumuloTemporalIndexer extends 
AbstractAccumuloIndexer implements
 
     @Override
     public String getTableName() {
-       return ConfigUtils.getTemporalTableName(conf);
+       return ConfigUtils.getTablePrefix(conf)  + TABLE_SUFFIX;
     }
 
     private void deleteStatement(final Statement statement) throws 
IOException, IllegalArgumentException {

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/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 a45ba2b..8b56018 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
@@ -53,6 +53,7 @@ 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;
+import 
org.apache.rya.indexing.pcj.storage.PrecomputedJoinStorage.PCJStorageException;
 import org.apache.rya.indexing.pcj.storage.accumulo.AccumuloPcjSerializer;
 import 
org.apache.rya.indexing.pcj.storage.accumulo.BindingSetConverter.BindingSetConversionException;
 import org.apache.rya.indexing.pcj.storage.accumulo.PcjTables;
@@ -142,10 +143,11 @@ public class AccumuloIndexSet extends ExternalTupleSet 
implements
         * @throws TableNotFoundException
         * @throws AccumuloSecurityException
         * @throws AccumuloException
+        * @throws PCJStorageException 
         */
        public AccumuloIndexSet(String sparql, Configuration conf,
                        String tablename) throws MalformedQueryException, 
SailException,
-                       QueryEvaluationException, TableNotFoundException, 
AccumuloException, AccumuloSecurityException {
+                       QueryEvaluationException, TableNotFoundException, 
AccumuloException, AccumuloSecurityException, PCJStorageException {
                this.tablename = tablename;
                this.accCon = ConfigUtils.getConnector(conf);
                this.auths = getAuthorizations(conf);
@@ -163,11 +165,7 @@ public class AccumuloIndexSet extends ExternalTupleSet 
implements
                }
                setProjectionExpr(projection.get());
                Set<VariableOrder> orders = null;
-               try {
-                       orders = pcj.getPcjMetadata(accCon, 
tablename).getVarOrders();
-               } catch (final PcjException e) {
-                       e.printStackTrace();
-               }
+               orders = pcj.getPcjMetadata(accCon, tablename).getVarOrders();
 
                varOrder = Lists.newArrayList();
                for (final VariableOrder var : orders) {

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/extras/indexing/src/main/java/mvm/rya/indexing/mongodb/freetext/MongoFreeTextIndexer.java
----------------------------------------------------------------------
diff --git 
a/extras/indexing/src/main/java/mvm/rya/indexing/mongodb/freetext/MongoFreeTextIndexer.java
 
b/extras/indexing/src/main/java/mvm/rya/indexing/mongodb/freetext/MongoFreeTextIndexer.java
index f8dc820..7a65d26 100644
--- 
a/extras/indexing/src/main/java/mvm/rya/indexing/mongodb/freetext/MongoFreeTextIndexer.java
+++ 
b/extras/indexing/src/main/java/mvm/rya/indexing/mongodb/freetext/MongoFreeTextIndexer.java
@@ -34,6 +34,7 @@ import mvm.rya.indexing.accumulo.ConfigUtils;
 import mvm.rya.indexing.mongodb.AbstractMongoIndexer;
 
 public class MongoFreeTextIndexer extends 
AbstractMongoIndexer<TextMongoDBStorageStrategy> implements FreeTextIndexer {
+    private static final String COLLECTION_SUFFIX = "freetext";
     private static final Logger logger = 
Logger.getLogger(MongoFreeTextIndexer.class);
 
     public MongoFreeTextIndexer(final MongoClient mongoClient) {
@@ -57,6 +58,6 @@ public class MongoFreeTextIndexer extends 
AbstractMongoIndexer<TextMongoDBStorag
 
     @Override
     public String getCollectionName() {
-        return ConfigUtils.getFreeTextDocTablename(conf);
+       return ConfigUtils.getTablePrefix(conf)  + COLLECTION_SUFFIX;
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/extras/indexing/src/main/java/mvm/rya/indexing/mongodb/geo/MongoGeoIndexer.java
----------------------------------------------------------------------
diff --git 
a/extras/indexing/src/main/java/mvm/rya/indexing/mongodb/geo/MongoGeoIndexer.java
 
b/extras/indexing/src/main/java/mvm/rya/indexing/mongodb/geo/MongoGeoIndexer.java
index 6076fb2..303848a 100644
--- 
a/extras/indexing/src/main/java/mvm/rya/indexing/mongodb/geo/MongoGeoIndexer.java
+++ 
b/extras/indexing/src/main/java/mvm/rya/indexing/mongodb/geo/MongoGeoIndexer.java
@@ -41,6 +41,7 @@ import 
mvm.rya.indexing.mongodb.geo.GeoMongoDBStorageStrategy.GeoQuery;
 import mvm.rya.mongodb.MongoDBRdfConfiguration;
 
 public class MongoGeoIndexer extends 
AbstractMongoIndexer<GeoMongoDBStorageStrategy> implements GeoIndexer {
+    private static final String COLLECTION_SUFFIX = "geo";
     private static final Logger logger = 
Logger.getLogger(MongoGeoIndexer.class);
 
     public MongoGeoIndexer(final MongoClient mongoClient) {
@@ -113,6 +114,6 @@ public class MongoGeoIndexer extends 
AbstractMongoIndexer<GeoMongoDBStorageStrat
 
     @Override
     public String getCollectionName() {
-        return ConfigUtils.getGeoTablename(conf);
+        return ConfigUtils.getTablePrefix(conf)  + COLLECTION_SUFFIX;
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/extras/indexing/src/main/java/mvm/rya/indexing/mongodb/temporal/MongoTemporalIndexer.java
----------------------------------------------------------------------
diff --git 
a/extras/indexing/src/main/java/mvm/rya/indexing/mongodb/temporal/MongoTemporalIndexer.java
 
b/extras/indexing/src/main/java/mvm/rya/indexing/mongodb/temporal/MongoTemporalIndexer.java
index 6b34ab8..003d9c9 100644
--- 
a/extras/indexing/src/main/java/mvm/rya/indexing/mongodb/temporal/MongoTemporalIndexer.java
+++ 
b/extras/indexing/src/main/java/mvm/rya/indexing/mongodb/temporal/MongoTemporalIndexer.java
@@ -45,6 +45,7 @@ import mvm.rya.indexing.mongodb.AbstractMongoIndexer;
  * Indexes MongoDB based on time instants or intervals.
  */
 public class MongoTemporalIndexer extends 
AbstractMongoIndexer<TemporalMongoDBStorageStrategy> implements TemporalIndexer 
{
+    private static final String COLLECTION_SUFFIX = "temporal";
     private static final Logger LOG = 
Logger.getLogger(MongoTemporalIndexer.class);
 
     /**
@@ -150,7 +151,7 @@ public class MongoTemporalIndexer extends 
AbstractMongoIndexer<TemporalMongoDBSt
 
     @Override
     public String getCollectionName() {
-        return ConfigUtils.getTemporalTableName(conf);
+        return ConfigUtils.getTablePrefix(conf)  + COLLECTION_SUFFIX;
     }
 
     @VisibleForTesting

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/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 a163e0b..3ace3c7 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
@@ -122,7 +122,7 @@ public class PCJOptimizer implements QueryOptimizer, 
Configurable {
                     | QueryEvaluationException | TableNotFoundException
                     | AccumuloException | AccumuloSecurityException
                     | PcjException e) {
-                e.printStackTrace();
+                throw new Error(e);
             }
             init = true;
         }
@@ -334,9 +334,11 @@ public class PCJOptimizer implements QueryOptimizer, 
Configurable {
         } else {
             //if no tables are provided by user, get ids for rya instance id, 
create table name,
             //and associate table name with sparql
+            // TODO: storage.listPcjs() returns tablenames, not PCJ-IDs.  
+            //     See 
mvm.rya.indexing.external.accumulo.AccumuloPcjStorage.dropPcj(String)
             List<String> ids = storage.listPcjs();
             for(String id: ids) {
-                indexTables.put(pcjFactory.makeTableName(tablePrefix, id), 
storage.getPcjMetadata(id).getSparql());
+                indexTables.put(id, storage.getPcjMetadata(id).getSparql());
             }
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/extras/indexing/src/main/java/mvm/rya/sail/config/RyaSailFactory.java
----------------------------------------------------------------------
diff --git 
a/extras/indexing/src/main/java/mvm/rya/sail/config/RyaSailFactory.java 
b/extras/indexing/src/main/java/mvm/rya/sail/config/RyaSailFactory.java
index ef1f59f..75daec3 100644
--- a/extras/indexing/src/main/java/mvm/rya/sail/config/RyaSailFactory.java
+++ b/extras/indexing/src/main/java/mvm/rya/sail/config/RyaSailFactory.java
@@ -20,6 +20,7 @@ package mvm.rya.sail.config;
  */
 
 import java.net.UnknownHostException;
+import java.util.Objects;
 
 import org.apache.accumulo.core.client.AccumuloException;
 import org.apache.accumulo.core.client.AccumuloSecurityException;
@@ -35,7 +36,6 @@ import com.google.common.collect.Lists;
 import com.mongodb.MongoClient;
 import com.mongodb.MongoCredential;
 import com.mongodb.ServerAddress;
-
 import mvm.rya.accumulo.AccumuloRdfConfiguration;
 import mvm.rya.accumulo.AccumuloRyaDAO;
 import mvm.rya.accumulo.instance.AccumuloRyaInstanceDetailsRepository;
@@ -66,16 +66,26 @@ public class RyaSailFactory {
         final RyaDAO<?> dao;
         final RdfCloudTripleStoreConfiguration rdfConfig;
 
-        final String user = config.get(ConfigUtils.CLOUDBASE_USER);
-        final String pswd = config.get(ConfigUtils.CLOUDBASE_PASSWORD);
+        final String user;
+        final String pswd;
+        // XXX Should(?) be MongoDBRdfConfiguration.MONGO_COLLECTION_PREFIX 
inside the if below. RYA-135
         final String ryaInstance = 
config.get(RdfCloudTripleStoreConfiguration.CONF_TBL_PREFIX);
+        Objects.requireNonNull(ryaInstance, "RyaInstance or table prefix is 
missing from configuration."+RdfCloudTripleStoreConfiguration.CONF_TBL_PREFIX);
 
         if(ConfigUtils.getUseMongo(config)) {
             rdfConfig = new MongoDBRdfConfiguration(config);
+            user = rdfConfig.get(MongoDBRdfConfiguration.MONGO_USER);
+            pswd = rdfConfig.get(MongoDBRdfConfiguration.MONGO_USER_PASSWORD);
+            Objects.requireNonNull(user, "MongoDB user name is missing from 
configuration."+MongoDBRdfConfiguration.MONGO_USER);
+            Objects.requireNonNull(pswd, "MongoDB user password is missing 
from configuration."+MongoDBRdfConfiguration.MONGO_USER_PASSWORD);
             final MongoClient client = 
updateMongoConfig((MongoDBRdfConfiguration) rdfConfig, user, pswd, ryaInstance);
             dao = getMongoDAO((MongoDBRdfConfiguration)rdfConfig, client);
         } else {
             rdfConfig = new AccumuloRdfConfiguration(config);
+            user = rdfConfig.get(ConfigUtils.CLOUDBASE_USER);
+            pswd = rdfConfig.get(ConfigUtils.CLOUDBASE_PASSWORD);
+            Objects.requireNonNull(user, "Accumulo user name is missing from 
configuration."+ConfigUtils.CLOUDBASE_USER);
+            Objects.requireNonNull(pswd, "Accumulo user password is missing 
from configuration."+ConfigUtils.CLOUDBASE_PASSWORD);
             rdfConfig.setTableLayoutStrategy( new 
TablePrefixLayoutStrategy(ryaInstance) );
             updateAccumuloConfig((AccumuloRdfConfiguration) rdfConfig, user, 
pswd, ryaInstance);
             dao = getAccumuloDAO((AccumuloRdfConfiguration)rdfConfig);

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/extras/indexing/src/test/java/mvm/rya/indexing/accumulo/entity/AccumuloDocIndexerTest.java
----------------------------------------------------------------------
diff --git 
a/extras/indexing/src/test/java/mvm/rya/indexing/accumulo/entity/AccumuloDocIndexerTest.java
 
b/extras/indexing/src/test/java/mvm/rya/indexing/accumulo/entity/AccumuloDocIndexerTest.java
index 6237697..a36e808 100644
--- 
a/extras/indexing/src/test/java/mvm/rya/indexing/accumulo/entity/AccumuloDocIndexerTest.java
+++ 
b/extras/indexing/src/test/java/mvm/rya/indexing/accumulo/entity/AccumuloDocIndexerTest.java
@@ -38,9 +38,13 @@ import mvm.rya.indexing.accumulo.ConfigUtils;
 
 import org.apache.accumulo.core.client.BatchWriter;
 import org.apache.accumulo.core.client.Connector;
+import org.apache.accumulo.core.client.admin.TableOperations;
 import org.apache.accumulo.core.client.mock.MockInstance;
+import org.apache.accumulo.core.client.security.tokens.AuthenticationToken;
+import org.apache.accumulo.core.client.security.tokens.PasswordToken;
 import org.apache.accumulo.core.data.Mutation;
 import org.apache.hadoop.conf.Configuration;
+import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
@@ -61,48 +65,51 @@ import com.google.common.collect.Lists;
 
 public class AccumuloDocIndexerTest {
 
-    
+    private MockInstance mockInstance;
     private Connector accCon;
     AccumuloRdfConfiguration conf = new AccumuloRdfConfiguration();
     ValueFactory vf = new ValueFactoryImpl();
     
-    private static final String tableName = "EntityCentric_entity";
+    private String tableName;
     
     
     @Before
     public void init() throws Exception {
-        
-        accCon = new MockInstance("instance").getConnector("root", 
"".getBytes());
-        
-        if(accCon.tableOperations().exists(tableName)) {
-                accCon.tableOperations().delete(tableName);
-        } 
-        
-        accCon.tableOperations().create(tableName);
-        
-        
+        final String INSTANCE = "instance";
         Configuration config = new Configuration();
         config.set(ConfigUtils.CLOUDBASE_AUTHS, "U");
-        config.set(ConfigUtils.CLOUDBASE_INSTANCE, "instance");
+        config.set(ConfigUtils.CLOUDBASE_INSTANCE, INSTANCE);
         config.set(ConfigUtils.CLOUDBASE_USER, "root");
         config.set(ConfigUtils.CLOUDBASE_PASSWORD, "");
        
         conf = new AccumuloRdfConfiguration(config);
         conf.set(ConfigUtils.USE_MOCK_INSTANCE, "true");
         conf.setAdditionalIndexers(EntityCentricIndex.class);
+        conf.setTablePrefix("EntityCentric_");
+        tableName =  EntityCentricIndex.getTableName(conf);
 
+        // Access the accumulo instance.  If you assign a name, it persists 
statically, but otherwise, can't get it by name.
+        accCon = new MockInstance(INSTANCE).getConnector("root", new 
PasswordToken(""));
+        if(accCon.tableOperations().exists(tableName)) {
+                throw new Exception("New mock accumulo already has a table!  
Should be deleted in AfterTest.");
+        } 
+        // This should happen in the index initialization, but some tests need 
it before: 
+        accCon.tableOperations().create(tableName);
     }
-    
-    
-    
-    
+
+    @After
+    public void afterTest() throws Exception {
+        if (accCon.tableOperations().exists(tableName)) {
+            accCon.tableOperations().delete(tableName);
+        }
+    }
+
     @Test
     public void testNoContext1()  throws Exception {
 
       BatchWriter bw = null;
       RyaTableMutationsFactory rtm = new 
RyaTableMutationsFactory(RyaTripleContext.getInstance(conf));
-      conf.setTablePrefix("EntityCentric_");
-      
+
           bw = accCon.createBatchWriter(tableName, 500L * 1024L * 1024L, 
Long.MAX_VALUE, 30);
          
           
@@ -240,8 +247,6 @@ public class AccumuloDocIndexerTest {
 
 
           bw = accCon.createBatchWriter(tableName, 500L * 1024L * 1024L, 
Long.MAX_VALUE, 30);
-          conf.setTablePrefix("EntityCentric_");
-         
           
           for (int i = 0; i < 30; i++) {
                       
@@ -360,8 +365,6 @@ public class AccumuloDocIndexerTest {
     public void testNoContextCommonVarBs() throws Exception {
 
       BatchWriter bw = null;
-      conf.setTablePrefix("EntityCentric_");
-
       RyaTableMutationsFactory rtm = new 
RyaTableMutationsFactory(RyaTripleContext.getInstance(conf));
 
 
@@ -476,8 +479,6 @@ public class AccumuloDocIndexerTest {
     public void testNoContextUnCommonVarBs() throws Exception {
 
       BatchWriter bw = null;
-      conf.setTablePrefix("EntityCentric_");
-
       RyaTableMutationsFactory rtm = new 
RyaTableMutationsFactory(RyaTripleContext.getInstance(conf));
 
 
@@ -590,7 +591,6 @@ public class AccumuloDocIndexerTest {
     public void testNoContextCommonVarBs2() throws Exception {
 
       BatchWriter bw = null;
-      conf.setTablePrefix("EntityCentric_");
       RyaTableMutationsFactory rtm = new 
RyaTableMutationsFactory(RyaTripleContext.getInstance(conf));
 
 
@@ -705,8 +705,6 @@ public class AccumuloDocIndexerTest {
     public void testNoContextUnCommonVarBs2() throws Exception {
 
       BatchWriter bw = null;
-      conf.setTablePrefix("EntityCentric_");
-
       RyaTableMutationsFactory rtm = new 
RyaTableMutationsFactory(RyaTripleContext.getInstance(conf));
 
 
@@ -822,7 +820,6 @@ public class AccumuloDocIndexerTest {
     public void testContext2() throws Exception {
 
       BatchWriter bw = null;
-      conf.setTablePrefix("EntityCentric_");
       RyaTableMutationsFactory rtm = new 
RyaTableMutationsFactory(RyaTripleContext.getInstance(conf));
 
 
@@ -1000,7 +997,6 @@ public class AccumuloDocIndexerTest {
     public void testContextUnCommonVarBs2() throws Exception {
 
       BatchWriter bw = null;
-      conf.setTablePrefix("EntityCentric_");
       RyaTableMutationsFactory rtm = new 
RyaTableMutationsFactory(RyaTripleContext.getInstance(conf));
 
 
@@ -1175,7 +1171,6 @@ public class AccumuloDocIndexerTest {
     public void testContext1() throws Exception {
 
       BatchWriter bw = null;
-      conf.setTablePrefix("EntityCentric_");
       RyaTableMutationsFactory rtm = new 
RyaTableMutationsFactory(RyaTripleContext.getInstance(conf));
 
 
@@ -1356,8 +1351,6 @@ public class AccumuloDocIndexerTest {
     public void testContextUnCommonVarBs1() throws Exception {
 
       BatchWriter bw = null;
-      conf.setTablePrefix("EntityCentric_");
-
       RyaTableMutationsFactory rtm = new 
RyaTableMutationsFactory(RyaTripleContext.getInstance(conf));
 
 
@@ -1540,7 +1533,6 @@ public class AccumuloDocIndexerTest {
     public void testContextCommonVarBs1() throws Exception {
 
       BatchWriter bw = null;
-      conf.setTablePrefix("EntityCentric_");
       RyaTableMutationsFactory rtm = new 
RyaTableMutationsFactory(RyaTripleContext.getInstance(conf));
 
 
@@ -1720,7 +1712,6 @@ public class AccumuloDocIndexerTest {
     public void testContextCommonAndUnCommonVarBs1() throws Exception {
 
       BatchWriter bw = null;
-      conf.setTablePrefix("EntityCentric_");
       RyaTableMutationsFactory rtm = new 
RyaTableMutationsFactory(RyaTripleContext.getInstance(conf));
 
 
@@ -1927,7 +1918,6 @@ public class AccumuloDocIndexerTest {
     public void testContextConstantCommonVar() throws Exception {
 
       BatchWriter bw = null;
-      conf.setTablePrefix("EntityCentric_");
       RyaTableMutationsFactory rtm = new 
RyaTableMutationsFactory(RyaTripleContext.getInstance(conf));
       
 

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/extras/indexing/src/test/java/mvm/rya/indexing/accumulo/freetext/AccumuloFreeTextIndexerTest.java
----------------------------------------------------------------------
diff --git 
a/extras/indexing/src/test/java/mvm/rya/indexing/accumulo/freetext/AccumuloFreeTextIndexerTest.java
 
b/extras/indexing/src/test/java/mvm/rya/indexing/accumulo/freetext/AccumuloFreeTextIndexerTest.java
index 8a19b3a..afea47e 100644
--- 
a/extras/indexing/src/test/java/mvm/rya/indexing/accumulo/freetext/AccumuloFreeTextIndexerTest.java
+++ 
b/extras/indexing/src/test/java/mvm/rya/indexing/accumulo/freetext/AccumuloFreeTextIndexerTest.java
@@ -1,6 +1,7 @@
 package mvm.rya.indexing.accumulo.freetext;
 
 import java.util.HashSet;
+import java.util.List;
 import java.util.Map.Entry;
 import java.util.Set;
 
@@ -13,6 +14,7 @@ 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.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 import org.openrdf.model.Statement;
@@ -47,7 +49,7 @@ import com.google.common.collect.Sets;
 
 
 import info.aduna.iteration.CloseableIteration;
-import junit.framework.Assert;
+import mvm.rya.accumulo.AccumuloRdfConfiguration;
 import mvm.rya.api.domain.RyaStatement;
 import mvm.rya.api.domain.RyaType;
 import mvm.rya.api.domain.RyaURI;
@@ -59,32 +61,32 @@ import mvm.rya.indexing.accumulo.ConfigUtils;
 public class AccumuloFreeTextIndexerTest {
     private static final StatementConstraints EMPTY_CONSTRAINTS = new 
StatementConstraints();
 
-    Configuration conf;
+    private AccumuloRdfConfiguration conf;
 
     @Before
     public void before() throws Exception {
-        String tableName = "triplestore_freetext";
-        String termTableName = "triplestore_freetext_term";
-        conf = new Configuration();
+        conf = new AccumuloRdfConfiguration();
         conf.setBoolean(ConfigUtils.USE_MOCK_INSTANCE, true);
         conf.set(ConfigUtils.CLOUDBASE_USER, "USERNAME");
         conf.set(ConfigUtils.CLOUDBASE_PASSWORD, "PASS");
-        conf.set(ConfigUtils.FREE_TEXT_DOC_TABLENAME, tableName);
-        conf.set(ConfigUtils.FREE_TEXT_TERM_TABLENAME, termTableName);
         conf.set(ConfigUtils.CLOUDBASE_AUTHS, "U");
         conf.setClass(ConfigUtils.TOKENIZER_CLASS, SimpleTokenizer.class, 
Tokenizer.class);
-
-        createTable(conf, tableName);
-        createTable(conf, termTableName);
+        conf.setTablePrefix("triplestore_");
+        
+        // If a table exists from last time, delete it.
+        List<String> tableNames = AccumuloFreeTextIndexer.getTableNames(conf);
+        for (String name : tableNames) {
+            destroyTable(conf, name);
+        }
+        // Tables are created in each test with setConf(conf)
     }
 
-    private static void createTable(Configuration conf, String tablename) 
throws AccumuloException, AccumuloSecurityException,
+    private static void destroyTable(Configuration conf, String tablename) 
throws AccumuloException, AccumuloSecurityException,
             TableNotFoundException, TableExistsException {
         TableOperations tableOps = 
ConfigUtils.getConnector(conf).tableOperations();
         if (tableOps.exists(tablename)) {
             tableOps.delete(tablename);
         }
-        tableOps.create(tablename);
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/extras/indexing/src/test/java/mvm/rya/indexing/accumulo/geo/GeoIndexerSfTest.java
----------------------------------------------------------------------
diff --git 
a/extras/indexing/src/test/java/mvm/rya/indexing/accumulo/geo/GeoIndexerSfTest.java
 
b/extras/indexing/src/test/java/mvm/rya/indexing/accumulo/geo/GeoIndexerSfTest.java
index 0f19a4c..81be7d4 100644
--- 
a/extras/indexing/src/test/java/mvm/rya/indexing/accumulo/geo/GeoIndexerSfTest.java
+++ 
b/extras/indexing/src/test/java/mvm/rya/indexing/accumulo/geo/GeoIndexerSfTest.java
@@ -26,20 +26,18 @@ import info.aduna.iteration.CloseableIteration;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
-import java.util.UUID;
 
 import mvm.rya.accumulo.AccumuloRdfConfiguration;
+import mvm.rya.api.RdfCloudTripleStoreConfiguration;
 import mvm.rya.api.domain.RyaStatement;
 import mvm.rya.api.resolver.RdfToRyaConversions;
 import mvm.rya.api.resolver.RyaToRdfConversions;
-import mvm.rya.indexing.GeoIndexer;
 import mvm.rya.indexing.StatementConstraints;
 import mvm.rya.indexing.accumulo.ConfigUtils;
 import mvm.rya.indexing.accumulo.geo.GeoConstants;
 import mvm.rya.indexing.accumulo.geo.GeoMesaGeoIndexer;
 
 import org.apache.accumulo.core.client.admin.TableOperations;
-import org.apache.hadoop.conf.Configuration;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
@@ -67,7 +65,7 @@ import 
com.vividsolutions.jts.geom.impl.PackedCoordinateSequence;
  * Tests all of the "simple functions" of the geoindexer.
  */
 public class GeoIndexerSfTest {
-    private static Configuration conf;
+    private static AccumuloRdfConfiguration conf;
     private static GeometryFactory gf = new GeometryFactory(new 
PrecisionModel(), 4326);
     private static GeoMesaGeoIndexer g;
 
@@ -111,13 +109,12 @@ public class GeoIndexerSfTest {
 
     @Before
     public void before() throws Exception {
-        System.out.println(UUID.randomUUID().toString());
-        String tableName = "triplestore_geospacial";
-        conf = new Configuration();
+        conf = new AccumuloRdfConfiguration();
+        conf.setTablePrefix("triplestore_");
+        String tableName = GeoMesaGeoIndexer.getTableName(conf);
         conf.setBoolean(ConfigUtils.USE_MOCK_INSTANCE, true);
         conf.set(ConfigUtils.CLOUDBASE_USER, "USERNAME");
         conf.set(ConfigUtils.CLOUDBASE_PASSWORD, "PASS");
-        conf.set(ConfigUtils.GEO_TABLENAME, tableName);
         conf.set(ConfigUtils.CLOUDBASE_AUTHS, "U");
 
         TableOperations tops = 
ConfigUtils.getConnector(conf).tableOperations();

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/extras/indexing/src/test/java/mvm/rya/indexing/accumulo/geo/GeoIndexerTest.java
----------------------------------------------------------------------
diff --git 
a/extras/indexing/src/test/java/mvm/rya/indexing/accumulo/geo/GeoIndexerTest.java
 
b/extras/indexing/src/test/java/mvm/rya/indexing/accumulo/geo/GeoIndexerTest.java
index 14cd267..94c265b 100644
--- 
a/extras/indexing/src/test/java/mvm/rya/indexing/accumulo/geo/GeoIndexerTest.java
+++ 
b/extras/indexing/src/test/java/mvm/rya/indexing/accumulo/geo/GeoIndexerTest.java
@@ -26,10 +26,7 @@ import static 
mvm.rya.api.resolver.RdfToRyaConversions.convertStatement;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
-import java.util.UUID;
-
 import org.apache.accumulo.core.client.admin.TableOperations;
-import org.apache.hadoop.conf.Configuration;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
@@ -52,6 +49,8 @@ import com.vividsolutions.jts.geom.PrecisionModel;
 import com.vividsolutions.jts.geom.impl.PackedCoordinateSequence;
 
 import info.aduna.iteration.CloseableIteration;
+import mvm.rya.accumulo.AccumuloRdfConfiguration;
+import mvm.rya.api.RdfCloudTripleStoreConfiguration;
 import mvm.rya.indexing.StatementConstraints;
 import mvm.rya.indexing.accumulo.ConfigUtils;
 
@@ -59,18 +58,17 @@ public class GeoIndexerTest {
 
     private static final StatementConstraints EMPTY_CONSTRAINTS = new 
StatementConstraints();
 
-    Configuration conf;
+    private AccumuloRdfConfiguration conf;
     GeometryFactory gf = new GeometryFactory(new PrecisionModel(), 4326);
 
     @Before
     public void before() throws Exception {
-        System.out.println(UUID.randomUUID().toString());
-        String tableName = "triplestore_geospacial";
-        conf = new Configuration();
+        conf = new AccumuloRdfConfiguration();
+        conf.setTablePrefix("triplestore_");
+        String tableName = GeoMesaGeoIndexer.getTableName(conf);
         conf.setBoolean(ConfigUtils.USE_MOCK_INSTANCE, true);
         conf.set(ConfigUtils.CLOUDBASE_USER, "USERNAME");
         conf.set(ConfigUtils.CLOUDBASE_PASSWORD, "PASS");
-        conf.set(ConfigUtils.GEO_TABLENAME, tableName);
         conf.set(ConfigUtils.CLOUDBASE_AUTHS, "U");
 
         TableOperations tops = 
ConfigUtils.getConnector(conf).tableOperations();

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/extras/indexing/src/test/java/mvm/rya/indexing/accumulo/temporal/AccumuloTemporalIndexerTest.java
----------------------------------------------------------------------
diff --git 
a/extras/indexing/src/test/java/mvm/rya/indexing/accumulo/temporal/AccumuloTemporalIndexerTest.java
 
b/extras/indexing/src/test/java/mvm/rya/indexing/accumulo/temporal/AccumuloTemporalIndexerTest.java
index d2dfc44..bfaa73d 100644
--- 
a/extras/indexing/src/test/java/mvm/rya/indexing/accumulo/temporal/AccumuloTemporalIndexerTest.java
+++ 
b/extras/indexing/src/test/java/mvm/rya/indexing/accumulo/temporal/AccumuloTemporalIndexerTest.java
@@ -21,9 +21,8 @@ package mvm.rya.indexing.accumulo.temporal;
 
 
 import static mvm.rya.api.resolver.RdfToRyaConversions.convertStatement;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
+import static org.junit.Assert.*; 
+import org.junit.Assert; 
 import java.io.IOException;
 import java.io.PrintStream;
 import java.security.NoSuchAlgorithmException;
@@ -36,8 +35,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
-import java.util.concurrent.atomic.AtomicLong;
-
 import org.apache.accumulo.core.client.AccumuloException;
 import org.apache.accumulo.core.client.AccumuloSecurityException;
 import org.apache.accumulo.core.client.Scanner;
@@ -67,7 +64,7 @@ import org.openrdf.query.QueryEvaluationException;
 import com.beust.jcommander.internal.Lists;
 
 import info.aduna.iteration.CloseableIteration;
-import junit.framework.Assert;
+import mvm.rya.api.RdfCloudTripleStoreConfiguration;
 import mvm.rya.api.domain.RyaStatement;
 import mvm.rya.indexing.StatementConstraints;
 import mvm.rya.indexing.StatementSerializer;
@@ -95,6 +92,9 @@ import mvm.rya.indexing.accumulo.ConfigUtils;
  *   Instance {hasBeginning, hasEnd} given Interval
  * And a few more.
  *
+ *  The temporal predicates are from these ontologies: 
+ *      http://linkedevents.org/ontology
+ *      http://motools.sourceforge.net/event/event.html
  */
 public final class AccumuloTemporalIndexerTest {
     // Configuration properties, this is reset per test in setup.
@@ -108,14 +108,8 @@ public final class AccumuloTemporalIndexerTest {
     private static final String STAT_COUNT = "count";
     private static final String STAT_KEYHASH = "keyhash";
     private static final String STAT_VALUEHASH = "valuehash";
-    private static final String TEST_TEMPORAL_INDEX_TABLE_NAME = 
"testTemporalIndex";
     private static final StatementConstraints EMPTY_CONSTRAINTS = new 
StatementConstraints();
 
-    // Recreate table name for each test instance in this JVM.
-    String uniquePerTestTemporalIndexTableName = 
TEST_TEMPORAL_INDEX_TABLE_NAME + String.format("%05d", 
nextTableSuffixAtomic.getAndIncrement());
-    // start at 0, for uniqueness between jvm's consider AtomicLong(new 
Random().nextLong())
-    private static final AtomicLong nextTableSuffixAtomic = new AtomicLong();
-
     // Assign this in setUpBeforeClass, store them in each test.
     // setup() deletes table before each test.
     static final Statement spo_B00_E01;
@@ -213,18 +207,6 @@ public final class AccumuloTemporalIndexerTest {
     }
 
     /**
-     * Create a table for test after deleting it.
-     */
-    private static void createTable(Configuration conf, String tablename)
-            throws AccumuloException, AccumuloSecurityException, 
TableNotFoundException, TableExistsException {
-        TableOperations tableOps = 
ConfigUtils.getConnector(conf).tableOperations();
-        if (tableOps.exists(tablename)) {
-            tableOps.delete(tablename);
-        }
-        tableOps.create(tablename);
-    }
-
-    /**
      * @throws java.lang.Exception
      */
     @AfterClass
@@ -237,17 +219,15 @@ public final class AccumuloTemporalIndexerTest {
     @Before
     public void setUp() throws Exception {
         conf = new Configuration();
+        conf.set(RdfCloudTripleStoreConfiguration.CONF_TBL_PREFIX, 
"triplestore_");
         conf.setBoolean(ConfigUtils.USE_MOCK_INSTANCE, true);
-        conf.set(ConfigUtils.TEMPORAL_TABLENAME, 
uniquePerTestTemporalIndexTableName);
-        // This is from http://linkedevents.org/ontology
+        // The temporal predicates are from http://linkedevents.org/ontology
         // and http://motools.sourceforge.net/event/event.html
         conf.setStrings(ConfigUtils.TEMPORAL_PREDICATES_LIST, ""
                 + URI_PROPERTY_AT_TIME + ","
                 + URI_PROPERTY_CIRCA + ","
                 + URI_PROPERTY_EVENT_TIME);
 
-        // delete and create table
-        createTable(conf, uniquePerTestTemporalIndexTableName);
         tIndexer = new AccumuloTemporalIndexer();
         tIndexer.setConf(conf);
     }
@@ -257,11 +237,12 @@ public final class AccumuloTemporalIndexerTest {
      */
     @After
     public void tearDown() throws Exception {
+       String indexTableName = tIndexer.getTableName();
         tIndexer.close();
         TableOperations tableOps = 
ConfigUtils.getConnector(conf).tableOperations();
 
-        if (tableOps.exists(uniquePerTestTemporalIndexTableName))
-            tableOps.delete(uniquePerTestTemporalIndexTableName);
+        if (tableOps.exists(indexTableName))
+            tableOps.delete(indexTableName);
     }
 
     /**
@@ -334,7 +315,7 @@ public final class AccumuloTemporalIndexerTest {
         tIndexer.flush();
 
         int rowsStoredActual = printTables("junit testing: Temporal entities 
stored in testStoreStatement", null, null);
-        Assert.assertEquals("Number of rows stored.", rowsStoredExpected*4, 
rowsStoredActual); // 4 index entries per statement
+        assertEquals("Number of rows stored.", rowsStoredExpected*4, 
rowsStoredActual); // 4 index entries per statement
 
     }
 
@@ -995,10 +976,11 @@ public final class AccumuloTemporalIndexerTest {
         int rowsPrinted = 0;
         long keyHasher = 0;
         long valueHasher = 0;
-        out.println("Reading : " + this.uniquePerTestTemporalIndexTableName);
+        final String indexTableName = tIndexer.getTableName();
+        out.println("Reading : " + indexTableName);
         out.format(FORMAT, "--Row--", "--ColumnFamily--", 
"--ColumnQualifier--", "--Value--");
 
-        Scanner s = 
ConfigUtils.getConnector(conf).createScanner(this.uniquePerTestTemporalIndexTableName,
 Authorizations.EMPTY);
+        Scanner s = 
ConfigUtils.getConnector(conf).createScanner(indexTableName, 
Authorizations.EMPTY);
         for (Entry<Key, org.apache.accumulo.core.data.Value> entry : s) {
             rowsPrinted++;
             Key k = entry.getKey();

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/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 917bfa0..4d686fc 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
@@ -31,6 +31,7 @@ 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.PrecomputedJoinIndexerConfig.PrecomputedJoinStorageType;
 import mvm.rya.indexing.external.tupleSet.AccumuloIndexSet;
 import mvm.rya.indexing.external.tupleSet.ExternalTupleSet;
 import mvm.rya.indexing.pcj.matching.PCJOptimizer;
@@ -1435,11 +1436,12 @@ public class AccumuloPcjIntegrationTest {
        private static Configuration getConf() {
                final AccumuloRdfConfiguration conf = new 
AccumuloRdfConfiguration();
                conf.setBoolean(ConfigUtils.USE_MOCK_INSTANCE, true);
-               conf.set(RdfCloudTripleStoreConfiguration.CONF_TBL_PREFIX, 
"rya_");
+               conf.setTablePrefix("rya_");
                conf.set(ConfigUtils.CLOUDBASE_USER, "root");
                conf.set(ConfigUtils.CLOUDBASE_PASSWORD, "");
                conf.set(ConfigUtils.CLOUDBASE_INSTANCE, "instance");
                conf.set(ConfigUtils.CLOUDBASE_AUTHS, "");
+               
conf.set(PrecomputedJoinIndexerConfig.PCJ_STORAGE_TYPE,PrecomputedJoinStorageType.ACCUMULO.name());
                return conf;
        }
 

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/extras/indexing/src/test/java/mvm/rya/indexing/external/PcjIntegrationTestingUtil.java
----------------------------------------------------------------------
diff --git 
a/extras/indexing/src/test/java/mvm/rya/indexing/external/PcjIntegrationTestingUtil.java
 
b/extras/indexing/src/test/java/mvm/rya/indexing/external/PcjIntegrationTestingUtil.java
index c11c7e2..5cc3f9a 100644
--- 
a/extras/indexing/src/test/java/mvm/rya/indexing/external/PcjIntegrationTestingUtil.java
+++ 
b/extras/indexing/src/test/java/mvm/rya/indexing/external/PcjIntegrationTestingUtil.java
@@ -65,6 +65,7 @@ import com.google.common.collect.Sets;
 import mvm.rya.accumulo.AccumuloRdfConfiguration;
 import mvm.rya.api.persist.RyaDAOException;
 import mvm.rya.indexing.accumulo.ConfigUtils;
+import 
mvm.rya.indexing.external.PrecomputedJoinIndexerConfig.PrecomputedJoinStorageType;
 import mvm.rya.indexing.external.tupleSet.ExternalTupleSet;
 import mvm.rya.rdftriplestore.inference.InferenceEngineException;
 import mvm.rya.sail.config.RyaSailFactory;
@@ -101,6 +102,7 @@ public class PcjIntegrationTestingUtil {
 
         final AccumuloRdfConfiguration pcjConf = new 
AccumuloRdfConfiguration();
         pcjConf.set(ConfigUtils.USE_PCJ, "true");
+        
pcjConf.set(PrecomputedJoinIndexerConfig.PCJ_STORAGE_TYPE,PrecomputedJoinStorageType.ACCUMULO.name());
         populateTestConfig(instance, tablePrefix, pcjConf);
 
         final Sail pcjSail = RyaSailFactory.getInstance(pcjConf);

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/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
index aef08a4..28c8389 100644
--- 
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
@@ -223,7 +223,7 @@ public class AccumuloIndexSetColumnVisibilityTest {
 
        private static Configuration getConf() {
                final AccumuloRdfConfiguration conf = new 
AccumuloRdfConfiguration();
-               conf.set(RdfCloudTripleStoreConfiguration.CONF_TBL_PREFIX, 
"rya_");
+               conf.setTablePrefix("rya_");
                conf.set(ConfigUtils.CLOUDBASE_USER, "root");
                conf.set(ConfigUtils.CLOUDBASE_PASSWORD, "password");
                conf.set(ConfigUtils.CLOUDBASE_INSTANCE, instance);

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/extras/indexing/src/test/java/mvm/rya/indexing/mongo/MongoFreeTextIndexerTest.java
----------------------------------------------------------------------
diff --git 
a/extras/indexing/src/test/java/mvm/rya/indexing/mongo/MongoFreeTextIndexerTest.java
 
b/extras/indexing/src/test/java/mvm/rya/indexing/mongo/MongoFreeTextIndexerTest.java
index eac5353..91ba955 100644
--- 
a/extras/indexing/src/test/java/mvm/rya/indexing/mongo/MongoFreeTextIndexerTest.java
+++ 
b/extras/indexing/src/test/java/mvm/rya/indexing/mongo/MongoFreeTextIndexerTest.java
@@ -21,7 +21,7 @@ package mvm.rya.indexing.mongo;
 import java.util.HashSet;
 import java.util.Set;
 
-import org.apache.hadoop.conf.Configuration;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 import org.openrdf.model.Statement;
@@ -38,7 +38,7 @@ import com.mongodb.MongoClient;
 import de.flapdoodle.embed.mongo.distribution.Version;
 import de.flapdoodle.embed.mongo.tests.MongodForTestsFactory;
 import info.aduna.iteration.CloseableIteration;
-import junit.framework.Assert;
+import mvm.rya.accumulo.AccumuloRdfConfiguration;
 import mvm.rya.api.domain.RyaStatement;
 import mvm.rya.api.domain.RyaType;
 import mvm.rya.api.domain.RyaURI;
@@ -52,17 +52,17 @@ import mvm.rya.mongodb.MongoDBRdfConfiguration;
 public class MongoFreeTextIndexerTest {
     private static final StatementConstraints EMPTY_CONSTRAINTS = new 
StatementConstraints();
 
-    Configuration conf;
+    AccumuloRdfConfiguration conf;
     MongoClient mongoClient;
 
     @Before
     public void before() throws Exception {
-        conf = new Configuration();
+        conf = new AccumuloRdfConfiguration();
         conf.set(ConfigUtils.USE_MONGO, "true");
         conf.set(MongoDBRdfConfiguration.USE_TEST_MONGO, "true");
         conf.set(MongoDBRdfConfiguration.MONGO_DB_NAME, "test");
         conf.set(MongoDBRdfConfiguration.MONGO_COLLECTION_PREFIX, "rya_");
-        conf.set(ConfigUtils.FREE_TEXT_DOC_TABLENAME, "freetext");
+        conf.setTablePrefix("another_");
         final MongodForTestsFactory testsFactory = 
MongodForTestsFactory.with(Version.Main.PRODUCTION);
         mongoClient = testsFactory.newMongo();
    }

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/extras/indexing/src/test/java/mvm/rya/indexing/mongo/MongoGeoIndexerSfTest.java
----------------------------------------------------------------------
diff --git 
a/extras/indexing/src/test/java/mvm/rya/indexing/mongo/MongoGeoIndexerSfTest.java
 
b/extras/indexing/src/test/java/mvm/rya/indexing/mongo/MongoGeoIndexerSfTest.java
index 1220370..3368d6e 100644
--- 
a/extras/indexing/src/test/java/mvm/rya/indexing/mongo/MongoGeoIndexerSfTest.java
+++ 
b/extras/indexing/src/test/java/mvm/rya/indexing/mongo/MongoGeoIndexerSfTest.java
@@ -65,7 +65,7 @@ import mvm.rya.mongodb.MongoDBRdfConfiguration;
  * Tests all of the "simple functions" of the geoindexer.
  */
 public class MongoGeoIndexerSfTest {
-    private static Configuration conf;
+    private MongoDBRdfConfiguration conf;
     private static GeometryFactory gf = new GeometryFactory(new 
PrecisionModel(), 4326);
     private static MongoGeoIndexer g;
 
@@ -110,14 +110,14 @@ public class MongoGeoIndexerSfTest {
     @Before
     public void before() throws Exception {
         System.out.println(UUID.randomUUID().toString());
-        conf = new Configuration();
+        conf = new MongoDBRdfConfiguration();
         conf.set(ConfigUtils.USE_MONGO, "true");
         conf.set(MongoDBRdfConfiguration.USE_TEST_MONGO, "true");
         conf.set(MongoDBRdfConfiguration.MONGO_DB_NAME, "test");
         conf.set(MongoDBRdfConfiguration.MONGO_COLLECTION_PREFIX, "rya_");
         conf.set(ConfigUtils.GEO_PREDICATES_LIST, 
"http://www.opengis.net/ont/geosparql#asWKT";);
         conf.set(ConfigUtils.USE_GEO, "true");
-        conf.set(RdfCloudTripleStoreConfiguration.CONF_TBL_PREFIX, "rya_");
+        conf.setTablePrefix("rya_");
 
         final MongodForTestsFactory testsFactory = 
MongodForTestsFactory.with(Version.Main.PRODUCTION);
         final MongoClient mongoClient = testsFactory.newMongo();

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/extras/indexing/src/test/java/mvm/rya/indexing/mongo/MongoGeoIndexerTest.java
----------------------------------------------------------------------
diff --git 
a/extras/indexing/src/test/java/mvm/rya/indexing/mongo/MongoGeoIndexerTest.java 
b/extras/indexing/src/test/java/mvm/rya/indexing/mongo/MongoGeoIndexerTest.java
index cdbf36a..7a2dc8e 100644
--- 
a/extras/indexing/src/test/java/mvm/rya/indexing/mongo/MongoGeoIndexerTest.java
+++ 
b/extras/indexing/src/test/java/mvm/rya/indexing/mongo/MongoGeoIndexerTest.java
@@ -53,7 +53,6 @@ import 
com.vividsolutions.jts.geom.impl.PackedCoordinateSequence;
 import de.flapdoodle.embed.mongo.distribution.Version;
 import de.flapdoodle.embed.mongo.tests.MongodForTestsFactory;
 import info.aduna.iteration.CloseableIteration;
-import mvm.rya.api.RdfCloudTripleStoreConfiguration;
 import mvm.rya.indexing.StatementConstraints;
 import mvm.rya.indexing.accumulo.ConfigUtils;
 import mvm.rya.indexing.accumulo.geo.GeoConstants;
@@ -64,21 +63,20 @@ public class MongoGeoIndexerTest {
 
     private static final StatementConstraints EMPTY_CONSTRAINTS = new 
StatementConstraints();
 
-    Configuration conf;
+    MongoDBRdfConfiguration conf;
     MongoClient mongoClient;
     GeometryFactory gf = new GeometryFactory(new PrecisionModel(), 4326);
 
     @Before
     public void before() throws Exception {
-        conf = new Configuration();
+        conf = new MongoDBRdfConfiguration();
         conf.set(ConfigUtils.USE_MONGO, "true");
         conf.set(MongoDBRdfConfiguration.USE_TEST_MONGO, "true");
         conf.set(MongoDBRdfConfiguration.MONGO_DB_NAME, "test");
         conf.set(MongoDBRdfConfiguration.MONGO_COLLECTION_PREFIX, "rya_");
         conf.set(ConfigUtils.GEO_PREDICATES_LIST, 
"http://www.opengis.net/ont/geosparql#asWKT";);
         conf.set(ConfigUtils.USE_GEO, "true");
-        conf.set(RdfCloudTripleStoreConfiguration.CONF_TBL_PREFIX, "rya_");
-        conf.set(ConfigUtils.GEO_TABLENAME, "geospacial");
+        conf.setTablePrefix("rya_");
 
         final MongodForTestsFactory testsFactory = 
MongodForTestsFactory.with(Version.Main.PRODUCTION);
         mongoClient = testsFactory.newMongo();

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/extras/indexing/src/test/java/mvm/rya/indexing/mongo/MongoTemporalIndexerTest.java
----------------------------------------------------------------------
diff --git 
a/extras/indexing/src/test/java/mvm/rya/indexing/mongo/MongoTemporalIndexerTest.java
 
b/extras/indexing/src/test/java/mvm/rya/indexing/mongo/MongoTemporalIndexerTest.java
index c8e1289..a8481fe 100644
--- 
a/extras/indexing/src/test/java/mvm/rya/indexing/mongo/MongoTemporalIndexerTest.java
+++ 
b/extras/indexing/src/test/java/mvm/rya/indexing/mongo/MongoTemporalIndexerTest.java
@@ -29,8 +29,6 @@ import java.io.IOException;
 import java.security.NoSuchAlgorithmException;
 import java.util.Arrays;
 import java.util.HashSet;
-import java.util.concurrent.atomic.AtomicLong;
-
 import org.apache.accumulo.core.client.TableExistsException;
 import org.apache.accumulo.core.client.TableNotFoundException;
 import org.apache.hadoop.conf.Configuration;
@@ -85,7 +83,7 @@ import mvm.rya.mongodb.MongoDBRdfConfiguration;
  *
  */
 public final class MongoTemporalIndexerTest {
-    Configuration conf;
+    MongoDBRdfConfiguration conf;
     MongoTemporalIndexer tIndexer;
     DBCollection collection;
 
@@ -93,14 +91,8 @@ public final class MongoTemporalIndexerTest {
     private static final String URI_PROPERTY_CIRCA = "Property:circa";
     private static final String URI_PROPERTY_AT_TIME = "Property:atTime";
     private static final String STAT_VALUEHASH = "valuehash";
-    private static final String TEST_TEMPORAL_INDEX_TABLE_NAME = 
"testTemporalIndex";
     private static final StatementConstraints EMPTY_CONSTRAINTS = new 
StatementConstraints();
 
-    // Recreate table name for each test instance in this JVM.
-    String uniquePerTestTemporalIndexTableName = 
TEST_TEMPORAL_INDEX_TABLE_NAME + String.format("%05d", 
nextTableSuffixAtomic.getAndIncrement());
-    // start at 0, for uniqueness between jvm's consider AtomicLong(new 
Random().nextLong())
-    private static final AtomicLong nextTableSuffixAtomic = new AtomicLong();
-
     // Assign this in setUpBeforeClass, store them in each test.
     // setup() deletes table before each test.
     static final Statement spo_B00_E01;
@@ -184,12 +176,13 @@ public final class MongoTemporalIndexerTest {
 
     @Before
     public void before() throws Exception {
-        conf = new Configuration();
+        conf = new MongoDBRdfConfiguration();
         conf.set(ConfigUtils.USE_MONGO, "true");
         conf.set(MongoDBRdfConfiguration.USE_TEST_MONGO, "true");
         conf.set(MongoDBRdfConfiguration.MONGO_DB_NAME, "test");
         conf.set(MongoDBRdfConfiguration.MONGO_COLLECTION_PREFIX, "rya_");
-        conf.set(ConfigUtils.TEMPORAL_TABLENAME, 
uniquePerTestTemporalIndexTableName);
+        conf.setTablePrefix("isthisused_");
+        
         // This is from http://linkedevents.org/ontology
         // and http://motools.sourceforge.net/event/event.html
         conf.setStrings(ConfigUtils.TEMPORAL_PREDICATES_LIST, ""

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/extras/indexingExample/src/main/java/EntityDirectExample.java
----------------------------------------------------------------------
diff --git a/extras/indexingExample/src/main/java/EntityDirectExample.java 
b/extras/indexingExample/src/main/java/EntityDirectExample.java
index d8e74e1..6efd933 100644
--- a/extras/indexingExample/src/main/java/EntityDirectExample.java
+++ b/extras/indexingExample/src/main/java/EntityDirectExample.java
@@ -243,8 +243,7 @@ public class EntityDirectExample {
 
         conf.setBoolean(ConfigUtils.USE_MOCK_INSTANCE, USE_MOCK_INSTANCE);
         conf.set(ConfigUtils.USE_ENTITY, "true");
-        conf.set(RdfCloudTripleStoreConfiguration.CONF_TBL_PREFIX, 
RYA_TABLE_PREFIX);
-        conf.set(ConfigUtils.ENTITY_TABLENAME, RYA_TABLE_PREFIX + "entity");
+        conf.setTablePrefix(RYA_TABLE_PREFIX);
         conf.set(ConfigUtils.CLOUDBASE_USER, "root");
         conf.set(ConfigUtils.CLOUDBASE_PASSWORD, "");
         conf.set(ConfigUtils.CLOUDBASE_INSTANCE, INSTANCE);

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/extras/indexingExample/src/main/java/MongoRyaDirectExample.java
----------------------------------------------------------------------
diff --git a/extras/indexingExample/src/main/java/MongoRyaDirectExample.java 
b/extras/indexingExample/src/main/java/MongoRyaDirectExample.java
index c1ff790..9c746c8 100644
--- a/extras/indexingExample/src/main/java/MongoRyaDirectExample.java
+++ b/extras/indexingExample/src/main/java/MongoRyaDirectExample.java
@@ -43,7 +43,6 @@ import org.openrdf.repository.sail.SailRepository;
 import org.openrdf.repository.sail.SailRepositoryConnection;
 import org.openrdf.sail.Sail;
 
-import mvm.rya.api.RdfCloudTripleStoreConfiguration;
 import mvm.rya.indexing.accumulo.ConfigUtils;
 import mvm.rya.indexing.accumulo.geo.GeoConstants;
 import mvm.rya.mongodb.MongoDBRdfConfiguration;
@@ -249,15 +248,18 @@ public class MongoRyaDirectExample {
 
     private static Configuration getConf() {
 
-        Configuration conf = new Configuration();
+        MongoDBRdfConfiguration conf = new MongoDBRdfConfiguration();
         conf.set(ConfigUtils.USE_MONGO, "true");
+        // User name and password must be filled in:
+        conf.set(MongoDBRdfConfiguration.MONGO_USER, "fill this in");
+        conf.set(MongoDBRdfConfiguration.MONGO_USER_PASSWORD, "fill this in");
         conf.set(MongoDBRdfConfiguration.USE_TEST_MONGO, "true");
         conf.set(MongoDBRdfConfiguration.MONGO_DB_NAME, MONGO_DB);
         conf.set(MongoDBRdfConfiguration.MONGO_COLLECTION_PREFIX, 
MONGO_COLL_PREFIX);
         conf.set(ConfigUtils.GEO_PREDICATES_LIST, 
"http://www.opengis.net/ont/geosparql#asWKT";);
         conf.set(ConfigUtils.USE_GEO, "true");
         conf.set(ConfigUtils.USE_FREETEXT, "true");
-        conf.set(RdfCloudTripleStoreConfiguration.CONF_TBL_PREFIX, 
MONGO_COLL_PREFIX);
+        conf.setTablePrefix(MONGO_COLL_PREFIX);
         conf.set(ConfigUtils.GEO_PREDICATES_LIST, 
GeoConstants.GEO_AS_WKT.stringValue());
         conf.set(ConfigUtils.FREETEXT_PREDICATES_LIST, 
RDFS.LABEL.stringValue());
         return conf;

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/39a46dad/extras/indexingExample/src/main/java/RyaDirectExample.java
----------------------------------------------------------------------
diff --git a/extras/indexingExample/src/main/java/RyaDirectExample.java 
b/extras/indexingExample/src/main/java/RyaDirectExample.java
index d912060..cb69f51 100644
--- a/extras/indexingExample/src/main/java/RyaDirectExample.java
+++ b/extras/indexingExample/src/main/java/RyaDirectExample.java
@@ -25,6 +25,8 @@ import mvm.rya.api.RdfCloudTripleStoreConfiguration;
 import mvm.rya.api.persist.RyaDAOException;
 import mvm.rya.indexing.accumulo.ConfigUtils;
 import mvm.rya.indexing.accumulo.geo.GeoConstants;
+import mvm.rya.indexing.external.PrecomputedJoinIndexerConfig;
+import 
mvm.rya.indexing.external.PrecomputedJoinIndexerConfig.PrecomputedJoinStorageType;
 import mvm.rya.rdftriplestore.inference.InferenceEngineException;
 import mvm.rya.sail.config.RyaSailFactory;
 
@@ -89,7 +91,6 @@ public class RyaDirectExample {
 
                try {
                        log.info("Connecting to Indexing Sail Repository.");
-
                        final Sail extSail = RyaSailFactory.getInstance(conf);
                        repository = new SailRepository(extSail);
                        repository.initialize();
@@ -156,8 +157,8 @@ public class RyaDirectExample {
                conf.set(ConfigUtils.USE_GEO, "true");
                conf.set(ConfigUtils.USE_FREETEXT, "true");
                conf.set(ConfigUtils.USE_TEMPORAL, "true");
-               conf.set(RdfCloudTripleStoreConfiguration.CONF_TBL_PREFIX,
-                               RYA_TABLE_PREFIX);
+               conf.set(PrecomputedJoinIndexerConfig.PCJ_STORAGE_TYPE, 
PrecomputedJoinStorageType.ACCUMULO.name());
+               conf.set(RdfCloudTripleStoreConfiguration.CONF_TBL_PREFIX, 
RYA_TABLE_PREFIX);
                conf.set(ConfigUtils.CLOUDBASE_USER, "root");
                conf.set(ConfigUtils.CLOUDBASE_PASSWORD, "");
                conf.set(ConfigUtils.CLOUDBASE_INSTANCE, INSTANCE);

Reply via email to