hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Williams (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-9479) Using HBase Jars is Way Too Hard
Date Mon, 09 Sep 2013 20:54:52 GMT

     [ https://issues.apache.org/jira/browse/HBASE-9479?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

David Williams updated HBASE-9479:
----------------------------------

    Description: 
Right now, HBase contains so many dependencies, that using the most basic HBase functionality such as HConnection in a larger application is unreasonable hard.  For example, trying to include HBase connectivity in a Spring web app leads to hundreds of JarClassLoader errors such as:

{code}
JarClassLoader: Warning: org/apache/commons/collections/FastHashMap$CollectionView.class in lib/commons-collections-3.2.1.jar is hidden by lib/commons-beanutils-core-1.8.3.jar (with different bytecode)
JarClassLoader: Warning: org/apache/commons/collections/FastHashMap$EntrySet.class in lib/commons-collections-3.2.1.jar is hidden by lib/commons-beanutils-core-1.8.3.jar (with different bytecode)
JarClassLoader: Warning: org/apache/commons/collections/FastHashMap$KeySet.class in lib/commons-collections-3.2.1.jar is hidden by lib/commons-beanutils-core-1.8.3.jar (with different bytecode)
JarClassLoader: Warning: org/apache/commons/collections/FastHashMap$Values.class in lib/commons-collections-3.2.1.jar is hidden by lib/commons-beanutils-core-1.8.3.jar (with different bytecode)
JarClassLoader: Warning: org/apache/commons/collections/FastHashMap.class in lib/commons-collections-3.2.1.jar is hidden by lib/commons-beanutils-core-1.8.3.jar (with different bytecode)
JarClassLoader: Warning: javax/servlet/Filter.class in lib/servlet-api-2.5-6.1.14.jar is hidden by lib/javax.servlet-3.0.0.v201112011016.jar (with different bytecode)
JarClassLoader: Warning: javax/servlet/FilterChain.class in lib/servlet-api-2.5-6.1.14.jar is hidden by lib/javax.servlet-3.0.0.v201112011016.jar (with different bytecode)
JarClassLoader: Warning: javax/servlet/FilterConfig.class in lib/servlet-api-2.5-6.1.14.jar is hidden by lib/javax.servlet-3.0.0.v201112011016.jar (with different bytecode)
JarClassLoader: Warning: javax/servlet/GenericServlet.class in lib/servlet-api-2.5-6.1.14.jar is hidden by lib/javax.servlet-3.0.0.v201112011016.jar (with different bytecode)
JarClassLoader: Warning: javax/servlet/http/Cookie.class in lib/servlet-api-2.5-6.1.14.jar is hidden by lib/javax.servlet-3.0.0.v201112011016.jar (with different bytecode)
{code}


Why is this all bundled together?  Why not have an "hbase-client" or "hbase-client-dev" package which is friendly for creating applications?

I have spent 2+ days attempting to run a web service which is backed by HBase with no luck.  I have created several stack overflow questions:

http://stackoverflow.com/questions/18703903/java-massive-class-collision

http://stackoverflow.com/questions/18690582/how-to-create-jetty-spring-app-with-hbase-connection

The use of BeanUtils is also known to have a very bad issue:

"The three jars contain wrong classes"
https://issues.apache.org/jira/browse/BEANUTILS-398

Why is this so difficult?  How do I include what I need to make an HBase app.  So far I have tried using Maven, but this approach is draconian, and I have not succeeded.  Am I Pwned?

{code}
   <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.jboss.netty</groupId>
                <artifactId>netty</artifactId>
                <version>3.2.4.Final</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-core-asl</artifactId>
                <version>1.9.12</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-jaxrs</artifactId>
                <version>1.9.12</version>
            </dependency>
            <dependency>
                <groupId>com.sun.xml.bind</groupId>
                <artifactId>jackson-jaxrs</artifactId>
                <version>2.2.6</version>
            </dependency>
            <dependency>
                <groupId>com.sun.xml.bind</groupId>
                <artifactId>jaxb-impl</artifactId>
                <version>2.2.6</version>
            </dependency>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.16</version>
            </dependency>
            <dependency>
                <groupId>asm</groupId>
                <artifactId>asm</artifactId>
                <version>3.3.1</version>
            </dependency>
            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>1.4</version>
            </dependency>
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>2.5</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.7.5</version>
            </dependency>
            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>1.1.1</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-mapper-asl</artifactId>
                <version>1.9.12</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>1.6.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpcore</artifactId>
                <version>4.1.3</version>
            </dependency>
            <dependency>
                <groupId>commons-httpclient</groupId>
                <artifactId>commons-httpclient</artifactId>
                <version>3.1</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-xc</artifactId>
                <version>1.9.12</version>
            </dependency>
            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils-core</artifactId>
                <version>1.8.3</version>
            </dependency>
            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
                <version>1.8.3</version>
            </dependency>

        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils-core</artifactId>
            <version>1.8.3</version>
        </dependency>
        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>1.8.3</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxrs</artifactId>
            <version>2.7.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxws</artifactId>
            <version>2.7.2</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-core-asl</artifactId>
            <version>1.9.12</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.12</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-jaxrs</artifactId>
            <version>1.9.12</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-xc</artifactId>
            <version>1.9.12</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>3.2.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>3.2.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>3.2.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.0.13</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.0.13</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>net.sf.opencsv</groupId>
            <artifactId>opencsv</artifactId>
            <version>2.3</version>
        </dependency>
        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>1</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-server</artifactId>
            <version>9.0.4.v20130625</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-webapp</artifactId>
            <version>9.0.4.v20130625</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase</artifactId>
            <version>0.94.11</version>
            <exclusions>
                <exclusion>
                    <groupId>org.codehaus.jackson</groupId>
                    <artifactId>jackson-core-asl</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.codehaus.jackson</groupId>
                    <artifactId>jackson-jaxrs</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.codehaus.jackson</groupId>
                    <artifactId>jackson-mapper-asl</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.codehaus.jackson</groupId>
                    <artifactId>jackson-xc</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jersey</groupId>
                    <artifactId>jersey-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jersey</groupId>
                    <artifactId>jersey-json</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jersey</groupId>
                    <artifactId>jersey-server</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.mortbay.jetty</groupId>
                    <artifactId>jetty</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jersey</groupId>
                    <artifactId>jetty-util</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jersey</groupId>
                    <artifactId>jsp-2.1</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jersey</groupId>
                    <artifactId>jsp-api-2.1</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jersey</groupId>
                    <artifactId>servlet-api-2.5</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>javax.xml.bind</groupId>
                    <artifactId>jaxb-api</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>tomcat</groupId>
                    <artifactId>jasper-compiler</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>tomcat</groupId>
                    <artifactId>jasper-runtime</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-api</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.thrift</groupId>
                    <artifactId>libthrift</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-core</artifactId>
            <version>1.2.1</version>
            <exclusions>
                <exclusion>
                    <groupId>com.sun.jersey</groupId>
                    <artifactId>jersey-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jersey</groupId>
                    <artifactId>jersey-json</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jersey</groupId>
                    <artifactId>jersey-server</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>tomcat</groupId>
                    <artifactId>jasper-compiler</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>tomcat</groupId>
                    <artifactId>jasper-runtime</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
{code}



  was:
Right now, HBase contains so many dependencies, that using the most basic HBase functionality such as HConnection in a larger application is unreasonable hard.  For example, trying to include HBase connectivity in a Spring web app leads to hundreds of JarClassLoader errors such as:

{code}
JarClassLoader: Warning: org/apache/commons/collections/FastHashMap$CollectionView.class in lib/commons-collections-3.2.1.jar is hidden by lib/commons-beanutils-core-1.8.3.jar (with different bytecode)
JarClassLoader: Warning: org/apache/commons/collections/FastHashMap$EntrySet.class in lib/commons-collections-3.2.1.jar is hidden by lib/commons-beanutils-core-1.8.3.jar (with different bytecode)
JarClassLoader: Warning: org/apache/commons/collections/FastHashMap$KeySet.class in lib/commons-collections-3.2.1.jar is hidden by lib/commons-beanutils-core-1.8.3.jar (with different bytecode)
JarClassLoader: Warning: org/apache/commons/collections/FastHashMap$Values.class in lib/commons-collections-3.2.1.jar is hidden by lib/commons-beanutils-core-1.8.3.jar (with different bytecode)
JarClassLoader: Warning: org/apache/commons/collections/FastHashMap.class in lib/commons-collections-3.2.1.jar is hidden by lib/commons-beanutils-core-1.8.3.jar (with different bytecode)
JarClassLoader: Warning: javax/servlet/Filter.class in lib/servlet-api-2.5-6.1.14.jar is hidden by lib/javax.servlet-3.0.0.v201112011016.jar (with different bytecode)
JarClassLoader: Warning: javax/servlet/FilterChain.class in lib/servlet-api-2.5-6.1.14.jar is hidden by lib/javax.servlet-3.0.0.v201112011016.jar (with different bytecode)
JarClassLoader: Warning: javax/servlet/FilterConfig.class in lib/servlet-api-2.5-6.1.14.jar is hidden by lib/javax.servlet-3.0.0.v201112011016.jar (with different bytecode)
JarClassLoader: Warning: javax/servlet/GenericServlet.class in lib/servlet-api-2.5-6.1.14.jar is hidden by lib/javax.servlet-3.0.0.v201112011016.jar (with different bytecode)
JarClassLoader: Warning: javax/servlet/http/Cookie.class in lib/servlet-api-2.5-6.1.14.jar is hidden by lib/javax.servlet-3.0.0.v201112011016.jar (with different bytecode)
{code}


Why is this all bundled together?  Why not have an "hbase-client" or "hbase-client-dev" package which is friendly for creating applications?

I have spent 2+ days attempting to run a web service which is backed by HBase with no luck.  I have created several stack overflow questions:

http://stackoverflow.com/questions/18703903/java-massive-class-collision

http://stackoverflow.com/questions/18690582/how-to-create-jetty-spring-app-with-hbase-connection

Why is this so difficult.  How do I include what I need to make an HBase app.  So far I have tried using Maven, but this approach is draconian, and I have not succeeded.  Am I Pwned?

{code}
   <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.jboss.netty</groupId>
                <artifactId>netty</artifactId>
                <version>3.2.4.Final</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-core-asl</artifactId>
                <version>1.9.12</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-jaxrs</artifactId>
                <version>1.9.12</version>
            </dependency>
            <dependency>
                <groupId>com.sun.xml.bind</groupId>
                <artifactId>jackson-jaxrs</artifactId>
                <version>2.2.6</version>
            </dependency>
            <dependency>
                <groupId>com.sun.xml.bind</groupId>
                <artifactId>jaxb-impl</artifactId>
                <version>2.2.6</version>
            </dependency>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.16</version>
            </dependency>
            <dependency>
                <groupId>asm</groupId>
                <artifactId>asm</artifactId>
                <version>3.3.1</version>
            </dependency>
            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>1.4</version>
            </dependency>
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>2.5</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.7.5</version>
            </dependency>
            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>1.1.1</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-mapper-asl</artifactId>
                <version>1.9.12</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>1.6.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpcore</artifactId>
                <version>4.1.3</version>
            </dependency>
            <dependency>
                <groupId>commons-httpclient</groupId>
                <artifactId>commons-httpclient</artifactId>
                <version>3.1</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-xc</artifactId>
                <version>1.9.12</version>
            </dependency>
            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils-core</artifactId>
                <version>1.8.3</version>
            </dependency>
            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
                <version>1.8.3</version>
            </dependency>

        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils-core</artifactId>
            <version>1.8.3</version>
        </dependency>
        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>1.8.3</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxrs</artifactId>
            <version>2.7.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxws</artifactId>
            <version>2.7.2</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-core-asl</artifactId>
            <version>1.9.12</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.12</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-jaxrs</artifactId>
            <version>1.9.12</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-xc</artifactId>
            <version>1.9.12</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>3.2.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>3.2.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>3.2.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.0.13</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.0.13</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>net.sf.opencsv</groupId>
            <artifactId>opencsv</artifactId>
            <version>2.3</version>
        </dependency>
        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>1</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-server</artifactId>
            <version>9.0.4.v20130625</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-webapp</artifactId>
            <version>9.0.4.v20130625</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase</artifactId>
            <version>0.94.11</version>
            <exclusions>
                <exclusion>
                    <groupId>org.codehaus.jackson</groupId>
                    <artifactId>jackson-core-asl</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.codehaus.jackson</groupId>
                    <artifactId>jackson-jaxrs</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.codehaus.jackson</groupId>
                    <artifactId>jackson-mapper-asl</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.codehaus.jackson</groupId>
                    <artifactId>jackson-xc</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jersey</groupId>
                    <artifactId>jersey-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jersey</groupId>
                    <artifactId>jersey-json</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jersey</groupId>
                    <artifactId>jersey-server</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.mortbay.jetty</groupId>
                    <artifactId>jetty</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jersey</groupId>
                    <artifactId>jetty-util</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jersey</groupId>
                    <artifactId>jsp-2.1</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jersey</groupId>
                    <artifactId>jsp-api-2.1</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jersey</groupId>
                    <artifactId>servlet-api-2.5</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>javax.xml.bind</groupId>
                    <artifactId>jaxb-api</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>tomcat</groupId>
                    <artifactId>jasper-compiler</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>tomcat</groupId>
                    <artifactId>jasper-runtime</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-api</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.thrift</groupId>
                    <artifactId>libthrift</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-core</artifactId>
            <version>1.2.1</version>
            <exclusions>
                <exclusion>
                    <groupId>com.sun.jersey</groupId>
                    <artifactId>jersey-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jersey</groupId>
                    <artifactId>jersey-json</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.sun.jersey</groupId>
                    <artifactId>jersey-server</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>tomcat</groupId>
                    <artifactId>jasper-compiler</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>tomcat</groupId>
                    <artifactId>jasper-runtime</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
{code}



    
> Using HBase Jars is Way Too Hard
> --------------------------------
>
>                 Key: HBASE-9479
>                 URL: https://issues.apache.org/jira/browse/HBASE-9479
>             Project: HBase
>          Issue Type: Bug
>            Reporter: David Williams
>
> Right now, HBase contains so many dependencies, that using the most basic HBase functionality such as HConnection in a larger application is unreasonable hard.  For example, trying to include HBase connectivity in a Spring web app leads to hundreds of JarClassLoader errors such as:
> {code}
> JarClassLoader: Warning: org/apache/commons/collections/FastHashMap$CollectionView.class in lib/commons-collections-3.2.1.jar is hidden by lib/commons-beanutils-core-1.8.3.jar (with different bytecode)
> JarClassLoader: Warning: org/apache/commons/collections/FastHashMap$EntrySet.class in lib/commons-collections-3.2.1.jar is hidden by lib/commons-beanutils-core-1.8.3.jar (with different bytecode)
> JarClassLoader: Warning: org/apache/commons/collections/FastHashMap$KeySet.class in lib/commons-collections-3.2.1.jar is hidden by lib/commons-beanutils-core-1.8.3.jar (with different bytecode)
> JarClassLoader: Warning: org/apache/commons/collections/FastHashMap$Values.class in lib/commons-collections-3.2.1.jar is hidden by lib/commons-beanutils-core-1.8.3.jar (with different bytecode)
> JarClassLoader: Warning: org/apache/commons/collections/FastHashMap.class in lib/commons-collections-3.2.1.jar is hidden by lib/commons-beanutils-core-1.8.3.jar (with different bytecode)
> JarClassLoader: Warning: javax/servlet/Filter.class in lib/servlet-api-2.5-6.1.14.jar is hidden by lib/javax.servlet-3.0.0.v201112011016.jar (with different bytecode)
> JarClassLoader: Warning: javax/servlet/FilterChain.class in lib/servlet-api-2.5-6.1.14.jar is hidden by lib/javax.servlet-3.0.0.v201112011016.jar (with different bytecode)
> JarClassLoader: Warning: javax/servlet/FilterConfig.class in lib/servlet-api-2.5-6.1.14.jar is hidden by lib/javax.servlet-3.0.0.v201112011016.jar (with different bytecode)
> JarClassLoader: Warning: javax/servlet/GenericServlet.class in lib/servlet-api-2.5-6.1.14.jar is hidden by lib/javax.servlet-3.0.0.v201112011016.jar (with different bytecode)
> JarClassLoader: Warning: javax/servlet/http/Cookie.class in lib/servlet-api-2.5-6.1.14.jar is hidden by lib/javax.servlet-3.0.0.v201112011016.jar (with different bytecode)
> {code}
> Why is this all bundled together?  Why not have an "hbase-client" or "hbase-client-dev" package which is friendly for creating applications?
> I have spent 2+ days attempting to run a web service which is backed by HBase with no luck.  I have created several stack overflow questions:
> http://stackoverflow.com/questions/18703903/java-massive-class-collision
> http://stackoverflow.com/questions/18690582/how-to-create-jetty-spring-app-with-hbase-connection
> The use of BeanUtils is also known to have a very bad issue:
> "The three jars contain wrong classes"
> https://issues.apache.org/jira/browse/BEANUTILS-398
> Why is this so difficult?  How do I include what I need to make an HBase app.  So far I have tried using Maven, but this approach is draconian, and I have not succeeded.  Am I Pwned?
> {code}
>    <dependencyManagement>
>         <dependencies>
>             <dependency>
>                 <groupId>org.jboss.netty</groupId>
>                 <artifactId>netty</artifactId>
>                 <version>3.2.4.Final</version>
>             </dependency>
>             <dependency>
>                 <groupId>org.codehaus.jackson</groupId>
>                 <artifactId>jackson-core-asl</artifactId>
>                 <version>1.9.12</version>
>             </dependency>
>             <dependency>
>                 <groupId>org.codehaus.jackson</groupId>
>                 <artifactId>jackson-jaxrs</artifactId>
>                 <version>1.9.12</version>
>             </dependency>
>             <dependency>
>                 <groupId>com.sun.xml.bind</groupId>
>                 <artifactId>jackson-jaxrs</artifactId>
>                 <version>2.2.6</version>
>             </dependency>
>             <dependency>
>                 <groupId>com.sun.xml.bind</groupId>
>                 <artifactId>jaxb-impl</artifactId>
>                 <version>2.2.6</version>
>             </dependency>
>             <dependency>
>                 <groupId>log4j</groupId>
>                 <artifactId>log4j</artifactId>
>                 <version>1.2.16</version>
>             </dependency>
>             <dependency>
>                 <groupId>asm</groupId>
>                 <artifactId>asm</artifactId>
>                 <version>3.3.1</version>
>             </dependency>
>             <dependency>
>                 <groupId>commons-codec</groupId>
>                 <artifactId>commons-codec</artifactId>
>                 <version>1.4</version>
>             </dependency>
>             <dependency>
>                 <groupId>commons-lang</groupId>
>                 <artifactId>commons-lang</artifactId>
>                 <version>2.5</version>
>             </dependency>
>             <dependency>
>                 <groupId>org.slf4j</groupId>
>                 <artifactId>slf4j-api</artifactId>
>                 <version>1.7.5</version>
>             </dependency>
>             <dependency>
>                 <groupId>commons-logging</groupId>
>                 <artifactId>commons-logging</artifactId>
>                 <version>1.1.1</version>
>             </dependency>
>             <dependency>
>                 <groupId>org.codehaus.jackson</groupId>
>                 <artifactId>jackson-mapper-asl</artifactId>
>                 <version>1.9.12</version>
>             </dependency>
>             <dependency>
>                 <groupId>org.slf4j</groupId>
>                 <artifactId>slf4j-log4j12</artifactId>
>                 <version>1.6.1</version>
>             </dependency>
>             <dependency>
>                 <groupId>org.apache.httpcomponents</groupId>
>                 <artifactId>httpcore</artifactId>
>                 <version>4.1.3</version>
>             </dependency>
>             <dependency>
>                 <groupId>commons-httpclient</groupId>
>                 <artifactId>commons-httpclient</artifactId>
>                 <version>3.1</version>
>             </dependency>
>             <dependency>
>                 <groupId>org.codehaus.jackson</groupId>
>                 <artifactId>jackson-xc</artifactId>
>                 <version>1.9.12</version>
>             </dependency>
>             <dependency>
>                 <groupId>commons-beanutils</groupId>
>                 <artifactId>commons-beanutils-core</artifactId>
>                 <version>1.8.3</version>
>             </dependency>
>             <dependency>
>                 <groupId>commons-beanutils</groupId>
>                 <artifactId>commons-beanutils</artifactId>
>                 <version>1.8.3</version>
>             </dependency>
>         </dependencies>
>     </dependencyManagement>
>     <dependencies>
>         <dependency>
>             <groupId>commons-beanutils</groupId>
>             <artifactId>commons-beanutils-core</artifactId>
>             <version>1.8.3</version>
>         </dependency>
>         <dependency>
>             <groupId>commons-beanutils</groupId>
>             <artifactId>commons-beanutils</artifactId>
>             <version>1.8.3</version>
>             <scope>provided</scope>
>         </dependency>
>         <dependency>
>             <groupId>org.apache.cxf</groupId>
>             <artifactId>cxf-rt-frontend-jaxrs</artifactId>
>             <version>2.7.2</version>
>         </dependency>
>         <dependency>
>             <groupId>org.apache.cxf</groupId>
>             <artifactId>cxf-rt-frontend-jaxws</artifactId>
>             <version>2.7.2</version>
>         </dependency>
>         <dependency>
>             <groupId>org.codehaus.jackson</groupId>
>             <artifactId>jackson-core-asl</artifactId>
>             <version>1.9.12</version>
>         </dependency>
>         <dependency>
>             <groupId>org.codehaus.jackson</groupId>
>             <artifactId>jackson-mapper-asl</artifactId>
>             <version>1.9.12</version>
>         </dependency>
>         <dependency>
>             <groupId>org.codehaus.jackson</groupId>
>             <artifactId>jackson-jaxrs</artifactId>
>             <version>1.9.12</version>
>         </dependency>
>         <dependency>
>             <groupId>org.codehaus.jackson</groupId>
>             <artifactId>jackson-xc</artifactId>
>             <version>1.9.12</version>
>         </dependency>
>         <dependency>
>             <groupId>org.springframework</groupId>
>             <artifactId>spring-core</artifactId>
>             <version>3.2.4.RELEASE</version>
>         </dependency>
>         <dependency>
>             <groupId>org.springframework</groupId>
>             <artifactId>spring-context</artifactId>
>             <version>3.2.4.RELEASE</version>
>         </dependency>
>         <dependency>
>             <groupId>org.springframework</groupId>
>             <artifactId>spring-webmvc</artifactId>
>             <version>3.2.4.RELEASE</version>
>         </dependency>
>         <dependency>
>             <groupId>ch.qos.logback</groupId>
>             <artifactId>logback-classic</artifactId>
>             <version>1.0.13</version>
>         </dependency>
>         <dependency>
>             <groupId>ch.qos.logback</groupId>
>             <artifactId>logback-core</artifactId>
>             <version>1.0.13</version>
>         </dependency>
>         <dependency>
>             <groupId>junit</groupId>
>             <artifactId>junit</artifactId>
>             <version>4.11</version>
>             <scope>test</scope>
>         </dependency>
>         <dependency>
>             <groupId>net.sf.opencsv</groupId>
>             <artifactId>opencsv</artifactId>
>             <version>2.3</version>
>         </dependency>
>         <dependency>
>             <groupId>javax.inject</groupId>
>             <artifactId>javax.inject</artifactId>
>             <version>1</version>
>         </dependency>
>         <dependency>
>             <groupId>org.eclipse.jetty</groupId>
>             <artifactId>jetty-server</artifactId>
>             <version>9.0.4.v20130625</version>
>         </dependency>
>         <dependency>
>             <groupId>org.eclipse.jetty</groupId>
>             <artifactId>jetty-webapp</artifactId>
>             <version>9.0.4.v20130625</version>
>         </dependency>
>         <dependency>
>             <groupId>org.apache.hbase</groupId>
>             <artifactId>hbase</artifactId>
>             <version>0.94.11</version>
>             <exclusions>
>                 <exclusion>
>                     <groupId>org.codehaus.jackson</groupId>
>                     <artifactId>jackson-core-asl</artifactId>
>                 </exclusion>
>                 <exclusion>
>                     <groupId>org.codehaus.jackson</groupId>
>                     <artifactId>jackson-jaxrs</artifactId>
>                 </exclusion>
>                 <exclusion>
>                     <groupId>org.codehaus.jackson</groupId>
>                     <artifactId>jackson-mapper-asl</artifactId>
>                 </exclusion>
>                 <exclusion>
>                     <groupId>org.codehaus.jackson</groupId>
>                     <artifactId>jackson-xc</artifactId>
>                 </exclusion>
>                 <exclusion>
>                     <groupId>com.sun.jersey</groupId>
>                     <artifactId>jersey-core</artifactId>
>                 </exclusion>
>                 <exclusion>
>                     <groupId>com.sun.jersey</groupId>
>                     <artifactId>jersey-json</artifactId>
>                 </exclusion>
>                 <exclusion>
>                     <groupId>com.sun.jersey</groupId>
>                     <artifactId>jersey-server</artifactId>
>                 </exclusion>
>                 <exclusion>
>                     <groupId>org.mortbay.jetty</groupId>
>                     <artifactId>jetty</artifactId>
>                 </exclusion>
>                 <exclusion>
>                     <groupId>com.sun.jersey</groupId>
>                     <artifactId>jetty-util</artifactId>
>                 </exclusion>
>                 <exclusion>
>                     <groupId>com.sun.jersey</groupId>
>                     <artifactId>jsp-2.1</artifactId>
>                 </exclusion>
>                 <exclusion>
>                     <groupId>com.sun.jersey</groupId>
>                     <artifactId>jsp-api-2.1</artifactId>
>                 </exclusion>
>                 <exclusion>
>                     <groupId>com.sun.jersey</groupId>
>                     <artifactId>servlet-api-2.5</artifactId>
>                 </exclusion>
>                 <exclusion>
>                     <groupId>javax.xml.bind</groupId>
>                     <artifactId>jaxb-api</artifactId>
>                 </exclusion>
>                 <exclusion>
>                     <groupId>tomcat</groupId>
>                     <artifactId>jasper-compiler</artifactId>
>                 </exclusion>
>                 <exclusion>
>                     <groupId>tomcat</groupId>
>                     <artifactId>jasper-runtime</artifactId>
>                 </exclusion>
>                 <exclusion>
>                     <groupId>org.slf4j</groupId>
>                     <artifactId>slf4j-api</artifactId>
>                 </exclusion>
>                 <exclusion>
>                     <groupId>org.slf4j</groupId>
>                     <artifactId>slf4j-log4j12</artifactId>
>                 </exclusion>
>                 <exclusion>
>                     <groupId>org.apache.thrift</groupId>
>                     <artifactId>libthrift</artifactId>
>                 </exclusion>
>             </exclusions>
>         </dependency>
>         <dependency>
>             <groupId>org.apache.hadoop</groupId>
>             <artifactId>hadoop-core</artifactId>
>             <version>1.2.1</version>
>             <exclusions>
>                 <exclusion>
>                     <groupId>com.sun.jersey</groupId>
>                     <artifactId>jersey-core</artifactId>
>                 </exclusion>
>                 <exclusion>
>                     <groupId>com.sun.jersey</groupId>
>                     <artifactId>jersey-json</artifactId>
>                 </exclusion>
>                 <exclusion>
>                     <groupId>com.sun.jersey</groupId>
>                     <artifactId>jersey-server</artifactId>
>                 </exclusion>
>                 <exclusion>
>                     <groupId>tomcat</groupId>
>                     <artifactId>jasper-compiler</artifactId>
>                 </exclusion>
>                 <exclusion>
>                     <groupId>tomcat</groupId>
>                     <artifactId>jasper-runtime</artifactId>
>                 </exclusion>
>             </exclusions>
>         </dependency>
>     </dependencies>
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message