You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by gr...@apache.org on 2020/03/03 23:09:10 UTC
[kudu] 02/02: [build] Move the echo subprocess to the
kudu-subprocess jar.
This is an automated email from the ASF dual-hosted git repository.
granthenke pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git
commit c35871df7983a4a1273310483c3cde67553bc8bd
Author: Grant Henke <gr...@apache.org>
AuthorDate: Tue Mar 3 15:35:18 2020 -0600
[build] Move the echo subprocess to the kudu-subprocess jar.
This patch moves the echo subprocess to the kudu-subprocess
jar. This simplifies the build so that a single module is used
for all subprocess implementations.
Change-Id: Id42e55185007905bf831fb9214d5292817e0f8f4
Reviewed-on: http://gerrit.cloudera.org:8080/15353
Reviewed-by: Andrew Wong <aw...@cloudera.com>
Tested-by: Kudu Jenkins
---
build-support/dist_test.py | 2 +-
build-support/run_dist_test.py | 4 +-
build-support/verify_jars.pl | 5 ++-
java/kudu-subprocess-echo/build.gradle | 51 ----------------------
.../kudu/subprocess/echo/EchoProtocolHandler.java | 0
.../kudu/subprocess/echo/EchoSubprocessMain.java | 0
.../kudu/subprocess/echo/TestEchoSubprocess.java | 0
java/settings.gradle | 1 -
src/kudu/subprocess/CMakeLists.txt | 14 +++---
src/kudu/subprocess/subprocess_server-test.cc | 7 +--
10 files changed, 18 insertions(+), 66 deletions(-)
diff --git a/build-support/dist_test.py b/build-support/dist_test.py
index a7424c4..588a396 100755
--- a/build-support/dist_test.py
+++ b/build-support/dist_test.py
@@ -111,7 +111,7 @@ DEPS_FOR_ALL = \
"build/latest/bin/sentry-home",
# Add the Kudu echo subprocess.
- "build/latest/bin/kudu-subprocess-echo.jar",
+ "build/latest/bin/kudu-subprocess.jar",
# Add the Kudu HMS plugin.
"build/latest/bin/hms-plugin.jar",
diff --git a/build-support/run_dist_test.py b/build-support/run_dist_test.py
index 9ee8e8c..d613b44 100755
--- a/build-support/run_dist_test.py
+++ b/build-support/run_dist_test.py
@@ -162,8 +162,8 @@ def main():
os.path.join(bin_path, "chronyd"))
os.symlink(
glob.glob(os.path.join(ROOT,
- "java/kudu-subprocess-echo/build/libs/kudu-subprocess-echo*"))[0],
- os.path.join(bin_path, "kudu-subprocess-echo.jar"))
+ "java/kudu-subprocess/build/libs/kudu-subprocess*"))[0],
+ os.path.join(bin_path, "kudu-subprocess.jar"))
env['LD_LIBRARY_PATH'] = ":".join(
[os.path.join(ROOT, "build/dist-test-system-libs/")] +
diff --git a/build-support/verify_jars.pl b/build-support/verify_jars.pl
index 4209c44..fdb66ae 100755
--- a/build-support/verify_jars.pl
+++ b/build-support/verify_jars.pl
@@ -78,7 +78,10 @@ chomp(my @jars = `find . -type f -name \*.jar |
# Ignored because it's test only and unpublished.
grep -v kudu-jepsen.*\.jar |
# Ignored because it's a tool jar that shades everything.
- grep -v kudu-backup-tools.*\.jar`);
+ grep -v kudu-backup-tools.*\.jar |
+ # Ignored because it's an internal jar that shades everything.
+ grep -v kudu-subprocess.*\.jar`
+ );
my $num_errors = 0;
diff --git a/java/kudu-subprocess-echo/build.gradle b/java/kudu-subprocess-echo/build.gradle
deleted file mode 100644
index 8d32e68..0000000
--- a/java/kudu-subprocess-echo/build.gradle
+++ /dev/null
@@ -1,51 +0,0 @@
-// 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.
-
-apply from: "$rootDir/gradle/protobuf.gradle"
-apply from: "$rootDir/gradle/shadow.gradle"
-
-dependencies {
- // Note: We don't use the shaded version to avoid protobuf message type
- // got shaded and causes incompatible bounds error for type casting.
- compile (project(path: ":kudu-subprocess"))
- compile libs.protobufJava
- compile libs.protobufJavaUtil
-
- optional libs.yetusAnnotations
-
- testCompile project(path: ":kudu-test-utils", configuration: "shadow")
- testCompile project(path: ":kudu-subprocess", configuration: "test")
- testCompile libs.junit
- testCompile libs.log4j
- testCompile libs.log4jSlf4jImpl
-}
-jar {
- manifest {
- attributes(
- 'Main-Class': 'org.apache.kudu.subprocess.echo.EchoSubprocessMain'
- )
- }
-}
-
-// kudu-subprocess-echo has no public Javadoc.
-javadoc {
- enabled = false
-}
-
-// Skip publishing kudu-subprocess-echo artifact because it's not intended for external use.
-uploadArchives.enabled = false
-install.enabled = false
diff --git a/java/kudu-subprocess-echo/src/main/java/org/apache/kudu/subprocess/echo/EchoProtocolHandler.java b/java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/echo/EchoProtocolHandler.java
similarity index 100%
rename from java/kudu-subprocess-echo/src/main/java/org/apache/kudu/subprocess/echo/EchoProtocolHandler.java
rename to java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/echo/EchoProtocolHandler.java
diff --git a/java/kudu-subprocess-echo/src/main/java/org/apache/kudu/subprocess/echo/EchoSubprocessMain.java b/java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/echo/EchoSubprocessMain.java
similarity index 100%
rename from java/kudu-subprocess-echo/src/main/java/org/apache/kudu/subprocess/echo/EchoSubprocessMain.java
rename to java/kudu-subprocess/src/main/java/org/apache/kudu/subprocess/echo/EchoSubprocessMain.java
diff --git a/java/kudu-subprocess-echo/src/test/java/org/apache/kudu/subprocess/echo/TestEchoSubprocess.java b/java/kudu-subprocess/src/test/java/org/apache/kudu/subprocess/echo/TestEchoSubprocess.java
similarity index 100%
rename from java/kudu-subprocess-echo/src/test/java/org/apache/kudu/subprocess/echo/TestEchoSubprocess.java
rename to java/kudu-subprocess/src/test/java/org/apache/kudu/subprocess/echo/TestEchoSubprocess.java
diff --git a/java/settings.gradle b/java/settings.gradle
index e48c62e..a6c3355 100644
--- a/java/settings.gradle
+++ b/java/settings.gradle
@@ -30,5 +30,4 @@ include "kudu-mapreduce"
include "kudu-spark"
include "kudu-spark-tools"
include "kudu-subprocess"
-include "kudu-subprocess-echo"
include "kudu-test-utils"
diff --git a/src/kudu/subprocess/CMakeLists.txt b/src/kudu/subprocess/CMakeLists.txt
index e0b7af0..62f277c 100644
--- a/src/kudu/subprocess/CMakeLists.txt
+++ b/src/kudu/subprocess/CMakeLists.txt
@@ -35,19 +35,19 @@ target_link_libraries(subprocess_proto
#######################################
# kudu_subprocess
#######################################
-set(ECHO_JAR ${EXECUTABLE_OUTPUT_PATH}/kudu-subprocess-echo.jar)
+set(SUBPROCESS_JAR ${EXECUTABLE_OUTPUT_PATH}/kudu-subprocess.jar)
# Add the EXTRA_GRADLE_FLAGS environment variable to a cmake list and calls `separate_arguments`.
# This solves the problem of escaped spaces in the EXTRA_GRADLE_FLAGS environment variable.
list(APPEND EXTRA_GRADLE_FLAGS $ENV{EXTRA_GRADLE_FLAGS})
separate_arguments(EXTRA_GRADLE_FLAGS)
-add_custom_command(OUTPUT ${ECHO_JAR}
- COMMAND ./gradlew :kudu-subprocess-echo:jar ${EXTRA_GRADLE_FLAGS}
+add_custom_command(OUTPUT ${SUBPROCESS_JAR}
+ COMMAND ./gradlew :kudu-subprocess:jar ${EXTRA_GRADLE_FLAGS}
COMMAND ln -nsf
- "${JAVA_DIR}/kudu-subprocess-echo/build/libs/kudu-subprocess-echo-${KUDU_VERSION_NUMBER}.jar"
- "${ECHO_JAR}"
+ "${JAVA_DIR}/kudu-subprocess/build/libs/kudu-subprocess-${KUDU_VERSION_NUMBER}.jar"
+ "${SUBPROCESS_JAR}"
WORKING_DIRECTORY "${JAVA_DIR}")
-add_custom_target(echo_subprocess DEPENDS ${ECHO_JAR})
+add_custom_target(subprocess_jar DEPENDS ${SUBPROCESS_JAR})
add_library(kudu_subprocess
server.cc
@@ -60,7 +60,7 @@ target_link_libraries(kudu_subprocess
tool_proto
${KUDU_BASE_LIBS}
)
-add_dependencies(kudu_subprocess echo_subprocess)
+add_dependencies(kudu_subprocess subprocess_jar)
#######################################
# Unit tests
diff --git a/src/kudu/subprocess/subprocess_server-test.cc b/src/kudu/subprocess/subprocess_server-test.cc
index d81f1b4..2de5ec7 100644
--- a/src/kudu/subprocess/subprocess_server-test.cc
+++ b/src/kudu/subprocess/subprocess_server-test.cc
@@ -83,8 +83,8 @@ class SubprocessServerTest : public KuduTest {
// Resets the subprocess server to account for any new configuration.
Status ResetSubprocessServer(int java_queue_size = 0,
int java_parser_threads = 0) {
- // Set up a subprocess server pointing at the kudu-subprocess-echo.jar that
- // contains an echo server.
+ // Set up a subprocess server pointing at the kudu-subprocess.jar that
+ // contains an echo handler and call EchoSubprocessMain.
string exe;
RETURN_NOT_OK(env_->GetExecutablePath(&exe));
const string bin_dir = DirName(exe);
@@ -92,7 +92,8 @@ class SubprocessServerTest : public KuduTest {
RETURN_NOT_OK(FindHomeDir("java", bin_dir, &java_home));
vector<string> argv = {
Substitute("$0/bin/java", java_home),
- "-jar", Substitute("$0/kudu-subprocess-echo.jar", bin_dir)
+ "-cp", Substitute("$0/kudu-subprocess.jar", bin_dir),
+ "org.apache.kudu.subprocess.echo.EchoSubprocessMain"
};
if (java_queue_size > 0) {
argv.emplace_back("q");