hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matteo Bertozzi (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HBASE-16487) Remove Class.fromName("..PrefixTreeCodec") from TableMapReduceUtil addHBaseDependencyJars
Date Tue, 23 Aug 2016 21:45:21 GMT
Matteo Bertozzi created HBASE-16487:

             Summary: Remove Class.fromName("..PrefixTreeCodec") from TableMapReduceUtil addHBaseDependencyJars
                 Key: HBASE-16487
                 URL: https://issues.apache.org/jira/browse/HBASE-16487
             Project: HBase
          Issue Type: Bug
          Components: mapreduce
    Affects Versions: 1.2.2, 2.0.0, 1.3.0, 1.4.0
            Reporter: Matteo Bertozzi

HBASE-15152 included the prefix tree module as dependency to TableMapReduceUtil. but the hardcoded
string of the class name was wrong. HBASE-16360 fixed the hardcoded string. 

but, I was looking at the comment above and I can't figure out where is the circular dependency.
// PrefixTreeCodec is part of the hbase-prefix-tree module. If not included in MR jobs jar
// dependencies, MR jobs that write encoded hfiles will fail.
// We used reflection here so to prevent a circular module dependency.
// TODO - if we extract the MR into a module, make it depend on hbase-prefix-tree
from the pom.xml of the prefix-tree module I don't see hbase-server. but I can see prefix-tree
module in the hbase-server/pom.xml. the TableMapReduceUtil is in hbase-server.. so in theory
we don't have any circular dependency.
we can just probably drop all that try/catch block with the Class.forName() and just simply
use org.apache.hadoop.hbase.codec.prefixtree.PrefixTreeCodec as we do for the others. 

(or at least we should end up with a test to cover the that Class.fromName() in case we rename
the PrefixTreeCodec or the namespace in the future and forget to update this reference)

This message was sent by Atlassian JIRA

View raw message