You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rya.apache.org by mi...@apache.org on 2016/10/15 20:07:27 UTC

[67/69] [abbrv] incubator-rya git commit: RYA-179 fixed license

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/1d33b435/extras/rya.merger/src/main/java/org/apache/rya/accumulo/mr/merge/util/AccumuloRyaUtils.java
----------------------------------------------------------------------
diff --git a/extras/rya.merger/src/main/java/org/apache/rya/accumulo/mr/merge/util/AccumuloRyaUtils.java b/extras/rya.merger/src/main/java/org/apache/rya/accumulo/mr/merge/util/AccumuloRyaUtils.java
index 8bf36ed..e702e64 100644
--- a/extras/rya.merger/src/main/java/org/apache/rya/accumulo/mr/merge/util/AccumuloRyaUtils.java
+++ b/extras/rya.merger/src/main/java/org/apache/rya/accumulo/mr/merge/util/AccumuloRyaUtils.java
@@ -1,24 +1,22 @@
-package org.apache.rya.accumulo.mr.merge.util;
-
 /*
- * #%L
- * org.apache.rya.accumulo.mr.merge
- * %%
- * Copyright (C) 2014 Rya
- * %%
- * Licensed 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
+ *     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.
- * #L%
+ * 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.
  */
+package org.apache.rya.accumulo.mr.merge.util;
 
 import java.io.IOException;
 import java.text.ParseException;
@@ -45,6 +43,7 @@ import org.apache.accumulo.core.client.mock.MockInstance;
 import org.apache.accumulo.core.client.security.tokens.PasswordToken;
 import org.apache.accumulo.core.data.Key;
 import org.apache.accumulo.core.data.Value;
+import org.apache.accumulo.core.iterators.Filter;
 import org.apache.accumulo.core.iterators.user.RegExFilter;
 import org.apache.accumulo.core.security.Authorizations;
 import org.apache.commons.lang.StringUtils;
