feat(calculator-microservices): Add Quarkus Calculator Microservices
Co-authored-by: Jaime RamÃrez <jaime.ramirez@redhat.com>
New file |
| | |
| | | .settings |
| | | .project |
New file |
| | |
| | | * |
| | | !target/*-runner |
| | | !target/*-runner.jar |
| | | !target/lib/* |
New file |
| | |
| | | # Eclipse |
| | | .project |
| | | .classpath |
| | | .settings/ |
| | | bin/ |
| | | |
| | | # IntelliJ |
| | | .idea |
| | | *.ipr |
| | | *.iml |
| | | *.iws |
| | | |
| | | # NetBeans |
| | | nb-configuration.xml |
| | | |
| | | # Visual Studio Code |
| | | .vscode |
| | | |
| | | # OSX |
| | | .DS_Store |
| | | |
| | | # Vim |
| | | *.swp |
| | | *.swo |
| | | |
| | | # patch |
| | | *.orig |
| | | *.rej |
| | | |
| | | # Maven |
| | | target/ |
| | | pom.xml.tag |
| | | pom.xml.releaseBackup |
| | | pom.xml.versionsBackup |
| | | release.properties |
New file |
| | |
| | | /* |
| | | * 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 |
| | | * |
| | | * 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. |
| | | */ |
| | | 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(); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | 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 |
New file |
| | |
| | | #!/bin/sh |
| | | # ---------------------------------------------------------------------------- |
| | | # 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. |
| | | # ---------------------------------------------------------------------------- |
| | | |
| | | # ---------------------------------------------------------------------------- |
| | | # Maven Start Up Batch script |
| | | # |
| | | # Required ENV vars: |
| | | # ------------------ |
| | | # JAVA_HOME - location of a JDK home dir |
| | | # |
| | | # Optional ENV vars |
| | | # ----------------- |
| | | # M2_HOME - location of maven2's installed home dir |
| | | # MAVEN_OPTS - parameters passed to the Java VM when running Maven |
| | | # e.g. to debug Maven itself, use |
| | | # set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 |
| | | # MAVEN_SKIP_RC - flag to disable loading of mavenrc files |
| | | # ---------------------------------------------------------------------------- |
| | | |
| | | if [ -z "$MAVEN_SKIP_RC" ] ; then |
| | | |
| | | if [ -f /etc/mavenrc ] ; then |
| | | . /etc/mavenrc |
| | | fi |
| | | |
| | | if [ -f "$HOME/.mavenrc" ] ; then |
| | | . "$HOME/.mavenrc" |
| | | fi |
| | | |
| | | fi |
| | | |
| | | # OS specific support. $var _must_ be set to either true or false. |
| | | cygwin=false; |
| | | darwin=false; |
| | | mingw=false |
| | | case "`uname`" in |
| | | CYGWIN*) cygwin=true ;; |
| | | MINGW*) mingw=true;; |
| | | Darwin*) darwin=true |
| | | # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home |
| | | # See https://developer.apple.com/library/mac/qa/qa1170/_index.html |
| | | if [ -z "$JAVA_HOME" ]; then |
| | | if [ -x "/usr/libexec/java_home" ]; then |
| | | export JAVA_HOME="`/usr/libexec/java_home`" |
| | | else |
| | | export JAVA_HOME="/Library/Java/Home" |
| | | fi |
| | | fi |
| | | ;; |
| | | esac |
| | | |
| | | if [ -z "$JAVA_HOME" ] ; then |
| | | if [ -r /etc/gentoo-release ] ; then |
| | | JAVA_HOME=`java-config --jre-home` |
| | | fi |
| | | fi |
| | | |
| | | if [ -z "$M2_HOME" ] ; then |
| | | ## resolve links - $0 may be a link to maven's home |
| | | PRG="$0" |
| | | |
| | | # need this for relative symlinks |
| | | while [ -h "$PRG" ] ; do |
| | | ls=`ls -ld "$PRG"` |
| | | link=`expr "$ls" : '.*-> \(.*\)$'` |
| | | if expr "$link" : '/.*' > /dev/null; then |
| | | PRG="$link" |
| | | else |
| | | PRG="`dirname "$PRG"`/$link" |
| | | fi |
| | | done |
| | | |
| | | saveddir=`pwd` |
| | | |
| | | M2_HOME=`dirname "$PRG"`/.. |
| | | |
| | | # make it fully qualified |
| | | M2_HOME=`cd "$M2_HOME" && pwd` |
| | | |
| | | cd "$saveddir" |
| | | # echo Using m2 at $M2_HOME |
| | | fi |
| | | |
| | | # For Cygwin, ensure paths are in UNIX format before anything is touched |
| | | if $cygwin ; then |
| | | [ -n "$M2_HOME" ] && |
| | | M2_HOME=`cygpath --unix "$M2_HOME"` |
| | | [ -n "$JAVA_HOME" ] && |
| | | JAVA_HOME=`cygpath --unix "$JAVA_HOME"` |
| | | [ -n "$CLASSPATH" ] && |
| | | CLASSPATH=`cygpath --path --unix "$CLASSPATH"` |
| | | fi |
| | | |
| | | # 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)`" |
| | | fi |
| | | |
| | | if [ -z "$JAVA_HOME" ]; then |
| | | javaExecutable="`which javac`" |
| | | if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then |
| | | # readlink(1) is not available as standard on Solaris 10. |
| | | readLink=`which readlink` |
| | | if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then |
| | | if $darwin ; then |
| | | javaHome="`dirname \"$javaExecutable\"`" |
| | | javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" |
| | | else |
| | | javaExecutable="`readlink -f \"$javaExecutable\"`" |
| | | fi |
| | | javaHome="`dirname \"$javaExecutable\"`" |
| | | javaHome=`expr "$javaHome" : '\(.*\)/bin'` |
| | | JAVA_HOME="$javaHome" |
| | | export JAVA_HOME |
| | | fi |
| | | fi |
| | | fi |
| | | |
| | | if [ -z "$JAVACMD" ] ; then |
| | | if [ -n "$JAVA_HOME" ] ; then |
| | | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then |
| | | # IBM's JDK on AIX uses strange locations for the executables |
| | | JAVACMD="$JAVA_HOME/jre/sh/java" |
| | | else |
| | | JAVACMD="$JAVA_HOME/bin/java" |
| | | fi |
| | | else |
| | | JAVACMD="`which java`" |
| | | fi |
| | | fi |
| | | |
| | | if [ ! -x "$JAVACMD" ] ; then |
| | | echo "Error: JAVA_HOME is not defined correctly." >&2 |
| | | echo " We cannot execute $JAVACMD" >&2 |
| | | exit 1 |
| | | fi |
| | | |
| | | if [ -z "$JAVA_HOME" ] ; then |
| | | echo "Warning: JAVA_HOME environment variable is not set." |
| | | fi |
| | | |
| | | CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher |
| | | |
| | | # traverses directory structure from process work directory to filesystem root |
| | | # first directory with .mvn subdirectory is considered project base directory |
| | | find_maven_basedir() { |
| | | |
| | | if [ -z "$1" ] |
| | | then |
| | | echo "Path not specified to find_maven_basedir" |
| | | return 1 |
| | | fi |
| | | |
| | | basedir="$1" |
| | | wdir="$1" |
| | | while [ "$wdir" != '/' ] ; do |
| | | if [ -d "$wdir"/.mvn ] ; then |
| | | basedir=$wdir |
| | | break |
| | | fi |
| | | # workaround for JBEAP-8937 (on Solaris 10/Sparc) |
| | | if [ -d "${wdir}" ]; then |
| | | wdir=`cd "$wdir/.."; pwd` |
| | | fi |
| | | # end of workaround |
| | | done |
| | | echo "${basedir}" |
| | | } |
| | | |
| | | # concatenates all lines of a file |
| | | concat_lines() { |
| | | if [ -f "$1" ]; then |
| | | echo "$(tr -s '\n' ' ' < "$1")" |
| | | fi |
| | | } |
| | | |
| | | BASE_DIR=`find_maven_basedir "$(pwd)"` |
| | | 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"} |
| | | 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 |
| | | if $cygwin; then |
| | | [ -n "$M2_HOME" ] && |
| | | M2_HOME=`cygpath --path --windows "$M2_HOME"` |
| | | [ -n "$JAVA_HOME" ] && |
| | | JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` |
| | | [ -n "$CLASSPATH" ] && |
| | | CLASSPATH=`cygpath --path --windows "$CLASSPATH"` |
| | | [ -n "$MAVEN_PROJECTBASEDIR" ] && |
| | | 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" \ |
| | | $MAVEN_OPTS \ |
| | | -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ |
| | | "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ |
| | | ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" |
New file |
| | |
| | | @REM ---------------------------------------------------------------------------- |
| | | @REM Licensed to the Apache Software Foundation (ASF) under one |
| | | @REM or more contributor license agreements. See the NOTICE file |
| | | @REM distributed with this work for additional information |
| | | @REM regarding copyright ownership. The ASF licenses this file |
| | | @REM to you under the Apache License, Version 2.0 (the |
| | | @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 |
| | | @REM Unless required by applicable law or agreed to in writing, |
| | | @REM software distributed under the License is distributed on an |
| | | @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| | | @REM KIND, either express or implied. See the License for the |
| | | @REM specific language governing permissions and limitations |
| | | @REM under the License. |
| | | @REM ---------------------------------------------------------------------------- |
| | | |
| | | @REM ---------------------------------------------------------------------------- |
| | | @REM Maven Start Up Batch script |
| | | @REM |
| | | @REM Required ENV vars: |
| | | @REM JAVA_HOME - location of a JDK home dir |
| | | @REM |
| | | @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 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 |
| | | @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files |
| | | @REM ---------------------------------------------------------------------------- |
| | | |
| | | @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' |
| | | @echo off |
| | | @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 |
| | | if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") |
| | | |
| | | @REM Execute a user defined script before this one |
| | | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre |
| | | @REM check for pre script, once with legacy .bat ending and once with .cmd ending |
| | | if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" |
| | | if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" |
| | | :skipRcPre |
| | | |
| | | @setlocal |
| | | |
| | | set ERROR_CODE=0 |
| | | |
| | | @REM To isolate internal variables from possible post scripts, we use another setlocal |
| | | @setlocal |
| | | |
| | | @REM ==== START VALIDATION ==== |
| | | if not "%JAVA_HOME%" == "" goto OkJHome |
| | | |
| | | echo. |
| | | echo Error: JAVA_HOME not found in your environment. >&2 |
| | | echo Please set the JAVA_HOME variable in your environment to match the >&2 |
| | | echo location of your Java installation. >&2 |
| | | echo. |
| | | goto error |
| | | |
| | | :OkJHome |
| | | if exist "%JAVA_HOME%\bin\java.exe" goto init |
| | | |
| | | echo. |
| | | echo Error: JAVA_HOME is set to an invalid directory. >&2 |
| | | echo JAVA_HOME = "%JAVA_HOME%" >&2 |
| | | echo Please set the JAVA_HOME variable in your environment to match the >&2 |
| | | echo location of your Java installation. >&2 |
| | | echo. |
| | | goto error |
| | | |
| | | @REM ==== END VALIDATION ==== |
| | | |
| | | :init |
| | | |
| | | @REM Find the project base dir, i.e. the directory that contains the folder ".mvn". |
| | | @REM Fallback to current working directory if not found. |
| | | |
| | | set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% |
| | | IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir |
| | | |
| | | set EXEC_DIR=%CD% |
| | | set WDIR=%EXEC_DIR% |
| | | :findBaseDir |
| | | IF EXIST "%WDIR%"\.mvn goto baseDirFound |
| | | cd .. |
| | | IF "%WDIR%"=="%CD%" goto baseDirNotFound |
| | | set WDIR=%CD% |
| | | goto findBaseDir |
| | | |
| | | :baseDirFound |
| | | set MAVEN_PROJECTBASEDIR=%WDIR% |
| | | cd "%EXEC_DIR%" |
| | | goto endDetectBaseDir |
| | | |
| | | :baseDirNotFound |
| | | set MAVEN_PROJECTBASEDIR=%EXEC_DIR% |
| | | cd "%EXEC_DIR%" |
| | | |
| | | :endDetectBaseDir |
| | | |
| | | IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig |
| | | |
| | | @setlocal EnableExtensions EnableDelayedExpansion |
| | | for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a |
| | | @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% |
| | | |
| | | :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 |
| | | |
| | | :error |
| | | set ERROR_CODE=1 |
| | | |
| | | :end |
| | | @endlocal & set ERROR_CODE=%ERROR_CODE% |
| | | |
| | | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost |
| | | @REM check for post script, once with legacy .bat ending and once with .cmd ending |
| | | if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" |
| | | if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" |
| | | :skipRcPost |
| | | |
| | | @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' |
| | | if "%MAVEN_BATCH_PAUSE%" == "on" pause |
| | | |
| | | if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% |
| | | |
| | | exit /B %ERROR_CODE% |
New file |
| | |
| | | <?xml version="1.0"?> |
| | | <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" |
| | | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> |
| | | <modelVersion>4.0.0</modelVersion> |
| | | <groupId>com.redhat.training</groupId> |
| | | <artifactId>adder</artifactId> |
| | | <version>1.0-SNAPSHOT</version> |
| | | <properties> |
| | | <compiler-plugin.version>3.8.1</compiler-plugin.version> |
| | | <maven.compiler.parameters>true</maven.compiler.parameters> |
| | | <maven.compiler.source>11</maven.compiler.source> |
| | | <maven.compiler.target>11</maven.compiler.target> |
| | | <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
| | | <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> |
| | | <quarkus-plugin.version>${quarkus.platform.version}</quarkus-plugin.version> |
| | | <quarkus.platform.artifact-id>quarkus-universe-bom</quarkus.platform.artifact-id> |
| | | <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id> |
| | | <quarkus.platform.version>1.12.0.Final</quarkus.platform.version> |
| | | <surefire-plugin.version>2.22.1</surefire-plugin.version> |
| | | </properties> |
| | | <dependencyManagement> |
| | | <dependencies> |
| | | <dependency> |
| | | <groupId>${quarkus.platform.group-id}</groupId> |
| | | <artifactId>${quarkus.platform.artifact-id}</artifactId> |
| | | <version>${quarkus.platform.version}</version> |
| | | <type>pom</type> |
| | | <scope>import</scope> |
| | | </dependency> |
| | | </dependencies> |
| | | </dependencyManagement> |
| | | <dependencies> |
| | | <dependency> |
| | | <groupId>io.quarkus</groupId> |
| | | <artifactId>quarkus-resteasy</artifactId> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>io.quarkus</groupId> |
| | | <artifactId>quarkus-rest-client</artifactId> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>io.quarkus</groupId> |
| | | <artifactId>quarkus-openshift</artifactId> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>io.quarkus</groupId> |
| | | <artifactId>quarkus-junit5</artifactId> |
| | | <scope>test</scope> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>io.quarkus</groupId> |
| | | <artifactId>quarkus-junit5-mockito</artifactId> |
| | | <scope>test</scope> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>io.rest-assured</groupId> |
| | | <artifactId>rest-assured</artifactId> |
| | | <version>4.3.3</version> |
| | | <scope>test</scope> |
| | | </dependency> |
| | | </dependencies> |
| | | <build> |
| | | <resources> |
| | | <resource> |
| | | <filtering>true</filtering> |
| | | <directory>src/main/resources</directory> |
| | | </resource> |
| | | </resources> |
| | | <plugins> |
| | | <plugin> |
| | | <groupId>io.quarkus</groupId> |
| | | <artifactId>quarkus-maven-plugin</artifactId> |
| | | <version>${quarkus-plugin.version}</version> |
| | | <executions> |
| | | <execution> |
| | | <goals> |
| | | <goal>build</goal> |
| | | </goals> |
| | | </execution> |
| | | </executions> |
| | | </plugin> |
| | | <plugin> |
| | | <artifactId>maven-compiler-plugin</artifactId> |
| | | <version>${compiler-plugin.version}</version> |
| | | </plugin> |
| | | <plugin> |
| | | <artifactId>maven-surefire-plugin</artifactId> |
| | | <version>${surefire-plugin.version}</version> |
| | | <configuration> |
| | | <systemPropertyVariables> |
| | | <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager> |
| | | <maven.home>${maven.home}</maven.home> |
| | | </systemPropertyVariables> |
| | | </configuration> |
| | | </plugin> |
| | | </plugins> |
| | | </build> |
| | | <profiles> |
| | | <profile> |
| | | <id>native</id> |
| | | <activation> |
| | | <property> |
| | | <name>native</name> |
| | | </property> |
| | | </activation> |
| | | <build> |
| | | <plugins> |
| | | <plugin> |
| | | <artifactId>maven-failsafe-plugin</artifactId> |
| | | <version>${surefire-plugin.version}</version> |
| | | <executions> |
| | | <execution> |
| | | <goals> |
| | | <goal>integration-test</goal> |
| | | <goal>verify</goal> |
| | | </goals> |
| | | <configuration> |
| | | <systemPropertyVariables> |
| | | <native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path> |
| | | <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager> |
| | | <maven.home>${maven.home}</maven.home> |
| | | </systemPropertyVariables> |
| | | </configuration> |
| | | </execution> |
| | | </executions> |
| | | </plugin> |
| | | </plugins> |
| | | </build> |
| | | <properties> |
| | | <quarkus.package.type>native</quarkus.package.type> |
| | | </properties> |
| | | </profile> |
| | | </profiles> |
| | | </project> |
New file |
| | |
| | | #### |
| | | # This Dockerfile is used in order to build a container that runs the Quarkus application in JVM mode |
| | | # |
| | | # Before building the docker image run: |
| | | # |
| | | # mvn package |
| | | # |
| | | # Then, build the image with: |
| | | # |
| | | # docker build -f src/main/docker/Dockerfile.jvm -t quarkus/quarkus-adder-jvm . |
| | | # |
| | | # Then run the container using: |
| | | # |
| | | # docker run -i --rm -p 8080:8080 quarkus/quarkus-adder-jvm |
| | | # |
| | | ### |
| | | FROM fabric8/java-alpine-openjdk8-jre |
| | | ENV JAVA_OPTIONS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager" |
| | | ENV AB_ENABLED=jmx_exporter |
| | | COPY target/lib/* /deployments/lib/ |
| | | COPY target/*-runner.jar /deployments/app.jar |
| | | ENTRYPOINT [ "/deployments/run-java.sh" ] |
New file |
| | |
| | | #### |
| | | # This Dockerfile is used in order to build a container that runs the Quarkus application in native (no JVM) mode |
| | | # |
| | | # Before building the docker image run: |
| | | # |
| | | # mvn package -Pnative -Dnative-image.docker-build=true |
| | | # |
| | | # Then, build the image with: |
| | | # |
| | | # docker build -f src/main/docker/Dockerfile.native -t quarkus/quarkus-adder . |
| | | #8080 |
| | | # Then run the container using: |
| | | # |
| | | # docker run -i --rm -p 8080:8080 quarkus/quarkus-adder |
| | | # |
| | | ### |
| | | FROM registry.access.redhat.com/ubi8/ubi-minimal |
| | | ENV JAEGER_SERVICE_NAME=adder\ |
| | | JAEGER_ENDPOINT=http://jaeger-collector.istio-system.svc:14268/api/traces\ |
| | | JAEGER_PROPAGATION=b3\ |
| | | JAEGER_SAMPLER_TYPE=const\ |
| | | JAEGER_SAMPLER_PARAM=1 |
| | | WORKDIR /work/ |
| | | COPY target/*-runner /work/application |
| | | RUN chmod 775 /work |
| | | EXPOSE 8080 |
| | | CMD ["./application", "-Dquarkus.http.host=0.0.0.0"] |
New file |
| | |
| | | package com.redhat.training; |
| | | |
| | | import org.eclipse.microprofile.rest.client.inject.RestClient; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | |
| | | import javax.inject.Inject; |
| | | import javax.ws.rs.*; |
| | | import javax.ws.rs.core.MediaType; |
| | | import javax.ws.rs.core.Response; |
| | | |
| | | import com.redhat.training.service.AdderService; |
| | | import com.redhat.training.service.SolverService; |
| | | |
| | | @Path("/adder") |
| | | public class AdderResource implements AdderService { |
| | | |
| | | final Logger log = LoggerFactory.getLogger(AdderResource.class); |
| | | |
| | | @Inject |
| | | @RestClient |
| | | SolverService solverService; |
| | | |
| | | @GET |
| | | @Path("/{lhs}/{rhs}") |
| | | @Produces(MediaType.TEXT_PLAIN) |
| | | public Float add(@PathParam("lhs") String lhs, @PathParam("rhs") String rhs) { |
| | | log.info("Adding {} to {}" ,lhs, rhs); |
| | | return solverService.solve(lhs)+solverService.solve(rhs); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.redhat.training.service; |
| | | |
| | | import javax.ws.rs.GET; |
| | | import javax.ws.rs.Path; |
| | | import javax.ws.rs.PathParam; |
| | | import javax.ws.rs.Produces; |
| | | import javax.ws.rs.core.MediaType; |
| | | |
| | | @Path("/adder") |
| | | public interface AdderService { |
| | | |
| | | @GET |
| | | @Path("/{lhs}/{rhs}") |
| | | @Produces(MediaType.TEXT_PLAIN) |
| | | Float add(@PathParam("lhs") String lhs, @PathParam("rhs") String rhs); |
| | | |
| | | } |
New file |
| | |
| | | package com.redhat.training.service; |
| | | |
| | | import javax.enterprise.context.ApplicationScoped; |
| | | import javax.ws.rs.GET; |
| | | import javax.ws.rs.Path; |
| | | import javax.ws.rs.PathParam; |
| | | import javax.ws.rs.Produces; |
| | | import javax.ws.rs.core.MediaType; |
| | | |
| | | import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; |
| | | |
| | | @Path("/solver") |
| | | @ApplicationScoped |
| | | @RegisterRestClient |
| | | public interface SolverService { |
| | | @GET |
| | | @Path("{equation}") |
| | | @Produces(MediaType.TEXT_PLAIN) |
| | | Float solve(@PathParam("equation") String equation); |
| | | } |
New file |
| | |
| | | <!DOCTYPE html> |
| | | <html lang="en"> |
| | | <head> |
| | | <meta charset="UTF-8"> |
| | | <title>quarkus-adder - 1.0-SNAPSHOT</title> |
| | | <style> |
| | | h1, h2, h3, h4, h5, h6 { |
| | | margin-bottom: 0.5rem; |
| | | font-weight: 400; |
| | | line-height: 1.5; |
| | | } |
| | | |
| | | h1 { |
| | | font-size: 2.5rem; |
| | | } |
| | | |
| | | h2 { |
| | | font-size: 2rem |
| | | } |
| | | |
| | | h3 { |
| | | font-size: 1.75rem |
| | | } |
| | | |
| | | h4 { |
| | | font-size: 1.5rem |
| | | } |
| | | |
| | | h5 { |
| | | font-size: 1.25rem |
| | | } |
| | | |
| | | h6 { |
| | | font-size: 1rem |
| | | } |
| | | |
| | | .lead { |
| | | font-weight: 300; |
| | | font-size: 2rem; |
| | | } |
| | | |
| | | .banner { |
| | | font-size: 2.7rem; |
| | | margin: 0; |
| | | padding: 2rem 1rem; |
| | | background-color: #00A1E2; |
| | | color: white; |
| | | } |
| | | |
| | | body { |
| | | margin: 0; |
| | | font-family: -apple-system, system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; |
| | | } |
| | | |
| | | code { |
| | | font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; |
| | | font-size: 87.5%; |
| | | color: #e83e8c; |
| | | word-break: break-word; |
| | | } |
| | | |
| | | .left-column { |
| | | padding: .75rem; |
| | | max-width: 75%; |
| | | min-width: 55%; |
| | | } |
| | | |
| | | .right-column { |
| | | padding: .75rem; |
| | | max-width: 25%; |
| | | } |
| | | |
| | | .container { |
| | | display: flex; |
| | | width: 100%; |
| | | } |
| | | |
| | | li { |
| | | margin: 0.75rem; |
| | | } |
| | | |
| | | .right-section { |
| | | margin-left: 1rem; |
| | | padding-left: 0.5rem; |
| | | } |
| | | |
| | | .right-section h3 { |
| | | padding-top: 0; |
| | | font-weight: 200; |
| | | } |
| | | |
| | | .right-section ul { |
| | | border-left: 0.3rem solid #00A1E2; |
| | | list-style-type: none; |
| | | padding-left: 0; |
| | | } |
| | | |
| | | </style> |
| | | </head> |
| | | <body> |
| | | |
| | | <div class="banner lead"> |
| | | Your new Cloud-Native application is ready! |
| | | </div> |
| | | |
| | | <div class="container"> |
| | | <div class="left-column"> |
| | | <p class="lead"> Congratulations, you have created a new Quarkus application.</p> |
| | | |
| | | <h2>Why do you see this?</h2> |
| | | |
| | | <p>This page is served by Quarkus. The source is in |
| | | <code>src/main/resources/META-INF/resources/index.html</code>.</p> |
| | | |
| | | <h2>What can I do from here?</h2> |
| | | |
| | | <p>If not already done, run the application in <em>dev mode</em> using: <code>mvn compile quarkus:dev</code>. |
| | | </p> |
| | | <ul> |
| | | <li>Add REST resources, Servlets, functions and other services in <code>src/main/java</code>.</li> |
| | | <li>Your static assets are located in <code>src/main/resources/META-INF/resources</code>.</li> |
| | | <li>Configure your application in <code>src/main/resources/application.properties</code>. |
| | | </li> |
| | | </ul> |
| | | |
| | | <h2>How do I get rid of this page?</h2> |
| | | <p>Just delete the <code>src/main/resources/META-INF/resources/index.html</code> file.</p> |
| | | </div> |
| | | <div class="right-column"> |
| | | <div class="right-section"> |
| | | <h3>Application</h3> |
| | | <ul> |
| | | <li>GroupId: ${project.groupId}</li> |
| | | <li>ArtifactId: ${project.artifactId}</li> |
| | | <li>Version: ${project.version}</li> |
| | | <li>Quarkus Version: ${quarkus.platform.version}</li> |
| | | </ul> |
| | | </div> |
| | | <div class="right-section"> |
| | | <h3>Next steps</h3> |
| | | <ul> |
| | | <li><a href="https://quarkus.io/guides/maven-tooling.html">Setup your IDE</a></li> |
| | | <li><a href="https://quarkus.io/guides/getting-started-guide.html">Getting started</a></li> |
| | | <li><a href="https://quarkus.io">Quarkus Web Site</a></li> |
| | | </ul> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | </body> |
| | | </html> |
New file |
| | |
| | | quarkus.application.name=adder |
| | | %dev.quarkus.http.port=8081 |
| | | |
| | | com.redhat.training.service.SolverService/mp-rest/url=http://solver:8080 |
| | | com.redhat.training.service.AdderService/mp-rest/url=http://adder:8080 |
| | | com.redhat.training.service.MultiplierService/mp-rest/url=http://multiplier:8080 |
| | | %dev.com.redhat.training.service.SolverService/mp-rest/url=http://localhost:8080 |
| | | %dev.com.redhat.training.service.AdderService/mp-rest/url=http://localhost:8081 |
| | | %dev.com.redhat.training.service.MultiplierService/mp-rest/url=http://localhost:8082 |
| | | |
New file |
| | |
| | | package com.redhat.training; |
| | | |
| | | import com.redhat.training.service.SolverService; |
| | | |
| | | import org.eclipse.microprofile.rest.client.inject.RestClient; |
| | | |
| | | import io.quarkus.test.common.http.TestHTTPEndpoint; |
| | | import io.quarkus.test.junit.QuarkusTest; |
| | | import io.quarkus.test.junit.mockito.InjectMock; |
| | | |
| | | @QuarkusTest |
| | | @TestHTTPEndpoint(AdderResource.class) |
| | | public class AdderResourceTest { |
| | | |
| | | @InjectMock |
| | | @RestClient |
| | | SolverService solverService; |
| | | |
| | | } |
New file |
| | |
| | | #!/bin/sh |
| | | |
| | | cd ~/DO378/labs/apps-connect |
| | | |
| | | echo "Creating the 'adder' project " |
| | | mvn io.quarkus:quarkus-maven-plugin:1.3.4.Final-redhat-00004:create \ |
| | | -DprojectGroupId=com.redhat.training \ |
| | | -DprojectArtifactId=adder \ |
| | | -DplatformGroupId=com.redhat.quarkus \ |
| | | -DplatformVersion=1.3.4.Final-redhat-00004 \ |
| | | -DclassName="com.redhat.training.AdderResource" \ |
| | | -Dpath="/adder" \ |
| | | -Dextensions="rest-client" |
| | | |
| | | echo "Removing the test folder for the 'adder' project" |
| | | rm -rf ./adder/src/test |
| | | |
| | | echo "Creating the 'multiplier' project " |
| | | mvn io.quarkus:quarkus-maven-plugin:1.3.4.Final-redhat-00004:create \ |
| | | -DprojectGroupId=com.redhat.training \ |
| | | -DprojectArtifactId=multiplier \ |
| | | -DplatformGroupId=com.redhat.quarkus \ |
| | | -DplatformVersion=1.3.4.Final-redhat-00004 \ |
| | | -DclassName="com.redhat.training.MultiplierResource" \ |
| | | -Dpath="/multiplier" \ |
| | | -Dextensions="rest-client" |
| | | |
| | | echo "Removing the test folder for the 'multiplier' project" |
| | | rm -rf ./multiplier/src/test |
| | | |
| | | echo "All done." |
New file |
| | |
| | | * |
| | | !target/*-runner |
| | | !target/*-runner.jar |
| | | !target/lib/* |
New file |
| | |
| | | # Eclipse |
| | | .project |
| | | .classpath |
| | | .settings/ |
| | | bin/ |
| | | |
| | | # IntelliJ |
| | | .idea |
| | | *.ipr |
| | | *.iml |
| | | *.iws |
| | | |
| | | # NetBeans |
| | | nb-configuration.xml |
| | | |
| | | # Visual Studio Code |
| | | .vscode |
| | | |
| | | # OSX |
| | | .DS_Store |
| | | |
| | | # Vim |
| | | *.swp |
| | | *.swo |
| | | |
| | | # patch |
| | | *.orig |
| | | *.rej |
| | | |
| | | # Maven |
| | | target/ |
| | | pom.xml.tag |
| | | pom.xml.releaseBackup |
| | | pom.xml.versionsBackup |
| | | release.properties |
New file |
| | |
| | | /* |
| | | * 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 |
| | | * |
| | | * 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. |
| | | */ |
| | | 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(); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | 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 |
New file |
| | |
| | | #!/bin/sh |
| | | # ---------------------------------------------------------------------------- |
| | | # 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. |
| | | # ---------------------------------------------------------------------------- |
| | | |
| | | # ---------------------------------------------------------------------------- |
| | | # Maven Start Up Batch script |
| | | # |
| | | # Required ENV vars: |
| | | # ------------------ |
| | | # JAVA_HOME - location of a JDK home dir |
| | | # |
| | | # Optional ENV vars |
| | | # ----------------- |
| | | # M2_HOME - location of maven2's installed home dir |
| | | # MAVEN_OPTS - parameters passed to the Java VM when running Maven |
| | | # e.g. to debug Maven itself, use |
| | | # set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 |
| | | # MAVEN_SKIP_RC - flag to disable loading of mavenrc files |
| | | # ---------------------------------------------------------------------------- |
| | | |
| | | if [ -z "$MAVEN_SKIP_RC" ] ; then |
| | | |
| | | if [ -f /etc/mavenrc ] ; then |
| | | . /etc/mavenrc |
| | | fi |
| | | |
| | | if [ -f "$HOME/.mavenrc" ] ; then |
| | | . "$HOME/.mavenrc" |
| | | fi |
| | | |
| | | fi |
| | | |
| | | # OS specific support. $var _must_ be set to either true or false. |
| | | cygwin=false; |
| | | darwin=false; |
| | | mingw=false |
| | | case "`uname`" in |
| | | CYGWIN*) cygwin=true ;; |
| | | MINGW*) mingw=true;; |
| | | Darwin*) darwin=true |
| | | # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home |
| | | # See https://developer.apple.com/library/mac/qa/qa1170/_index.html |
| | | if [ -z "$JAVA_HOME" ]; then |
| | | if [ -x "/usr/libexec/java_home" ]; then |
| | | export JAVA_HOME="`/usr/libexec/java_home`" |
| | | else |
| | | export JAVA_HOME="/Library/Java/Home" |
| | | fi |
| | | fi |
| | | ;; |
| | | esac |
| | | |
| | | if [ -z "$JAVA_HOME" ] ; then |
| | | if [ -r /etc/gentoo-release ] ; then |
| | | JAVA_HOME=`java-config --jre-home` |
| | | fi |
| | | fi |
| | | |
| | | if [ -z "$M2_HOME" ] ; then |
| | | ## resolve links - $0 may be a link to maven's home |
| | | PRG="$0" |
| | | |
| | | # need this for relative symlinks |
| | | while [ -h "$PRG" ] ; do |
| | | ls=`ls -ld "$PRG"` |
| | | link=`expr "$ls" : '.*-> \(.*\)$'` |
| | | if expr "$link" : '/.*' > /dev/null; then |
| | | PRG="$link" |
| | | else |
| | | PRG="`dirname "$PRG"`/$link" |
| | | fi |
| | | done |
| | | |
| | | saveddir=`pwd` |
| | | |
| | | M2_HOME=`dirname "$PRG"`/.. |
| | | |
| | | # make it fully qualified |
| | | M2_HOME=`cd "$M2_HOME" && pwd` |
| | | |
| | | cd "$saveddir" |
| | | # echo Using m2 at $M2_HOME |
| | | fi |
| | | |
| | | # For Cygwin, ensure paths are in UNIX format before anything is touched |
| | | if $cygwin ; then |
| | | [ -n "$M2_HOME" ] && |
| | | M2_HOME=`cygpath --unix "$M2_HOME"` |
| | | [ -n "$JAVA_HOME" ] && |
| | | JAVA_HOME=`cygpath --unix "$JAVA_HOME"` |
| | | [ -n "$CLASSPATH" ] && |
| | | CLASSPATH=`cygpath --path --unix "$CLASSPATH"` |
| | | fi |
| | | |
| | | # 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)`" |
| | | fi |
| | | |
| | | if [ -z "$JAVA_HOME" ]; then |
| | | javaExecutable="`which javac`" |
| | | if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then |
| | | # readlink(1) is not available as standard on Solaris 10. |
| | | readLink=`which readlink` |
| | | if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then |
| | | if $darwin ; then |
| | | javaHome="`dirname \"$javaExecutable\"`" |
| | | javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" |
| | | else |
| | | javaExecutable="`readlink -f \"$javaExecutable\"`" |
| | | fi |
| | | javaHome="`dirname \"$javaExecutable\"`" |
| | | javaHome=`expr "$javaHome" : '\(.*\)/bin'` |
| | | JAVA_HOME="$javaHome" |
| | | export JAVA_HOME |
| | | fi |
| | | fi |
| | | fi |
| | | |
| | | if [ -z "$JAVACMD" ] ; then |
| | | if [ -n "$JAVA_HOME" ] ; then |
| | | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then |
| | | # IBM's JDK on AIX uses strange locations for the executables |
| | | JAVACMD="$JAVA_HOME/jre/sh/java" |
| | | else |
| | | JAVACMD="$JAVA_HOME/bin/java" |
| | | fi |
| | | else |
| | | JAVACMD="`which java`" |
| | | fi |
| | | fi |
| | | |
| | | if [ ! -x "$JAVACMD" ] ; then |
| | | echo "Error: JAVA_HOME is not defined correctly." >&2 |
| | | echo " We cannot execute $JAVACMD" >&2 |
| | | exit 1 |
| | | fi |
| | | |
| | | if [ -z "$JAVA_HOME" ] ; then |
| | | echo "Warning: JAVA_HOME environment variable is not set." |
| | | fi |
| | | |
| | | CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher |
| | | |
| | | # traverses directory structure from process work directory to filesystem root |
| | | # first directory with .mvn subdirectory is considered project base directory |
| | | find_maven_basedir() { |
| | | |
| | | if [ -z "$1" ] |
| | | then |
| | | echo "Path not specified to find_maven_basedir" |
| | | return 1 |
| | | fi |
| | | |
| | | basedir="$1" |
| | | wdir="$1" |
| | | while [ "$wdir" != '/' ] ; do |
| | | if [ -d "$wdir"/.mvn ] ; then |
| | | basedir=$wdir |
| | | break |
| | | fi |
| | | # workaround for JBEAP-8937 (on Solaris 10/Sparc) |
| | | if [ -d "${wdir}" ]; then |
| | | wdir=`cd "$wdir/.."; pwd` |
| | | fi |
| | | # end of workaround |
| | | done |
| | | echo "${basedir}" |
| | | } |
| | | |
| | | # concatenates all lines of a file |
| | | concat_lines() { |
| | | if [ -f "$1" ]; then |
| | | echo "$(tr -s '\n' ' ' < "$1")" |
| | | fi |
| | | } |
| | | |
| | | BASE_DIR=`find_maven_basedir "$(pwd)"` |
| | | 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"} |
| | | 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 |
| | | if $cygwin; then |
| | | [ -n "$M2_HOME" ] && |
| | | M2_HOME=`cygpath --path --windows "$M2_HOME"` |
| | | [ -n "$JAVA_HOME" ] && |
| | | JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` |
| | | [ -n "$CLASSPATH" ] && |
| | | CLASSPATH=`cygpath --path --windows "$CLASSPATH"` |
| | | [ -n "$MAVEN_PROJECTBASEDIR" ] && |
| | | 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" \ |
| | | $MAVEN_OPTS \ |
| | | -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ |
| | | "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ |
| | | ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" |
New file |
| | |
| | | @REM ---------------------------------------------------------------------------- |
| | | @REM Licensed to the Apache Software Foundation (ASF) under one |
| | | @REM or more contributor license agreements. See the NOTICE file |
| | | @REM distributed with this work for additional information |
| | | @REM regarding copyright ownership. The ASF licenses this file |
| | | @REM to you under the Apache License, Version 2.0 (the |
| | | @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 |
| | | @REM Unless required by applicable law or agreed to in writing, |
| | | @REM software distributed under the License is distributed on an |
| | | @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| | | @REM KIND, either express or implied. See the License for the |
| | | @REM specific language governing permissions and limitations |
| | | @REM under the License. |
| | | @REM ---------------------------------------------------------------------------- |
| | | |
| | | @REM ---------------------------------------------------------------------------- |
| | | @REM Maven Start Up Batch script |
| | | @REM |
| | | @REM Required ENV vars: |
| | | @REM JAVA_HOME - location of a JDK home dir |
| | | @REM |
| | | @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 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 |
| | | @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files |
| | | @REM ---------------------------------------------------------------------------- |
| | | |
| | | @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' |
| | | @echo off |
| | | @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 |
| | | if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") |
| | | |
| | | @REM Execute a user defined script before this one |
| | | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre |
| | | @REM check for pre script, once with legacy .bat ending and once with .cmd ending |
| | | if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" |
| | | if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" |
| | | :skipRcPre |
| | | |
| | | @setlocal |
| | | |
| | | set ERROR_CODE=0 |
| | | |
| | | @REM To isolate internal variables from possible post scripts, we use another setlocal |
| | | @setlocal |
| | | |
| | | @REM ==== START VALIDATION ==== |
| | | if not "%JAVA_HOME%" == "" goto OkJHome |
| | | |
| | | echo. |
| | | echo Error: JAVA_HOME not found in your environment. >&2 |
| | | echo Please set the JAVA_HOME variable in your environment to match the >&2 |
| | | echo location of your Java installation. >&2 |
| | | echo. |
| | | goto error |
| | | |
| | | :OkJHome |
| | | if exist "%JAVA_HOME%\bin\java.exe" goto init |
| | | |
| | | echo. |
| | | echo Error: JAVA_HOME is set to an invalid directory. >&2 |
| | | echo JAVA_HOME = "%JAVA_HOME%" >&2 |
| | | echo Please set the JAVA_HOME variable in your environment to match the >&2 |
| | | echo location of your Java installation. >&2 |
| | | echo. |
| | | goto error |
| | | |
| | | @REM ==== END VALIDATION ==== |
| | | |
| | | :init |
| | | |
| | | @REM Find the project base dir, i.e. the directory that contains the folder ".mvn". |
| | | @REM Fallback to current working directory if not found. |
| | | |
| | | set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% |
| | | IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir |
| | | |
| | | set EXEC_DIR=%CD% |
| | | set WDIR=%EXEC_DIR% |
| | | :findBaseDir |
| | | IF EXIST "%WDIR%"\.mvn goto baseDirFound |
| | | cd .. |
| | | IF "%WDIR%"=="%CD%" goto baseDirNotFound |
| | | set WDIR=%CD% |
| | | goto findBaseDir |
| | | |
| | | :baseDirFound |
| | | set MAVEN_PROJECTBASEDIR=%WDIR% |
| | | cd "%EXEC_DIR%" |
| | | goto endDetectBaseDir |
| | | |
| | | :baseDirNotFound |
| | | set MAVEN_PROJECTBASEDIR=%EXEC_DIR% |
| | | cd "%EXEC_DIR%" |
| | | |
| | | :endDetectBaseDir |
| | | |
| | | IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig |
| | | |
| | | @setlocal EnableExtensions EnableDelayedExpansion |
| | | for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a |
| | | @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% |
| | | |
| | | :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 |
| | | |
| | | :error |
| | | set ERROR_CODE=1 |
| | | |
| | | :end |
| | | @endlocal & set ERROR_CODE=%ERROR_CODE% |
| | | |
| | | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost |
| | | @REM check for post script, once with legacy .bat ending and once with .cmd ending |
| | | if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" |
| | | if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" |
| | | :skipRcPost |
| | | |
| | | @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' |
| | | if "%MAVEN_BATCH_PAUSE%" == "on" pause |
| | | |
| | | if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% |
| | | |
| | | exit /B %ERROR_CODE% |
New file |
| | |
| | | <?xml version="1.0"?> |
| | | <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" |
| | | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> |
| | | <modelVersion>4.0.0</modelVersion> |
| | | <groupId>com.redhat.training</groupId> |
| | | <artifactId>multiplier</artifactId> |
| | | <version>1.0-SNAPSHOT</version> |
| | | <properties> |
| | | <compiler-plugin.version>3.8.1</compiler-plugin.version> |
| | | <maven.compiler.parameters>true</maven.compiler.parameters> |
| | | <maven.compiler.source>11</maven.compiler.source> |
| | | <maven.compiler.target>11</maven.compiler.target> |
| | | <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
| | | <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> |
| | | <quarkus-plugin.version>${quarkus.platform.version}</quarkus-plugin.version> |
| | | <quarkus.platform.artifact-id>quarkus-universe-bom</quarkus.platform.artifact-id> |
| | | <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id> |
| | | <quarkus.platform.version>1.12.0.Final</quarkus.platform.version> |
| | | <surefire-plugin.version>2.22.1</surefire-plugin.version> |
| | | </properties> |
| | | <dependencyManagement> |
| | | <dependencies> |
| | | <dependency> |
| | | <groupId>${quarkus.platform.group-id}</groupId> |
| | | <artifactId>${quarkus.platform.artifact-id}</artifactId> |
| | | <version>${quarkus.platform.version}</version> |
| | | <type>pom</type> |
| | | <scope>import</scope> |
| | | </dependency> |
| | | </dependencies> |
| | | </dependencyManagement> |
| | | <dependencies> |
| | | <dependency> |
| | | <groupId>io.quarkus</groupId> |
| | | <artifactId>quarkus-rest-client</artifactId> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>io.quarkus</groupId> |
| | | <artifactId>quarkus-resteasy</artifactId> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>io.quarkus</groupId> |
| | | <artifactId>quarkus-openshift</artifactId> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>io.quarkus</groupId> |
| | | <artifactId>quarkus-junit5</artifactId> |
| | | <scope>test</scope> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>io.quarkus</groupId> |
| | | <artifactId>quarkus-junit5-mockito</artifactId> |
| | | <scope>test</scope> |
| | | </dependency> |
| | | </dependencies> |
| | | <build> |
| | | <resources> |
| | | <resource> |
| | | <filtering>true</filtering> |
| | | <directory>src/main/resources</directory> |
| | | </resource> |
| | | </resources> |
| | | <plugins> |
| | | <plugin> |
| | | <groupId>io.quarkus</groupId> |
| | | <artifactId>quarkus-maven-plugin</artifactId> |
| | | <version>${quarkus-plugin.version}</version> |
| | | <executions> |
| | | <execution> |
| | | <goals> |
| | | <goal>build</goal> |
| | | </goals> |
| | | </execution> |
| | | </executions> |
| | | </plugin> |
| | | <plugin> |
| | | <artifactId>maven-compiler-plugin</artifactId> |
| | | <version>${compiler-plugin.version}</version> |
| | | </plugin> |
| | | <plugin> |
| | | <artifactId>maven-surefire-plugin</artifactId> |
| | | <version>${surefire-plugin.version}</version> |
| | | <configuration> |
| | | <systemPropertyVariables> |
| | | <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager> |
| | | <maven.home>${maven.home}</maven.home> |
| | | </systemPropertyVariables> |
| | | </configuration> |
| | | </plugin> |
| | | </plugins> |
| | | </build> |
| | | <profiles> |
| | | <profile> |
| | | <id>native</id> |
| | | <activation> |
| | | <property> |
| | | <name>native</name> |
| | | </property> |
| | | </activation> |
| | | <build> |
| | | <plugins> |
| | | <plugin> |
| | | <artifactId>maven-failsafe-plugin</artifactId> |
| | | <version>${surefire-plugin.version}</version> |
| | | <executions> |
| | | <execution> |
| | | <goals> |
| | | <goal>integration-test</goal> |
| | | <goal>verify</goal> |
| | | </goals> |
| | | <configuration> |
| | | <systemPropertyVariables> |
| | | <native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path> |
| | | <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager> |
| | | <maven.home>${maven.home}</maven.home> |
| | | </systemPropertyVariables> |
| | | </configuration> |
| | | </execution> |
| | | </executions> |
| | | </plugin> |
| | | </plugins> |
| | | </build> |
| | | <properties> |
| | | <quarkus.package.type>native</quarkus.package.type> |
| | | </properties> |
| | | </profile> |
| | | </profiles> |
| | | </project> |
New file |
| | |
| | | #### |
| | | # This Dockerfile is used in order to build a container that runs the Quarkus application in JVM mode |
| | | # |
| | | # Before building the docker image run: |
| | | # |
| | | # mvn package |
| | | # |
| | | # Then, build the image with: |
| | | # |
| | | # docker build -f src/main/docker/Dockerfile.jvm -t quarkus/quarkus-multiplier-jvm . |
| | | # |
| | | # Then run the container using: |
| | | # |
| | | # docker run -i --rm -p 8080:8080 quarkus/quarkus-multiplier-jvm |
| | | # |
| | | ### |
| | | FROM fabric8/java-alpine-openjdk8-jre |
| | | ENV JAVA_OPTIONS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager" |
| | | ENV AB_ENABLED=jmx_exporter |
| | | COPY target/lib/* /deployments/lib/ |
| | | COPY target/*-runner.jar /deployments/app.jar |
| | | ENTRYPOINT [ "/deployments/run-java.sh" ] |
New file |
| | |
| | | #### |
| | | # This Dockerfile is used in order to build a container that runs the Quarkus application in native (no JVM) mode |
| | | # |
| | | # Before building the docker image run: |
| | | # |
| | | # mvn package -Pnative -Dnative-image.docker-build=true |
| | | # |
| | | # Then, build the image with: |
| | | # |
| | | # docker build -f src/main/docker/Dockerfile.native -t quarkus/quarkus-multiplier . |
| | | # |
| | | # Then run the container using: |
| | | # |
| | | # docker run -i --rm -p 8080:8080 quarkus/quarkus-multiplier |
| | | # |
| | | ### |
| | | FROM registry.access.redhat.com/ubi8/ubi-minimal |
| | | ENV JAEGER_SERVICE_NAME=multiplier\ |
| | | JAEGER_ENDPOINT=http://jaeger-collector.istio-system.svc:14268/api/traces\ |
| | | JAEGER_PROPAGATION=b3\ |
| | | JAEGER_SAMPLER_TYPE=const\ |
| | | JAEGER_SAMPLER_PARAM=1 |
| | | WORKDIR /work/ |
| | | COPY target/*-runner /work/application |
| | | RUN chmod 775 /work |
| | | EXPOSE 8080 |
| | | CMD ["./application", "-Dquarkus.http.host=0.0.0.0"] |
New file |
| | |
| | | package com.redhat.training; |
| | | |
| | | import javax.inject.Inject; |
| | | import javax.ws.rs.GET; |
| | | import javax.ws.rs.Path; |
| | | import javax.ws.rs.PathParam; |
| | | import javax.ws.rs.Produces; |
| | | import javax.ws.rs.core.MediaType; |
| | | |
| | | import com.redhat.training.service.MultiplierService; |
| | | import com.redhat.training.service.SolverService; |
| | | |
| | | import org.eclipse.microprofile.rest.client.inject.RestClient; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | |
| | | public class MultiplierResource implements MultiplierService { |
| | | final Logger log = LoggerFactory.getLogger(MultiplierResource.class); |
| | | |
| | | SolverService solverService; |
| | | |
| | | @Inject |
| | | public MultiplierResource( @RestClient SolverService solverService ) { |
| | | this.solverService = solverService; |
| | | } |
| | | |
| | | |
| | | @GET |
| | | @Path("/{lhs}/{rhs}") |
| | | @Produces(MediaType.TEXT_PLAIN) |
| | | public Float multiply(@PathParam("lhs") String lhs, @PathParam("rhs") String rhs) { |
| | | log.info("Multiplying {} to {}" ,lhs, rhs); |
| | | return solverService.solve(lhs)*solverService.solve(rhs); |
| | | } |
| | | } |
New file |
| | |
| | | package com.redhat.training.service; |
| | | |
| | | import javax.ws.rs.GET; |
| | | import javax.ws.rs.Path; |
| | | import javax.ws.rs.PathParam; |
| | | import javax.ws.rs.Produces; |
| | | import javax.ws.rs.core.MediaType; |
| | | |
| | | @Path("/multiplier") |
| | | public interface MultiplierService { |
| | | |
| | | @GET |
| | | @Path("/{lhs}/{rhs}") |
| | | @Produces(MediaType.TEXT_PLAIN) |
| | | Float multiply(@PathParam("lhs") String lhs, @PathParam("rhs") String rhs); |
| | | |
| | | } |
New file |
| | |
| | | package com.redhat.training.service; |
| | | |
| | | import javax.enterprise.context.ApplicationScoped; |
| | | import javax.ws.rs.GET; |
| | | import javax.ws.rs.Path; |
| | | import javax.ws.rs.PathParam; |
| | | import javax.ws.rs.Produces; |
| | | import javax.ws.rs.core.MediaType; |
| | | |
| | | import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; |
| | | |
| | | @Path("/solver") |
| | | @ApplicationScoped |
| | | @RegisterRestClient |
| | | public interface SolverService { |
| | | @GET |
| | | @Path("{equation}") |
| | | @Produces(MediaType.TEXT_PLAIN) |
| | | Float solve(@PathParam("equation") String equation); |
| | | } |
New file |
| | |
| | | <!DOCTYPE html> |
| | | <html lang="en"> |
| | | <head> |
| | | <meta charset="UTF-8"> |
| | | <title>quarkus-multiplier - 1.0-SNAPSHOT</title> |
| | | <style> |
| | | h1, h2, h3, h4, h5, h6 { |
| | | margin-bottom: 0.5rem; |
| | | font-weight: 400; |
| | | line-height: 1.5; |
| | | } |
| | | |
| | | h1 { |
| | | font-size: 2.5rem; |
| | | } |
| | | |
| | | h2 { |
| | | font-size: 2rem |
| | | } |
| | | |
| | | h3 { |
| | | font-size: 1.75rem |
| | | } |
| | | |
| | | h4 { |
| | | font-size: 1.5rem |
| | | } |
| | | |
| | | h5 { |
| | | font-size: 1.25rem |
| | | } |
| | | |
| | | h6 { |
| | | font-size: 1rem |
| | | } |
| | | |
| | | .lead { |
| | | font-weight: 300; |
| | | font-size: 2rem; |
| | | } |
| | | |
| | | .banner { |
| | | font-size: 2.7rem; |
| | | margin: 0; |
| | | padding: 2rem 1rem; |
| | | background-color: #00A1E2; |
| | | color: white; |
| | | } |
| | | |
| | | body { |
| | | margin: 0; |
| | | font-family: -apple-system, system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; |
| | | } |
| | | |
| | | code { |
| | | font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; |
| | | font-size: 87.5%; |
| | | color: #e83e8c; |
| | | word-break: break-word; |
| | | } |
| | | |
| | | .left-column { |
| | | padding: .75rem; |
| | | max-width: 75%; |
| | | min-width: 55%; |
| | | } |
| | | |
| | | .right-column { |
| | | padding: .75rem; |
| | | max-width: 25%; |
| | | } |
| | | |
| | | .container { |
| | | display: flex; |
| | | width: 100%; |
| | | } |
| | | |
| | | li { |
| | | margin: 0.75rem; |
| | | } |
| | | |
| | | .right-section { |
| | | margin-left: 1rem; |
| | | padding-left: 0.5rem; |
| | | } |
| | | |
| | | .right-section h3 { |
| | | padding-top: 0; |
| | | font-weight: 200; |
| | | } |
| | | |
| | | .right-section ul { |
| | | border-left: 0.3rem solid #00A1E2; |
| | | list-style-type: none; |
| | | padding-left: 0; |
| | | } |
| | | |
| | | </style> |
| | | </head> |
| | | <body> |
| | | |
| | | <div class="banner lead"> |
| | | Your new Cloud-Native application is ready! |
| | | </div> |
| | | |
| | | <div class="container"> |
| | | <div class="left-column"> |
| | | <p class="lead"> Congratulations, you have created a new Quarkus application.</p> |
| | | |
| | | <h2>Why do you see this?</h2> |
| | | |
| | | <p>This page is served by Quarkus. The source is in |
| | | <code>src/main/resources/META-INF/resources/index.html</code>.</p> |
| | | |
| | | <h2>What can I do from here?</h2> |
| | | |
| | | <p>If not already done, run the application in <em>dev mode</em> using: <code>mvn compile quarkus:dev</code>. |
| | | </p> |
| | | <ul> |
| | | <li>Add REST resources, Servlets, functions and other services in <code>src/main/java</code>.</li> |
| | | <li>Your static assets are located in <code>src/main/resources/META-INF/resources</code>.</li> |
| | | <li>Configure your application in <code>src/main/resources/application.properties</code>. |
| | | </li> |
| | | </ul> |
| | | |
| | | <h2>How do I get rid of this page?</h2> |
| | | <p>Just delete the <code>src/main/resources/META-INF/resources/index.html</code> file.</p> |
| | | </div> |
| | | <div class="right-column"> |
| | | <div class="right-section"> |
| | | <h3>Application</h3> |
| | | <ul> |
| | | <li>GroupId: ${project.groupId}</li> |
| | | <li>ArtifactId: ${project.artifactId}</li> |
| | | <li>Version: ${project.version}</li> |
| | | <li>Quarkus Version: ${quarkus.platform.version}</li> |
| | | </ul> |
| | | </div> |
| | | <div class="right-section"> |
| | | <h3>Next steps</h3> |
| | | <ul> |
| | | <li><a href="https://quarkus.io/guides/maven-tooling.html">Setup your IDE</a></li> |
| | | <li><a href="https://quarkus.io/guides/getting-started-guide.html">Getting started</a></li> |
| | | <li><a href="https://quarkus.io">Quarkus Web Site</a></li> |
| | | </ul> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | </body> |
| | | </html> |
New file |
| | |
| | | quarkus.application.name=multiplier |
| | | %dev.quarkus.http.port=8082 |
| | | |
| | | com.redhat.training.service.SolverService/mp-rest/url=http://solver:8080 |
| | | com.redhat.training.service.AdderService/mp-rest/url=http://adder:8080 |
| | | com.redhat.training.service.MultiplierService/mp-rest/url=http://multiplier:8080 |
| | | %dev.com.redhat.training.service.SolverService/mp-rest/url=http://localhost:8080 |
| | | %dev.com.redhat.training.service.AdderService/mp-rest/url=http://localhost:8081 |
| | | %dev.com.redhat.training.service.MultiplierService/mp-rest/url=http://localhost:8082 |
| | | |
| | | |
| | | |
New file |
| | |
| | | package com.redhat.training; |
| | | |
| | | import static org.mockito.Mockito.mock; |
| | | |
| | | import com.redhat.training.service.SolverService; |
| | | |
| | | import org.junit.jupiter.api.BeforeEach; |
| | | |
| | | public class MultiplierResourceTest { |
| | | |
| | | SolverService solverService; |
| | | MultiplierResource multiplierResource; |
| | | |
| | | @BeforeEach |
| | | public void setup() { |
| | | solverService = mock(SolverService.class); |
| | | multiplierResource = new MultiplierResource(solverService); |
| | | } |
| | | } |
New file |
| | |
| | | * |
| | | !target/*-runner |
| | | !target/*-runner.jar |
| | | !target/lib/* |
New file |
| | |
| | | # Eclipse |
| | | .project |
| | | .classpath |
| | | .settings/ |
| | | bin/ |
| | | |
| | | # IntelliJ |
| | | .idea |
| | | *.ipr |
| | | *.iml |
| | | *.iws |
| | | |
| | | # NetBeans |
| | | nb-configuration.xml |
| | | |
| | | # Visual Studio Code |
| | | .vscode |
| | | |
| | | # OSX |
| | | .DS_Store |
| | | |
| | | # Vim |
| | | *.swp |
| | | *.swo |
| | | |
| | | # patch |
| | | *.orig |
| | | *.rej |
| | | |
| | | # Maven |
| | | target/ |
| | | pom.xml.tag |
| | | pom.xml.releaseBackup |
| | | pom.xml.versionsBackup |
| | | release.properties |
New file |
| | |
| | | /* |
| | | * 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 |
| | | * |
| | | * 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. |
| | | */ |
| | | 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(); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | 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 |
New file |
| | |
| | | #!/bin/sh |
| | | # ---------------------------------------------------------------------------- |
| | | # 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. |
| | | # ---------------------------------------------------------------------------- |
| | | |
| | | # ---------------------------------------------------------------------------- |
| | | # Maven Start Up Batch script |
| | | # |
| | | # Required ENV vars: |
| | | # ------------------ |
| | | # JAVA_HOME - location of a JDK home dir |
| | | # |
| | | # Optional ENV vars |
| | | # ----------------- |
| | | # M2_HOME - location of maven2's installed home dir |
| | | # MAVEN_OPTS - parameters passed to the Java VM when running Maven |
| | | # e.g. to debug Maven itself, use |
| | | # set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 |
| | | # MAVEN_SKIP_RC - flag to disable loading of mavenrc files |
| | | # ---------------------------------------------------------------------------- |
| | | |
| | | if [ -z "$MAVEN_SKIP_RC" ] ; then |
| | | |
| | | if [ -f /etc/mavenrc ] ; then |
| | | . /etc/mavenrc |
| | | fi |
| | | |
| | | if [ -f "$HOME/.mavenrc" ] ; then |
| | | . "$HOME/.mavenrc" |
| | | fi |
| | | |
| | | fi |
| | | |
| | | # OS specific support. $var _must_ be set to either true or false. |
| | | cygwin=false; |
| | | darwin=false; |
| | | mingw=false |
| | | case "`uname`" in |
| | | CYGWIN*) cygwin=true ;; |
| | | MINGW*) mingw=true;; |
| | | Darwin*) darwin=true |
| | | # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home |
| | | # See https://developer.apple.com/library/mac/qa/qa1170/_index.html |
| | | if [ -z "$JAVA_HOME" ]; then |
| | | if [ -x "/usr/libexec/java_home" ]; then |
| | | export JAVA_HOME="`/usr/libexec/java_home`" |
| | | else |
| | | export JAVA_HOME="/Library/Java/Home" |
| | | fi |
| | | fi |
| | | ;; |
| | | esac |
| | | |
| | | if [ -z "$JAVA_HOME" ] ; then |
| | | if [ -r /etc/gentoo-release ] ; then |
| | | JAVA_HOME=`java-config --jre-home` |
| | | fi |
| | | fi |
| | | |
| | | if [ -z "$M2_HOME" ] ; then |
| | | ## resolve links - $0 may be a link to maven's home |
| | | PRG="$0" |
| | | |
| | | # need this for relative symlinks |
| | | while [ -h "$PRG" ] ; do |
| | | ls=`ls -ld "$PRG"` |
| | | link=`expr "$ls" : '.*-> \(.*\)$'` |
| | | if expr "$link" : '/.*' > /dev/null; then |
| | | PRG="$link" |
| | | else |
| | | PRG="`dirname "$PRG"`/$link" |
| | | fi |
| | | done |
| | | |
| | | saveddir=`pwd` |
| | | |
| | | M2_HOME=`dirname "$PRG"`/.. |
| | | |
| | | # make it fully qualified |
| | | M2_HOME=`cd "$M2_HOME" && pwd` |
| | | |
| | | cd "$saveddir" |
| | | # echo Using m2 at $M2_HOME |
| | | fi |
| | | |
| | | # For Cygwin, ensure paths are in UNIX format before anything is touched |
| | | if $cygwin ; then |
| | | [ -n "$M2_HOME" ] && |
| | | M2_HOME=`cygpath --unix "$M2_HOME"` |
| | | [ -n "$JAVA_HOME" ] && |
| | | JAVA_HOME=`cygpath --unix "$JAVA_HOME"` |
| | | [ -n "$CLASSPATH" ] && |
| | | CLASSPATH=`cygpath --path --unix "$CLASSPATH"` |
| | | fi |
| | | |
| | | # 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)`" |
| | | fi |
| | | |
| | | if [ -z "$JAVA_HOME" ]; then |
| | | javaExecutable="`which javac`" |
| | | if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then |
| | | # readlink(1) is not available as standard on Solaris 10. |
| | | readLink=`which readlink` |
| | | if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then |
| | | if $darwin ; then |
| | | javaHome="`dirname \"$javaExecutable\"`" |
| | | javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" |
| | | else |
| | | javaExecutable="`readlink -f \"$javaExecutable\"`" |
| | | fi |
| | | javaHome="`dirname \"$javaExecutable\"`" |
| | | javaHome=`expr "$javaHome" : '\(.*\)/bin'` |
| | | JAVA_HOME="$javaHome" |
| | | export JAVA_HOME |
| | | fi |
| | | fi |
| | | fi |
| | | |
| | | if [ -z "$JAVACMD" ] ; then |
| | | if [ -n "$JAVA_HOME" ] ; then |
| | | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then |
| | | # IBM's JDK on AIX uses strange locations for the executables |
| | | JAVACMD="$JAVA_HOME/jre/sh/java" |
| | | else |
| | | JAVACMD="$JAVA_HOME/bin/java" |
| | | fi |
| | | else |
| | | JAVACMD="`which java`" |
| | | fi |
| | | fi |
| | | |
| | | if [ ! -x "$JAVACMD" ] ; then |
| | | echo "Error: JAVA_HOME is not defined correctly." >&2 |
| | | echo " We cannot execute $JAVACMD" >&2 |
| | | exit 1 |
| | | fi |
| | | |
| | | if [ -z "$JAVA_HOME" ] ; then |
| | | echo "Warning: JAVA_HOME environment variable is not set." |
| | | fi |
| | | |
| | | CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher |
| | | |
| | | # traverses directory structure from process work directory to filesystem root |
| | | # first directory with .mvn subdirectory is considered project base directory |
| | | find_maven_basedir() { |
| | | |
| | | if [ -z "$1" ] |
| | | then |
| | | echo "Path not specified to find_maven_basedir" |
| | | return 1 |
| | | fi |
| | | |
| | | basedir="$1" |
| | | wdir="$1" |
| | | while [ "$wdir" != '/' ] ; do |
| | | if [ -d "$wdir"/.mvn ] ; then |
| | | basedir=$wdir |
| | | break |
| | | fi |
| | | # workaround for JBEAP-8937 (on Solaris 10/Sparc) |
| | | if [ -d "${wdir}" ]; then |
| | | wdir=`cd "$wdir/.."; pwd` |
| | | fi |
| | | # end of workaround |
| | | done |
| | | echo "${basedir}" |
| | | } |
| | | |
| | | # concatenates all lines of a file |
| | | concat_lines() { |
| | | if [ -f "$1" ]; then |
| | | echo "$(tr -s '\n' ' ' < "$1")" |
| | | fi |
| | | } |
| | | |
| | | BASE_DIR=`find_maven_basedir "$(pwd)"` |
| | | 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"} |
| | | 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 |
| | | if $cygwin; then |
| | | [ -n "$M2_HOME" ] && |
| | | M2_HOME=`cygpath --path --windows "$M2_HOME"` |
| | | [ -n "$JAVA_HOME" ] && |
| | | JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` |
| | | [ -n "$CLASSPATH" ] && |
| | | CLASSPATH=`cygpath --path --windows "$CLASSPATH"` |
| | | [ -n "$MAVEN_PROJECTBASEDIR" ] && |
| | | 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" \ |
| | | $MAVEN_OPTS \ |
| | | -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ |
| | | "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ |
| | | ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" |
New file |
| | |
| | | @REM ---------------------------------------------------------------------------- |
| | | @REM Licensed to the Apache Software Foundation (ASF) under one |
| | | @REM or more contributor license agreements. See the NOTICE file |
| | | @REM distributed with this work for additional information |
| | | @REM regarding copyright ownership. The ASF licenses this file |
| | | @REM to you under the Apache License, Version 2.0 (the |
| | | @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 |
| | | @REM Unless required by applicable law or agreed to in writing, |
| | | @REM software distributed under the License is distributed on an |
| | | @REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| | | @REM KIND, either express or implied. See the License for the |
| | | @REM specific language governing permissions and limitations |
| | | @REM under the License. |
| | | @REM ---------------------------------------------------------------------------- |
| | | |
| | | @REM ---------------------------------------------------------------------------- |
| | | @REM Maven Start Up Batch script |
| | | @REM |
| | | @REM Required ENV vars: |
| | | @REM JAVA_HOME - location of a JDK home dir |
| | | @REM |
| | | @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 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 |
| | | @REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files |
| | | @REM ---------------------------------------------------------------------------- |
| | | |
| | | @REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' |
| | | @echo off |
| | | @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 |
| | | if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") |
| | | |
| | | @REM Execute a user defined script before this one |
| | | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre |
| | | @REM check for pre script, once with legacy .bat ending and once with .cmd ending |
| | | if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" |
| | | if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" |
| | | :skipRcPre |
| | | |
| | | @setlocal |
| | | |
| | | set ERROR_CODE=0 |
| | | |
| | | @REM To isolate internal variables from possible post scripts, we use another setlocal |
| | | @setlocal |
| | | |
| | | @REM ==== START VALIDATION ==== |
| | | if not "%JAVA_HOME%" == "" goto OkJHome |
| | | |
| | | echo. |
| | | echo Error: JAVA_HOME not found in your environment. >&2 |
| | | echo Please set the JAVA_HOME variable in your environment to match the >&2 |
| | | echo location of your Java installation. >&2 |
| | | echo. |
| | | goto error |
| | | |
| | | :OkJHome |
| | | if exist "%JAVA_HOME%\bin\java.exe" goto init |
| | | |
| | | echo. |
| | | echo Error: JAVA_HOME is set to an invalid directory. >&2 |
| | | echo JAVA_HOME = "%JAVA_HOME%" >&2 |
| | | echo Please set the JAVA_HOME variable in your environment to match the >&2 |
| | | echo location of your Java installation. >&2 |
| | | echo. |
| | | goto error |
| | | |
| | | @REM ==== END VALIDATION ==== |
| | | |
| | | :init |
| | | |
| | | @REM Find the project base dir, i.e. the directory that contains the folder ".mvn". |
| | | @REM Fallback to current working directory if not found. |
| | | |
| | | set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% |
| | | IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir |
| | | |
| | | set EXEC_DIR=%CD% |
| | | set WDIR=%EXEC_DIR% |
| | | :findBaseDir |
| | | IF EXIST "%WDIR%"\.mvn goto baseDirFound |
| | | cd .. |
| | | IF "%WDIR%"=="%CD%" goto baseDirNotFound |
| | | set WDIR=%CD% |
| | | goto findBaseDir |
| | | |
| | | :baseDirFound |
| | | set MAVEN_PROJECTBASEDIR=%WDIR% |
| | | cd "%EXEC_DIR%" |
| | | goto endDetectBaseDir |
| | | |
| | | :baseDirNotFound |
| | | set MAVEN_PROJECTBASEDIR=%EXEC_DIR% |
| | | cd "%EXEC_DIR%" |
| | | |
| | | :endDetectBaseDir |
| | | |
| | | IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig |
| | | |
| | | @setlocal EnableExtensions EnableDelayedExpansion |
| | | for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a |
| | | @endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% |
| | | |
| | | :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 |
| | | |
| | | :error |
| | | set ERROR_CODE=1 |
| | | |
| | | :end |
| | | @endlocal & set ERROR_CODE=%ERROR_CODE% |
| | | |
| | | if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost |
| | | @REM check for post script, once with legacy .bat ending and once with .cmd ending |
| | | if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" |
| | | if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" |
| | | :skipRcPost |
| | | |
| | | @REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' |
| | | if "%MAVEN_BATCH_PAUSE%" == "on" pause |
| | | |
| | | if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% |
| | | |
| | | exit /B %ERROR_CODE% |
New file |
| | |
| | | <?xml version="1.0"?> |
| | | <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" |
| | | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> |
| | | <modelVersion>4.0.0</modelVersion> |
| | | <groupId>com.redhat.training</groupId> |
| | | <artifactId>solver</artifactId> |
| | | <version>1.0-SNAPSHOT</version> |
| | | <properties> |
| | | <compiler-plugin.version>3.8.1</compiler-plugin.version> |
| | | <maven.compiler.parameters>true</maven.compiler.parameters> |
| | | <maven.compiler.source>11</maven.compiler.source> |
| | | <maven.compiler.target>11</maven.compiler.target> |
| | | <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
| | | <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> |
| | | <quarkus-plugin.version>${quarkus.platform.version}</quarkus-plugin.version> |
| | | <quarkus.platform.artifact-id>quarkus-universe-bom</quarkus.platform.artifact-id> |
| | | <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id> |
| | | <quarkus.platform.version>1.12.0.Final</quarkus.platform.version> |
| | | <surefire-plugin.version>2.22.1</surefire-plugin.version> |
| | | </properties> |
| | | <dependencyManagement> |
| | | <dependencies> |
| | | <dependency> |
| | | <groupId>${quarkus.platform.group-id}</groupId> |
| | | <artifactId>${quarkus.platform.artifact-id}</artifactId> |
| | | <version>${quarkus.platform.version}</version> |
| | | <type>pom</type> |
| | | <scope>import</scope> |
| | | </dependency> |
| | | </dependencies> |
| | | </dependencyManagement> |
| | | <dependencies> |
| | | <dependency> |
| | | <groupId>io.quarkus</groupId> |
| | | <artifactId>quarkus-rest-client</artifactId> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>io.quarkus</groupId> |
| | | <artifactId>quarkus-resteasy</artifactId> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>io.quarkus</groupId> |
| | | <artifactId>quarkus-openshift</artifactId> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>io.quarkus</groupId> |
| | | <artifactId>quarkus-junit5</artifactId> |
| | | <scope>test</scope> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>io.quarkus</groupId> |
| | | <artifactId>quarkus-junit5-mockito</artifactId> |
| | | <scope>test</scope> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>io.rest-assured</groupId> |
| | | <artifactId>rest-assured</artifactId> |
| | | <version>4.3.3</version> |
| | | <scope>test</scope> |
| | | </dependency> |
| | | </dependencies> |
| | | <build> |
| | | <resources> |
| | | <resource> |
| | | <filtering>true</filtering> |
| | | <directory>src/main/resources</directory> |
| | | </resource> |
| | | </resources> |
| | | <plugins> |
| | | <plugin> |
| | | <groupId>io.quarkus</groupId> |
| | | <artifactId>quarkus-maven-plugin</artifactId> |
| | | <version>${quarkus-plugin.version}</version> |
| | | <executions> |
| | | <execution> |
| | | <goals> |
| | | <goal>build</goal> |
| | | </goals> |
| | | </execution> |
| | | </executions> |
| | | </plugin> |
| | | <plugin> |
| | | <artifactId>maven-compiler-plugin</artifactId> |
| | | <version>${compiler-plugin.version}</version> |
| | | </plugin> |
| | | <plugin> |
| | | <artifactId>maven-surefire-plugin</artifactId> |
| | | <version>${surefire-plugin.version}</version> |
| | | <configuration> |
| | | <systemPropertyVariables> |
| | | <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager> |
| | | <maven.home>${maven.home}</maven.home> |
| | | </systemPropertyVariables> |
| | | </configuration> |
| | | </plugin> |
| | | </plugins> |
| | | </build> |
| | | <profiles> |
| | | <profile> |
| | | <id>native</id> |
| | | <activation> |
| | | <property> |
| | | <name>native</name> |
| | | </property> |
| | | </activation> |
| | | <build> |
| | | <plugins> |
| | | <plugin> |
| | | <artifactId>maven-failsafe-plugin</artifactId> |
| | | <version>${surefire-plugin.version}</version> |
| | | <executions> |
| | | <execution> |
| | | <goals> |
| | | <goal>integration-test</goal> |
| | | <goal>verify</goal> |
| | | </goals> |
| | | <configuration> |
| | | <systemPropertyVariables> |
| | | <native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path> |
| | | <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager> |
| | | <maven.home>${maven.home}</maven.home> |
| | | </systemPropertyVariables> |
| | | </configuration> |
| | | </execution> |
| | | </executions> |
| | | </plugin> |
| | | </plugins> |
| | | </build> |
| | | <properties> |
| | | <quarkus.package.type>native</quarkus.package.type> |
| | | </properties> |
| | | </profile> |
| | | </profiles> |
| | | </project> |
New file |
| | |
| | | #### |
| | | # This Dockerfile is used in order to build a container that runs the Quarkus application in JVM mode |
| | | # |
| | | # Before building the docker image run: |
| | | # |
| | | # mvn package |
| | | # |
| | | # Then, build the image with: |
| | | # |
| | | # docker build -f src/main/docker/Dockerfile.jvm -t quarkus/quarkus-solver-jvm . |
| | | # |
| | | # Then run the container using: |
| | | # |
| | | # docker run -i --rm -p 8080:8080 quarkus/quarkus-solver-jvm |
| | | # |
| | | ### |
| | | FROM fabric8/java-alpine-openjdk8-jre |
| | | ENV JAVA_OPTIONS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager" |
| | | ENV AB_ENABLED=jmx_exporter |
| | | COPY target/lib/* /deployments/lib/ |
| | | COPY target/*-runner.jar /deployments/app.jar |
| | | ENTRYPOINT [ "/deployments/run-java.sh" ] |
New file |
| | |
| | | #### |
| | | # This Dockerfile is used in order to build a container that runs the Quarkus application in native (no JVM) mode |
| | | # |
| | | # Before building the docker image run: |
| | | # |
| | | # mvn package -Pnative -Dnative-image.docker-build=true |
| | | # |
| | | # Then, build the image with: |
| | | # |
| | | # docker build -f src/main/docker/Dockerfile.native -t quarkus/quarkus-solver . |
| | | # |
| | | # Then run the container using: |
| | | # |
| | | # docker run -i --rm -p 8080:8080 quarkus/quarkus-solver |
| | | # |
| | | ### |
| | | FROM registry.access.redhat.com/ubi8/ubi-minimal |
| | | WORKDIR /work/ |
| | | ENV JAEGER_SERVICE_NAME=solver\ |
| | | JAEGER_ENDPOINT=http://jaeger-collector.istio-system.svc:14268/api/traces\ |
| | | JAEGER_PROPAGATION=b3\ |
| | | JAEGER_SAMPLER_TYPE=const\ |
| | | JAEGER_SAMPLER_PARAM=1 |
| | | COPY target/*-runner /work/application |
| | | RUN chmod 775 /work |
| | | EXPOSE 8080 |
| | | CMD ["./application", "-Dquarkus.http.host=0.0.0.0"] |
New file |
| | |
| | | package com.redhat.training; |
| | | |
| | | import org.eclipse.microprofile.rest.client.inject.RestClient; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | |
| | | import javax.inject.Inject; |
| | | import javax.ws.rs.*; |
| | | import javax.ws.rs.core.MediaType; |
| | | import javax.ws.rs.core.Response; |
| | | |
| | | import com.redhat.training.service.AdderService; |
| | | import com.redhat.training.service.MultiplierService; |
| | | import com.redhat.training.service.SolverService; |
| | | |
| | | import java.util.regex.Matcher; |
| | | import java.util.regex.Pattern; |
| | | |
| | | public class SolverResource implements SolverService { |
| | | final Logger log = LoggerFactory.getLogger(SolverResource.class); |
| | | |
| | | @Inject |
| | | @RestClient |
| | | AdderService adderService; |
| | | |
| | | @Inject |
| | | @RestClient |
| | | MultiplierService multiplierService; |
| | | |
| | | static final Pattern multiplyPattern = Pattern.compile("(.+)\\*(.+)"); |
| | | static final Pattern addPattern = Pattern.compile("(.+)\\+(.+)"); |
| | | |
| | | @Override |
| | | @GET |
| | | @Path("{equation}") |
| | | @Produces(MediaType.TEXT_PLAIN) |
| | | public Float solve(@PathParam("equation") String equation) { |
| | | log.info("Solving '{}'", equation); |
| | | try { |
| | | return Float.valueOf(equation); |
| | | } catch (NumberFormatException e) { |
| | | Matcher addMatcher = addPattern.matcher(equation); |
| | | if (addMatcher.matches()) { |
| | | return adderService.add(addMatcher.group(1), addMatcher.group(2)); |
| | | } |
| | | Matcher multiplyMatcher = multiplyPattern.matcher(equation); |
| | | if (multiplyMatcher.matches()) { |
| | | return multiplierService.multiply(multiplyMatcher.group(1), multiplyMatcher.group(2)); |
| | | } else { |
| | | throw new WebApplicationException( |
| | | Response.status(Response.Status.BAD_REQUEST).entity("Unable to parse: " + equation).build()); |
| | | } |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | package com.redhat.training.service; |
| | | |
| | | import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; |
| | | |
| | | import javax.ws.rs.GET; |
| | | import javax.ws.rs.Path; |
| | | import javax.ws.rs.PathParam; |
| | | import javax.ws.rs.Produces; |
| | | import javax.ws.rs.core.MediaType; |
| | | |
| | | @Path("/adder") |
| | | @RegisterRestClient |
| | | public interface AdderService { |
| | | |
| | | @GET |
| | | @Path("/{lhs}/{rhs}") |
| | | @Produces(MediaType.TEXT_PLAIN) |
| | | Float add(@PathParam("lhs") String lhs, @PathParam("rhs") String rhs); |
| | | } |
New file |
| | |
| | | package com.redhat.training.service; |
| | | |
| | | import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; |
| | | |
| | | import javax.ws.rs.GET; |
| | | import javax.ws.rs.Path; |
| | | import javax.ws.rs.PathParam; |
| | | import javax.ws.rs.Produces; |
| | | import javax.ws.rs.core.MediaType; |
| | | |
| | | @Path("/multiplier") |
| | | @RegisterRestClient |
| | | public interface MultiplierService { |
| | | |
| | | @GET |
| | | @Path("/{lhs}/{rhs}") |
| | | @Produces(MediaType.TEXT_PLAIN) |
| | | Float multiply(@PathParam("lhs") String lhs, @PathParam("rhs") String rhs); |
| | | |
| | | } |
New file |
| | |
| | | package com.redhat.training.service; |
| | | |
| | | import javax.ws.rs.GET; |
| | | import javax.ws.rs.Path; |
| | | import javax.ws.rs.PathParam; |
| | | import javax.ws.rs.Produces; |
| | | import javax.ws.rs.core.MediaType; |
| | | |
| | | import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; |
| | | |
| | | @Path("/solver") |
| | | @RegisterRestClient |
| | | public interface SolverService { |
| | | @GET |
| | | @Path("{equation}") |
| | | @Produces(MediaType.TEXT_PLAIN) |
| | | Float solve(@PathParam("equation") String equation); |
| | | } |
New file |
| | |
| | | <!DOCTYPE html> |
| | | <html lang="en"> |
| | | <head> |
| | | <meta charset="UTF-8"> |
| | | <title>quarkus-solver - 1.0-SNAPSHOT</title> |
| | | <style> |
| | | h1, h2, h3, h4, h5, h6 { |
| | | margin-bottom: 0.5rem; |
| | | font-weight: 400; |
| | | line-height: 1.5; |
| | | } |
| | | |
| | | h1 { |
| | | font-size: 2.5rem; |
| | | } |
| | | |
| | | h2 { |
| | | font-size: 2rem |
| | | } |
| | | |
| | | h3 { |
| | | font-size: 1.75rem |
| | | } |
| | | |
| | | h4 { |
| | | font-size: 1.5rem |
| | | } |
| | | |
| | | h5 { |
| | | font-size: 1.25rem |
| | | } |
| | | |
| | | h6 { |
| | | font-size: 1rem |
| | | } |
| | | |
| | | .lead { |
| | | font-weight: 300; |
| | | font-size: 2rem; |
| | | } |
| | | |
| | | .banner { |
| | | font-size: 2.7rem; |
| | | margin: 0; |
| | | padding: 2rem 1rem; |
| | | background-color: #00A1E2; |
| | | color: white; |
| | | } |
| | | |
| | | body { |
| | | margin: 0; |
| | | font-family: -apple-system, system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; |
| | | } |
| | | |
| | | code { |
| | | font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; |
| | | font-size: 87.5%; |
| | | color: #e83e8c; |
| | | word-break: break-word; |
| | | } |
| | | |
| | | .left-column { |
| | | padding: .75rem; |
| | | max-width: 75%; |
| | | min-width: 55%; |
| | | } |
| | | |
| | | .right-column { |
| | | padding: .75rem; |
| | | max-width: 25%; |
| | | } |
| | | |
| | | .container { |
| | | display: flex; |
| | | width: 100%; |
| | | } |
| | | |
| | | li { |
| | | margin: 0.75rem; |
| | | } |
| | | |
| | | .right-section { |
| | | margin-left: 1rem; |
| | | padding-left: 0.5rem; |
| | | } |
| | | |
| | | .right-section h3 { |
| | | padding-top: 0; |
| | | font-weight: 200; |
| | | } |
| | | |
| | | .right-section ul { |
| | | border-left: 0.3rem solid #00A1E2; |
| | | list-style-type: none; |
| | | padding-left: 0; |
| | | } |
| | | |
| | | </style> |
| | | </head> |
| | | <body> |
| | | |
| | | <div class="banner lead"> |
| | | Your new Cloud-Native application is ready! |
| | | </div> |
| | | |
| | | <div class="container"> |
| | | <div class="left-column"> |
| | | <p class="lead"> Congratulations, you have created a new Quarkus application.</p> |
| | | |
| | | <h2>Why do you see this?</h2> |
| | | |
| | | <p>This page is served by Quarkus. The source is in |
| | | <code>src/main/resources/META-INF/resources/index.html</code>.</p> |
| | | |
| | | <h2>What can I do from here?</h2> |
| | | |
| | | <p>If not already done, run the application in <em>dev mode</em> using: <code>mvn compile quarkus:dev</code>. |
| | | </p> |
| | | <ul> |
| | | <li>Add REST resources, Servlets, functions and other services in <code>src/main/java</code>.</li> |
| | | <li>Your static assets are located in <code>src/main/resources/META-INF/resources</code>.</li> |
| | | <li>Configure your application in <code>src/main/resources/application.properties</code>. |
| | | </li> |
| | | </ul> |
| | | |
| | | <h2>How do I get rid of this page?</h2> |
| | | <p>Just delete the <code>src/main/resources/META-INF/resources/index.html</code> file.</p> |
| | | </div> |
| | | <div class="right-column"> |
| | | <div class="right-section"> |
| | | <h3>Application</h3> |
| | | <ul> |
| | | <li>GroupId: ${project.groupId}</li> |
| | | <li>ArtifactId: ${project.artifactId}</li> |
| | | <li>Version: ${project.version}</li> |
| | | <li>Quarkus Version: ${quarkus.platform.version}</li> |
| | | </ul> |
| | | </div> |
| | | <div class="right-section"> |
| | | <h3>Next steps</h3> |
| | | <ul> |
| | | <li><a href="https://quarkus.io/guides/maven-tooling.html">Setup your IDE</a></li> |
| | | <li><a href="https://quarkus.io/guides/getting-started-guide.html">Getting started</a></li> |
| | | <li><a href="https://quarkus.io">Quarkus Web Site</a></li> |
| | | </ul> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | </body> |
| | | </html> |
New file |
| | |
| | | quarkus.application.name=solver |
| | | quarkus.http.test-port=8080 |
| | | com.redhat.training.service.AdderService/mp-rest/url=http://adder:8080 |
| | | com.redhat.training.service.MultiplierService/mp-rest/url=http://multiplier:8080 |
| | | %dev.com.redhat.training.service.AdderService/mp-rest/url=http://localhost:8081 |
| | | %dev.com.redhat.training.service.MultiplierService/mp-rest/url=http://localhost:8082 |
| | | %test.com.redhat.training.service.AdderService/mp-rest/url=http://localhost:8081 |
| | | %test.com.redhat.training.service.MultiplierService/mp-rest/url=http://localhost:8082 |
New file |
| | |
| | | package com.redhat.training; |
| | | |
| | | import io.quarkus.test.common.http.TestHTTPEndpoint; |
| | | import io.quarkus.test.junit.QuarkusTest; |
| | | |
| | | @QuarkusTest |
| | | @TestHTTPEndpoint(SolverResource.class) |
| | | public class SolverResourceTest { |
| | | |
| | | } |
New file |
| | |
| | | #!/bin/sh |
| | | |
| | | echo "Starting the 'adder' project " |
| | | cd adder |
| | | ./mvnw quarkus:dev & |
| | | ADDER_PID=$! |
| | | sleep 5 |
| | | cd .. |
| | | |
| | | echo "Starting the 'multiplier' project " |
| | | cd multiplier |
| | | ./mvnw quarkus:dev & |
| | | MULTIPLIER_PID=$! |
| | | sleep 5 |
| | | cd .. |
| | | |
| | | echo |
| | | read -p "Press enter to Terminate" |
| | | echo |
| | | kill $ADDER_PID $MULTIPLIER_PID |
| | | sleep 2 |
| | | echo "All services terminated" |
| | | echo |
New file |
| | |
| | | #!/bin/sh |
| | | |
| | | echo "Starting the 'solver' project " |
| | | cd solver |
| | | mvn quarkus:dev & |
| | | SOLVER_PID=$! |
| | | sleep 5 |
| | | cd .. |
| | | |
| | | echo "Starting the 'adder' project " |
| | | cd adder |
| | | mvn quarkus:dev & |
| | | ADDER_PID=$! |
| | | sleep 5 |
| | | cd .. |
| | | |
| | | echo "Starting the 'multiplier' project " |
| | | cd multiplier |
| | | mvn quarkus:dev & |
| | | MULTIPLIER_PID=$! |
| | | sleep 5 |
| | | cd .. |
| | | |
| | | echo |
| | | read -p "Press enter to Terminate" |
| | | echo |
| | | kill $SOLVER_PID $ADDER_PID $MULTIPLIER_PID |
| | | sleep 2 |
| | | echo "All services terminated" |
| | | echo |