This is an automated email from the ASF dual-hosted git repository.
hsaputra pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git
The following commit(s) were added to refs/heads/master by this push:
new 19c86f2 ISSUE #2640: BP-43 create shaded jar for bookkeeper-server
and distrib…
19c86f2 is described below
commit 19c86f20500a7fd9b4ce5ca42caf42337863f2a8
Author: Prashant Kumar <[email protected]>
AuthorDate: Fri Apr 9 10:30:20 2021 -0700
ISSUE #2640: BP-43 create shaded jar for bookkeeper-server and distrib…
…utedlog-core
Descriptions of the changes in this PR:
### Motivation
**Gradle migration**
With maven shaded Jar was created for bookkeeper-sever as well as
distributedlog-core.
Though shaded jar was not being used by anybody.
There has been some difference in layout of shaded jar produced by maven
and gradles.
Maven produced shaded jar just shades bookkeeper classes and leaves
transitive dependency unshaded and as part of dependency in POM file. This
behavior is not supported in gradle shadow plugin. Therefore gradle produced
shaded jar shades not only bookkeer-server but also its transitive and direct
dependencies and leaving nothing in pom file as dependency.
### Changes
Create gradle build for shading bookkeeper-sever and distributedlog-core
Master Issue: #2640
Reviewers: Henry Saputra <[email protected]>, Matteo Merli
<[email protected]>
This closes #2678 from pkumar-singh/merge_internal_gradle_6, closes #2640
and squashes the following commits:
3f9cb7e9f [Matteo Merli] Merge branch 'master' into merge_internal_gradle_6
acbc20dac [Prashant Kumar] ISSUE #2640: BP-43 Integrate checkstyle with
gradle
f46021c4c [Prashant] ISSUE-2640: BP-43 create shaded jar for
bookkeeper-server and distributedlog-core
59786c97f [Prashant Kumar] ISSUE #2640: BP-43: Exclude smoke tests for now
can be enabled when we move to gradle.
---
gradle.properties | 4 +-
settings.gradle | 5 +++
shaded/bookkeeper-server-shaded/build.gradle | 37 ++++++++++++++++
shaded/distributedlog-core-shaded/build.gradle | 59 ++++++++++++++++++++++++++
4 files changed, 104 insertions(+), 1 deletion(-)
diff --git a/gradle.properties b/gradle.properties
index 85ee5c8..6a2b313 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -20,4 +20,6 @@
#
protobufPluginVersion=0.8.15
-checkStyleVersion=6.19
\ No newline at end of file
+shadowPluginVersion=6.1.0
+licenseGradlePluginVersion=0.15.0
+checkStyleVersion=6.19
diff --git a/settings.gradle b/settings.gradle
index d8fb2a1..865d79e 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -19,6 +19,8 @@
pluginManagement {
plugins {
id "com.google.protobuf" version "${protobufPluginVersion}"
+ id "com.github.johnrengelman.shadow" version "${shadowPluginVersion}"
+ id "com.github.hierynomus.license" version
"${licenseGradlePluginVersion}"
}
}
@@ -41,6 +43,8 @@ include(':bookkeeper-benchmark',
'bookkeeper-http:vertx-http-server',
'bookkeeper-proto',
'bookkeeper-server',
+ 'shaded:bookkeeper-server-shaded',
+ 'shaded:bookkeeper-server-tests-shaded',
'bookkeeper-stats',
'bookkeeper-stats-providers:prometheus-metrics-provider',
'bookkeeper-stats-providers:codahale-metrics-provider',
@@ -50,6 +54,7 @@ include(':bookkeeper-benchmark',
'cpu-affinity',
'cpu-affinity:src:main:affinity',
'microbenchmarks',
+ 'shaded:distributedlog-core-shaded',
'stats:utils',
'stream:api',
'stream:clients:java:all',
diff --git a/shaded/bookkeeper-server-shaded/build.gradle
b/shaded/bookkeeper-server-shaded/build.gradle
new file mode 100644
index 0000000..07cee92
--- /dev/null
+++ b/shaded/bookkeeper-server-shaded/build.gradle
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+plugins {
+ id 'java'
+ id 'com.github.johnrengelman.shadow'
+ id 'com.github.hierynomus.license'
+}
+
+description = 'Apache BookKeeper :: Shaded :: bookkeeper-server-shaded'
+
+dependencies {
+ implementation project(':bookkeeper-server')
+}
+
+shadowJar {
+ dependencies {
+ }
+ relocate 'com.google', 'org.apache.bookkeeper.shaded.com.google'
+ archiveBaseName.set("bookkeeper-server-shaded")
+ archiveClassifier.set("")
+}
diff --git a/shaded/distributedlog-core-shaded/build.gradle
b/shaded/distributedlog-core-shaded/build.gradle
new file mode 100644
index 0000000..2bafc33
--- /dev/null
+++ b/shaded/distributedlog-core-shaded/build.gradle
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+plugins {
+ id 'java'
+ id 'com.github.johnrengelman.shadow'
+ id 'com.github.hierynomus.license'
+}
+
+description = 'Apache BookKeeper :: Shaded :: distributedlog-core-shaded'
+
+dependencies {
+ implementation project(':stream:distributedlog:core')
+}
+
+shadowJar {
+ dependencies {
+ }
+ relocate 'com.google', 'org.apache.bookkeeper.shaded.com.google'
+ relocate 'org.apache.commons.cli', 'dlshade.org.apache.commons.cli'
+ relocate 'org.apache.commons.codec', 'dlshade.org.apache.commons.codec'
+ relocate 'org.apache.commons.collections4',
'dlshade.org.apache.commons.collections4'
+ relocate 'org.apache.commons.lang', 'dlshade.org.apache.commons.lang'
+ relocate 'org.apache.commons.lang3', 'dlshade.org.apache.commons.lang3'
+ relocate 'org.apache.commons.logging', 'dlshade.org.apache.commons.logging'
+ relocate 'org.apache.commons.io', 'dlshade.org.apache.commons.io'
+ relocate 'org.apache.httpcomponents', 'dlshade.org.apache.httpcomponents'
+ relocate 'org.apache.http', 'dlshade.org.apache.http'
+ relocate 'org.apache.thrift', 'dlshade.org.apache.thrift'
+ relocate 'org.apache.zookeeper', 'dlshade.org.apache.zookeeper'
+ relocate 'org.apache.jute', 'dlshade.org.apache.jute'
+ relocate 'com.fasterxml.jackson', 'dlshade.com.fasterxml.jackson'
+ relocate 'com.sun.jna', 'dlshade.com.sun.jna'
+ relocate 'com.google', 'dlshade.com.google'
+ relocate 'org.jboss.netty', 'dlshade.org.jboss.netty'
+ relocate 'net.jpountz', 'dlshade.net.jpountz'
+ relocate 'org.rocksdb', 'dlshade.org.rocksdb'
+ relocate 'com.scurrilous.circe', 'dlshade.com.scurrilous.circe'
+ relocate 'org.apache.bookkeeper', 'dlshade.org.apache.bookkeeper'
+ relocate 'org.apache.distributedlog', 'dhshade.org.apache.distributedlog'
+ archiveBaseName.set("distributedlog-core-shaded")
+ archiveClassifier.set("")
+}