@@ -112,7 +111,7 @@ public final class AccumuloRyaUtils {
      * @param localName the URI's local name.
      * @return the {@link RyraURI}.
      */
-    public static RyaURI createRyaUri(String localName) {
+    public static RyaURI createRyaUri(final String localName) {
         return createRyaUri(NAMESPACE, localName);
     }
 
@@ -122,7 +121,7 @@ public final class AccumuloRyaUtils {
      * @param localName the URI's local name.
      * @return the {@link RyraURI}.
      */
-    public static RyaURI createRyaUri(String namespace, String localName) {
+    public static RyaURI createRyaUri(final String namespace, final String localName) {
         return RdfToRyaConversions.convertURI(VALUE_FACTORY.createURI(namespace, localName));
     }
 
@@ -131,9 +130,9 @@ public final class AccumuloRyaUtils {
      * @param date the copy tool run time {@link Date}.
      * @return the {@link RyaStatement} for the copy tool run time.
      */
-    public static RyaStatement createCopyToolRunTimeRyaStatement(Date date) {
-        Literal literal = VALUE_FACTORY.createLiteral(date != null ? date : DEFAULT_DATE);
-        RyaType timeObject = new RyaType(literal.getDatatype(), literal.stringValue());
+    public static RyaStatement createCopyToolRunTimeRyaStatement(final Date date) {
+        final Literal literal = VALUE_FACTORY.createLiteral(date != null ? date : DEFAULT_DATE);
+        final RyaType timeObject = new RyaType(literal.getDatatype(), literal.stringValue());
         return new RyaStatement(RTS_SUBJECT_RYA, RTS_COPY_TOOL_RUN_TIME_PREDICATE_RYA, timeObject);
     }
 
@@ -142,9 +141,9 @@ public final class AccumuloRyaUtils {
      * @param date the copy tool split time {@link Date}.
      * @return the {@link RyaStatement} for the copy tool split time.
      */
-    public static RyaStatement createCopyToolSplitTimeRyaStatement(Date date) {
-        Literal literal = VALUE_FACTORY.createLiteral(date != null ? date : DEFAULT_DATE);
-        RyaType timeObject = new RyaType(literal.getDatatype(), literal.stringValue());
+    public static RyaStatement createCopyToolSplitTimeRyaStatement(final Date date) {
+        final Literal literal = VALUE_FACTORY.createLiteral(date != null ? date : DEFAULT_DATE);
+        final RyaType timeObject = new RyaType(literal.getDatatype(), literal.stringValue());
         return new RyaStatement(RTS_SUBJECT_RYA, RTS_COPY_TOOL_SPLIT_TIME_PREDICATE_RYA, timeObject);
     }
 
@@ -154,13 +153,13 @@ public final class AccumuloRyaUtils {
      * @return the copy tool run {@link Date}.
      * @throws RyaDAOException
      */
-    public static Date getCopyToolRunDate(AccumuloRyaDAO dao) throws RyaDAOException {
-        String time = getCopyToolRunTime(dao);
+    public static Date getCopyToolRunDate(final AccumuloRyaDAO dao) throws RyaDAOException {
+        final String time = getCopyToolRunTime(dao);
         Date date = null;
         if (time != null) {
             try {
                 date = TIME_FORMATTER.parse(time);
-            } catch (ParseException e) {
+            } catch (final ParseException e) {
                 log.error("Unable to parse the copy tool run time found in table: " + time, e);
             }
         }
@@ -173,13 +172,13 @@ public final class AccumuloRyaUtils {
      * @return the copy tool split {@link Date}.
      * @throws RyaDAOException
      */
-    public static Date getCopyToolSplitDate(AccumuloRyaDAO dao) throws RyaDAOException {
-        String time = getCopyToolSplitTime(dao);
+    public static Date getCopyToolSplitDate(final AccumuloRyaDAO dao) throws RyaDAOException {
+        final String time = getCopyToolSplitTime(dao);
         Date date = null;
         if (time != null) {
             try {
                 date = TIME_FORMATTER.parse(time);
-            } catch (ParseException e) {
+            } catch (final ParseException e) {
                 log.error("Unable to parse the copy tool split time found in table: " + time, e);
             }
         }
@@ -192,7 +191,7 @@ public final class AccumuloRyaUtils {
      * @return the copy tool run time value.
      * @throws RyaDAOException
      */
-    public static String getCopyToolRunTime(AccumuloRyaDAO dao) throws RyaDAOException {
+    public static String getCopyToolRunTime(final AccumuloRyaDAO dao) throws RyaDAOException {
         return getMetadata(RTS_COPY_TOOL_RUN_TIME_PREDICATE_RYA, dao);
     }
 
@@ -202,7 +201,7 @@ public final class AccumuloRyaUtils {
      * @return the copy tool split time value.
      * @throws RyaDAOException
      */
-    public static String getCopyToolSplitTime(AccumuloRyaDAO dao) throws RyaDAOException {
+    public static String getCopyToolSplitTime(final AccumuloRyaDAO dao) throws RyaDAOException {
         return getMetadata(RTS_COPY_TOOL_SPLIT_TIME_PREDICATE_RYA, dao);
     }
 
@@ -213,8 +212,8 @@ public final class AccumuloRyaUtils {
      * @return the string value of the object from the metadata key.
      * @throws RyaDAOException
      */
-    private static String getMetadata(RyaURI predicateRyaUri, AccumuloRyaDAO dao) throws RyaDAOException {
-        RyaStatement ryaStatement = new RyaStatement(RTS_SUBJECT_RYA, predicateRyaUri, null);
+    private static String getMetadata(final RyaURI predicateRyaUri, final AccumuloRyaDAO dao) throws RyaDAOException {
+        final RyaStatement ryaStatement = new RyaStatement(RTS_SUBJECT_RYA, predicateRyaUri, null);
         return getMetadata(ryaStatement, dao);
     }
 
@@ -225,10 +224,10 @@ public final class AccumuloRyaUtils {
      * @return the string value of the object from the metadata key.
      * @throws RyaDAOException
      */
-    private static String getMetadata(RyaStatement ryaStatement, AccumuloRyaDAO dao) throws RyaDAOException {
+    private static String getMetadata(final RyaStatement ryaStatement, final AccumuloRyaDAO dao) throws RyaDAOException {
         String metadata = null;
-        AccumuloRdfConfiguration config = dao.getConf();
-        CloseableIteration<RyaStatement, RyaDAOException> iter = dao.getQueryEngine().query(ryaStatement, config);
+        final AccumuloRdfConfiguration config = dao.getConf();
+        final CloseableIteration<RyaStatement, RyaDAOException> iter = dao.getQueryEngine().query(ryaStatement, config);
         if (iter.hasNext()) {
             metadata = iter.next().getObject().getData();
         }
@@ -243,8 +242,8 @@ public final class AccumuloRyaUtils {
      * @param dao the {@link AccumuloRyaDAO}.
      * @throws RyaDAOException
      */
-    public static RyaStatement setCopyToolRunDate(Date date, AccumuloRyaDAO dao) throws RyaDAOException {
-        RyaStatement ryaStatement = createCopyToolRunTimeRyaStatement(date);
+    public static RyaStatement setCopyToolRunDate(final Date date, final AccumuloRyaDAO dao) throws RyaDAOException {
+        final RyaStatement ryaStatement = createCopyToolRunTimeRyaStatement(date);
         dao.add(ryaStatement);
         return ryaStatement;
     }
@@ -255,8 +254,8 @@ public final class AccumuloRyaUtils {
      * @param dao the {@link AccumuloRyaDAO}.
      * @throws RyaDAOException
      */
-    public static RyaStatement setCopyToolSplitDate(Date date, AccumuloRyaDAO dao) throws RyaDAOException {
-        RyaStatement ryaStatement = createCopyToolSplitTimeRyaStatement(date);
+    public static RyaStatement setCopyToolSplitDate(final Date date, final AccumuloRyaDAO dao) throws RyaDAOException {
+        final RyaStatement ryaStatement = createCopyToolSplitTimeRyaStatement(date);
         dao.add(ryaStatement);
         return ryaStatement;
     }
@@ -267,11 +266,11 @@ public final class AccumuloRyaUtils {
      * @param dao the {@link AccumuloRyaDAO}.
      * @throws RyaDAOException
      */
-    public static RyaStatement setCopyToolRunTime(String time, AccumuloRyaDAO dao) throws RyaDAOException {
+    public static RyaStatement setCopyToolRunTime(final String time, final AccumuloRyaDAO dao) throws RyaDAOException {
         Date date = null;
         try {
             date = TIME_FORMATTER.parse(time);
-        } catch (ParseException e) {
+        } catch (final ParseException e) {
             log.error("Unable to parse the copy tool run time: ", e);
         }
         return setCopyToolRunDate(date, dao);
@@ -283,11 +282,11 @@ public final class AccumuloRyaUtils {
      * @param dao the {@link AccumuloRyaDAO}.
      * @throws RyaDAOException
      */
-    public static RyaStatement setCopyToolSplitTime(String time, AccumuloRyaDAO dao) throws RyaDAOException {
+    public static RyaStatement setCopyToolSplitTime(final String time, final AccumuloRyaDAO dao) throws RyaDAOException {
         Date date = null;
         try {
             date = TIME_FORMATTER.parse(time);
-        } catch (ParseException e) {
+        } catch (final ParseException e) {
             log.error("Unable to parse the copy tool split time: ", e);
         }
         return setCopyToolSplitDate(date, dao);
@@ -298,9 +297,9 @@ public final class AccumuloRyaUtils {
      * @return the {@link RegExFilter} {@link IteratorSetting}.
      */
     public static IteratorSetting getVersionRegExFilterSetting() {
-        IteratorSetting regex = new IteratorSetting(30, "version_regex", RegExFilter.class);
+        final IteratorSetting regex = new IteratorSetting(30, "version_regex", RegExFilter.class);
         RegExFilter.setRegexs(regex, "(.*)urn:(.*)#version[\u0000|\u0001](.*)", null, null, null, false);
-        RegExFilter.setNegate(regex, true);
+        Filter.setNegate(regex, true);
         return regex;
     }
 
@@ -309,9 +308,9 @@ public final class AccumuloRyaUtils {
      * @return the {@link RegExFilter} {@link IteratorSetting}.
      */
     public static IteratorSetting getCopyToolRunTimeRegExFilterSetting() {
-        IteratorSetting regex = new IteratorSetting(31, COPY_TOOL_RUN_TIME_LOCAL_NAME + "_regex", RegExFilter.class);
+        final IteratorSetting regex = new IteratorSetting(31, COPY_TOOL_RUN_TIME_LOCAL_NAME + "_regex", RegExFilter.class);
         RegExFilter.setRegexs(regex, "(.*)urn:(.*)#" + COPY_TOOL_RUN_TIME_LOCAL_NAME + "[\u0000|\u0001](.*)", null, null, null, false);
-        RegExFilter.setNegate(regex, true);
+        Filter.setNegate(regex, true);
         return regex;
     }
 
@@ -320,9 +319,9 @@ public final class AccumuloRyaUtils {
      * @return the {@link RegExFilter} {@link IteratorSetting}.
      */
     public static IteratorSetting getCopyToolSplitTimeRegExFilterSetting() {
-        IteratorSetting regex = new IteratorSetting(32, COPY_TOOL_SPLIT_TIME_LOCAL_NAME + "_regex", RegExFilter.class);
+        final IteratorSetting regex = new IteratorSetting(32, COPY_TOOL_SPLIT_TIME_LOCAL_NAME + "_regex", RegExFilter.class);
         RegExFilter.setRegexs(regex, "(.*)urn:(.*)#" + COPY_TOOL_SPLIT_TIME_LOCAL_NAME + "[\u0000|\u0001](.*)", null, null, null, false);
-        RegExFilter.setNegate(regex, true);
+        Filter.setNegate(regex, true);
         return regex;
     }
 
@@ -331,9 +330,9 @@ public final class AccumuloRyaUtils {
      * @return the {@link RegExFilter} {@link IteratorSetting}.
      */
     public static IteratorSetting getCopyToolTimeOffsetRegExFilterSetting() {
-        IteratorSetting regex = new IteratorSetting(33, COPY_TOOL_TIME_OFFSET_LOCAL_NAME + "_regex", RegExFilter.class);
+        final IteratorSetting regex = new IteratorSetting(33, COPY_TOOL_TIME_OFFSET_LOCAL_NAME + "_regex", RegExFilter.class);
         RegExFilter.setRegexs(regex, "(.*)urn:(.*)#" + COPY_TOOL_TIME_OFFSET_LOCAL_NAME + "[\u0000|\u0001](.*)", null, null, null, false);
-        RegExFilter.setNegate(regex, true);
+        Filter.setNegate(regex, true);
         return regex;
     }
 
@@ -342,8 +341,8 @@ public final class AccumuloRyaUtils {
      * certain metadata keys in a table are ignored.
      * @param scanner the {@link Scanner} to add the regex filter {@link IteratorSetting}s to.
      */
-    public static void addCommonScannerIteratorsTo(Scanner scanner) {
-        for (IteratorSetting iteratorSetting : COMMON_REG_EX_FILTER_SETTINGS) {
+    public static void addCommonScannerIteratorsTo(final Scanner scanner) {
+        for (final IteratorSetting iteratorSetting : COMMON_REG_EX_FILTER_SETTINGS) {
             scanner.addScanIterator(iteratorSetting);
         }
     }
@@ -356,7 +355,7 @@ public final class AccumuloRyaUtils {
      * @return the {@link Scanner} for the table.
      * @throws IOException
      */
-    public static Scanner getScanner(String tableName, Configuration config) throws IOException {
+    public static Scanner getScanner(final String tableName, final Configuration config) throws IOException {
         return getScanner(tableName, config, true);
     }
 
@@ -369,22 +368,22 @@ public final class AccumuloRyaUtils {
      * @return the {@link Scanner} for the table.
      * @throws IOException
      */
-    public static Scanner getScanner(String tableName, Configuration config, boolean shouldAddCommonIterators) throws IOException {
+    public static Scanner getScanner(final String tableName, final Configuration config, final boolean shouldAddCommonIterators) throws IOException {
         try {
-            String instanceName = config.get(ConfigUtils.CLOUDBASE_INSTANCE);
-            String zooKeepers = config.get(ConfigUtils.CLOUDBASE_ZOOKEEPERS);
+            final String instanceName = config.get(ConfigUtils.CLOUDBASE_INSTANCE);
+            final String zooKeepers = config.get(ConfigUtils.CLOUDBASE_ZOOKEEPERS);
             Instance instance;
             if (ConfigUtils.useMockInstance(config)) {
                 instance = new MockInstance(config.get(ConfigUtils.CLOUDBASE_INSTANCE));
             } else {
                 instance = new ZooKeeperInstance(new ClientConfiguration().withInstance(instanceName).withZkHosts(zooKeepers));
             }
-            String username = ConfigUtils.getUsername(config);
-            String password = ConfigUtils.getPassword(config);
-            Connector connector = instance.getConnector(username, new PasswordToken(password));
-            Authorizations auths = ConfigUtils.getAuthorizations(config);
+            final String username = ConfigUtils.getUsername(config);
+            final String password = ConfigUtils.getPassword(config);
+            final Connector connector = instance.getConnector(username, new PasswordToken(password));
+            final Authorizations auths = ConfigUtils.getAuthorizations(config);
 
-            Scanner scanner = connector.createScanner(tableName, auths);
+            final Scanner scanner = connector.createScanner(tableName, auths);
             if (shouldAddCommonIterators) {
                 AccumuloRyaUtils.addCommonScannerIteratorsTo(scanner);
             }
@@ -403,7 +402,7 @@ public final class AccumuloRyaUtils {
      * @param settings the additional {@link IteratorSetting}s to add besides the common ones.
      * @throws IOException
      */
-    public static void printTable(String tableName, AccumuloRdfConfiguration config, IteratorSetting... settings) throws IOException {
+    public static void printTable(final String tableName, final AccumuloRdfConfiguration config, final IteratorSetting... settings) throws IOException {
         printTable(tableName, config, true, settings);
     }
 
@@ -416,35 +415,35 @@ public final class AccumuloRyaUtils {
      * @param settings the additional {@link IteratorSetting}s to add besides the common ones.
      * @throws IOException
      */
-    public static void printTable(String tableName, AccumuloRdfConfiguration config, boolean shouldAddCommonIterators, IteratorSetting... settings) throws IOException {
-        Scanner scanner = AccumuloRyaUtils.getScanner(tableName, config, shouldAddCommonIterators);
-        for (IteratorSetting setting : settings) {
+    public static void printTable(final String tableName, final AccumuloRdfConfiguration config, final boolean shouldAddCommonIterators, final IteratorSetting... settings) throws IOException {
+        final Scanner scanner = AccumuloRyaUtils.getScanner(tableName, config, shouldAddCommonIterators);
+        for (final IteratorSetting setting : settings) {
             scanner.addScanIterator(setting);
         }
 
-        Iterator<Entry<Key, Value>> iterator = scanner.iterator();
+        final Iterator<Entry<Key, Value>> iterator = scanner.iterator();
 
-        String instance = config.get(MRUtils.AC_INSTANCE_PROP);
+        final String instance = config.get(MRUtils.AC_INSTANCE_PROP);
         log.info("==================");
         log.info("TABLE: " + tableName + " INSTANCE: " + instance);
         log.info("------------------");
         while (iterator.hasNext()) {
-            Entry<Key, Value> entry = iterator.next();
-            Key key = entry.getKey();
-            Value value = entry.getValue();
-            String keyString = getFormattedKeyString(key);
+            final Entry<Key, Value> entry = iterator.next();
+            final Key key = entry.getKey();
+            final Value value = entry.getValue();
+            final String keyString = getFormattedKeyString(key);
             log.info(keyString + " - " + value);
         }
         log.info("==================");
     }
 
-    private static String getFormattedKeyString(Key key) {
-        StringBuilder sb = new StringBuilder();
-        byte[] row = key.getRow().getBytes();
-        byte[] colFamily = key.getColumnFamily().getBytes();
-        byte[] colQualifier = key.getColumnQualifier().getBytes();
-        byte[] colVisibility = key.getColumnVisibility().getBytes();
-        int maxRowDataToPrint = 256;
+    private static String getFormattedKeyString(final Key key) {
+        final StringBuilder sb = new StringBuilder();
+        final byte[] row = key.getRow().getBytes();
+        final byte[] colFamily = key.getColumnFamily().getBytes();
+        final byte[] colQualifier = key.getColumnQualifier().getBytes();
+        final byte[] colVisibility = key.getColumnVisibility().getBytes();
+        final int maxRowDataToPrint = 256;
         Key.appendPrintableString(row, 0, row.length, maxRowDataToPrint, sb);
         sb.append(" ");
         Key.appendPrintableString(colFamily, 0, colFamily.length, maxRowDataToPrint, sb);
@@ -469,7 +468,7 @@ public final class AccumuloRyaUtils {
      * @param settings the additional {@link IteratorSetting}s to add besides the common ones.
      * @throws IOException
      */
-    public static void printTablePretty(String tableName, Configuration config, IteratorSetting... settings) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, IOException {
+    public static void printTablePretty(final String tableName, final Configuration config, final IteratorSetting... settings) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, IOException {
         printTablePretty(tableName, config, true, settings);
     }
 
@@ -482,23 +481,23 @@ public final class AccumuloRyaUtils {
      * @param settings the additional {@link IteratorSetting}s to add besides the common ones.
      * @throws IOException
      */
-    public static void printTablePretty(String tableName, Configuration config, boolean shouldAddCommonIterators, IteratorSetting... settings) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, IOException {
-        Scanner scanner = AccumuloRyaUtils.getScanner(tableName, config, shouldAddCommonIterators);
-        for (IteratorSetting setting : settings) {
+    public static void printTablePretty(final String tableName, final Configuration config, final boolean shouldAddCommonIterators, final IteratorSetting... settings) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, IOException {
+        final Scanner scanner = AccumuloRyaUtils.getScanner(tableName, config, shouldAddCommonIterators);
+        for (final IteratorSetting setting : settings) {
             scanner.addScanIterator(setting);
         }
 
-        String format = "| %-64s | %-24s | %-28s | %-20s | %-20s | %-10s |";
-        int totalFormatLength = String.format(format, 1, 2, 3, 4, 5, 6).length();
-        String instance = config.get(MRUtils.AC_INSTANCE_PROP);
+        final String format = "| %-64s | %-24s | %-28s | %-20s | %-20s | %-10s |";
+        final int totalFormatLength = String.format(format, 1, 2, 3, 4, 5, 6).length();
+        final String instance = config.get(MRUtils.AC_INSTANCE_PROP);
         log.info(StringUtils.rightPad("==================", totalFormatLength, "="));
         log.info(StringUtils.rightPad("| TABLE: " + tableName + " INSTANCE: " + instance, totalFormatLength - 1) + "|");
         log.info(StringUtils.rightPad("------------------", totalFormatLength, "-"));
         log.info(String.format(format, "--Row--", "--ColumnVisibility--", "--Timestamp--", "--ColumnFamily--", "--ColumnQualifier--", "--Value--"));
         log.info(StringUtils.rightPad("|-----------------", totalFormatLength - 1, "-") + "|");
-        for (Entry<Key, Value> entry : scanner) {
-            Key k = entry.getKey();
-            String rowString = Key.appendPrintableString(k.getRow().getBytes(), 0, k.getRow().getLength(), Constants.MAX_DATA_TO_PRINT, new StringBuilder()).toString();
+        for (final Entry<Key, Value> entry : scanner) {
+            final Key k = entry.getKey();
+            final String rowString = Key.appendPrintableString(k.getRow().getBytes(), 0, k.getRow().getLength(), Constants.MAX_DATA_TO_PRINT, new StringBuilder()).toString();
             log.info(String.format(format, rowString, k.getColumnVisibility(), new Date(k.getTimestamp()), k.getColumnFamily(), k.getColumnQualifier(), entry.getValue()));
         }
         log.info(StringUtils.rightPad("==================", totalFormatLength, "="));
@@ -513,10 +512,10 @@ public final class AccumuloRyaUtils {
      * @throws AccumuloException
      * @throws AccumuloSecurityException
      */
-    public static Authorizations addUserAuths(String user, SecurityOperations secOps, Authorizations auths) throws AccumuloException, AccumuloSecurityException {
-        List<String> authList = new ArrayList<>();
-        for (byte[] authBytes : auths.getAuthorizations()) {
-            String auth = new String(authBytes);
+    public static Authorizations addUserAuths(final String user, final SecurityOperations secOps, final Authorizations auths) throws AccumuloException, AccumuloSecurityException {
+        final List<String> authList = new ArrayList<>();
+        for (final byte[] authBytes : auths.getAuthorizations()) {
+            final String auth = new String(authBytes);
             authList.add(auth);
         }
         return addUserAuths(user, secOps, authList.toArray(new String[0]));
@@ -531,16 +530,16 @@ public final class AccumuloRyaUtils {
      * @throws AccumuloException
      * @throws AccumuloSecurityException
      */
-    public static Authorizations addUserAuths(String user, SecurityOperations secOps, String... auths) throws AccumuloException, AccumuloSecurityException {
-        Authorizations currentUserAuths = secOps.getUserAuthorizations(user);
-        List<byte[]> authList = new ArrayList<>();
-        for (byte[] currentAuth : currentUserAuths.getAuthorizations()) {
+    public static Authorizations addUserAuths(final String user, final SecurityOperations secOps, final String... auths) throws AccumuloException, AccumuloSecurityException {
+        final Authorizations currentUserAuths = secOps.getUserAuthorizations(user);
+        final List<byte[]> authList = new ArrayList<>();
+        for (final byte[] currentAuth : currentUserAuths.getAuthorizations()) {
             authList.add(currentAuth);
         }
-        for (String newAuth : auths) {
+        for (final String newAuth : auths) {
             authList.add(newAuth.getBytes());
         }
-        Authorizations result = new Authorizations(authList);
+        final Authorizations result = new Authorizations(authList);
         return result;
     }
 
@@ -552,15 +551,15 @@ public final class AccumuloRyaUtils {
      * @throws AccumuloSecurityException
      * @throws AccumuloException
      */
-    public static void removeUserAuths(String userName, SecurityOperations secOps, String authsToRemove) throws AccumuloException, AccumuloSecurityException {
-        Authorizations currentUserAuths = secOps.getUserAuthorizations(userName);
-        List<String> authList = convertAuthStringToList(currentUserAuths.toString());
+    public static void removeUserAuths(final String userName, final SecurityOperations secOps, final String authsToRemove) throws AccumuloException, AccumuloSecurityException {
+        final Authorizations currentUserAuths = secOps.getUserAuthorizations(userName);
+        final List<String> authList = convertAuthStringToList(currentUserAuths.toString());
 
-        List<String> authsToRemoveList = convertAuthStringToList(authsToRemove);
+        final List<String> authsToRemoveList = convertAuthStringToList(authsToRemove);
         authList.removeAll(authsToRemoveList);
 
-        String authString = Joiner.on(",").join(authList);
-        Authorizations newAuths = new Authorizations(authString);
+        final String authString = Joiner.on(",").join(authList);
+        final Authorizations newAuths = new Authorizations(authString);
 
         secOps.changeUserAuthorizations(userName, newAuths);
     }
@@ -570,10 +569,10 @@ public final class AccumuloRyaUtils {
      * @param authString the comma-separated string of authorizations.
      * @return a {@link List} of authorization strings.
      */
-    public static List<String> convertAuthStringToList(String authString) {
-        List<String> authList = new ArrayList<>();
+    public static List<String> convertAuthStringToList(final String authString) {
+        final List<String> authList = new ArrayList<>();
         if (authString != null) {
-            String[] authSplit = authString.split(",");
+            final String[] authSplit = authString.split(",");
             authList.addAll(Arrays.asList(authSplit));
         }
         return authList;
@@ -584,7 +583,7 @@ public final class AccumuloRyaUtils {
      * @param accumuloRdfConfiguration the {@link AccumuloRdfConfiguration}.
      * @return the {@link Connector}.
      */
-    public static Connector setupConnector(AccumuloRdfConfiguration accumuloRdfConfiguration) {
+    public static Connector setupConnector(final AccumuloRdfConfiguration accumuloRdfConfiguration) {
         Connector connector = null;
         try {
             connector = ConfigUtils.getConnector(accumuloRdfConfiguration);
@@ -600,8 +599,8 @@ public final class AccumuloRyaUtils {
      * @param connector the {@link Connector}.
      * @return the {@link AccumuloRyaDAO}.
      */
-    public static AccumuloRyaDAO setupDao(AccumuloRdfConfiguration accumuloRdfConfiguration) {
-        Connector connector = setupConnector(accumuloRdfConfiguration);
+    public static AccumuloRyaDAO setupDao(final AccumuloRdfConfiguration accumuloRdfConfiguration) {
+        final Connector connector = setupConnector(accumuloRdfConfiguration);
         return setupDao(connector, accumuloRdfConfiguration);
     }
 
@@ -611,14 +610,14 @@ public final class AccumuloRyaUtils {
      * @param accumuloRdfConfiguration the {@link AccumuloRdfConfiguration}.
      * @return the {@link AccumuloRyaDAO}.
      */
-    public static AccumuloRyaDAO setupDao(Connector connector, AccumuloRdfConfiguration accumuloRdfConfiguration) {
-        AccumuloRyaDAO accumuloRyaDao = new AccumuloRyaDAO();
+    public static AccumuloRyaDAO setupDao(final Connector connector, final AccumuloRdfConfiguration accumuloRdfConfiguration) {
+        final AccumuloRyaDAO accumuloRyaDao = new AccumuloRyaDAO();
         accumuloRyaDao.setConnector(connector);
         accumuloRyaDao.setConf(accumuloRdfConfiguration);
 
         try {
             accumuloRyaDao.init();
-        } catch (RyaDAOException e) {
+        } catch (final RyaDAOException e) {
             log.error("Error initializing DAO", e);
         }
 
@@ -630,9 +629,9 @@ public final class AccumuloRyaUtils {
      * @param timeOffset the copy tool parent time offset. (in milliseconds).
      * @return the {@link RyaStatement} for the copy tool parent time offset.
      */
-    public static RyaStatement createTimeOffsetRyaStatement(long timeOffset) {
-        Literal literal = VALUE_FACTORY.createLiteral(timeOffset);
-        RyaType timeObject = new RyaType(literal.getDatatype(), literal.stringValue());
+    public static RyaStatement createTimeOffsetRyaStatement(final long timeOffset) {
+        final Literal literal = VALUE_FACTORY.createLiteral(timeOffset);
+        final RyaType timeObject = new RyaType(literal.getDatatype(), literal.stringValue());
         return new RyaStatement(RTS_SUBJECT_RYA, RTS_TIME_OFFSET_PREDICATE_RYA, timeObject);
     }
 
@@ -643,8 +642,8 @@ public final class AccumuloRyaUtils {
      * the NTP server's time or {@code null}.
      * @throws RyaDAOException
      */
-    public static Long getTimeOffset(AccumuloRyaDAO dao) throws RyaDAOException {
-        String timeOffsetString = getMetadata(RTS_TIME_OFFSET_PREDICATE_RYA, dao);
+    public static Long getTimeOffset(final AccumuloRyaDAO dao) throws RyaDAOException {
+        final String timeOffsetString = getMetadata(RTS_TIME_OFFSET_PREDICATE_RYA, dao);
         Long timeOffset = null;
         if (timeOffsetString != null) {
             timeOffset = Long.valueOf(timeOffsetString);
@@ -659,8 +658,8 @@ public final class AccumuloRyaUtils {
      * @param dao the {@link AccumuloRyaDAO}.
      * @throws RyaDAOException
      */
-    public static RyaStatement setTimeOffset(long timeOffset, AccumuloRyaDAO dao) throws RyaDAOException {
-        RyaStatement ryaStatement = createTimeOffsetRyaStatement(timeOffset);
+    public static RyaStatement setTimeOffset(final long timeOffset, final AccumuloRyaDAO dao) throws RyaDAOException {
+        final RyaStatement ryaStatement = createTimeOffsetRyaStatement(timeOffset);
         dao.add(ryaStatement);
         return ryaStatement;
     }

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/1d33b435/extras/rya.merger/src/main/java/org/apache/rya/accumulo/mr/merge/util/CopyRule.java
----------------------------------------------------------------------
diff --git a/extras/rya.merger/src/main/java/org/apache/rya/accumulo/mr/merge/util/CopyRule.java b/extras/rya.merger/src/main/java/org/apache/rya/accumulo/mr/merge/util/CopyRule.java
index eaf3636..2f78efa 100644
--- a/extras/rya.merger/src/main/java/org/apache/rya/accumulo/mr/merge/util/CopyRule.java
+++ b/extras/rya.merger/src/main/java/org/apache/rya/accumulo/mr/merge/util/CopyRule.java
@@ -1,24 +1,22 @@
-package org.apache.rya.accumulo.mr.merge.util;
-
 /*
- * #%L
- * org.apache.rya.accumulo.mr.merge
- * %%
- * Copyright (C) 2014 Rya
- * %%
- * Licensed 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
+ *     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.
- * #L%
+ * 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.
  */
+package org.apache.rya.accumulo.mr.merge.util;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -66,9 +64,9 @@ public class CopyRule extends QueryModelNodeBase {
      * @throws ValueExprEvaluationException
      * @throws QueryEvaluationException
      */
-    public static boolean accept(Statement stmt, ValueExpr condition, EvaluationStrategy strategy)
+    public static boolean accept(final Statement stmt, final ValueExpr condition, final EvaluationStrategy strategy)
             throws ValueExprEvaluationException, QueryEvaluationException {
-        QueryBindingSet bindings = new QueryBindingSet();
+        final QueryBindingSet bindings = new QueryBindingSet();
         bindings.addBinding(SUBJ_VAR.getName(), stmt.getSubject());
         bindings.addBinding(PRED_VAR.getName(), stmt.getPredicate());
         bindings.addBinding(OBJ_VAR.getName(), stmt.getObject());
@@ -85,13 +83,13 @@ public class CopyRule extends QueryModelNodeBase {
      * @param expr Condition to be evaluated
      * @return true if the condition is trivial
      */
-    private static boolean trivialCondition(ValueExpr expr) {
+    private static boolean trivialCondition(final ValueExpr expr) {
         // If the expression is null or the constant "true":
         if (expr == null || expr.equals(TRUE)) {
             return true;
         }
         // If the expression contains undefined variables:
-        VarSearchVisitor visitor = new VarSearchVisitor(UNDEFINED_VAR.getName());
+        final VarSearchVisitor visitor = new VarSearchVisitor(UNDEFINED_VAR.getName());
         expr.visit(visitor);
         if (visitor.found) {
             return true;
@@ -105,18 +103,18 @@ public class CopyRule extends QueryModelNodeBase {
      */
     private static class VarSearchVisitor extends QueryModelVisitorBase<RuntimeException> {
         boolean found = false;
-        private String queryVar;
-        public VarSearchVisitor(String queryVar) {
+        private final String queryVar;
+        public VarSearchVisitor(final String queryVar) {
             this.queryVar = queryVar;
         }
         @Override
-        public void meet(Var var) {
+        public void meet(final Var var) {
             if (queryVar.equals(var.getName())) {
                 found = true;
             }
         }
         @Override
-        public void meetNode(QueryModelNode node) {
+        public void meetNode(final QueryModelNode node) {
             if (!found) {
                 node.visitChildren(this);
             }
@@ -129,13 +127,13 @@ public class CopyRule extends QueryModelNodeBase {
      * conditions.
      */
     private static class RuleVisitor extends QueryModelVisitorBase<RuntimeException> {
-        private CopyRule rule;
-        RuleVisitor(CopyRule rule) {
+        private final CopyRule rule;
+        RuleVisitor(final CopyRule rule) {
             this.rule = rule;
         }
         @Override
-        public void meet(Var node) {
-            String oldName = node.getName();
+        public void meet(final Var node) {
+            final String oldName = node.getName();
             if (rule.varMap.containsKey(oldName)) {
                 node.setName(rule.varMap.get(oldName).getName());
             }
@@ -153,12 +151,12 @@ public class CopyRule extends QueryModelNodeBase {
          * we must assume the statement is relevant. Otherwise, keep both sides.
          */
         @Override
-        public void meet(And expr) {
-            ValueExpr left = expr.getLeftArg();
-            ValueExpr right = expr.getRightArg();
+        public void meet(final And expr) {
+            final ValueExpr left = expr.getLeftArg();
+            final ValueExpr right = expr.getRightArg();
             left.visit(this);
             right.visit(this);
-            QueryModelNode parent = expr.getParentNode();
+            final QueryModelNode parent = expr.getParentNode();
             if (trivialCondition(left)) {
                 if (trivialCondition(right)) {
                     // Both sides are trivial; replace whole node
@@ -177,22 +175,22 @@ public class CopyRule extends QueryModelNodeBase {
         }
     }
 
-    private StatementPattern statement;
+    private final StatementPattern statement;
     private ValueExpr condition;
-    private Map<String, Var> varMap = new HashMap<>();
-    private RuleVisitor visitor = new RuleVisitor(this);
+    private final Map<String, Var> varMap = new HashMap<>();
+    private final RuleVisitor visitor = new RuleVisitor(this);
 
     /**
      * Instantiate a rule containing a StatementPattern, renaming any variables to canonical
      * subject/predicate/object forms and saving the mappings from the original variable names.
      * @param sp StatementPattern defining a set of triples to match
      */
-    public CopyRule(StatementPattern sp) throws QueryRulesetException {
+    public CopyRule(final StatementPattern sp) throws QueryRulesetException {
         statement = sp;
-        Var subjVar = statement.getSubjectVar();
-        Var predVar = statement.getPredicateVar();
-        Var objVar = statement.getObjectVar();
-        Var conVar = statement.getContextVar();
+        final Var subjVar = statement.getSubjectVar();
+        final Var predVar = statement.getPredicateVar();
+        final Var objVar = statement.getObjectVar();
+        final Var conVar = statement.getContextVar();
         int variables = 0;
         if (subjVar == null || !subjVar.hasValue()) {
             sp.setSubjectVar(SUBJ_VAR);
@@ -227,9 +225,9 @@ public class CopyRule extends QueryModelNodeBase {
     /**
      * Set the complete condition.
      */
-    private void setCondition(ValueExpr newCondition) {
-        this.condition = newCondition;
-        this.condition.setParentNode(this);
+    private void setCondition(final ValueExpr newCondition) {
+        condition = newCondition;
+        condition.setParentNode(this);
     }
 
     /**
@@ -239,13 +237,13 @@ public class CopyRule extends QueryModelNodeBase {
      * so that we are guaranteed to include all relevant statements.
      * @param condition A boolean filter expression
      */
-    public void addCondition(ValueExpr condition) {
-        ValueExpr newCondition = condition.clone();
+    public void addCondition(final ValueExpr condition) {
+        final ValueExpr newCondition = condition.clone();
         if (this.condition == null) {
             setCondition(newCondition);
         }
         else {
-            this.setCondition(new And(this.condition, newCondition));
+            setCondition(new And(this.condition, newCondition));
         }
         this.condition.visit(visitor);
         // If, after rewriting, the condition still contains undefined variables, we can't
@@ -292,7 +290,7 @@ public class CopyRule extends QueryModelNodeBase {
      *      must be a ValueExpr or null.
      */
     @Override
-    public void replaceChildNode(QueryModelNode current, QueryModelNode replacement) {
+    public void replaceChildNode(final QueryModelNode current, final QueryModelNode replacement) {
         if (current.equals(condition) && replacement instanceof ValueExpr) {
             setCondition(((ValueExpr) replacement).clone());
         }
@@ -308,7 +306,7 @@ public class CopyRule extends QueryModelNodeBase {
      * Apply a visitor to both the statement and any conditions.
      */
     @Override
-    public <X extends Exception> void visit(QueryModelVisitor<X> visitor) throws X {
+    public <X extends Exception> void visit(final QueryModelVisitor<X> visitor) throws X {
         if (statement != null) {
             statement.visit(visitor);
         }
@@ -319,7 +317,7 @@ public class CopyRule extends QueryModelNodeBase {
 
     @Override
     public String toString() {
-        StringBuilder sb = new StringBuilder(statement.toString().trim());
+        final StringBuilder sb = new StringBuilder(statement.toString().trim());
         if (condition != null) {
             sb.append("\n   Condition:\n   \t");
             sb.append(condition.toString().trim().replace("\n", "\n   \t"));
@@ -328,17 +326,17 @@ public class CopyRule extends QueryModelNodeBase {
     }
 
     @Override
-    public boolean equals(Object obj) {
+    public boolean equals(final Object obj) {
         if (!obj.getClass().equals(CopyRule.class)) {
             return false;
         }
-        CopyRule other = (CopyRule) obj;
-        if ((this.statement != null && !this.statement.equals(other.statement))
-                || (this.statement == null && other.statement != null)) {
+        final CopyRule other = (CopyRule) obj;
+        if ((statement != null && !statement.equals(other.statement))
+                || (statement == null && other.statement != null)) {
             return false;
         }
-        if ((this.condition != null && !this.condition.equals(other.condition))
-                || (this.condition == null && other.condition != null)) {
+        if ((condition != null && !condition.equals(other.condition))
+                || (condition == null && other.condition != null)) {
             return false;
         }
         return true;
@@ -356,23 +354,23 @@ public class CopyRule extends QueryModelNodeBase {
      * @param other Rule to compare against
      * @return true if this rule will necessarily match everything the other rule would.
      */
-    public boolean isGeneralizationOf(CopyRule other) {
-        if (this.statement == null || other.statement == null) {
+    public boolean isGeneralizationOf(final CopyRule other) {
+        if (statement == null || other.statement == null) {
             return false;
         }
         // If each component of the statement and the condition are at least as general
         // as the other rule's, then this rule is at least as general.
-        return varIsGeneralization(this.statement.getSubjectVar(), other.statement.getSubjectVar())
-                && varIsGeneralization(this.statement.getPredicateVar(), other.statement.getPredicateVar())
-                && varIsGeneralization(this.statement.getObjectVar(), other.statement.getObjectVar())
-                && varIsGeneralization(this.statement.getContextVar(), other.statement.getContextVar())
-                && (this.condition == null || this.condition.equals(other.condition));
+        return varIsGeneralization(statement.getSubjectVar(), other.statement.getSubjectVar())
+                && varIsGeneralization(statement.getPredicateVar(), other.statement.getPredicateVar())
+                && varIsGeneralization(statement.getObjectVar(), other.statement.getObjectVar())
+                && varIsGeneralization(statement.getContextVar(), other.statement.getContextVar())
+                && (condition == null || condition.equals(other.condition));
     }
 
     /**
      * Determine whether the first variable is at least as general as the second.
      */
-    private static boolean varIsGeneralization(Var first, Var second) {
+    private static boolean varIsGeneralization(final Var first, final Var second) {
         if (first == null || !first.hasValue()) {
             // if first is a variable, it is at least as general
             return true;

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/1d33b435/extras/rya.merger/src/main/java/org/apache/rya/accumulo/mr/merge/util/GroupedRow.java
----------------------------------------------------------------------
diff --git a/extras/rya.merger/src/main/java/org/apache/rya/accumulo/mr/merge/util/GroupedRow.java b/extras/rya.merger/src/main/java/org/apache/rya/accumulo/mr/merge/util/GroupedRow.java
index 10b7d58..476408a 100644
--- a/extras/rya.merger/src/main/java/org/apache/rya/accumulo/mr/merge/util/GroupedRow.java
+++ b/extras/rya.merger/src/main/java/org/apache/rya/accumulo/mr/merge/util/GroupedRow.java
@@ -1,24 +1,22 @@
-package org.apache.rya.accumulo.mr.merge.util;
-
 /*
- * #%L
- * org.apache.rya.accumulo.mr.merge
- * %%
- * Copyright (C) 2014 Rya
- * %%
- * Licensed 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
+ *     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.
- * #L%
+ * 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.
  */
+package org.apache.rya.accumulo.mr.merge.util;
 
 import java.io.DataInput;
 import java.io.DataOutput;
@@ -40,7 +38,7 @@ import org.apache.hadoop.io.WritableComparator;
  * GroupComparator sorts only based on group.
  */
 public class GroupedRow implements WritableComparable<GroupedRow> {
-    private Text group = new Text();
+    private final Text group = new Text();
     private Key key = new Key();
     private Value value = new Value();
 
@@ -48,7 +46,7 @@ public class GroupedRow implements WritableComparable<GroupedRow> {
      * Set the group that this row belongs to.
      * @param name A common label
      */
-    public void setGroup(String name) {
+    public void setGroup(final String name) {
         group.set(name);
     }
 
@@ -56,7 +54,7 @@ public class GroupedRow implements WritableComparable<GroupedRow> {
      * Set the Key
      * @param key Key associated with an Accumulo row
      */
-    public void setKey(Key key) {
+    public void setKey(final Key key) {
         this.key = key;
     }
 
@@ -64,7 +62,7 @@ public class GroupedRow implements WritableComparable<GroupedRow> {
      * Set the Value
      * @param value Value associated with an Accumulo row
      */
-    public void setValue(Value value) {
+    public void setValue(final Value value) {
         this.value = value;
     }
 
@@ -96,7 +94,7 @@ public class GroupedRow implements WritableComparable<GroupedRow> {
      * Serialize the group, key, and value
      */
     @Override
-    public void write(DataOutput out) throws IOException {
+    public void write(final DataOutput out) throws IOException {
         group.write(out);
         key.write(out);
         value.write(out);
@@ -106,7 +104,7 @@ public class GroupedRow implements WritableComparable<GroupedRow> {
      * Deserialize the group, key, and value
      */
     @Override
-    public void readFields(DataInput in) throws IOException {
+    public void readFields(final DataInput in) throws IOException {
         group.readFields(in);
         key.readFields(in);
         value.readFields(in);
@@ -116,11 +114,11 @@ public class GroupedRow implements WritableComparable<GroupedRow> {
      * Natural ordering; compares based on group and then key.
      */
     @Override
-    public int compareTo(GroupedRow o) {
+    public int compareTo(final GroupedRow o) {
         if (o == null) {
             return 1;
         }
-        return new CompareToBuilder().append(this.group, o.group).append(this.key, o.key).append(this.value, o.value).toComparison();
+        return new CompareToBuilder().append(group, o.group).append(key, o.key).append(value, o.value).toComparison();
     }
 
     /**
@@ -135,11 +133,11 @@ public class GroupedRow implements WritableComparable<GroupedRow> {
      * Test equality (group, key, value).
      */
     @Override
-    public boolean equals(Object o) {
+    public boolean equals(final Object o) {
         if (o == this) { return true; }
         if (o != null && o instanceof GroupedRow) {
-            GroupedRow other = (GroupedRow) o;
-            return new EqualsBuilder().append(this.group, other.group).append(this.key, other.key).append(this.value, other.value).isEquals();
+            final GroupedRow other = (GroupedRow) o;
+            return new EqualsBuilder().append(group, other.group).append(key, other.key).append(value, other.value).isEquals();
         }
         return false;
     }
@@ -155,9 +153,9 @@ public class GroupedRow implements WritableComparable<GroupedRow> {
          * Compares the groups of two GroupedRow instances, and the keys if they share a group.
          */
         @Override
-        public int compare(WritableComparable wc1, WritableComparable wc2) {
-            GroupedRow gk1 = (GroupedRow) wc1;
-            GroupedRow gk2 = (GroupedRow) wc2;
+        public int compare(final WritableComparable wc1, final WritableComparable wc2) {
+            final GroupedRow gk1 = (GroupedRow) wc1;
+            final GroupedRow gk2 = (GroupedRow) wc2;
             return gk1.compareTo(gk2);
         }
     }
@@ -173,9 +171,9 @@ public class GroupedRow implements WritableComparable<GroupedRow> {
          * Compares the groups of two GroupedRow instances.
          */
         @Override
-        public int compare(WritableComparable wc1, WritableComparable wc2) {
-            GroupedRow gk1 = (GroupedRow) wc1;
-            GroupedRow gk2 = (GroupedRow) wc2;
+        public int compare(final WritableComparable wc1, final WritableComparable wc2) {
+            final GroupedRow gk1 = (GroupedRow) wc1;
+            final GroupedRow gk2 = (GroupedRow) wc2;
             return gk1.group.compareTo(gk2.group);
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/1d33b435/extras/rya.merger/src/main/java/org/apache/rya/accumulo/mr/merge/util/QueryRuleset.java
----------------------------------------------------------------------
diff --git a/extras/rya.merger/src/main/java/org/apache/rya/accumulo/mr/merge/util/QueryRuleset.java b/extras/rya.merger/src/main/java/org/apache/rya/accumulo/mr/merge/util/QueryRuleset.java
index b9b5af2..9627c54 100644
--- a/extras/rya.merger/src/main/java/org/apache/rya/accumulo/mr/merge/util/QueryRuleset.java
+++ b/extras/rya.merger/src/main/java/org/apache/rya/accumulo/mr/merge/util/QueryRuleset.java
@@ -1,24 +1,22 @@
-package org.apache.rya.accumulo.mr.merge.util;
-
 /*
- * #%L
- * org.apache.rya.accumulo.mr.merge
- * %%
- * Copyright (C) 2014 Rya
- * %%
- * Licensed 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
+ *     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.
- * #L%
+ * 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.
  */
+package org.apache.rya.accumulo.mr.merge.util;
 
 import java.io.BufferedReader;
 import java.io.FileReader;
@@ -83,10 +81,10 @@ public class QueryRuleset {
      */
     public static class QueryRulesetException extends Exception {
         private static final long serialVersionUID = 1L;
-        public QueryRulesetException(String s) {
+        public QueryRulesetException(final String s) {
             super(s);
         }
-        public QueryRulesetException(String s, Throwable throwable) {
+        public QueryRulesetException(final String s, final Throwable throwable) {
             super(s, throwable);
         }
     }
@@ -96,15 +94,15 @@ public class QueryRuleset {
      */
     private static class RulesetVisitor extends QueryModelVisitorBase<QueryRulesetException> {
         List<CopyRule> rules = new LinkedList<>();
-        private Set<Value> superclasses = new HashSet<>();
-        private Set<Value> superproperties = new HashSet<>();
-        private Set<Value> sameAs = new HashSet<>();
-        private Set<Value> transitive = new HashSet<>();
-        private Set<Value> schemaProperties = new HashSet<>();
+        private final Set<Value> superclasses = new HashSet<>();
+        private final Set<Value> superproperties = new HashSet<>();
+        private final Set<Value> sameAs = new HashSet<>();
+        private final Set<Value> transitive = new HashSet<>();
+        private final Set<Value> schemaProperties = new HashSet<>();
 
         @Override
         public void meet(StatementPattern node) throws QueryRulesetException {
-            Var predVar = node.getPredicateVar();
+            final Var predVar = node.getPredicateVar();
             // If this is a transitive property node, just match all statements with that property
             if (node instanceof TransitivePropertySP && predVar.hasValue()) {
                 node = new StatementPattern(new Var("transitiveSubject"), predVar,
@@ -116,11 +114,11 @@ public class QueryRuleset {
         }
 
         @Override
-        public void meet(Filter node) throws QueryRulesetException {
-            ValueExpr condition = node.getCondition();
+        public void meet(final Filter node) throws QueryRulesetException {
+            final ValueExpr condition = node.getCondition();
             // If the condition is a function call, and we don't know about the function, don't try to test for it.
             if (condition instanceof FunctionCall) {
-                String uri = ((FunctionCall) condition).getURI();
+                final String uri = ((FunctionCall) condition).getURI();
                 if (FunctionRegistry.getInstance().get(uri) == null) {
                     // Just extract statement patterns from the child as if there were no filter.
                     node.getArg().visit(this);
@@ -128,35 +126,35 @@ public class QueryRuleset {
             }
             // Otherwise, assume we can test for it: extract rules from below this node, and add the condition to each one.
             else {
-                RulesetVisitor childVisitor = new RulesetVisitor();
+                final RulesetVisitor childVisitor = new RulesetVisitor();
                 node.getArg().visit(childVisitor);
-                for (CopyRule rule : childVisitor.rules) {
+                for (final CopyRule rule : childVisitor.rules) {
                     rule.addCondition(condition);
-                    this.rules.add(rule);
+                    rules.add(rule);
                 }
-                this.superclasses.addAll(childVisitor.superclasses);
-                this.superproperties.addAll(childVisitor.superproperties);
+                superclasses.addAll(childVisitor.superclasses);
+                superproperties.addAll(childVisitor.superproperties);
             }
         }
 
         @Override
-        public void meet(Join node) throws QueryRulesetException {
-            TupleExpr left = node.getLeftArg();
-            TupleExpr right = node.getRightArg();
+        public void meet(final Join node) throws QueryRulesetException {
+            final TupleExpr left = node.getLeftArg();
+            final TupleExpr right = node.getRightArg();
             // If this join represents the application of inference logic, use its children to add the
             // appropriate rules.
             if (node instanceof InferJoin && left instanceof FixedStatementPattern) {
                 FixedStatementPattern fsp = (FixedStatementPattern) left;
-                Value predValue = fsp.getPredicateVar().getValue();
+                final Value predValue = fsp.getPredicateVar().getValue();
                 // If this is a subClassOf relation, fetch all subClassOf and equivalentClass
                 // relations involving the relevant classes.
                 if (RDFS.SUBCLASSOF.equals(predValue) && right instanceof StatementPattern) {
-                    StatementPattern dne = (StatementPattern) right;
+                    final StatementPattern dne = (StatementPattern) right;
                     // If a subClassOf b equivalentClass c subClassOf d, then fsp will contain a statement
                     // for each class in the hierarchy. If we match every subClassOf and equivalentClass
                     // relation to any of {a,b,c,d}, then the hierarchy can be reconstructed.
-                    for (Statement st : fsp.statements) {
-                        Value superclassVal = st.getSubject();
+                    for (final Statement st : fsp.statements) {
+                        final Value superclassVal = st.getSubject();
                         // Rule to match the type assignment:
                         rules.add(new CopyRule(new StatementPattern(dne.getSubjectVar(),
                                 dne.getPredicateVar(),
@@ -169,12 +167,12 @@ public class QueryRuleset {
                 // If this is a subPropertyOf relation, fetch all subPropertyOf and equivalentProperty
                 // relations involving the relevant properties.
                 else if (RDFS.SUBPROPERTYOF.equals(predValue) && right instanceof StatementPattern) {
-                    StatementPattern dne = (StatementPattern) right;
+                    final StatementPattern dne = (StatementPattern) right;
                     // If p subPropertyOf q subPropertyOf r subPropertyOf s, then fsp will contain a statement
                     // for each property in the hierarchy. If we match every subPropertyOf and equivalentProperty
                     // relation to any of {p,q,r,s}, then the hierarchy can be reconstructed.
-                    for (Statement st : fsp.statements) {
-                        Value superpropVal = st.getSubject();
+                    for (final Statement st : fsp.statements) {
+                        final Value superpropVal = st.getSubject();
                         // Rule to add the property:
                         rules.add(new CopyRule(new StatementPattern(dne.getSubjectVar(),
                                 new Var(superpropVal.toString(), superpropVal),
@@ -187,11 +185,11 @@ public class QueryRuleset {
                 // If this is a sameAs expansion, it may have one or two levels
                 if (OWL.SAMEAS.equals(predValue)) {
                     StatementPattern stmt = null;
-                    String replaceVar = fsp.getSubjectVar().getName();
+                    final String replaceVar = fsp.getSubjectVar().getName();
                     String replaceVarInner = null;
-                    List<Value> replacements = new LinkedList<>();
-                    List<Value> replacementsInner = new LinkedList<>();
-                    for (Statement st : fsp.statements) {
+                    final List<Value> replacements = new LinkedList<>();
+                    final List<Value> replacementsInner = new LinkedList<>();
+                    for (final Statement st : fsp.statements) {
                         replacements.add(st.getSubject());
                     }
                     if (right instanceof StatementPattern) {
@@ -199,22 +197,22 @@ public class QueryRuleset {
                     }
                     else if (right instanceof InferJoin) {
                         // Add the second set of replacements if given
-                        InferJoin inner = (InferJoin) right;
+                        final InferJoin inner = (InferJoin) right;
                         if (inner.getLeftArg() instanceof FixedStatementPattern
                                 && inner.getRightArg() instanceof StatementPattern) {
                             stmt = (StatementPattern) inner.getRightArg();
                             fsp = (FixedStatementPattern) inner.getLeftArg();
                             replaceVarInner = fsp.getSubjectVar().getName();
-                            for (Statement st : fsp.statements) {
+                            for (final Statement st : fsp.statements) {
                                 replacementsInner.add(st.getSubject());
                             }
                         }
                     }
                     // Add different versions of the original statement:
                     if (stmt != null) {
-                        for (Value replacementVal : replacements) {
+                        for (final Value replacementVal : replacements) {
                             if (replacementsInner.isEmpty()) {
-                                StatementPattern transformed = stmt.clone();
+                                final StatementPattern transformed = stmt.clone();
                                 if (transformed.getSubjectVar().equals(replaceVar)) {
                                     transformed.setSubjectVar(new Var(replaceVar, replacementVal));
                                 }
@@ -223,8 +221,8 @@ public class QueryRuleset {
                                 }
                                 rules.add(new CopyRule(transformed));
                             }
-                            for (Value replacementValInner : replacementsInner) {
-                                StatementPattern transformed = stmt.clone();
+                            for (final Value replacementValInner : replacementsInner) {
+                                final StatementPattern transformed = stmt.clone();
                                 if (transformed.getSubjectVar().equals(replaceVar)) {
                                     transformed.setSubjectVar(new Var(replaceVar, replacementVal));
                                 }
@@ -253,22 +251,22 @@ public class QueryRuleset {
         }
 
         @Override
-        public void meet(Union node) throws QueryRulesetException {
+        public void meet(final Union node) throws QueryRulesetException {
             node.visitChildren(this);
             if (node instanceof InferUnion) {
                 // If this is the result of inference, search each tree for (non-standard) properties and add them
                 // to the set of properties for which to include schema information.
-                QueryModelVisitorBase<QueryRulesetException> propertyVisitor = new QueryModelVisitorBase<QueryRulesetException>() {
+                final QueryModelVisitorBase<QueryRulesetException> propertyVisitor = new QueryModelVisitorBase<QueryRulesetException>() {
                     @Override
-                    public void meet(StatementPattern node) {
+                    public void meet(final StatementPattern node) {
                         if (node.getPredicateVar().hasValue()) {
-                            URI predValue = (URI) node.getPredicateVar().getValue();
-                            String ns = predValue.getNamespace();
+                            final URI predValue = (URI) node.getPredicateVar().getValue();
+                            final String ns = predValue.getNamespace();
                             if (node instanceof FixedStatementPattern
                                     && (RDFS.SUBPROPERTYOF.equals(predValue) || OWL.EQUIVALENTPROPERTY.equals(predValue))) {
                                 // This FSP replaced a property, so find all the properties it entails
-                                FixedStatementPattern fsp = (FixedStatementPattern) node;
-                                for (Statement stmt : fsp.statements) {
+                                final FixedStatementPattern fsp = (FixedStatementPattern) node;
+                                for (final Statement stmt : fsp.statements) {
                                     schemaProperties.add(stmt.getSubject());
                                 }
                             }
@@ -291,7 +289,7 @@ public class QueryRuleset {
         public void addSchema() throws QueryRulesetException {
             // Combine the relevant portions of the class hierarchy into one subclass rule and one equivalent class rule:
             if (!superclasses.isEmpty()) {
-                Var superClassVar = new Var("superClassVar");
+                final Var superClassVar = new Var("superClassVar");
                 // Subclasses of the given classes:
                 addListRule(new Var("subClassVar"), null, RDFS.SUBCLASSOF, superClassVar, superclasses);
                 // Equivalent classes to the given classes (this might be stated in either direction):
@@ -300,7 +298,7 @@ public class QueryRuleset {
 
             // Combine the relevant portions of the property hierarchy into one subproperty rule and one equivalent property rule:
             if (!superproperties.isEmpty()) {
-                Var superPropertyVar = new Var("superPropertyVar");
+                final Var superPropertyVar = new Var("superPropertyVar");
                 // Subproperties of the given properties:
                 addListRule(new Var("subPropertyVar"), null, RDFS.SUBPROPERTYOF, superPropertyVar, superproperties);
                 // Equivalent properties to the given properties (this might be stated in either direction):
@@ -309,20 +307,20 @@ public class QueryRuleset {
 
             // Get the relevant portions of the owl:sameAs graph
             if (!sameAs.isEmpty()) {
-                Var sameAsSubj = new Var("sameAsSubject");
-                Var sameAsObj = new Var("sameAsObject");
+                final Var sameAsSubj = new Var("sameAsSubject");
+                final Var sameAsObj = new Var("sameAsObject");
                 addListRule(sameAsSubj, sameAs, OWL.SAMEAS, sameAsObj, sameAs);
             }
 
             // Get the potentially relevant owl:TransitiveProperty statements
             if (!transitive.isEmpty()) {
-                Var transitiveVar = new Var(OWL.TRANSITIVEPROPERTY.toString(), OWL.TRANSITIVEPROPERTY);
+                final Var transitiveVar = new Var(OWL.TRANSITIVEPROPERTY.toString(), OWL.TRANSITIVEPROPERTY);
                 addListRule(new Var("transitiveProp"), transitive, RDF.TYPE, transitiveVar, null);
             }
 
             // Get any owl:SymmetricProperty and owl:inverseOf statements for relevant properties
             if (!schemaProperties.isEmpty()) {
-                Var symmetricVar = new Var(OWL.SYMMETRICPROPERTY.toString(), OWL.SYMMETRICPROPERTY);
+                final Var symmetricVar = new Var(OWL.SYMMETRICPROPERTY.toString(), OWL.SYMMETRICPROPERTY);
                 addListRule(new Var("symmetricProp"), schemaProperties, RDF.TYPE, symmetricVar, null);
                 addListRule(new Var("inverseSubject"), schemaProperties, OWL.INVERSEOF, new Var("inverseObject"), schemaProperties);
             }
@@ -342,26 +340,26 @@ public class QueryRuleset {
          * @param objValues Either null or a Set of Values that the object variable can have, tested using a filter
          * @throws QueryRulesetException if the rule can't be created
          */
-        private void addListRule(Var subjVar, Set<Value> subjValues, URI predicate,
-                Var objVar, Set<Value> objValues) throws QueryRulesetException {
+        private void addListRule(final Var subjVar, final Set<Value> subjValues, final URI predicate,
+                final Var objVar, final Set<Value> objValues) throws QueryRulesetException {
             ListMemberOperator subjCondition = null;
             ListMemberOperator objCondition = null;
             if (subjValues != null) {
                 subjCondition = new ListMemberOperator();
                 subjCondition.addArgument(subjVar);
-                for (Value constant : subjValues) {
+                for (final Value constant : subjValues) {
                     subjCondition.addArgument(new Var(constant.toString(), constant));
                 }
             }
             if (objValues != null) {
                 objCondition = new ListMemberOperator();
                 objCondition.addArgument(objVar);
-                for (Value constant : objValues) {
+                for (final Value constant : objValues) {
                     objCondition.addArgument(new Var(constant.toString(), constant));
                 }
             }
-            Var predVar = new Var(predicate.toString(), predicate);
-            CopyRule listRule = new CopyRule(new StatementPattern(subjVar, predVar, objVar));
+            final Var predVar = new Var(predicate.toString(), predicate);
+            final CopyRule listRule = new CopyRule(new StatementPattern(subjVar, predVar, objVar));
             if (subjCondition != null && objCondition != null) {
                 listRule.addCondition(new Or(subjCondition, objCondition));
             }
@@ -395,7 +393,7 @@ public class QueryRuleset {
      * @param conf Configuration containing either the query string, or name of a file containing the query, plus inference parameters.
      * @throws QueryRulesetException if the query can't be read, parsed, and resolved to valid rules
      */
-    public QueryRuleset(RdfCloudTripleStoreConfiguration conf) throws QueryRulesetException {
+    public QueryRuleset(final RdfCloudTripleStoreConfiguration conf) throws QueryRulesetException {
         this.conf = conf;
         setQuery();
         setRules();
@@ -406,7 +404,7 @@ public class QueryRuleset {
      * @param query A SPARQL query string
      * @throws QueryRulesetException if the query can't be parsed and resolved to valid rules
      */
-    public QueryRuleset(String query) throws QueryRulesetException {
+    public QueryRuleset(final String query) throws QueryRulesetException {
         this.query = query;
         setRules();
     }
@@ -431,12 +429,12 @@ public class QueryRuleset {
             throw new QueryRulesetException("No Configuration given");
         }
         query = conf.get(CopyTool.QUERY_STRING_PROP);
-        String queryFile = conf.get(CopyTool.QUERY_FILE_PROP);
+        final String queryFile = conf.get(CopyTool.QUERY_FILE_PROP);
         if (query == null && queryFile != null) {
             try {
-                FileReader fileReader = new FileReader(queryFile);
-                BufferedReader reader = new BufferedReader(fileReader);
-                StringBuilder builder = new StringBuilder();
+                final FileReader fileReader = new FileReader(queryFile);
+                final BufferedReader reader = new BufferedReader(fileReader);
+                final StringBuilder builder = new StringBuilder();
                 String line = reader.readLine();
                 while (line != null) {
                     builder.append(line).append("\n");
@@ -446,7 +444,7 @@ public class QueryRuleset {
                 reader.close();
                 conf.set(CopyTool.QUERY_STRING_PROP, query);
             }
-            catch (IOException e) {
+            catch (final IOException e) {
                 throw new QueryRulesetException("Error loading query from file: " + queryFile, e);
             }
         }
@@ -475,7 +473,7 @@ public class QueryRuleset {
         // that are OK because they won'd be converted to rules directly.
         te.visit(new QueryModelVisitorBase<QueryRulesetException>() {
             @Override
-            public void meet(StatementPattern node) throws QueryRulesetException {
+            public void meet(final StatementPattern node) throws QueryRulesetException {
                 if (!(node.getSubjectVar().hasValue() || node.getPredicateVar().hasValue() || node.getObjectVar().hasValue())) {
                     throw new QueryRulesetException("Statement pattern with no constants would match every statement:\n"
                             + node + "\nFrom parsed query:\n" + te);
@@ -488,7 +486,7 @@ public class QueryRuleset {
             try {
                 log.info("Applying inference rules");
                 store = (RdfCloudTripleStore) RyaSailFactory.getInstance(conf);
-                InferenceEngine inferenceEngine = store.getInferenceEngine();
+                final InferenceEngine inferenceEngine = store.getInferenceEngine();
                 // Apply in same order as query evaluation:
                 te.visit(new TransitivePropertyVisitor(conf, inferenceEngine));
                 te.visit(new SymmetricPropertyVisitor(conf, inferenceEngine));
@@ -497,51 +495,51 @@ public class QueryRuleset {
                 te.visit(new SubClassOfVisitor(conf, inferenceEngine));
                 te.visit(new SameAsVisitor(conf, inferenceEngine));
                 log.info("Query after inference:\n");
-                for (String line : te.toString().split("\n")) {
+                for (final String line : te.toString().split("\n")) {
                     log.info("\t" + line);
                 }
             }
-            catch (Exception e) {
+            catch (final Exception e) {
                 throw new QueryRulesetException("Error applying inference to parsed query:\n" + te, e);
             }
             finally {
                 if (store != null) {
                     try {
                         store.shutDown();
-                    } catch (SailException e) {
+                    } catch (final SailException e) {
                         log.error("Error shutting down Sail after applying inference", e);
                     }
                 }
             }
         }
         // Extract the StatementPatterns and Filters and turn them into rules:
-        RulesetVisitor rv = new RulesetVisitor();
+        final RulesetVisitor rv = new RulesetVisitor();
         try {
             te.visit(rv);
             rv.addSchema();
         }
-        catch (QueryRulesetException e) {
+        catch (final QueryRulesetException e) {
             throw new QueryRulesetException("Error extracting rules from parsed query:\n" + te, e);
         }
-        for (CopyRule candidateRule : rv.rules) {
+        for (final CopyRule candidateRule : rv.rules) {
             boolean unique = true;
-            for (CopyRule otherRule : rv.rules) {
+            for (final CopyRule otherRule : rv.rules) {
                 if (!candidateRule.equals(otherRule) && otherRule.isGeneralizationOf(candidateRule)) {
                     unique = false;
                     break;
                 }
             }
             if (unique) {
-                this.rules.add(candidateRule);
+                rules.add(candidateRule);
             }
         }
     }
 
     @Override
     public String toString() {
-        StringBuilder sb = new StringBuilder("Original Query:\n\n\t");
+        final StringBuilder sb = new StringBuilder("Original Query:\n\n\t");
         sb.append(query.replace("\n", "\n\t")).append("\n\nRuleset:\n");
-        for (CopyRule rule : rules) {
+        for (final CopyRule rule : rules) {
             sb.append("\n\t").append(rule.toString().replace("\n", "\n\t")).append("\n");
         }
         return sb.toString();