[
https://issues.apache.org/jira/browse/HBASE-21281?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16654325#comment-16654325
]
Josh Elser commented on HBASE-21281:
------------------------------------
Had to go digging into this because your explanation didn't actually tell me
what the cause was, [[email protected]]. The root cause is that *both*
Hadoop 2 and Hadoop 3 don't explicitly depend on bouncycastle in hbase-server
like they should.
Circumstantially, on hadoop 2, this doesn't cause an error because we happen to
get the dependency via kerb-client:
{noformat}
[INFO] +- org.apache.kerby:kerb-client:jar:1.0.1:test
[INFO] | +- org.apache.kerby:kerby-config:jar:1.0.1:test
[INFO] | +- org.apache.kerby:kerb-core:jar:1.0.1:test
[INFO] | | \- org.apache.kerby:kerby-pkix:jar:1.0.1:test
[INFO] | | +- org.apache.kerby:kerby-asn1:jar:1.0.1:test
[INFO] | | \- org.apache.kerby:kerby-util:jar:1.0.1:test
[INFO] | +- org.apache.kerby:kerb-common:jar:1.0.1:test
[INFO] | | \- org.apache.kerby:kerb-crypto:jar:1.0.1:test
[INFO] | +- org.apache.kerby:kerb-util:jar:1.0.1:test
[INFO] | \- org.apache.kerby:token-provider:jar:1.0.1:test
[INFO] | \- com.nimbusds:nimbus-jose-jwt:jar:3.10:test
[INFO] | +- net.jcip:jcip-annotations:jar:1.0:test
[INFO] | +- net.minidev:json-smart:jar:1.3.1:test
[INFO] | \- org.bouncycastle:bcprov-jdk15on:jar:1.60:test
{noformat}
In Hadoop 3, we can see this dependency missing:
{noformat}
[INFO] +- org.apache.kerby:kerb-client:jar:1.0.1:test
[INFO] | +- org.apache.kerby:kerby-config:jar:1.0.1:test
[INFO] | +- org.apache.kerby:kerb-core:jar:1.0.1:test
[INFO] | | \- org.apache.kerby:kerby-pkix:jar:1.0.1:test
[INFO] | | +- org.apache.kerby:kerby-asn1:jar:1.0.1:test
[INFO] | | \- org.apache.kerby:kerby-util:jar:1.0.1:test
[INFO] | +- org.apache.kerby:kerb-common:jar:1.0.1:test
[INFO] | | \- org.apache.kerby:kerb-crypto:jar:1.0.1:test
[INFO] | +- org.apache.kerby:kerb-util:jar:1.0.1:test
[INFO] | \- org.apache.kerby:token-provider:jar:1.0.1:test
{noformat}
All that said, the addendum (explicitly adding the test-dependency) is the
right one, but the path to that addendum was unnecessarily muddy.
> Update bouncycastle dependency.
> -------------------------------
>
> Key: HBASE-21281
> URL: https://issues.apache.org/jira/browse/HBASE-21281
> Project: HBase
> Issue Type: Task
> Components: dependencies, test
> Reporter: Josh Elser
> Assignee: Josh Elser
> Priority: Major
> Fix For: 3.0.0, 2.2.0
>
> Attachments: 21281.addendum.patch, HBASE-21281.001.branch-2.0.patch
>
>
> Looks like we still depend on bcprov-jdk16 for some x509 certificate
> generation in our tests. Bouncycastle has moved beyond this in 1.47, changing
> the artifact names.
> [http://www.bouncycastle.org/wiki/display/JA1/Porting+from+earlier+BC+releases+to+1.47+and+later]
> There are some API changes too, but it looks like we don't use any of these.
> It seems like we also have vestiges in the POMs from when we were depending
> on a specific BC version that came in from Hadoop. We now have a
> KeyStoreTestUtil class in HBase, which makes me think we can also clean up
> some dependencies.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)