ct created SLIDER-1249:
--------------------------
Summary: Unable to build application package for Accumulo 1.8.0+
Key: SLIDER-1249
URL: https://issues.apache.org/jira/browse/SLIDER-1249
Project: Slider
Issue Type: Bug
Components: app-package
Affects Versions: Slider 0.92
Reporter: ct
Priority: Minor
I’ve had a few issues trying to build and test an application package for
Accumulo 1.8.0 and 1.8.1. I’ve listed them below. I’ve found potential fixes
for (1), (3) and (4) but am unsure how best to deal with (2).
Compiling with:
{code}
mvn clean package -pl app-packages/accumulo/ -Paccumulo-app-package-maven
-Daccumulo.version=1.8.0 -Dpkg.version=1.8.0
{code}
(1) fails with:
{code}
[ERROR] Failed to execute goal on project slider-accumulo-app-package: Could
not resolve dependencies for project
org.apache.slider.packages:slider-accumulo-app-package:jar:0.93.0-incubating-SNAPSHOT:
Failure to find org.apache.directory.jdbm:apacheds-jdbm1:bundle:2.0.0-M2 in
https://repository.apache.org/content/groups/staging/...
{code}
apacheds-jdmb1 is a transitive dependency of accumulo-test and seems to require
the org.apache.felix:maven-bundle-plugin. In Accumulo 1.7.3 this dependency was
limited to the ‘test’ scope, but in Accumulo 1.8.0 it was moved into the
compile scope, which is why it has become an issue.
(2) After adding the bundle plugin to the pom, the build then fails with:
{code}
[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-compiler-plugin:3.1:testCompile
(default-testCompile) on project slider-accumulo-app-package: Compilation
failure: Compilation failure:
[ERROR]
/home/hadoop/slider-test/app-packages/accumulo/src/test/groovy/org/apache/slider/funtest/accumulo/AccumuloProxyIT.groovy:[20,34]
1. ERROR in
/home/hadoop/slider-test/app-packages/accumulo/src/test/groovy/org/apache/slider/funtest/accumulo/AccumuloProxyIT.groovy
(at line 20)
[ERROR] import org.apache.accumulo.proxy.TestProxyClient
[ERROR] ^^^^^^^^^^^^^^^
[ERROR] Groovy:unable to resolve class org.apache.accumulo.proxy.TestProxyClient
{code}
In Accumulo 1.8.0, TestProxyClient was relocated from the accumulo-proxy
artifact to accumulo-test, and from the org.apache.accumulo.proxy package to
org.apache.accumulo.test.proxy. Changing the import allows the build to
complete (but will break builds for previous versions of Accumulo).
Running functional tests with something similar to:
{code}
mvn clean verify -pl app-packages/accumulo/
-Paccumulo-app-package-maven,accumulo-funtest -Daccumulo.version=1.8.0
-Dpkg.version=1.8.0 -Dslider.conf.dir=... -Dtest.app.resources.dir=...
{code}
(3) results in failed tests:
{code}
Tests in error:
AccumuloReadWriteIT>CommandTestBase.<clinit>:113 »
java.lang.NoClassDefFoundError: org/slf4j/event/LoggingEvent
AccumuloReadWriteSSLIT.org.apache.slider.funtest.accumulo.AccumuloReadWriteSSLIT
» java.lang.NoClassDefFoundError: org/slf4j/event/LoggingEvent
AccumuloScriptIT.org.apache.slider.funtest.accumulo.AccumuloScriptIT »
java.lang.NoClassDefFoundError: org/slf4j/event/LoggingEvent
AccumuloScriptSSLIT.org.apache.slider.funtest.accumulo.AccumuloScriptSSLIT »
java.lang.NoClassDefFoundError: org/slf4j/event/LoggingEvent
AccumuloProxyIT.org.apache.slider.funtest.accumulo.AccumuloProxyIT »
java.lang.NoClassDefFoundError: org/slf4j/event/LoggingEvent
AccumuloMonitorSSLIT.org.apache.slider.funtest.accumulo.AccumuloMonitorSSLIT
» java.lang.NoClassDefFoundError: org/slf4j/event/LoggingEvent
AccumuloBasicIT.org.apache.slider.funtest.accumulo.AccumuloBasicIT »
java.lang.NoClassDefFoundError: org/slf4j/event/LoggingEvent
Tests run: 7, Failures: 0, Errors: 7, Skipped: 0
{code}
The version of slf4j-log4j12 used by accumulo-server-base in 1.8.0 has been
bumped from 1.7.5 to 1.7.21, also bumping the version of slf4j-api used by
Slider to 1.7.21 allows the tests to run.
(4) Tests then fail with:
{code}
java.lang.NoSuchMethodError:
org.apache.accumulo.core.tabletserver.thrift.TabletClientService$Client.sendBaseOneway(Ljava/lang/String;Lorg/apache/thrift/TBase;)
{code}
Removing the explicit libthrift dependency from the accumulo package’s pom and
letting the correct version be included via accumulo-server-base allows the
tests to pass.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)