You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rya.apache.org by ca...@apache.org on 2017/10/12 18:43:27 UTC
[06/11] incubator-rya git commit: RYA-401 Fixed all default charset
bugs. Closes #243.
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/538cfccc/common/rya.api/src/main/java/org/apache/rya/api/resolver/triple/impl/WholeRowHashedTripleResolver.java
----------------------------------------------------------------------
diff --git a/common/rya.api/src/main/java/org/apache/rya/api/resolver/triple/impl/WholeRowHashedTripleResolver.java b/common/rya.api/src/main/java/org/apache/rya/api/resolver/triple/impl/WholeRowHashedTripleResolver.java
index 9688fec..5907b5b 100644
--- a/common/rya.api/src/main/java/org/apache/rya/api/resolver/triple/impl/WholeRowHashedTripleResolver.java
+++ b/common/rya.api/src/main/java/org/apache/rya/api/resolver/triple/impl/WholeRowHashedTripleResolver.java
@@ -1,18 +1,3 @@
-package org.apache.rya.api.resolver.triple.impl;
-
-import static org.apache.rya.api.RdfCloudTripleStoreConstants.DELIM_BYTE;
-import static org.apache.rya.api.RdfCloudTripleStoreConstants.DELIM_BYTES;
-import static org.apache.rya.api.RdfCloudTripleStoreConstants.EMPTY_BYTES;
-import static org.apache.rya.api.RdfCloudTripleStoreConstants.TYPE_DELIM_BYTE;
-
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.commons.codec.binary.Hex;
-
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -21,9 +6,9 @@ import org.apache.commons.codec.binary.Hex;
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -31,11 +16,21 @@ import org.apache.commons.codec.binary.Hex;
* specific language governing permissions and limitations
* under the License.
*/
+package org.apache.rya.api.resolver.triple.impl;
+import static org.apache.rya.api.RdfCloudTripleStoreConstants.DELIM_BYTE;
+import static org.apache.rya.api.RdfCloudTripleStoreConstants.DELIM_BYTES;
+import static org.apache.rya.api.RdfCloudTripleStoreConstants.EMPTY_BYTES;
+import static org.apache.rya.api.RdfCloudTripleStoreConstants.TYPE_DELIM_BYTE;
+import java.nio.charset.StandardCharsets;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
-import com.google.common.primitives.Bytes;
-
+import org.apache.commons.codec.binary.Hex;
import org.apache.rya.api.RdfCloudTripleStoreConstants.TABLE_LAYOUT;
import org.apache.rya.api.domain.RyaStatement;
import org.apache.rya.api.domain.RyaType;
@@ -46,6 +41,8 @@ import org.apache.rya.api.resolver.triple.TripleRow;
import org.apache.rya.api.resolver.triple.TripleRowResolver;
import org.apache.rya.api.resolver.triple.TripleRowResolverException;
+import com.google.common.primitives.Bytes;
+
/**
* Will store triple in spo, po, osp. Storing everything in the whole row.
* Date: 7/13/12
@@ -54,33 +51,33 @@ import org.apache.rya.api.resolver.triple.TripleRowResolverException;
public class WholeRowHashedTripleResolver implements TripleRowResolver {
@Override
- public Map<TABLE_LAYOUT, TripleRow> serialize(RyaStatement stmt) throws TripleRowResolverException {
+ public Map<TABLE_LAYOUT, TripleRow> serialize(final RyaStatement stmt) throws TripleRowResolverException {
try {
- RyaURI subject = stmt.getSubject();
- RyaURI predicate = stmt.getPredicate();
- RyaType object = stmt.getObject();
- RyaURI context = stmt.getContext();
- Long timestamp = stmt.getTimestamp();
- byte[] columnVisibility = stmt.getColumnVisibility();
- String qualifer = stmt.getQualifer();
- byte[] qualBytes = qualifer == null ? EMPTY_BYTES : qualifer.getBytes();
- byte[] value = stmt.getValue();
+ final RyaURI subject = stmt.getSubject();
+ final RyaURI predicate = stmt.getPredicate();
+ final RyaType object = stmt.getObject();
+ final RyaURI context = stmt.getContext();
+ final Long timestamp = stmt.getTimestamp();
+ final byte[] columnVisibility = stmt.getColumnVisibility();
+ final String qualifer = stmt.getQualifer();
+ final byte[] qualBytes = qualifer == null ? EMPTY_BYTES : qualifer.getBytes(StandardCharsets.UTF_8);
+ final byte[] value = stmt.getValue();
assert subject != null && predicate != null && object != null;
- byte[] cf = (context == null) ? EMPTY_BYTES : context.getData().getBytes();
- Map<TABLE_LAYOUT, TripleRow> tripleRowMap = new HashMap<TABLE_LAYOUT, TripleRow>();
- MessageDigest md = MessageDigest.getInstance("MD5");
- byte[] subjBytes = subject.getData().getBytes();
- byte[] subjHashBytes = md.digest(subjBytes);
- byte[] predBytes = predicate.getData().getBytes();
- byte[] predHashBytes = md.digest(predBytes);
- byte[][] objBytes = RyaContext.getInstance().serializeType(object);
+ final byte[] cf = (context == null) ? EMPTY_BYTES : context.getData().getBytes(StandardCharsets.UTF_8);
+ final Map<TABLE_LAYOUT, TripleRow> tripleRowMap = new HashMap<TABLE_LAYOUT, TripleRow>();
+ final MessageDigest md = MessageDigest.getInstance("MD5");
+ final byte[] subjBytes = subject.getData().getBytes(StandardCharsets.UTF_8);
+ final byte[] subjHashBytes = md.digest(subjBytes);
+ final byte[] predBytes = predicate.getData().getBytes(StandardCharsets.UTF_8);
+ final byte[] predHashBytes = md.digest(predBytes);
+ final byte[][] objBytes = RyaContext.getInstance().serializeType(object);
tripleRowMap.put(TABLE_LAYOUT.SPO,
- new TripleRow(Bytes.concat(Hex.encodeHexString(subjHashBytes).getBytes(), DELIM_BYTES, subjBytes, DELIM_BYTES,
+ new TripleRow(Bytes.concat(Hex.encodeHexString(subjHashBytes).getBytes(StandardCharsets.UTF_8), DELIM_BYTES, subjBytes, DELIM_BYTES,
predBytes, DELIM_BYTES,
objBytes[0], objBytes[1]), cf, qualBytes,
timestamp, columnVisibility, value));
tripleRowMap.put(TABLE_LAYOUT.PO,
- new TripleRow(Bytes.concat(Hex.encodeHexString(predHashBytes).getBytes(), DELIM_BYTES, predBytes, DELIM_BYTES,
+ new TripleRow(Bytes.concat(Hex.encodeHexString(predHashBytes).getBytes(StandardCharsets.UTF_8), DELIM_BYTES, predBytes, DELIM_BYTES,
objBytes[0], DELIM_BYTES,
subjBytes, objBytes[1]), cf, qualBytes,
timestamp, columnVisibility, value));
@@ -90,68 +87,68 @@ public class WholeRowHashedTripleResolver implements TripleRowResolver {
predBytes, objBytes[1]), cf, qualBytes,
timestamp, columnVisibility, value));
return tripleRowMap;
- } catch (RyaTypeResolverException e) {
+ } catch (final RyaTypeResolverException e) {
throw new TripleRowResolverException(e);
- } catch (NoSuchAlgorithmException e) {
+ } catch (final NoSuchAlgorithmException e) {
throw new TripleRowResolverException(e);
}
}
@Override
- public RyaStatement deserialize(TABLE_LAYOUT table_layout, TripleRow tripleRow) throws TripleRowResolverException {
+ public RyaStatement deserialize(final TABLE_LAYOUT table_layout, final TripleRow tripleRow) throws TripleRowResolverException {
try {
assert tripleRow != null && table_layout != null;
byte[] row = tripleRow.getRow();
-
+
// if it is a hashed row, ony keep the row after the hash
if ((table_layout == TABLE_LAYOUT.SPO) || (table_layout == TABLE_LAYOUT.PO)) {
- int hashStart = Bytes.indexOf(row, DELIM_BYTE);
+ final int hashStart = Bytes.indexOf(row, DELIM_BYTE);
row = Arrays.copyOfRange(row, hashStart + 1, row.length);
}
-
- int firstIndex = Bytes.indexOf(row, DELIM_BYTE);
- byte[] first= Arrays.copyOf(row, firstIndex);
- int secondIndex = Bytes.lastIndexOf(row, DELIM_BYTE);
- int typeIndex = Bytes.indexOf(row, TYPE_DELIM_BYTE);
- byte[] second = Arrays.copyOfRange(row, firstIndex + 1, secondIndex);
- byte[] third = Arrays.copyOfRange(row, secondIndex + 1, typeIndex);
- byte[] type = Arrays.copyOfRange(row, typeIndex, row.length);
- byte[] columnFamily = tripleRow.getColumnFamily();
- boolean contextExists = columnFamily != null && columnFamily.length > 0;
- RyaURI context = (contextExists) ? (new RyaURI(new String(columnFamily))) : null;
- byte[] columnQualifier = tripleRow.getColumnQualifier();
- String qualifier = columnQualifier != null && columnQualifier.length > 0 ? new String(columnQualifier) : null;
- Long timestamp = tripleRow.getTimestamp();
- byte[] columnVisibility = tripleRow.getColumnVisibility();
- byte[] value = tripleRow.getValue();
+
+ final int firstIndex = Bytes.indexOf(row, DELIM_BYTE);
+ final byte[] first= Arrays.copyOf(row, firstIndex);
+ final int secondIndex = Bytes.lastIndexOf(row, DELIM_BYTE);
+ final int typeIndex = Bytes.indexOf(row, TYPE_DELIM_BYTE);
+ final byte[] second = Arrays.copyOfRange(row, firstIndex + 1, secondIndex);
+ final byte[] third = Arrays.copyOfRange(row, secondIndex + 1, typeIndex);
+ final byte[] type = Arrays.copyOfRange(row, typeIndex, row.length);
+ final byte[] columnFamily = tripleRow.getColumnFamily();
+ final boolean contextExists = columnFamily != null && columnFamily.length > 0;
+ final RyaURI context = (contextExists) ? (new RyaURI(new String(columnFamily, StandardCharsets.UTF_8))) : null;
+ final byte[] columnQualifier = tripleRow.getColumnQualifier();
+ final String qualifier = columnQualifier != null && columnQualifier.length > 0 ? new String(columnQualifier, StandardCharsets.UTF_8) : null;
+ final Long timestamp = tripleRow.getTimestamp();
+ final byte[] columnVisibility = tripleRow.getColumnVisibility();
+ final byte[] value = tripleRow.getValue();
switch (table_layout) {
case SPO: {
- byte[] obj = Bytes.concat(third, type);
+ final byte[] obj = Bytes.concat(third, type);
return new RyaStatement(
- new RyaURI(new String(first)),
- new RyaURI(new String(second)),
+ new RyaURI(new String(first, StandardCharsets.UTF_8)),
+ new RyaURI(new String(second, StandardCharsets.UTF_8)),
RyaContext.getInstance().deserialize(obj),
context, qualifier, columnVisibility, value, timestamp);
}
case PO: {
- byte[] obj = Bytes.concat(second, type);
+ final byte[] obj = Bytes.concat(second, type);
return new RyaStatement(
- new RyaURI(new String(third)),
- new RyaURI(new String(first)),
+ new RyaURI(new String(third, StandardCharsets.UTF_8)),
+ new RyaURI(new String(first, StandardCharsets.UTF_8)),
RyaContext.getInstance().deserialize(obj),
context, qualifier, columnVisibility, value, timestamp);
}
case OSP: {
- byte[] obj = Bytes.concat(first, type);
+ final byte[] obj = Bytes.concat(first, type);
return new RyaStatement(
- new RyaURI(new String(second)),
- new RyaURI(new String(third)),
+ new RyaURI(new String(second, StandardCharsets.UTF_8)),
+ new RyaURI(new String(third, StandardCharsets.UTF_8)),
RyaContext.getInstance().deserialize(obj),
context, qualifier, columnVisibility, value, timestamp);
}
}
- } catch (RyaTypeResolverException e) {
+ } catch (final RyaTypeResolverException e) {
throw new TripleRowResolverException(e);
}
throw new TripleRowResolverException("TripleRow[" + tripleRow + "] with Table layout[" + table_layout + "] is not deserializable");
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/538cfccc/common/rya.api/src/main/java/org/apache/rya/api/resolver/triple/impl/WholeRowTripleResolver.java
----------------------------------------------------------------------
diff --git a/common/rya.api/src/main/java/org/apache/rya/api/resolver/triple/impl/WholeRowTripleResolver.java b/common/rya.api/src/main/java/org/apache/rya/api/resolver/triple/impl/WholeRowTripleResolver.java
index 792d02e..cbd65b6 100644
--- a/common/rya.api/src/main/java/org/apache/rya/api/resolver/triple/impl/WholeRowTripleResolver.java
+++ b/common/rya.api/src/main/java/org/apache/rya/api/resolver/triple/impl/WholeRowTripleResolver.java
@@ -1,5 +1,3 @@
-package org.apache.rya.api.resolver.triple.impl;
-
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -8,9 +6,9 @@ package org.apache.rya.api.resolver.triple.impl;
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -18,10 +16,19 @@ package org.apache.rya.api.resolver.triple.impl;
* specific language governing permissions and limitations
* under the License.
*/
+package org.apache.rya.api.resolver.triple.impl;
+import static org.apache.rya.api.RdfCloudTripleStoreConstants.DELIM_BYTE;
+import static org.apache.rya.api.RdfCloudTripleStoreConstants.DELIM_BYTES;
+import static org.apache.rya.api.RdfCloudTripleStoreConstants.EMPTY_BYTES;
+import static org.apache.rya.api.RdfCloudTripleStoreConstants.TYPE_DELIM_BYTE;
+import java.nio.charset.StandardCharsets;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
-import com.google.common.primitives.Bytes;
+import org.apache.rya.api.RdfCloudTripleStoreConstants.TABLE_LAYOUT;
import org.apache.rya.api.domain.RyaStatement;
import org.apache.rya.api.domain.RyaType;
import org.apache.rya.api.domain.RyaURI;
@@ -31,11 +38,7 @@ import org.apache.rya.api.resolver.triple.TripleRow;
import org.apache.rya.api.resolver.triple.TripleRowResolver;
import org.apache.rya.api.resolver.triple.TripleRowResolverException;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Map;
-
-import static org.apache.rya.api.RdfCloudTripleStoreConstants.*;
+import com.google.common.primitives.Bytes;
/**
* Will store triple in spo, po, osp. Storing everything in the whole row.
@@ -45,23 +48,23 @@ import static org.apache.rya.api.RdfCloudTripleStoreConstants.*;
public class WholeRowTripleResolver implements TripleRowResolver {
@Override
- public Map<TABLE_LAYOUT, TripleRow> serialize(RyaStatement stmt) throws TripleRowResolverException {
+ public Map<TABLE_LAYOUT, TripleRow> serialize(final RyaStatement stmt) throws TripleRowResolverException {
try {
- RyaURI subject = stmt.getSubject();
- RyaURI predicate = stmt.getPredicate();
- RyaType object = stmt.getObject();
- RyaURI context = stmt.getContext();
- Long timestamp = stmt.getTimestamp();
- byte[] columnVisibility = stmt.getColumnVisibility();
- String qualifer = stmt.getQualifer();
- byte[] qualBytes = qualifer == null ? EMPTY_BYTES : qualifer.getBytes();
- byte[] value = stmt.getValue();
+ final RyaURI subject = stmt.getSubject();
+ final RyaURI predicate = stmt.getPredicate();
+ final RyaType object = stmt.getObject();
+ final RyaURI context = stmt.getContext();
+ final Long timestamp = stmt.getTimestamp();
+ final byte[] columnVisibility = stmt.getColumnVisibility();
+ final String qualifer = stmt.getQualifer();
+ final byte[] qualBytes = qualifer == null ? EMPTY_BYTES : qualifer.getBytes(StandardCharsets.UTF_8);
+ final byte[] value = stmt.getValue();
assert subject != null && predicate != null && object != null;
- byte[] cf = (context == null) ? EMPTY_BYTES : context.getData().getBytes();
- Map<TABLE_LAYOUT, TripleRow> tripleRowMap = new HashMap<TABLE_LAYOUT, TripleRow>();
- byte[] subjBytes = subject.getData().getBytes();
- byte[] predBytes = predicate.getData().getBytes();
- byte[][] objBytes = RyaContext.getInstance().serializeType(object);
+ final byte[] cf = (context == null) ? EMPTY_BYTES : context.getData().getBytes(StandardCharsets.UTF_8);
+ final Map<TABLE_LAYOUT, TripleRow> tripleRowMap = new HashMap<TABLE_LAYOUT, TripleRow>();
+ final byte[] subjBytes = subject.getData().getBytes(StandardCharsets.UTF_8);
+ final byte[] predBytes = predicate.getData().getBytes(StandardCharsets.UTF_8);
+ final byte[][] objBytes = RyaContext.getInstance().serializeType(object);
tripleRowMap.put(TABLE_LAYOUT.SPO,
new TripleRow(Bytes.concat(subjBytes, DELIM_BYTES,
predBytes, DELIM_BYTES,
@@ -78,59 +81,59 @@ public class WholeRowTripleResolver implements TripleRowResolver {
predBytes, objBytes[1]), cf, qualBytes,
timestamp, columnVisibility, value));
return tripleRowMap;
- } catch (RyaTypeResolverException e) {
+ } catch (final RyaTypeResolverException e) {
throw new TripleRowResolverException(e);
}
}
@Override
- public RyaStatement deserialize(TABLE_LAYOUT table_layout, TripleRow tripleRow) throws TripleRowResolverException {
+ public RyaStatement deserialize(final TABLE_LAYOUT table_layout, final TripleRow tripleRow) throws TripleRowResolverException {
try {
assert tripleRow != null && table_layout != null;
- byte[] row = tripleRow.getRow();
- int firstIndex = Bytes.indexOf(row, DELIM_BYTE);
- int secondIndex = Bytes.lastIndexOf(row, DELIM_BYTE);
- int typeIndex = Bytes.indexOf(row, TYPE_DELIM_BYTE);
- byte[] first = Arrays.copyOf(row, firstIndex);
- byte[] second = Arrays.copyOfRange(row, firstIndex + 1, secondIndex);
- byte[] third = Arrays.copyOfRange(row, secondIndex + 1, typeIndex);
- byte[] type = Arrays.copyOfRange(row, typeIndex, row.length);
- byte[] columnFamily = tripleRow.getColumnFamily();
- boolean contextExists = columnFamily != null && columnFamily.length > 0;
- RyaURI context = (contextExists) ? (new RyaURI(new String(columnFamily))) : null;
- byte[] columnQualifier = tripleRow.getColumnQualifier();
- String qualifier = columnQualifier != null && columnQualifier.length > 0 ? new String(columnQualifier) : null;
- Long timestamp = tripleRow.getTimestamp();
- byte[] columnVisibility = tripleRow.getColumnVisibility();
- byte[] value = tripleRow.getValue();
+ final byte[] row = tripleRow.getRow();
+ final int firstIndex = Bytes.indexOf(row, DELIM_BYTE);
+ final int secondIndex = Bytes.lastIndexOf(row, DELIM_BYTE);
+ final int typeIndex = Bytes.indexOf(row, TYPE_DELIM_BYTE);
+ final byte[] first = Arrays.copyOf(row, firstIndex);
+ final byte[] second = Arrays.copyOfRange(row, firstIndex + 1, secondIndex);
+ final byte[] third = Arrays.copyOfRange(row, secondIndex + 1, typeIndex);
+ final byte[] type = Arrays.copyOfRange(row, typeIndex, row.length);
+ final byte[] columnFamily = tripleRow.getColumnFamily();
+ final boolean contextExists = columnFamily != null && columnFamily.length > 0;
+ final RyaURI context = (contextExists) ? (new RyaURI(new String(columnFamily, StandardCharsets.UTF_8))) : null;
+ final byte[] columnQualifier = tripleRow.getColumnQualifier();
+ final String qualifier = columnQualifier != null && columnQualifier.length > 0 ? new String(columnQualifier, StandardCharsets.UTF_8) : null;
+ final Long timestamp = tripleRow.getTimestamp();
+ final byte[] columnVisibility = tripleRow.getColumnVisibility();
+ final byte[] value = tripleRow.getValue();
switch (table_layout) {
case SPO: {
- byte[] obj = Bytes.concat(third, type);
+ final byte[] obj = Bytes.concat(third, type);
return new RyaStatement(
- new RyaURI(new String(first)),
- new RyaURI(new String(second)),
+ new RyaURI(new String(first, StandardCharsets.UTF_8)),
+ new RyaURI(new String(second, StandardCharsets.UTF_8)),
RyaContext.getInstance().deserialize(obj),
context, qualifier, columnVisibility, value, timestamp);
}
case PO: {
- byte[] obj = Bytes.concat(second, type);
+ final byte[] obj = Bytes.concat(second, type);
return new RyaStatement(
- new RyaURI(new String(third)),
- new RyaURI(new String(first)),
+ new RyaURI(new String(third, StandardCharsets.UTF_8)),
+ new RyaURI(new String(first, StandardCharsets.UTF_8)),
RyaContext.getInstance().deserialize(obj),
context, qualifier, columnVisibility, value, timestamp);
}
case OSP: {
- byte[] obj = Bytes.concat(first, type);
+ final byte[] obj = Bytes.concat(first, type);
return new RyaStatement(
- new RyaURI(new String(second)),
- new RyaURI(new String(third)),
+ new RyaURI(new String(second, StandardCharsets.UTF_8)),
+ new RyaURI(new String(third, StandardCharsets.UTF_8)),
RyaContext.getInstance().deserialize(obj),
context, qualifier, columnVisibility, value, timestamp);
}
}
- } catch (RyaTypeResolverException e) {
+ } catch (final RyaTypeResolverException e) {
throw new TripleRowResolverException(e);
}
throw new TripleRowResolverException("TripleRow[" + tripleRow + "] with Table layout[" + table_layout + "] is not deserializable");
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/538cfccc/dao/accumulo.rya/src/main/java/org/apache/rya/accumulo/AccumuloNamespaceTableIterator.java
----------------------------------------------------------------------
diff --git a/dao/accumulo.rya/src/main/java/org/apache/rya/accumulo/AccumuloNamespaceTableIterator.java b/dao/accumulo.rya/src/main/java/org/apache/rya/accumulo/AccumuloNamespaceTableIterator.java
index 0f1fd3d..9f6c1dd 100644
--- a/dao/accumulo.rya/src/main/java/org/apache/rya/accumulo/AccumuloNamespaceTableIterator.java
+++ b/dao/accumulo.rya/src/main/java/org/apache/rya/accumulo/AccumuloNamespaceTableIterator.java
@@ -1,5 +1,3 @@
-package org.apache.rya.accumulo;
-
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -8,9 +6,9 @@ package org.apache.rya.accumulo;
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -18,28 +16,30 @@ package org.apache.rya.accumulo;
* specific language governing permissions and limitations
* under the License.
*/
+package org.apache.rya.accumulo;
+import java.io.IOError;
+import java.nio.charset.StandardCharsets;
+import java.util.Iterator;
+import java.util.Map.Entry;
-
-import com.google.common.base.Preconditions;
-import info.aduna.iteration.CloseableIteration;
-import org.apache.rya.api.persist.RdfDAOException;
import org.apache.accumulo.core.data.Key;
import org.apache.accumulo.core.data.Value;
+import org.apache.rya.api.persist.RdfDAOException;
import org.openrdf.model.Namespace;
import org.openrdf.model.impl.NamespaceImpl;
-import java.io.IOError;
-import java.util.Iterator;
-import java.util.Map.Entry;
+import com.google.common.base.Preconditions;
+
+import info.aduna.iteration.CloseableIteration;
public class AccumuloNamespaceTableIterator<T extends Namespace> implements
CloseableIteration<Namespace, RdfDAOException> {
private boolean open = false;
- private Iterator<Entry<Key, Value>> result;
+ private final Iterator<Entry<Key, Value>> result;
- public AccumuloNamespaceTableIterator(Iterator<Entry<Key, Value>> result) throws RdfDAOException {
+ public AccumuloNamespaceTableIterator(final Iterator<Entry<Key, Value>> result) throws RdfDAOException {
Preconditions.checkNotNull(result);
open = true;
this.result = result;
@@ -50,7 +50,7 @@ public class AccumuloNamespaceTableIterator<T extends Namespace> implements
try {
verifyIsOpen();
open = false;
- } catch (IOError e) {
+ } catch (final IOError e) {
throw new RdfDAOException(e);
}
}
@@ -75,15 +75,15 @@ public class AccumuloNamespaceTableIterator<T extends Namespace> implements
return null;
}
- public static Namespace getNamespace(Iterator<Entry<Key, Value>> rowResults) {
+ public static Namespace getNamespace(final Iterator<Entry<Key, Value>> rowResults) {
for (; rowResults.hasNext(); ) {
- Entry<Key, Value> next = rowResults.next();
- Key key = next.getKey();
- Value val = next.getValue();
- String cf = key.getColumnFamily().toString();
- String cq = key.getColumnQualifier().toString();
- return new NamespaceImpl(key.getRow().toString(), new String(
- val.get()));
+ final Entry<Key, Value> next = rowResults.next();
+ final Key key = next.getKey();
+ final Value val = next.getValue();
+ final String cf = key.getColumnFamily().toString();
+ final String cq = key.getColumnQualifier().toString();
+ return new NamespaceImpl(key.getRow().toString(),
+ new String(val.get(), StandardCharsets.UTF_8));
}
return null;
}
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/538cfccc/dao/accumulo.rya/src/main/java/org/apache/rya/accumulo/AccumuloRdfEvalStatsDAO.java
----------------------------------------------------------------------
diff --git a/dao/accumulo.rya/src/main/java/org/apache/rya/accumulo/AccumuloRdfEvalStatsDAO.java b/dao/accumulo.rya/src/main/java/org/apache/rya/accumulo/AccumuloRdfEvalStatsDAO.java
index 10584c5..f47b4b3 100644
--- a/dao/accumulo.rya/src/main/java/org/apache/rya/accumulo/AccumuloRdfEvalStatsDAO.java
+++ b/dao/accumulo.rya/src/main/java/org/apache/rya/accumulo/AccumuloRdfEvalStatsDAO.java
@@ -1,5 +1,3 @@
-package org.apache.rya.accumulo;
-
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -8,9 +6,9 @@ package org.apache.rya.accumulo;
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -18,29 +16,24 @@ package org.apache.rya.accumulo;
* specific language governing permissions and limitations
* under the License.
*/
-
-
+package org.apache.rya.accumulo;
import static com.google.common.base.Preconditions.checkNotNull;
import static org.apache.rya.api.RdfCloudTripleStoreConstants.DELIM;
import static org.apache.rya.api.RdfCloudTripleStoreConstants.EMPTY_TEXT;
-import static org.apache.rya.api.RdfCloudTripleStoreConstants.PRED_CF_TXT;
-import static org.apache.rya.api.RdfCloudTripleStoreConstants.SUBJECT_CF_TXT;
-import static org.apache.rya.api.RdfCloudTripleStoreConstants.SUBJECTPRED_CF_TXT;
import static org.apache.rya.api.RdfCloudTripleStoreConstants.PREDOBJECT_CF_TXT;
+import static org.apache.rya.api.RdfCloudTripleStoreConstants.PRED_CF_TXT;
import static org.apache.rya.api.RdfCloudTripleStoreConstants.SUBJECTOBJECT_CF_TXT;
+import static org.apache.rya.api.RdfCloudTripleStoreConstants.SUBJECTPRED_CF_TXT;
+import static org.apache.rya.api.RdfCloudTripleStoreConstants.SUBJECT_CF_TXT;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import org.apache.rya.api.RdfCloudTripleStoreStatement;
-import org.apache.rya.api.layout.TableLayoutStrategy;
-import org.apache.rya.api.persist.RdfDAOException;
-import org.apache.rya.api.persist.RdfEvalStatsDAO;
-
import org.apache.accumulo.core.client.Connector;
import org.apache.accumulo.core.client.Scanner;
import org.apache.accumulo.core.client.admin.TableOperations;
@@ -48,11 +41,15 @@ import org.apache.accumulo.core.data.Key;
import org.apache.accumulo.core.data.Range;
import org.apache.accumulo.core.security.Authorizations;
import org.apache.hadoop.io.Text;
+import org.apache.rya.api.RdfCloudTripleStoreStatement;
+import org.apache.rya.api.layout.TableLayoutStrategy;
+import org.apache.rya.api.persist.RdfDAOException;
+import org.apache.rya.api.persist.RdfEvalStatsDAO;
import org.openrdf.model.Resource;
import org.openrdf.model.Value;
/**
- * Class CloudbaseRdfEvalStatsDAO
+ * Class AccumuloRdfEvalStatsDAO
* Date: Feb 28, 2012
* Time: 5:03:16 PM
*/
@@ -61,7 +58,7 @@ public class AccumuloRdfEvalStatsDAO implements RdfEvalStatsDAO<AccumuloRdfConfi
private boolean initialized = false;
private AccumuloRdfConfiguration conf = new AccumuloRdfConfiguration();
- private Collection<RdfCloudTripleStoreStatement> statements = new ArrayList<RdfCloudTripleStoreStatement>();
+ private final Collection<RdfCloudTripleStoreStatement> statements = new ArrayList<RdfCloudTripleStoreStatement>();
private Connector connector;
// private String evalTable = TBL_EVAL;
@@ -78,18 +75,18 @@ public class AccumuloRdfEvalStatsDAO implements RdfEvalStatsDAO<AccumuloRdfConfi
// evalTable = conf.get(RdfCloudTripleStoreConfiguration.CONF_TBL_EVAL, evalTable);
// conf.set(RdfCloudTripleStoreConfiguration.CONF_TBL_EVAL, evalTable);
- TableOperations tos = connector.tableOperations();
+ final TableOperations tos = connector.tableOperations();
AccumuloRdfUtils.createTableIfNotExist(tos, tableLayoutStrategy.getEval());
// boolean tableExists = tos.exists(evalTable);
// if (!tableExists)
// tos.create(evalTable);
initialized = true;
- } catch (Exception e) {
+ } catch (final Exception e) {
throw new RdfDAOException(e);
}
}
-
+
@Override
public void destroy() throws RdfDAOException {
if (!isInitialized()) {
@@ -107,25 +104,27 @@ public class AccumuloRdfEvalStatsDAO implements RdfEvalStatsDAO<AccumuloRdfConfi
return connector;
}
- public void setConnector(Connector connector) {
+ public void setConnector(final Connector connector) {
this.connector = connector;
}
+ @Override
public AccumuloRdfConfiguration getConf() {
return conf;
}
- public void setConf(AccumuloRdfConfiguration conf) {
+ @Override
+ public void setConf(final AccumuloRdfConfiguration conf) {
this.conf = conf;
}
- @Override
- public double getCardinality(AccumuloRdfConfiguration conf,
- org.apache.rya.api.persist.RdfEvalStatsDAO.CARDINALITY_OF card,
- List<Value> val, Resource context) throws RdfDAOException {
+ @Override
+ public double getCardinality(final AccumuloRdfConfiguration conf,
+ final org.apache.rya.api.persist.RdfEvalStatsDAO.CARDINALITY_OF card, final List<Value> val,
+ final Resource context) throws RdfDAOException {
try {
- Authorizations authorizations = conf.getAuthorizations();
- Scanner scanner = connector.createScanner(tableLayoutStrategy.getEval(), authorizations);
+ final Authorizations authorizations = conf.getAuthorizations();
+ final Scanner scanner = connector.createScanner(tableLayoutStrategy.getEval(), authorizations);
Text cfTxt = null;
if (CARDINALITY_OF.SUBJECT.equals(card)) {
cfTxt = SUBJECT_CF_TXT;
@@ -140,34 +139,36 @@ public class AccumuloRdfEvalStatsDAO implements RdfEvalStatsDAO<AccumuloRdfConfi
cfTxt = SUBJECTPRED_CF_TXT;
} else if (CARDINALITY_OF.PREDICATEOBJECT.equals(card)) {
cfTxt = PREDOBJECT_CF_TXT;
- } else throw new IllegalArgumentException("Not right Cardinality[" + card + "]");
+ } else {
+ throw new IllegalArgumentException("Not right Cardinality[" + card + "]");
+ }
Text cq = EMPTY_TEXT;
if (context != null) {
- cq = new Text(context.stringValue().getBytes());
+ cq = new Text(context.stringValue().getBytes(StandardCharsets.UTF_8));
}
scanner.fetchColumn(cfTxt, cq);
- Iterator<Value> vals = val.iterator();
+ final Iterator<Value> vals = val.iterator();
String compositeIndex = vals.next().stringValue();
while (vals.hasNext()){
compositeIndex += DELIM + vals.next().stringValue();
}
- scanner.setRange(new Range(new Text(compositeIndex.getBytes())));
- Iterator<Map.Entry<Key, org.apache.accumulo.core.data.Value>> iter = scanner.iterator();
+ scanner.setRange(new Range(new Text(compositeIndex.getBytes(StandardCharsets.UTF_8))));
+ final Iterator<Map.Entry<Key, org.apache.accumulo.core.data.Value>> iter = scanner.iterator();
if (iter.hasNext()) {
- return Double.parseDouble(new String(iter.next().getValue().get()));
+ return Double.parseDouble(new String(iter.next().getValue().get(), StandardCharsets.UTF_8));
}
- } catch (Exception e) {
+ } catch (final Exception e) {
throw new RdfDAOException(e);
}
//default
return -1;
- }
-
- @Override
- public double getCardinality(AccumuloRdfConfiguration conf,
- org.apache.rya.api.persist.RdfEvalStatsDAO.CARDINALITY_OF card,
- List<Value> val) throws RdfDAOException {
- return getCardinality(conf, card, val, null);
- }
+ }
+
+ @Override
+ public double getCardinality(final AccumuloRdfConfiguration conf,
+ final org.apache.rya.api.persist.RdfEvalStatsDAO.CARDINALITY_OF card, final List<Value> val)
+ throws RdfDAOException {
+ return getCardinality(conf, card, val, null);
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/538cfccc/dao/accumulo.rya/src/main/java/org/apache/rya/accumulo/AccumuloRyaDAO.java
----------------------------------------------------------------------
diff --git a/dao/accumulo.rya/src/main/java/org/apache/rya/accumulo/AccumuloRyaDAO.java b/dao/accumulo.rya/src/main/java/org/apache/rya/accumulo/AccumuloRyaDAO.java
index f1f7c03..8c99e44 100644
--- a/dao/accumulo.rya/src/main/java/org/apache/rya/accumulo/AccumuloRyaDAO.java
+++ b/dao/accumulo.rya/src/main/java/org/apache/rya/accumulo/AccumuloRyaDAO.java
@@ -1,5 +1,3 @@
-package org.apache.rya.accumulo;
-
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -18,8 +16,7 @@ package org.apache.rya.accumulo;
* specific language governing permissions and limitations
* under the License.
*/
-
-
+package org.apache.rya.accumulo;
import static com.google.common.base.Preconditions.checkNotNull;
import static org.apache.rya.accumulo.AccumuloRdfConstants.ALL_AUTHORIZATIONS;
@@ -33,6 +30,7 @@ import static org.apache.rya.api.RdfCloudTripleStoreConstants.RTS_VERSION_PREDIC
import static org.apache.rya.api.RdfCloudTripleStoreConstants.VERSION_RYA;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
@@ -319,7 +317,7 @@ public class AccumuloRyaDAO implements RyaDAO<AccumuloRdfConfiguration>, RyaName
public void addNamespace(final String pfx, final String namespace) throws RyaDAOException {
try {
final Mutation m = new Mutation(new Text(pfx));
- m.put(INFO_NAMESPACE_TXT, EMPTY_TEXT, new Value(namespace.getBytes()));
+ m.put(INFO_NAMESPACE_TXT, EMPTY_TEXT, new Value(namespace.getBytes(StandardCharsets.UTF_8)));
bw_ns.addMutation(m);
if (flushEachUpdate) { mt_bw.flush(); }
} catch (final Exception e) {
@@ -338,7 +336,7 @@ public class AccumuloRyaDAO implements RyaDAO<AccumuloRdfConfiguration>, RyaName
.iterator();
if (iterator.hasNext()) {
- return new String(iterator.next().getValue().get());
+ return new String(iterator.next().getValue().get(), StandardCharsets.UTF_8);
}
} catch (final Exception e) {
throw new RyaDAOException(e);
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/538cfccc/dao/mongodb.rya/src/main/java/org/apache/rya/mongodb/dao/SimpleMongoDBNamespaceManager.java
----------------------------------------------------------------------
diff --git a/dao/mongodb.rya/src/main/java/org/apache/rya/mongodb/dao/SimpleMongoDBNamespaceManager.java b/dao/mongodb.rya/src/main/java/org/apache/rya/mongodb/dao/SimpleMongoDBNamespaceManager.java
index d2d6d7e..6956f49 100644
--- a/dao/mongodb.rya/src/main/java/org/apache/rya/mongodb/dao/SimpleMongoDBNamespaceManager.java
+++ b/dao/mongodb.rya/src/main/java/org/apache/rya/mongodb/dao/SimpleMongoDBNamespaceManager.java
@@ -1,5 +1,3 @@
-package org.apache.rya.mongodb.dao;
-
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -8,9 +6,9 @@ package org.apache.rya.mongodb.dao;
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -18,18 +16,16 @@ package org.apache.rya.mongodb.dao;
* specific language governing permissions and limitations
* under the License.
*/
+package org.apache.rya.mongodb.dao;
-
-import info.aduna.iteration.CloseableIteration;
-
+import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Map;
+import org.apache.commons.codec.binary.Hex;
import org.apache.rya.api.persist.RyaDAOException;
import org.apache.rya.mongodb.MongoDBRdfConfiguration;
-
-import org.apache.commons.codec.binary.Hex;
import org.openrdf.model.Namespace;
import com.mongodb.BasicDBObject;
@@ -37,22 +33,28 @@ import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
+import info.aduna.iteration.CloseableIteration;
+
public class SimpleMongoDBNamespaceManager implements MongoDBNamespaceManager {
public class NamespaceImplementation implements Namespace {
- private String namespace;
- private String prefix;
+ private final String namespace;
+ private final String prefix;
- public NamespaceImplementation(String namespace, String prefix) {
+ public NamespaceImplementation(final String namespace, final String prefix) {
this.namespace = namespace;
this.prefix = prefix;
}
@Override
- public int compareTo(Namespace o) {
- if (!namespace.equalsIgnoreCase(o.getName())) return namespace.compareTo(o.getName());
- if (!prefix.equalsIgnoreCase(o.getPrefix())) return prefix.compareTo(o.getPrefix());
+ public int compareTo(final Namespace o) {
+ if (!namespace.equalsIgnoreCase(o.getName())) {
+ return namespace.compareTo(o.getName());
+ }
+ if (!prefix.equalsIgnoreCase(o.getPrefix())) {
+ return prefix.compareTo(o.getPrefix());
+ }
return 0;
}
@@ -70,9 +72,9 @@ public class SimpleMongoDBNamespaceManager implements MongoDBNamespaceManager {
public class MongoCursorIteration implements
CloseableIteration<Namespace, RyaDAOException> {
- private DBCursor cursor;
+ private final DBCursor cursor;
- public MongoCursorIteration(DBCursor cursor2) {
+ public MongoCursorIteration(final DBCursor cursor2) {
this.cursor = cursor2;
}
@@ -83,12 +85,12 @@ public class SimpleMongoDBNamespaceManager implements MongoDBNamespaceManager {
@Override
public Namespace next() throws RyaDAOException {
- DBObject ns = cursor.next();
- Map values = ns.toMap();
- String namespace = (String) values.get(NAMESPACE);
- String prefix = (String) values.get(PREFIX);
-
- Namespace temp = new NamespaceImplementation(namespace, prefix);
+ final DBObject ns = cursor.next();
+ final Map values = ns.toMap();
+ final String namespace = (String) values.get(NAMESPACE);
+ final String prefix = (String) values.get(PREFIX);
+
+ final Namespace temp = new NamespaceImplementation(namespace, prefix);
return temp;
}
@@ -108,22 +110,22 @@ public class SimpleMongoDBNamespaceManager implements MongoDBNamespaceManager {
private static final String PREFIX = "prefix";
private static final String NAMESPACE = "namespace";
private MongoDBRdfConfiguration conf;
- private DBCollection nsColl;
+ private final DBCollection nsColl;
- public SimpleMongoDBNamespaceManager(DBCollection nameSpaceCollection) {
+ public SimpleMongoDBNamespaceManager(final DBCollection nameSpaceCollection) {
nsColl = nameSpaceCollection;
}
-
+
@Override
- public void createIndices(DBCollection coll){
+ public void createIndices(final DBCollection coll){
coll.createIndex(PREFIX);
coll.createIndex(NAMESPACE);
}
@Override
- public void setConf(MongoDBRdfConfiguration paramC) {
+ public void setConf(final MongoDBRdfConfiguration paramC) {
this.conf = paramC;
}
@@ -134,47 +136,47 @@ public class SimpleMongoDBNamespaceManager implements MongoDBNamespaceManager {
}
@Override
- public void addNamespace(String prefix, String namespace)
+ public void addNamespace(final String prefix, final String namespace)
throws RyaDAOException {
- String id = prefix;
- byte[] bytes = id.getBytes();
+ final String id = prefix;
+ byte[] bytes = id.getBytes(StandardCharsets.UTF_8);
try {
- MessageDigest digest = MessageDigest.getInstance("SHA-1");
+ final MessageDigest digest = MessageDigest.getInstance("SHA-1");
bytes = digest.digest(bytes);
- } catch (NoSuchAlgorithmException e) {
+ } catch (final NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
- BasicDBObject doc = new BasicDBObject(ID, new String(Hex.encodeHex(bytes)))
+ final BasicDBObject doc = new BasicDBObject(ID, new String(Hex.encodeHex(bytes)))
.append(PREFIX, prefix)
.append(NAMESPACE, namespace);
nsColl.insert(doc);
-
+
}
@Override
- public String getNamespace(String prefix) throws RyaDAOException {
- DBObject query = new BasicDBObject().append(PREFIX, prefix);
- DBCursor cursor = nsColl.find(query);
+ public String getNamespace(final String prefix) throws RyaDAOException {
+ final DBObject query = new BasicDBObject().append(PREFIX, prefix);
+ final DBCursor cursor = nsColl.find(query);
String nameSpace = prefix;
while (cursor.hasNext()){
- DBObject obj = cursor.next();
+ final DBObject obj = cursor.next();
nameSpace = (String) obj.toMap().get(NAMESPACE);
}
return nameSpace;
}
@Override
- public void removeNamespace(String prefix) throws RyaDAOException {
- DBObject query = new BasicDBObject().append(PREFIX, prefix);
+ public void removeNamespace(final String prefix) throws RyaDAOException {
+ final DBObject query = new BasicDBObject().append(PREFIX, prefix);
nsColl.remove(query);
}
@Override
public CloseableIteration<? extends Namespace, RyaDAOException> iterateNamespace()
throws RyaDAOException {
- DBObject query = new BasicDBObject();
- DBCursor cursor = nsColl.find(query);
+ final DBObject query = new BasicDBObject();
+ final DBCursor cursor = nsColl.find(query);
return new MongoCursorIteration(cursor);
}
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/538cfccc/dao/mongodb.rya/src/main/java/org/apache/rya/mongodb/dao/SimpleMongoDBStorageStrategy.java
----------------------------------------------------------------------
diff --git a/dao/mongodb.rya/src/main/java/org/apache/rya/mongodb/dao/SimpleMongoDBStorageStrategy.java b/dao/mongodb.rya/src/main/java/org/apache/rya/mongodb/dao/SimpleMongoDBStorageStrategy.java
index a8f548c..388e807 100644
--- a/dao/mongodb.rya/src/main/java/org/apache/rya/mongodb/dao/SimpleMongoDBStorageStrategy.java
+++ b/dao/mongodb.rya/src/main/java/org/apache/rya/mongodb/dao/SimpleMongoDBStorageStrategy.java
@@ -1,5 +1,3 @@
-package org.apache.rya.mongodb.dao;
-
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -18,9 +16,11 @@ package org.apache.rya.mongodb.dao;
* specific language governing permissions and limitations
* under the License.
*/
+package org.apache.rya.mongodb.dao;
import static org.openrdf.model.vocabulary.XMLSchema.ANYURI;
+import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Map;
@@ -166,7 +166,7 @@ public class SimpleMongoDBStorageStrategy implements MongoDBStorageStrategy<RyaS
}
final String id = statement.getSubject().getData() + " " +
statement.getPredicate().getData() + " " + statement.getObject().getData() + " " + context;
- byte[] bytes = id.getBytes();
+ byte[] bytes = id.getBytes(StandardCharsets.UTF_8);
try {
final MessageDigest digest = MessageDigest.getInstance("SHA-1");
bytes = digest.digest(bytes);
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/538cfccc/extras/indexing/src/main/java/org/apache/rya/accumulo/documentIndex/DocumentIndexIntersectingIterator.java
----------------------------------------------------------------------
diff --git a/extras/indexing/src/main/java/org/apache/rya/accumulo/documentIndex/DocumentIndexIntersectingIterator.java b/extras/indexing/src/main/java/org/apache/rya/accumulo/documentIndex/DocumentIndexIntersectingIterator.java
index 6e5b72f..595fc36 100644
--- a/extras/indexing/src/main/java/org/apache/rya/accumulo/documentIndex/DocumentIndexIntersectingIterator.java
+++ b/extras/indexing/src/main/java/org/apache/rya/accumulo/documentIndex/DocumentIndexIntersectingIterator.java
@@ -20,6 +20,7 @@
package org.apache.rya.accumulo.documentIndex;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
@@ -33,7 +34,6 @@ import org.apache.accumulo.core.data.Range;
import org.apache.accumulo.core.data.Value;
import org.apache.accumulo.core.iterators.IteratorEnvironment;
import org.apache.accumulo.core.iterators.SortedKeyValueIterator;
-import org.apache.accumulo.core.tabletserver.thrift.TabletClientService;
import org.apache.accumulo.core.util.TextUtil;
import org.apache.commons.codec.binary.Base64;
import org.apache.hadoop.io.Text;
@@ -560,9 +560,9 @@ public class DocumentIndexIntersectingIterator implements SortedKeyValueIterator
protected static String encodeColumns(TextColumn[] columns) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < columns.length; i++) {
- sb.append(new String(Base64.encodeBase64(TextUtil.getBytes(columns[i].getColumnFamily()))));
+ sb.append(new String(Base64.encodeBase64(TextUtil.getBytes(columns[i].getColumnFamily())), StandardCharsets.UTF_8));
sb.append('\n');
- sb.append(new String(Base64.encodeBase64(TextUtil.getBytes(columns[i].getColumnQualifier()))));
+ sb.append(new String(Base64.encodeBase64(TextUtil.getBytes(columns[i].getColumnQualifier())), StandardCharsets.UTF_8));
sb.append('\u0001');
}
return sb.toString();
@@ -575,8 +575,8 @@ public class DocumentIndexIntersectingIterator implements SortedKeyValueIterator
TextColumn[] columnTexts = new TextColumn[columnStrings.length];
for (int i = 0; i < columnStrings.length; i++) {
String[] columnComponents = columnStrings[i].split("\n");
- columnTexts[i] = new TextColumn(new Text(Base64.decodeBase64(columnComponents[0].getBytes())),
- new Text(Base64.decodeBase64(columnComponents[1].getBytes())));
+ columnTexts[i] = new TextColumn(new Text(Base64.decodeBase64(columnComponents[0].getBytes(StandardCharsets.UTF_8))),
+ new Text(Base64.decodeBase64(columnComponents[1].getBytes(StandardCharsets.UTF_8))));
}
return columnTexts;
}
@@ -591,7 +591,7 @@ public class DocumentIndexIntersectingIterator implements SortedKeyValueIterator
*/
protected static String encodeContext(String context) {
- return new String(Base64.encodeBase64(context.getBytes()));
+ return new String(Base64.encodeBase64(context.getBytes(StandardCharsets.UTF_8)), StandardCharsets.UTF_8);
}
@@ -605,7 +605,7 @@ public class DocumentIndexIntersectingIterator implements SortedKeyValueIterator
if (context == null) {
return null;
} else {
- return new String(Base64.decodeBase64(context.getBytes()));
+ return new String(Base64.decodeBase64(context.getBytes(StandardCharsets.UTF_8)), StandardCharsets.UTF_8);
}
}
@@ -621,7 +621,7 @@ public class DocumentIndexIntersectingIterator implements SortedKeyValueIterator
else
bytes[i] = 0;
}
- return new String(Base64.encodeBase64(bytes));
+ return new String(Base64.encodeBase64(bytes), StandardCharsets.UTF_8);
}
/**
@@ -633,7 +633,7 @@ public class DocumentIndexIntersectingIterator implements SortedKeyValueIterator
if (prefixes == null)
return null;
- byte[] bytes = Base64.decodeBase64(prefixes.getBytes());
+ byte[] bytes = Base64.decodeBase64(prefixes.getBytes(StandardCharsets.UTF_8));
boolean[] bFlags = new boolean[bytes.length];
for (int i = 0; i < bytes.length; i++) {
if (bytes[i] == 1)
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/538cfccc/extras/indexing/src/main/java/org/apache/rya/indexing/KeyParts.java
----------------------------------------------------------------------
diff --git a/extras/indexing/src/main/java/org/apache/rya/indexing/KeyParts.java b/extras/indexing/src/main/java/org/apache/rya/indexing/KeyParts.java
index 1e988fe..11ff8c0 100644
--- a/extras/indexing/src/main/java/org/apache/rya/indexing/KeyParts.java
+++ b/extras/indexing/src/main/java/org/apache/rya/indexing/KeyParts.java
@@ -1,5 +1,3 @@
-package org.apache.rya.indexing;
-
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -18,8 +16,9 @@ package org.apache.rya.indexing;
* specific language governing permissions and limitations
* under the License.
*/
+package org.apache.rya.indexing;
-
+import java.nio.charset.StandardCharsets;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
@@ -202,7 +201,7 @@ public class KeyParts implements Iterable<KeyParts> {
return "KeyParts [contraintPrefix=" + toHumanString(constraintPrefix) + ", instant=" + toHumanString(instant.getAsKeyBytes()) + ", cf=" + cf + ", cq=" + cq + "]";
}
private static void appendSubject(final Statement statement, final Text keyText) {
- final Value statementValue = new Value(StatementSerializer.writeSubject(statement).getBytes());
+ final Value statementValue = new Value(StatementSerializer.writeSubject(statement).getBytes(StandardCharsets.UTF_8));
final byte[] hashOfValue = uniqueFromValueForKey(statementValue);
appendBytes(HASH_PREFIX, keyText); // prefix the hash with a zero byte.
appendBytes(hashOfValue, keyText);
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/538cfccc/extras/indexing/src/main/java/org/apache/rya/indexing/accumulo/entity/AccumuloDocIdIndexer.java
----------------------------------------------------------------------
diff --git a/extras/indexing/src/main/java/org/apache/rya/indexing/accumulo/entity/AccumuloDocIdIndexer.java b/extras/indexing/src/main/java/org/apache/rya/indexing/accumulo/entity/AccumuloDocIdIndexer.java
index a84670f..25a272d 100644
--- a/extras/indexing/src/main/java/org/apache/rya/indexing/accumulo/entity/AccumuloDocIdIndexer.java
+++ b/extras/indexing/src/main/java/org/apache/rya/indexing/accumulo/entity/AccumuloDocIdIndexer.java
@@ -1,5 +1,3 @@
-package org.apache.rya.indexing.accumulo.entity;
-
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -18,13 +16,13 @@ package org.apache.rya.indexing.accumulo.entity;
* specific language governing permissions and limitations
* under the License.
*/
-
+package org.apache.rya.indexing.accumulo.entity;
import static org.apache.rya.api.RdfCloudTripleStoreConstants.DELIM_BYTE;
import static org.apache.rya.api.RdfCloudTripleStoreConstants.TYPE_DELIM_BYTE;
-import info.aduna.iteration.CloseableIteration;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -35,17 +33,6 @@ import java.util.Map.Entry;
import java.util.NoSuchElementException;
import java.util.Set;
-import org.apache.rya.accumulo.AccumuloRdfConfiguration;
-import org.apache.rya.accumulo.documentIndex.DocIndexIteratorUtil;
-import org.apache.rya.accumulo.documentIndex.DocumentIndexIntersectingIterator;
-import org.apache.rya.api.RdfCloudTripleStoreConfiguration;
-import org.apache.rya.api.domain.RyaURI;
-import org.apache.rya.api.resolver.RyaContext;
-import org.apache.rya.api.resolver.RyaToRdfConversions;
-import org.apache.rya.api.resolver.RyaTypeResolverException;
-import org.apache.rya.indexing.DocIdIndexer;
-import org.apache.rya.indexing.accumulo.ConfigUtils;
-
import org.apache.accumulo.core.client.AccumuloException;
import org.apache.accumulo.core.client.AccumuloSecurityException;
import org.apache.accumulo.core.client.BatchScanner;
@@ -57,6 +44,16 @@ import org.apache.accumulo.core.data.Range;
import org.apache.accumulo.core.data.Value;
import org.apache.accumulo.core.security.Authorizations;
import org.apache.hadoop.io.Text;
+import org.apache.rya.accumulo.AccumuloRdfConfiguration;
+import org.apache.rya.accumulo.documentIndex.DocIndexIteratorUtil;
+import org.apache.rya.accumulo.documentIndex.DocumentIndexIntersectingIterator;
+import org.apache.rya.api.RdfCloudTripleStoreConfiguration;
+import org.apache.rya.api.domain.RyaURI;
+import org.apache.rya.api.resolver.RyaContext;
+import org.apache.rya.api.resolver.RyaToRdfConversions;
+import org.apache.rya.api.resolver.RyaTypeResolverException;
+import org.apache.rya.indexing.DocIdIndexer;
+import org.apache.rya.indexing.accumulo.ConfigUtils;
import org.openrdf.query.BindingSet;
import org.openrdf.query.MalformedQueryException;
import org.openrdf.query.QueryEvaluationException;
@@ -72,14 +69,16 @@ import com.google.common.collect.HashMultimap;
import com.google.common.collect.Sets;
import com.google.common.primitives.Bytes;
+import info.aduna.iteration.CloseableIteration;
+
public class AccumuloDocIdIndexer implements DocIdIndexer {
private BatchScanner bs;
- private AccumuloRdfConfiguration conf;
+ private final AccumuloRdfConfiguration conf;
- public AccumuloDocIdIndexer(RdfCloudTripleStoreConfiguration conf) throws AccumuloException, AccumuloSecurityException {
+ public AccumuloDocIdIndexer(final RdfCloudTripleStoreConfiguration conf) throws AccumuloException, AccumuloSecurityException {
Preconditions.checkArgument(conf instanceof RdfCloudTripleStoreConfiguration, "conf must be isntance of RdfCloudTripleStoreConfiguration");
this.conf = (AccumuloRdfConfiguration) conf;
//Connector conn = ConfigUtils.getConnector(conf);
@@ -88,22 +87,22 @@ public class AccumuloDocIdIndexer implements DocIdIndexer {
- public CloseableIteration<BindingSet, QueryEvaluationException> queryDocIndex(String sparqlQuery,
- Collection<BindingSet> constraints) throws TableNotFoundException, QueryEvaluationException {
+ public CloseableIteration<BindingSet, QueryEvaluationException> queryDocIndex(final String sparqlQuery,
+ final Collection<BindingSet> constraints) throws TableNotFoundException, QueryEvaluationException {
- SPARQLParser parser = new SPARQLParser();
+ final SPARQLParser parser = new SPARQLParser();
ParsedQuery pq1 = null;
try {
pq1 = parser.parseQuery(sparqlQuery, null);
- } catch (MalformedQueryException e) {
+ } catch (final MalformedQueryException e) {
e.printStackTrace();
}
- TupleExpr te1 = pq1.getTupleExpr();
- List<StatementPattern> spList1 = StatementPatternCollector.process(te1);
+ final TupleExpr te1 = pq1.getTupleExpr();
+ final List<StatementPattern> spList1 = StatementPatternCollector.process(te1);
if(StarQuery.isValidStarQuery(spList1)) {
- StarQuery sq1 = new StarQuery(spList1);
+ final StarQuery sq1 = new StarQuery(spList1);
return queryDocIndex(sq1, constraints);
} else {
throw new IllegalArgumentException("Invalid star query!");
@@ -115,8 +114,8 @@ public class AccumuloDocIdIndexer implements DocIdIndexer {
@Override
- public CloseableIteration<BindingSet, QueryEvaluationException> queryDocIndex(StarQuery query,
- Collection<BindingSet> constraints) throws TableNotFoundException, QueryEvaluationException {
+ public CloseableIteration<BindingSet, QueryEvaluationException> queryDocIndex(final StarQuery query,
+ final Collection<BindingSet> constraints) throws TableNotFoundException, QueryEvaluationException {
final StarQuery starQ = query;
final Iterator<BindingSet> bs = constraints.iterator();
@@ -124,7 +123,7 @@ public class AccumuloDocIdIndexer implements DocIdIndexer {
final Set<String> unCommonVarNames;
final Set<String> commonVarNames;
if (bs2.hasNext()) {
- BindingSet currBs = bs2.next();
+ final BindingSet currBs = bs2.next();
commonVarNames = StarQuery.getCommonVars(query, currBs);
unCommonVarNames = Sets.difference(currBs.getBindingNames(), commonVarNames);
} else {
@@ -138,17 +137,17 @@ public class AccumuloDocIdIndexer implements DocIdIndexer {
final String commonVar = starQ.getCommonVarName();
final Iterator<Entry<Key, Value>> intersections;
final BatchScanner scan;
- Set<Range> ranges = Sets.newHashSet();
+ final Set<Range> ranges = Sets.newHashSet();
while(bs.hasNext()) {
- BindingSet currentBs = bs.next();
+ final BindingSet currentBs = bs.next();
if(currentBs.getBinding(commonVar) == null) {
continue;
}
- String row = currentBs.getBinding(commonVar).getValue().stringValue();
+ final String row = currentBs.getBinding(commonVar).getValue().stringValue();
ranges.add(new Range(row));
map.put(row, currentBs);
@@ -246,7 +245,7 @@ public class AccumuloDocIdIndexer implements DocIdIndexer {
private boolean init = false;
private BindingSet currentBs;
private StarQuery sq = new StarQuery(starQ);
- private Set<Range> emptyRangeSet = Sets.newHashSet();
+ private final Set<Range> emptyRangeSet = Sets.newHashSet();
private BatchScanner scan;
@Override
@@ -327,16 +326,16 @@ public class AccumuloDocIdIndexer implements DocIdIndexer {
}
}
- private QueryBindingSet deserializeKey(Key key, StarQuery sq, BindingSet currentBs, Set<String> unCommonVar) {
+ private QueryBindingSet deserializeKey(final Key key, final StarQuery sq, final BindingSet currentBs, final Set<String> unCommonVar) {
- QueryBindingSet currentSolutionBs = new QueryBindingSet();
+ final QueryBindingSet currentSolutionBs = new QueryBindingSet();
- Text row = key.getRow();
- Text cq = key.getColumnQualifier();
+ final Text row = key.getRow();
+ final Text cq = key.getColumnQualifier();
- String[] cqArray = cq.toString().split(DocIndexIteratorUtil.DOC_ID_INDEX_DELIM);
+ final String[] cqArray = cq.toString().split(DocIndexIteratorUtil.DOC_ID_INDEX_DELIM);
boolean commonVarSet = false;
@@ -346,63 +345,63 @@ public class AccumuloDocIdIndexer implements DocIdIndexer {
}
if (!commonVarSet && sq.isCommonVarURI()) {
- RyaURI rURI = new RyaURI(row.toString());
+ final RyaURI rURI = new RyaURI(row.toString());
currentSolutionBs.addBinding(sq.getCommonVarName(),
RyaToRdfConversions.convertValue(rURI));
commonVarSet = true;
}
- for (String s : sq.getUnCommonVars()) {
+ for (final String s : sq.getUnCommonVars()) {
- byte[] cqBytes = cqArray[sq.getVarPos().get(s)].getBytes();
- int firstIndex = Bytes.indexOf(cqBytes, DELIM_BYTE);
- int secondIndex = Bytes.lastIndexOf(cqBytes, DELIM_BYTE);
- int typeIndex = Bytes.indexOf(cqBytes, TYPE_DELIM_BYTE);
- byte[] tripleComponent = Arrays.copyOfRange(cqBytes, firstIndex + 1, secondIndex);
- byte[] cqContent = Arrays.copyOfRange(cqBytes, secondIndex + 1, typeIndex);
- byte[] objType = Arrays.copyOfRange(cqBytes, typeIndex, cqBytes.length);
+ final byte[] cqBytes = cqArray[sq.getVarPos().get(s)].getBytes(StandardCharsets.UTF_8);
+ final int firstIndex = Bytes.indexOf(cqBytes, DELIM_BYTE);
+ final int secondIndex = Bytes.lastIndexOf(cqBytes, DELIM_BYTE);
+ final int typeIndex = Bytes.indexOf(cqBytes, TYPE_DELIM_BYTE);
+ final String tripleComponent = new String(Arrays.copyOfRange(cqBytes, firstIndex + 1, secondIndex), StandardCharsets.UTF_8);
+ final byte[] cqContent = Arrays.copyOfRange(cqBytes, secondIndex + 1, typeIndex);
+ final byte[] objType = Arrays.copyOfRange(cqBytes, typeIndex, cqBytes.length);
- if (new String(tripleComponent).equals("object")) {
- byte[] object = Bytes.concat(cqContent, objType);
+ if (tripleComponent.equals("object")) {
+ final byte[] object = Bytes.concat(cqContent, objType);
org.openrdf.model.Value v = null;
try {
v = RyaToRdfConversions.convertValue(RyaContext.getInstance().deserialize(
object));
- } catch (RyaTypeResolverException e) {
+ } catch (final RyaTypeResolverException e) {
e.printStackTrace();
}
currentSolutionBs.addBinding(s, v);
- } else if (new String(tripleComponent).equals("subject")) {
+ } else if (tripleComponent.equals("subject")) {
if (!commonVarSet) {
- byte[] object = Bytes.concat(row.getBytes(), objType);
+ final byte[] object = Bytes.concat(row.getBytes(), objType);
org.openrdf.model.Value v = null;
try {
v = RyaToRdfConversions.convertValue(RyaContext.getInstance().deserialize(
object));
- } catch (RyaTypeResolverException e) {
+ } catch (final RyaTypeResolverException e) {
e.printStackTrace();
}
currentSolutionBs.addBinding(sq.getCommonVarName(), v);
commonVarSet = true;
}
- RyaURI rURI = new RyaURI(new String(cqContent));
+ final RyaURI rURI = new RyaURI(new String(cqContent, StandardCharsets.UTF_8));
currentSolutionBs.addBinding(s, RyaToRdfConversions.convertValue(rURI));
} else {
throw new IllegalArgumentException("Invalid row.");
}
}
- for (String s : unCommonVar) {
+ for (final String s : unCommonVar) {
currentSolutionBs.addBinding(s, currentBs.getValue(s));
}
return currentSolutionBs;
}
- private BatchScanner runQuery(StarQuery query, Collection<Range> ranges) throws QueryEvaluationException {
+ private BatchScanner runQuery(final StarQuery query, Collection<Range> ranges) throws QueryEvaluationException {
try {
if (ranges.size() == 0) {
- String rangeText = query.getCommonVarValue();
+ final String rangeText = query.getCommonVarValue();
Range r;
if (rangeText != null) {
r = new Range(new Text(query.getCommonVarValue()));
@@ -412,15 +411,15 @@ public class AccumuloDocIdIndexer implements DocIdIndexer {
ranges = Collections.singleton(r);
}
- Connector accCon = ConfigUtils.getConnector(conf);
- IteratorSetting is = new IteratorSetting(30, "fii", DocumentIndexIntersectingIterator.class);
+ final Connector accCon = ConfigUtils.getConnector(conf);
+ final IteratorSetting is = new IteratorSetting(30, "fii", DocumentIndexIntersectingIterator.class);
DocumentIndexIntersectingIterator.setColumnFamilies(is, query.getColumnCond());
if (query.hasContext()) {
DocumentIndexIntersectingIterator.setContext(is, query.getContextURI());
}
-
+
final Authorizations auths;
final String authsStr = conf.get(ConfigUtils.CLOUDBASE_AUTHS);
if(authsStr == null || authsStr.isEmpty()) {
@@ -428,7 +427,7 @@ public class AccumuloDocIdIndexer implements DocIdIndexer {
} else {
auths = new Authorizations(authsStr);
}
-
+
bs = accCon.createBatchScanner(EntityCentricIndex.getTableName(conf), auths, 15);
bs.addScanIterator(is);
bs.setRanges(ranges);
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/538cfccc/extras/indexing/src/main/java/org/apache/rya/indexing/accumulo/entity/EntityCentricIndex.java
----------------------------------------------------------------------
diff --git a/extras/indexing/src/main/java/org/apache/rya/indexing/accumulo/entity/EntityCentricIndex.java b/extras/indexing/src/main/java/org/apache/rya/indexing/accumulo/entity/EntityCentricIndex.java
index 0676e3d..ab4bd55 100644
--- a/extras/indexing/src/main/java/org/apache/rya/indexing/accumulo/entity/EntityCentricIndex.java
+++ b/extras/indexing/src/main/java/org/apache/rya/indexing/accumulo/entity/EntityCentricIndex.java
@@ -27,6 +27,7 @@ import static org.apache.rya.api.RdfCloudTripleStoreConstants.EMPTY_TEXT;
import static org.apache.rya.api.RdfCloudTripleStoreConstants.TYPE_DELIM_BYTES;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
@@ -68,6 +69,9 @@ public class EntityCentricIndex extends AbstractAccumuloIndexer {
private static final Logger logger = Logger.getLogger(EntityCentricIndex.class);
private static final String TABLE_SUFFIX = "EntityCentricIndex";
+ private static final String OBJECT = "object";
+ private static final String SUBJECT = "subject";
+
private AccumuloRdfConfiguration conf;
private BatchWriter writer;
private boolean isInit = false;
@@ -235,15 +239,15 @@ public class EntityCentricIndex extends AbstractAccumuloIndexer {
final byte[] columnVisibility = stmt.getColumnVisibility();
final byte[] value = stmt.getValue();
assert subject != null && predicate != null && object != null;
- final byte[] cf = (context == null) ? EMPTY_BYTES : context.getData().getBytes();
- final byte[] subjBytes = subject.getData().getBytes();
- final byte[] predBytes = predicate.getData().getBytes();
+ final byte[] cf = (context == null) ? EMPTY_BYTES : context.getData().getBytes(StandardCharsets.UTF_8);
+ final byte[] subjBytes = subject.getData().getBytes(StandardCharsets.UTF_8);
+ final byte[] predBytes = predicate.getData().getBytes(StandardCharsets.UTF_8);
final byte[][] objBytes = RyaContext.getInstance().serializeType(object);
return Lists.newArrayList(new TripleRow(subjBytes,
predBytes,
Bytes.concat(cf, DELIM_BYTES,
- "object".getBytes(), DELIM_BYTES,
+ OBJECT.getBytes(StandardCharsets.UTF_8), DELIM_BYTES,
objBytes[0], objBytes[1]),
timestamp,
columnVisibility,
@@ -251,7 +255,7 @@ public class EntityCentricIndex extends AbstractAccumuloIndexer {
new TripleRow(objBytes[0],
predBytes,
Bytes.concat(cf, DELIM_BYTES,
- "subject".getBytes(), DELIM_BYTES,
+ SUBJECT.getBytes(StandardCharsets.UTF_8), DELIM_BYTES,
subjBytes, objBytes[1]),
timestamp,
columnVisibility,
@@ -282,25 +286,25 @@ public class EntityCentricIndex extends AbstractAccumuloIndexer {
final byte[] columnFamily = Arrays.copyOf(data, split);
final byte[] edgeBytes = Arrays.copyOfRange(data, split + DELIM_BYTES.length, data.length);
split = Bytes.indexOf(edgeBytes, DELIM_BYTES);
- String otherNodeVar = new String(Arrays.copyOf(edgeBytes, split));
- byte[] otherNodeBytes = Arrays.copyOfRange(edgeBytes, split + DELIM_BYTES.length, edgeBytes.length);
+ final String otherNodeVar = new String(Arrays.copyOf(edgeBytes, split), StandardCharsets.UTF_8);
+ final byte[] otherNodeBytes = Arrays.copyOfRange(edgeBytes, split + DELIM_BYTES.length, edgeBytes.length);
split = Bytes.indexOf(otherNodeBytes, TYPE_DELIM_BYTES);
- byte[] otherNodeData = Arrays.copyOf(otherNodeBytes, split);
- byte[] typeBytes = Arrays.copyOfRange(otherNodeBytes, split, otherNodeBytes.length);
+ final byte[] otherNodeData = Arrays.copyOf(otherNodeBytes, split);
+ final byte[] typeBytes = Arrays.copyOfRange(otherNodeBytes, split, otherNodeBytes.length);
byte[] objectBytes;
RyaURI subject;
- final RyaURI predicate = new RyaURI(new String(predicateBytes));
+ final RyaURI predicate = new RyaURI(new String(predicateBytes, StandardCharsets.UTF_8));
RyaType object;
RyaURI context = null;
// Expect either: entity=subject.data, otherNodeVar="object", otherNodeBytes={object.data, object.datatype}
// or: entity=object.data, otherNodeVar="subject", otherNodeBytes={subject.data, object.datatype}
switch (otherNodeVar) {
- case "subject":
- subject = new RyaURI(new String(otherNodeData));
+ case SUBJECT:
+ subject = new RyaURI(new String(otherNodeData, StandardCharsets.UTF_8));
objectBytes = Bytes.concat(entityBytes, typeBytes);
break;
- case "object":
- subject = new RyaURI(new String(entityBytes));
+ case OBJECT:
+ subject = new RyaURI(new String(entityBytes, StandardCharsets.UTF_8));
objectBytes = Bytes.concat(otherNodeData, typeBytes);
break;
default:
@@ -309,7 +313,7 @@ public class EntityCentricIndex extends AbstractAccumuloIndexer {
}
object = RyaContext.getInstance().deserialize(objectBytes);
if (columnFamily != null && columnFamily.length > 0) {
- context = new RyaURI(new String(columnFamily));
+ context = new RyaURI(new String(columnFamily, StandardCharsets.UTF_8));
}
return new RyaStatement(subject, predicate, object, context,
null, columnVisibility, valueBytes, timestamp);
@@ -323,33 +327,33 @@ public class EntityCentricIndex extends AbstractAccumuloIndexer {
* @throws IOException if edge direction can't be extracted as expected.
* @throws RyaTypeResolverException if a type error occurs deserializing the statement's object.
*/
- public static RyaType getRyaType(Key key, Value value) throws RyaTypeResolverException, IOException {
+ public static RyaType getRyaType(final Key key, final Value value) throws RyaTypeResolverException, IOException {
assert key != null;
assert value != null;
- byte[] entityBytes = key.getRowData().toArray();
- byte[] data = key.getColumnQualifierData().toArray();
+ final byte[] entityBytes = key.getRowData().toArray();
+ final byte[] data = key.getColumnQualifierData().toArray();
// main entity is either the subject or object
// data contains: column family , var name of other node , data of other node + datatype of object
int split = Bytes.indexOf(data, DELIM_BYTES);
- byte[] edgeBytes = Arrays.copyOfRange(data, split + DELIM_BYTES.length, data.length);
+ final byte[] edgeBytes = Arrays.copyOfRange(data, split + DELIM_BYTES.length, data.length);
split = Bytes.indexOf(edgeBytes, DELIM_BYTES);
- String otherNodeVar = new String(Arrays.copyOf(edgeBytes, split));
- byte[] otherNodeBytes = Arrays.copyOfRange(edgeBytes, split + DELIM_BYTES.length, edgeBytes.length);
+ final String otherNodeVar = new String(Arrays.copyOf(edgeBytes, split), StandardCharsets.UTF_8);
+ final byte[] otherNodeBytes = Arrays.copyOfRange(edgeBytes, split + DELIM_BYTES.length, edgeBytes.length);
split = Bytes.indexOf(otherNodeBytes, TYPE_DELIM_BYTES);
- byte[] typeBytes = Arrays.copyOfRange(otherNodeBytes, split, otherNodeBytes.length);
+ final byte[] typeBytes = Arrays.copyOfRange(otherNodeBytes, split, otherNodeBytes.length);
byte[] objectBytes;
RyaURI subject;
RyaType object;
RyaType type = null;
switch (otherNodeVar) {
- case "subject":
+ case SUBJECT:
objectBytes = Bytes.concat(entityBytes, typeBytes);
- object = RyaContext.getInstance().deserialize(objectBytes); //return this
+ object = RyaContext.getInstance().deserialize(objectBytes);
type = object;
break;
- case "object":
- subject = new RyaURI(new String(entityBytes));//return this
+ case OBJECT:
+ subject = new RyaURI(new String(entityBytes, StandardCharsets.UTF_8));
type = subject;
break;
default: