[
https://issues.apache.org/jira/browse/BEAM-4357?focusedWorklogId=105781&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-105781
]
ASF GitHub Bot logged work on BEAM-4357:
----------------------------------------
Author: ASF GitHub Bot
Created on: 24/May/18 23:33
Start Date: 24/May/18 23:33
Worklog Time Spent: 10m
Work Description: kennknowles closed pull request #5443: [BEAM-4357] Fix
SQL shadow jar
URL: https://github.com/apache/beam/pull/5443
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git a/build_rules.gradle b/build_rules.gradle
index 0132c062c56..465d5283b71 100644
--- a/build_rules.gradle
+++ b/build_rules.gradle
@@ -564,6 +564,11 @@ ext.applyJavaNature = {
classifier = "shaded-tests"
from sourceSets.test.output
configurations = [project.configurations.testRuntime]
+
+ exclude "META-INF/INDEX.LIST"
+ exclude "META-INF/*.SF"
+ exclude "META-INF/*.DSA"
+ exclude "META-INF/*.RSA"
} << configuration.shadowClosure)
// Ensure that shaded jar and test-jar are part of the their own
configuration artifact sets
diff --git a/sdks/java/extensions/sql/build.gradle
b/sdks/java/extensions/sql/build.gradle
index 1f9005cfa1f..51d2f78c7ea 100644
--- a/sdks/java/extensions/sql/build.gradle
+++ b/sdks/java/extensions/sql/build.gradle
@@ -19,7 +19,25 @@ import groovy.json.JsonOutput
*/
apply from: project(":").file("build_rules.gradle")
-applyJavaNature(enableSpotless: true)
+applyJavaNature(enableSpotless: true, shadowClosure: DEFAULT_SHADOW_CLOSURE <<
{
+ dependencies {
+ include(dependency(library.java.protobuf_java))
+ include(dependency(library.java.protobuf_java_util))
+ include(dependency("org.apache.calcite:.*"))
+ include(dependency("org.apache.calcite.avatica:.*"))
+ include(dependency("org.codehaus.janino:.*"))
+ }
+ relocate "com.google.protobuf", getJavaRelocatedPath("com.google.protobuf")
+ relocate "org.apache.calcite", getJavaRelocatedPath("org.apache.calcite")
+
+ // Looking up the compiler factory in Calcite depends on having a properties
+ // file in the right location. We package one that is shading compatible
+ // in src/main/resources. Note that if this shaded path changes, that
+ // files name and contents need to be updated as well. TODO, swap to use
+ // getJavaRelocatedPath once the Maven build is no longer also shading this
+ // module.
+ relocate "org.codehaus",
"org.apache.beam.sdks.java.extensions.sql.repackaged.org.codehaus"
+})
apply plugin: 'ca.coglinc.javacc'
description = "Apache Beam :: SDKs :: Java :: Extensions :: SQL"
@@ -31,6 +49,9 @@ configurations {
// TODO: Migrate to a FMPP plugin once one exists
fmppTask
fmppTemplates
+
+ // Run tests from shaded jar
+ shadowTestRuntimeClasspath
}
def calcite_version = "1.16.0"
@@ -45,23 +66,31 @@ dependencies {
compile "org.apache.calcite:calcite-core:$calcite_version"
compile "org.apache.calcite:calcite-linq4j:$calcite_version"
compile "org.apache.calcite.avatica:avatica-core:$avatica_version"
- compile "com.alibaba:fastjson:1.2.12"
compileOnly library.java.findbugs_jsr305
compileOnly library.java.findbugs_annotations
shadow project(path: ":beam-sdks-java-core", configuration: "shadow")
shadow project(path: ":beam-sdks-java-extensions-join-library",
configuration: "shadow")
shadow library.java.slf4j_api
shadow library.java.commons_csv
+ shadow library.java.commons_lang3
+ shadow library.java.jackson_databind
shadow library.java.joda_time
+ shadow "com.alibaba:fastjson:1.2.12"
shadow project(path: ":beam-runners-direct-java", configuration: "shadow")
provided project(path: ":beam-sdks-java-io-kafka", configuration: "shadow")
provided project(path: ":beam-sdks-java-io-google-cloud-platform",
configuration: "shadow")
provided library.java.kafka_clients
- testCompile library.java.slf4j_jdk14
- testCompile library.java.junit
- testCompile library.java.hamcrest_core
- testCompile library.java.mockito_core
- testCompile library.java.quickcheck_core
+ shadowTest library.java.slf4j_jdk14
+ shadowTest library.java.junit
+ shadowTest library.java.hamcrest_core
+ shadowTest library.java.mockito_core
+ shadowTest library.java.quickcheck_core
+ shadowTestRuntimeClasspath project(path: project.path, configuration:
"shadowTest")
+ shadowTestRuntimeClasspath project(path: project.path, configuration:
"provided")
+}
+
+test {
+ classpath = configurations.shadowTestRuntimeClasspath
}
// Copy Caclcite templates and our own template into the build directory
@@ -103,26 +132,6 @@ compileJavacc {
arguments = [grammar_encoding: "UTF-8", static: "false", lookahead: "2"]
}
-shadowJar {
- dependencies {
- include(dependency("org.apache.calcite:.*"))
- include(dependency("org.apache.calcite.avatica:.*"))
- include(dependency("org.codehaus.janino:.*"))
- include(dependency(library.java.protobuf_java))
- include(dependency(library.java.protobuf_java_util))
- }
- relocate "com.google.protobuf", getJavaRelocatedPath("com.google.protobuf")
- relocate "org.apache.calcite", getJavaRelocatedPath("org.apache.calcite")
-
- // Looking up the compiler factory in Calcite depends on having a properties
- // file in the right location. We package one that is shading compatible
- // in src/main/resources. Note that if this shaded path changes, that
- // files name and contents need to be updated as well. TODO, swap to use
- // getJavaRelocatedPath once the Maven build is no longer also shading this
- // module.
- relocate "org.codehaus",
"org.apache.beam.sdks.java.extensions.sql.repackaged.org.codehaus"
-}
-
// Help IntelliJ find the fmpp bits
idea {
module {
@@ -150,7 +159,6 @@ task runPojoExample(type: JavaExec) {
args = ["--runner=DirectRunner"]
}
-
task integrationTest(type: Test) {
group = "Verification"
def gcpProject = project.findProperty('gcpProject') ?: 'apache-beam-testing'
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 105781)
Time Spent: 3h 40m (was: 3.5h)
> SQL shaded jar returns NoClassDefFoundError
> -------------------------------------------
>
> Key: BEAM-4357
> URL: https://issues.apache.org/jira/browse/BEAM-4357
> Project: Beam
> Issue Type: Bug
> Components: dsl-sql
> Affects Versions: 2.5.0
> Reporter: Andrew Pilloud
> Assignee: Andrew Pilloud
> Priority: Blocker
> Fix For: 2.5.0
>
> Time Spent: 3h 40m
> Remaining Estimate: 0h
>
> Exception in thread "main" java.lang.NoClassDefFoundError:
> com/fasterxml/jackson/databind/ObjectMapper
> I ran this:
> {code:java}
> java -cp
> ./sdks/java/extensions/sql/build/libs/beam-sdks-java-extensions-sql-2.5.0-SNAPSHOT-shaded.jar:$HOME/sqlline/sqlline-1.3.0.jar:$HOME/sqlline/jline-2.14.6.jar
> sqlline.SqlLine -u 'jdbc:beam:' -n admin -p admin{code}
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)