From 478fd84c43c80457be170f01f9bdb118c94281b1 Mon Sep 17 00:00:00 2001 From: Toshiaki Maki Date: Fri, 8 Jan 2021 02:40:29 +0900 Subject: [PATCH] Convert to Spring Boot project closes gh-47 also bump GraalVM to 20.3.0 closes gh-23 JAVA_HOME is no longer required for TLS request closes gh-46 --- .github/workflows/ci.yml | 4 +- .gitignore | 8 +- .mvn/wrapper/MavenWrapperDownloader.java | 123 +++++ .mvn/wrapper/maven-wrapper.jar | Bin 47610 -> 50710 bytes .mvn/wrapper/maven-wrapper.properties | 3 +- build-all-binaries.sh | 10 - check-binary-versions.sh | 10 - mvnw | 95 +++- mvnw.cmd | 49 +- pom.xml | 468 +++++++++--------- .../java/am/ik/rsocket/RscApplication.java | 36 ++ .../{Rsc.java => RscCommandLineRunner.java} | 47 +- src/main/java/am/ik/rsocket/Transport.java | 4 +- src/main/java/am/ik/rsocket/tracing/Span.java | 6 +- .../am.ik.rsocket/rsc/native-image.properties | 15 - .../am.ik.rsocket/rsc/reflect-config.json | 76 --- .../am.ik.rsocket/rsc/resource-config.json | 4 - src/main/resources/application.properties | 2 + src/main/resources/logback.xml | 29 -- .../am/ik/rsocket/RscApplicationTests.java | 20 + src/test/java/am/ik/rsocket/RscTest.java | 34 -- src/test/resources/junit-platform.properties | 1 - 22 files changed, 584 insertions(+), 460 deletions(-) create mode 100644 .mvn/wrapper/MavenWrapperDownloader.java delete mode 100755 build-all-binaries.sh delete mode 100755 check-binary-versions.sh mode change 100755 => 100644 mvnw.cmd create mode 100644 src/main/java/am/ik/rsocket/RscApplication.java rename src/main/java/am/ik/rsocket/{Rsc.java => RscCommandLineRunner.java} (76%) delete mode 100644 src/main/resources/META-INF/native-image/am.ik.rsocket/rsc/native-image.properties delete mode 100644 src/main/resources/META-INF/native-image/am.ik.rsocket/rsc/resource-config.json create mode 100644 src/main/resources/application.properties delete mode 100644 src/main/resources/logback.xml create mode 100644 src/test/java/am/ik/rsocket/RscApplicationTests.java delete mode 100644 src/test/java/am/ik/rsocket/RscTest.java delete mode 100644 src/test/resources/junit-platform.properties diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fc31f98..5282225 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,9 +18,9 @@ jobs: - macos-latest steps: - uses: actions/checkout@v1 - - uses: DeLaGuardo/setup-graalvm@1.0 + - uses: DeLaGuardo/setup-graalvm@master with: - graalvm-version: '19.2.1' + graalvm-version: '20.3.0.java8' - uses: actions/cache@v1 with: path: ~/.m2/repository diff --git a/.gitignore b/.gitignore index 153c933..549e00a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ HELP.md -/target/ +target/ !.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ ### STS ### .apt_generated @@ -23,7 +25,9 @@ HELP.md /dist/ /nbdist/ /.nb-gradle/ -/build/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ ### VS Code ### .vscode/ diff --git a/.mvn/wrapper/MavenWrapperDownloader.java b/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 0000000..c93a26d --- /dev/null +++ b/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,123 @@ +/* + * Copyright 2007-present the original author or authors. + * + * Licensed 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 + * + * https://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. + */ + +import java.net.*; +import java.io.*; +import java.nio.channels.*; +import java.util.Properties; + +public class MavenWrapperDownloader { + + private static final String WRAPPER_VERSION = "0.5.6"; + + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/" + + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if (mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } + catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } + finally { + try { + if (mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } + catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if (!outputFile.getParentFile().exists()) { + if (!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } + catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) { + String username = System.getenv("MVNW_USERNAME"); + char[] password = System.getenv("MVNW_PASSWORD").toCharArray(); + Authenticator.setDefault(new Authenticator() { + @Override + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(username, password); + } + }); + } + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git a/.mvn/wrapper/maven-wrapper.jar b/.mvn/wrapper/maven-wrapper.jar index 9cc84ea9b4d95453115d0c26488d6a78694e0bc6..2cc7d4a55c0cd0092912bf49ae38b3a9e3fd0054 100644 GIT binary patch delta 13011 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 delta 10059 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 diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties index a3ba20e..642d572 100644 --- a/.mvn/wrapper/maven-wrapper.properties +++ b/.mvn/wrapper/maven-wrapper.properties @@ -1 +1,2 @@ -distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.6.1/apache-maven-3.6.1-bin.zip +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip +wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar diff --git a/build-all-binaries.sh b/build-all-binaries.sh deleted file mode 100755 index b47102a..0000000 --- a/build-all-binaries.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -./mvnw clean package -DskipTests -Pgraal -docker run --rm \ - -v "$PWD":/usr/src \ - -v "$HOME/.m2":/root/.m2 \ - -w /usr/src \ - oracle/graalvm-ce:19.2.1 \ - bash -c 'gu install native-image && ./mvnw package -Dversion.generate.skip=true -Pgraal -DskipTests' -./mvnw package -Dversion.generate.skip=true -DskipTests \ No newline at end of file diff --git a/check-binary-versions.sh b/check-binary-versions.sh deleted file mode 100755 index 1d864f7..0000000 --- a/check-binary-versions.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -./target/classes/rsc-osx-x86_64 -v | jq . -docker run --rm \ - -v "$PWD":/usr/src \ - -v "$HOME/.m2":/root/.m2 \ - -w /usr/src \ - oracle/graalvm-ce:19.2.1 \ - ./target/classes/rsc-linux-x86_64 -v | jq . -java -jar target/rsc-*.jar -v | jq . \ No newline at end of file diff --git a/mvnw b/mvnw index 5bf251c..a16b543 100755 --- a/mvnw +++ b/mvnw @@ -8,7 +8,7 @@ # "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 +# https://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 @@ -19,7 +19,7 @@ # ---------------------------------------------------------------------------- # ---------------------------------------------------------------------------- -# Maven2 Start Up Batch script +# Maven Start Up Batch script # # Required ENV vars: # ------------------ @@ -108,13 +108,12 @@ if $cygwin ; then CLASSPATH=`cygpath --path --unix "$CLASSPATH"` fi -# For Migwn, ensure paths are in UNIX format before anything is touched +# For Mingw, ensure paths are in UNIX format before anything is touched if $mingw ; then [ -n "$M2_HOME" ] && M2_HOME="`(cd "$M2_HOME"; pwd)`" [ -n "$JAVA_HOME" ] && JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" - # TODO classpath? fi if [ -z "$JAVA_HOME" ]; then @@ -200,8 +199,89 @@ if [ -z "$BASE_DIR" ]; then exit 1; fi +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + else + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget "$jarUrl" -O "$wrapperJarPath" + else + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" + fi + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl -o "$wrapperJarPath" "$jarUrl" -f + else + curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f + fi + + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -echo $MAVEN_PROJECTBASEDIR +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" # For Cygwin, switch paths to Windows format before running java @@ -216,6 +296,11 @@ if $cygwin; then MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` fi +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain exec "$JAVACMD" \ diff --git a/mvnw.cmd b/mvnw.cmd old mode 100755 new mode 100644 index 019bd74..c8d4337 --- a/mvnw.cmd +++ b/mvnw.cmd @@ -7,7 +7,7 @@ @REM "License"); you may not use this file except in compliance @REM with the License. You may obtain a copy of the License at @REM -@REM http://www.apache.org/licenses/LICENSE-2.0 +@REM https://www.apache.org/licenses/LICENSE-2.0 @REM @REM Unless required by applicable law or agreed to in writing, @REM software distributed under the License is distributed on an @@ -18,7 +18,7 @@ @REM ---------------------------------------------------------------------------- @REM ---------------------------------------------------------------------------- -@REM Maven2 Start Up Batch script +@REM Maven Start Up Batch script @REM @REM Required ENV vars: @REM JAVA_HOME - location of a JDK home dir @@ -26,7 +26,7 @@ @REM Optional ENV vars @REM M2_HOME - location of maven2's installed home dir @REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending @REM MAVEN_OPTS - parameters passed to the Java VM when running Maven @REM e.g. to debug Maven itself, use @REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 @@ -35,7 +35,9 @@ @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' @echo off -@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on' +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' @if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% @REM set %HOME% to equivalent of $HOME @@ -115,10 +117,47 @@ for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do s :endReadAdditionalConfig SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" - set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + +FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + %MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* if ERRORLEVEL 1 goto error goto end diff --git a/pom.xml b/pom.xml index abb4572..a860ad2 100644 --- a/pom.xml +++ b/pom.xml @@ -1,228 +1,250 @@ - - 4.0.0 + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.4.1 + + + am.ik.rsocket + rsc + 0.7.0-SNAPSHOT + rsc + RSocket Client CLI - am.ik.rsocket - rsc - 0.7.0-SNAPSHOT - jar + + 1.8 + false + + --enable-all-security-services + --enable-https + -Dspring.native.remove-yaml-support=true + -Dspring.spel.ignore=true + -Dspring.xml.ignore=true + -Dfile.encoding=UTF-8 + -H:IncludeResourceBundles=joptsimple.HelpFormatterMessages + -H:IncludeResourceBundles=joptsimple.ExceptionMessages + + - rsc - RSocket Client CLI + + + org.springframework.experimental + spring-graalvm-native + 0.8.5 + + + org.springframework.boot + spring-boot-starter-rsocket + + + org.springframework.boot + spring-boot-starter-json + + + org.springframework + spring-messaging + + + com.fasterxml.jackson.dataformat + jackson-dataformat-cbor + + + + + net.sf.jopt-simple + jopt-simple + 6.0-alpha-3 + + + org.springframework.boot + spring-boot-starter-test + test + + + io.projectreactor + reactor-test + test + + - - UTF-8 - UTF-8 - ${java.version} - ${java.version} - 1.8 - 2.3.5.RELEASE - am.ik.rsocket.Rsc - false - - - - - - net.sf.jopt-simple - jopt-simple - 6.0-alpha-3 - - - - io.rsocket - rsocket-core - - - io.rsocket - rsocket-transport-netty - - - ch.qos.logback - logback-classic - - - io.projectreactor.netty - reactor-netty - - - io.netty - netty-transport-native-epoll - - - io.netty - netty-transport-native-unix-common - - - io.netty - netty-codec-http2 - - - - - - org.springframework.boot - spring-boot-starter-test - test - - - org.junit.vintage - junit-vintage-engine - - - junit - junit - - - - - io.projectreactor - reactor-test - test - - - - - - - org.springframework.boot - spring-boot-dependencies - ${spring-boot.version} - pom - import - - - - - - - - kr.motd.maven - os-maven-plugin - 1.6.2 - - - - - maven-surefire-plugin - 2.22.2 - - - org.apache.maven.plugins - maven-antrun-plugin - 3.0.0 - - - gen-build-info - process-resources - - run - - - ${version.generate.skip} - - - package am.ik.rsocket; - public class Version { - public static final String getVersion() { - return "${project.version}"; - } - public static final String getBuild() { - return "${maven.build.timestamp}"; - } - public static final String getVersionAsJson() { - return "{\"version\": \"${project.version}\", \"build\": \"${maven.build.timestamp}\"}"; - } - } - - - - - - - - org.codehaus.mojo - build-helper-maven-plugin - - - test - generate-sources - - add-source - - - - ${project.build.directory}/generated-sources - - - - - - - - - - - jar - - true - - - - - org.springframework.boot - spring-boot-maven-plugin - ${spring-boot.version} - - - - repackage - - - - - ${start-class} - - - - - - - graal - - 19.2.1 - - - - - com.oracle.substratevm - native-image-maven-plugin - ${graal.version} - - - com.oracle.substratevm - svm - ${graal.version} - - - - - - native-image - - package - - - - ${start-class} - true - ${project.artifactId}-${os.detected.classifier} - ${basedir}/target/classes - - - - - - + + + + kr.motd.maven + os-maven-plugin + 1.6.2 + + + + + org.apache.maven.plugins + maven-antrun-plugin + 3.0.0 + + + gen-build-info + process-resources + + run + + + ${version.generate.skip} + + + package am.ik.rsocket; + public class Version { + public static final String getVersion() { + return "${project.version}"; + } + public static final String getBuild() { + return "${maven.build.timestamp}"; + } + public static final String getRSocketJava() { + return "${rsocket.version}"; + } + public static final String getVersionAsJson() { + return "{\"version\": \"${project.version}\", \"build\": \"${maven.build.timestamp}\", \"rsocket-java\": \"${rsocket.version}\"}"; + } + } + + + + + + + + org.codehaus.mojo + build-helper-maven-plugin + + + test + generate-sources + + add-source + + + + ${project.build.directory}/generated-sources + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + paketobuildpacks/builder:tiny + + true + ${native-build.args} + + + + + + + + + native + + + + org.graalvm.nativeimage + native-image-maven-plugin + 20.3.0 + + am.ik.rsocket.RscApplication + ${native-build.args} + ${project.artifactId}-${os.detected.classifier} + ${basedir}/target/classes + + + + native-image + + package + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + + + + central + https://repo.maven.apache.org/maven2 + + false + + + + spring-release + Spring release + https://repo.spring.io/release + + false + + + + spring-snapshot + Spring Snapshots + https://repo.spring.io/snapshot + + true + + + + spring-milestone + Spring Milestone + https://repo.spring.io/milestone + + false + + + + + + central + https://repo.maven.apache.org/maven2 + + false + + + + spring-release + Spring release + https://repo.spring.io/release + + false + + + + spring-snapshot + Spring Snapshots + https://repo.spring.io/snapshot + + true + + + + spring-milestone + Spring Milestone + https://repo.spring.io/milestone + + false + + + diff --git a/src/main/java/am/ik/rsocket/RscApplication.java b/src/main/java/am/ik/rsocket/RscApplication.java new file mode 100644 index 0000000..3a98249 --- /dev/null +++ b/src/main/java/am/ik/rsocket/RscApplication.java @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2019 Toshiaki Maki + * + * Licensed 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. + */ +package am.ik.rsocket; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.context.logging.LoggingApplicationListener; +import org.springframework.context.ApplicationListener; + +@SpringBootApplication(proxyBeanMethods = false) +public class RscApplication { + + public static void main(String[] args) { + final SpringApplication application = new SpringApplication(RscApplication.class); + for (ApplicationListener listener : application.getListeners()) { + if (listener instanceof LoggingApplicationListener) { + ((LoggingApplicationListener) listener).setParseArgs(false); + } + } + application.run(args); + } + +} diff --git a/src/main/java/am/ik/rsocket/Rsc.java b/src/main/java/am/ik/rsocket/RscCommandLineRunner.java similarity index 76% rename from src/main/java/am/ik/rsocket/Rsc.java rename to src/main/java/am/ik/rsocket/RscCommandLineRunner.java index 5b26f56..d867797 100644 --- a/src/main/java/am/ik/rsocket/Rsc.java +++ b/src/main/java/am/ik/rsocket/RscCommandLineRunner.java @@ -15,11 +15,8 @@ */ package am.ik.rsocket; -import java.io.File; import java.time.Duration; -import java.util.Optional; import java.util.TreeMap; -import java.util.function.Predicate; import am.ik.rsocket.tracing.Reporter; import ch.qos.logback.classic.Level; @@ -35,9 +32,13 @@ import reactor.core.publisher.Flux; import reactor.util.retry.Retry; -public class Rsc { +import org.springframework.boot.CommandLineRunner; +import org.springframework.stereotype.Component; - public static void main(String[] a) throws Exception { +@Component +public class RscCommandLineRunner implements CommandLineRunner { + @Override + public void run(String... a) throws Exception { final Args args = new Args(a); try { if (args.help()) { @@ -66,20 +67,6 @@ public static void main(String[] a) throws Exception { if (args.debug()) { configureDebugLevel("io.rsocket.FrameLogger"); } - if (args.secure() && System.getenv("JAVA_HOME") != null) { - final File javaHome = new File(System.getenv("JAVA_HOME")); - if (System.getProperty("java.library.path") == null - || System.getProperty("java.library.path").isEmpty()) { - findFile(javaHome, file -> file.getName().startsWith("libsunec.")) - .map(f -> f.getParentFile().getAbsolutePath()) - .ifPresent(p -> System.setProperty("java.library.path", p)); - } - if (System.getProperty("javax.net.ssl.trustStore") == null - || System.getProperty("javax.net.ssl.trustStore").isEmpty()) { - findFile(javaHome, file -> file.getName().equals("cacerts")) - .ifPresent(f -> System.setProperty("javax.net.ssl.trustStore", f.getAbsolutePath())); - } - } final long begin = System.nanoTime(); run(args) .doOnTerminate(() -> handleSpan(args, (System.nanoTime() - begin) / 1000)) @@ -103,7 +90,7 @@ public static void main(String[] a) throws Exception { } static Flux run(Args args) { - args.log().ifPresent(Rsc::configureDebugLevel); + args.log().ifPresent(RscCommandLineRunner::configureDebugLevel); final ClientTransport clientTransport = args.clientTransport(); final RSocketConnector connector = RSocketConnector.create(); final String metadataMimeType = args.composeMetadata().getT1(); @@ -152,28 +139,10 @@ static void configureDebugLevel(String loggerName) { static void printVersion() { // Version class will be generated during Maven's generated-sources phase - System.out.println(Version.getVersionAsJson()); + System.out.println(am.ik.rsocket.Version.getVersionAsJson()); } static void printSystemProperties() { new TreeMap<>(System.getProperties()).forEach((k, v) -> System.out.println(k + "\t= " + v)); } - - static Optional findFile(File dir, Predicate predicate) { - final File[] files = dir.listFiles(); - if (files != null) { - for (File file : files) { - if (file.isDirectory()) { - final Optional found = findFile(file, predicate); - if (found.isPresent()) { - return found; - } - } - if (predicate.test(file)) { - return Optional.of(file); - } - } - } - return Optional.empty(); - } } diff --git a/src/main/java/am/ik/rsocket/Transport.java b/src/main/java/am/ik/rsocket/Transport.java index 36a45aa..cace7e4 100644 --- a/src/main/java/am/ik/rsocket/Transport.java +++ b/src/main/java/am/ik/rsocket/Transport.java @@ -31,8 +31,8 @@ ClientTransport clientTransport(Args args) { WEBSOCKET { @Override ClientTransport clientTransport(Args args) { - WebsocketClientTransport transport = WebsocketClientTransport.create(HttpClient.from(args.tcpClient()), args.path()); - transport.setTransportHeaders(args::wsHeaders); + WebsocketClientTransport transport = WebsocketClientTransport.create(HttpClient.from(args.tcpClient()), args.path()); + args.wsHeaders().forEach(transport::header); return transport; } }; diff --git a/src/main/java/am/ik/rsocket/tracing/Span.java b/src/main/java/am/ik/rsocket/tracing/Span.java index 68f0dad..b6d31d5 100644 --- a/src/main/java/am/ik/rsocket/tracing/Span.java +++ b/src/main/java/am/ik/rsocket/tracing/Span.java @@ -58,7 +58,8 @@ public String toJsonString(String rsocketMethod, long duration) { + " \"tags\": {\n" + " \"rsocket.method\": \"%s\",\n" + " \"rsc.version\": \"%s\",\n" - + " \"rsc.build\": \"%s\"\n" + + " \"rsc.build\": \"%s\",\n" + + " \"rsocket-java.version\": \"%s\"\n" + " }\n" + " }", Long.toHexString(spanId), @@ -69,7 +70,8 @@ public String toJsonString(String rsocketMethod, long duration) { duration, rsocketMethod, Version.getVersion(), - Version.getBuild() + Version.getBuild(), + Version.getRSocketJava() ); } diff --git a/src/main/resources/META-INF/native-image/am.ik.rsocket/rsc/native-image.properties b/src/main/resources/META-INF/native-image/am.ik.rsocket/rsc/native-image.properties deleted file mode 100644 index b73ca59..0000000 --- a/src/main/resources/META-INF/native-image/am.ik.rsocket/rsc/native-image.properties +++ /dev/null @@ -1,15 +0,0 @@ -Args=--allow-incomplete-classpath \ - --report-unsupported-elements-at-runtime \ - --no-fallback \ - --enable-all-security-services \ - -Dio.netty.noUnsafe=true \ - -H:+TraceClassInitialization \ - --initialize-at-build-time=org.slf4j \ - --initialize-at-build-time=ch.qos.logback \ - --initialize-at-build-time=reactor.netty.ConnectionObserver \ - --initialize-at-run-time=io.netty.handler.codec.http.websocketx.extensions.compression.DeflateDecoder,io.netty.util.internal.logging.Log4JLogger \ - --initialize-at-run-time=io.netty.handler.ssl.ReferenceCountedOpenSslContext,io.netty.handler.ssl.JdkNpnApplicationProtocolNegotiator,io.netty.handler.ssl.ReferenceCountedOpenSslEngine,io.netty.handler.ssl.ConscryptAlpnSslEngine,io.netty.handler.ssl.JettyNpnSslEngine \ - -H:IncludeResourceBundles=joptsimple.HelpFormatterMessages \ - -H:IncludeResourceBundles=joptsimple.ExceptionMessages \ - -H:EnableURLProtocols=http,https \ - -Dfile.encoding=UTF-8 \ No newline at end of file diff --git a/src/main/resources/META-INF/native-image/am.ik.rsocket/rsc/reflect-config.json b/src/main/resources/META-INF/native-image/am.ik.rsocket/rsc/reflect-config.json index b3d83b5..56191f6 100644 --- a/src/main/resources/META-INF/native-image/am.ik.rsocket/rsc/reflect-config.json +++ b/src/main/resources/META-INF/native-image/am.ik.rsocket/rsc/reflect-config.json @@ -28,81 +28,5 @@ "name": "io.rsocket.metadata.WellKnownMimeType", "allDeclaredConstructors": true, "allDeclaredMethods": true - }, - { - "name": "io.rsocket.internal.jctools.queues.BaseLinkedQueueProducerNodeRef", - "fields": [ - { - "name": "producerNode" - } - ] - }, - { - "name": "io.rsocket.internal.jctools.queues.BaseMpscLinkedArrayQueueProducerFields", - "fields": [ - { - "name": "producerIndex" - } - ] - }, - { - "name": "io.rsocket.internal.jctools.queues.LinkedQueueNode", - "fields": [ - { - "name": "next" - } - ] - }, - { - "name": "io.rsocket.internal.jctools.queues.BaseMpscLinkedArrayQueueColdProducerFields", - "fields": [ - { - "name": "producerLimit" - } - ] - }, - { - "name": "io.rsocket.internal.jctools.queues.BaseLinkedQueueConsumerNodeRef", - "fields": [ - { - "name": "consumerNode" - } - ] - }, - { - "name": "io.rsocket.internal.jctools.queues.BaseMpscLinkedArrayQueueConsumerFields", - "fields": [ - { - "name": "consumerIndex" - } - ] - }, - { - "name": "sun.misc.Unsafe", - "allDeclaredConstructors": true, - "fields": [ - { - "name": "theUnsafe" - } - ], - "methods": [ - { - "name": "getAndSetObject", - "parameterTypes": [ - "java.lang.Object", - "long", - "java.lang.Object" - ] - } - ] - }, - { - "name": "io.netty.channel.socket.nio.NioSocketChannel", - "methods": [ - { - "name": "", - "parameterTypes": [] - } - ] } ] \ No newline at end of file diff --git a/src/main/resources/META-INF/native-image/am.ik.rsocket/rsc/resource-config.json b/src/main/resources/META-INF/native-image/am.ik.rsocket/rsc/resource-config.json deleted file mode 100644 index 6ce2641..0000000 --- a/src/main/resources/META-INF/native-image/am.ik.rsocket/rsc/resource-config.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "resources": [ - ] -} \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties new file mode 100644 index 0000000..175ee39 --- /dev/null +++ b/src/main/resources/application.properties @@ -0,0 +1,2 @@ +spring.main.banner-mode=off +logging.level.root=off diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml deleted file mode 100644 index a77974b..0000000 --- a/src/main/resources/logback.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - System.err - - %d{yyyy-MM-dd HH:mm:ss.SSS} %5p --- [%15.15t] %-15.15logger{15} : %m%n - - - - - - - - - \ No newline at end of file diff --git a/src/test/java/am/ik/rsocket/RscApplicationTests.java b/src/test/java/am/ik/rsocket/RscApplicationTests.java new file mode 100644 index 0000000..2173464 --- /dev/null +++ b/src/test/java/am/ik/rsocket/RscApplicationTests.java @@ -0,0 +1,20 @@ +package am.ik.rsocket; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; + +import org.springframework.boot.test.system.CapturedOutput; +import org.springframework.boot.test.system.OutputCaptureExtension; + +import static org.assertj.core.api.Assertions.assertThat; + +@ExtendWith(OutputCaptureExtension.class) +class RscApplicationTests { + + @Test + void test(CapturedOutput capture) throws Exception { + RscApplication.main(new String[] { "-h" }); + assertThat(capture.toString()).isNotEmpty(); + } + +} diff --git a/src/test/java/am/ik/rsocket/RscTest.java b/src/test/java/am/ik/rsocket/RscTest.java deleted file mode 100644 index a9ed57a..0000000 --- a/src/test/java/am/ik/rsocket/RscTest.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2019 Toshiaki Maki - * - * Licensed 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. - */ -package am.ik.rsocket; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; - -import org.springframework.boot.test.system.CapturedOutput; -import org.springframework.boot.test.system.OutputCaptureExtension; - -import static org.assertj.core.api.Assertions.assertThat; - -@ExtendWith(OutputCaptureExtension.class) -public class RscTest { - - @Test - void test(CapturedOutput capture) throws Exception { - Rsc.main(new String[] { "-h" }); - assertThat(capture.toString()).isNotEmpty(); - } -} diff --git a/src/test/resources/junit-platform.properties b/src/test/resources/junit-platform.properties deleted file mode 100644 index 2af5bf8..0000000 --- a/src/test/resources/junit-platform.properties +++ /dev/null @@ -1 +0,0 @@ -junit.jupiter.testinstance.lifecycle.default=per_class