You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gora.apache.org by ma...@apache.org on 2020/03/13 18:29:23 UTC
[gora] 01/03: Fix mapping file name access method in hbaseStore
This is an automated email from the ASF dual-hosted git repository.
madhawa pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/gora.git
commit e08524c5d5aaac9fd3e4ed42739c03e398d6fa8b
Author: LahiruJayasekara <ml...@gmail.com>
AuthorDate: Sat May 11 01:50:44 2019 +0530
Fix mapping file name access method in hbaseStore
---
.../org/apache/gora/hbase/store/HBaseStore.java | 28 ++++++++++------------
1 file changed, 13 insertions(+), 15 deletions(-)
diff --git a/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseStore.java b/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseStore.java
index 518f6ac..d16700b 100644
--- a/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseStore.java
+++ b/gora-hbase/src/main/java/org/apache/gora/hbase/store/HBaseStore.java
@@ -139,20 +139,17 @@ public class HBaseStore<K, T extends PersistentBase> extends DataStoreBase<K, T>
try {
this.conf = HBaseConfiguration.create(getConf());
-
- InputStream mappingInputStream ;
- // If there is a mapping definition in the Properties, use it.
- if (properties.containsKey(XML_MAPPING_DEFINITION)) {
- if (LOG.isTraceEnabled()) LOG.trace(XML_MAPPING_DEFINITION + " = " + properties.getProperty(XML_MAPPING_DEFINITION));
- mappingInputStream = IOUtils.toInputStream(properties.getProperty(XML_MAPPING_DEFINITION), (Charset)null) ;
- }
- // Otherwise use the configuration from de default file gora-hbase-mapping.xml or whatever
- // configured in the key "gora.hbase.mapping.file"
- else {
- mappingInputStream = getClass().getClassLoader().getResourceAsStream(getConf().get(PARSE_MAPPING_FILE_KEY, DEFAULT_MAPPING_FILE)) ;
+
+ String mappingFile = DataStoreFactory.getMappingFile(properties, this,
+ DEFAULT_MAPPING_FILE);
+
+ // if there is no mapping.file property in gora.properties, then check
+ // configurations for mapping.file key
+ if (mappingFile.equals(DEFAULT_MAPPING_FILE)) {
+ mappingFile = getConf().get(PARSE_MAPPING_FILE_KEY, DEFAULT_MAPPING_FILE);
}
- mapping = readMapping(mappingInputStream);
+ mapping = readMapping(mappingFile);
filterUtil = new HBaseFilterUtil<>(this.conf);
} catch (FileNotFoundException ex) {
throw new GoraException("Mapping file '" + getConf().get(PARSE_MAPPING_FILE_KEY, DEFAULT_MAPPING_FILE) + "' not found.",ex);
@@ -819,13 +816,14 @@ public class HBaseStore<K, T extends PersistentBase> extends DataStoreBase<K, T>
}
@SuppressWarnings("unchecked")
- private HBaseMapping readMapping(InputStream mappingStream) throws IOException {
+ private HBaseMapping readMapping(String filename) throws IOException {
HBaseMappingBuilder mappingBuilder = new HBaseMappingBuilder();
try {
SAXBuilder builder = new SAXBuilder();
- Document doc = builder.build(mappingStream);
+ Document doc = builder.build(getClass().getClassLoader()
+ .getResourceAsStream(filename));
Element root = doc.getRootElement();
List<Element> tableElements = root.getChildren("table");
@@ -892,7 +890,7 @@ public class HBaseStore<K, T extends PersistentBase> extends DataStoreBase<K, T>
LOG.error("Error while trying to read the mapping file {}. "
+ "Expected to be in the classpath "
+ "(ClassLoader#getResource(java.lang.String)).",
- mappingStream) ;
+ filename) ;
LOG.error("Actual classpath = {}", Arrays.asList(
((URLClassLoader) getClass().getClassLoader()).getURLs()));
throw ex ;