diff --git a/example/build.gradle b/example/build.gradle deleted file mode 100644 index 3407598..0000000 --- a/example/build.gradle +++ /dev/null @@ -1,95 +0,0 @@ -plugins { - id "com.ewerk.gradle.plugins.annotation-processor" version "1.0.4" -} -apply plugin: 'java' -apply plugin: 'idea' -apply plugin: 'application' - -defaultTasks 'run' - -def isRelease = 'release' in gradle.startParameter.taskNames -def deployDir = 'deploy' -def processorJar = 'net.thauvin.erik:semver:1.0.0' - -// Get version from properties file. Increment patch if specified. -def getVersion(isIncrement = false) { - def propsFile = 'version.properties' - def majorKey = 'version.major' - def minorKey = 'version.minor' - def patchKey = 'version.patch' - def metaKey = 'version.buildmeta' - def preKey = 'version.prerelease' - if (isIncrement) { - ant.propertyfile(file: propsFile) { - entry(key: patchKey, - type: 'int', - default: '-1', - operation: '+') - } - } - def p = new Properties() - file(propsFile).withInputStream { stream -> p.load(stream) } - def metadata = p.getProperty(metaKey, '') - def prerelease = p.getProperty(preKey, '') - return (p.getProperty(majorKey, '1') + '.' + p.getProperty(minorKey, '0') + '.' + p.getProperty(patchKey, '0') + - (prerelease.length() > 0 ? '-' + prerelease : '') + (metadata.length() > 0 ? '+' + metadata : '')) -} - -version = getVersion() - -mainClassName = 'net.thauvin.erik.semver.example.Example' -[compileJava, compileTestJava]*.options*.encoding = 'UTF-8' - -repositories { - mavenLocal() - mavenCentral() -} - -dependencies { - compileOnly processorJar -} - -annotationProcessor { - // Update version, increment on release. - project.version = getVersion(isRelease) - library processorJar - processor 'net.thauvin.erik.semver.VersionProcessor' - // sourcesDir 'src/generated/java' -} - -compileJava { - options.compilerArgs << '-proc:none' -} - -jar { - manifest.attributes('Main-Class': mainClassName) -} - -clean { - delete deployDir -} - -task copyToDeploy(type: Copy) { - from jar - into deployDir -} - -task deploy(dependsOn: ['build', 'copyToDeploy']) { - description = 'Copies all needed files to the ${deployDir} directory.' - group = 'Publishing' - outputs.dir deployDir - inputs.files copyToDeploy - mustRunAfter clean -} - -task release(dependsOn: ['wrapper', 'clean', 'deploy']) { - group = 'Publishing' - description = 'Releases new version.' - doFirst { - isRelease = true - } -} - -task wrapper(type: Wrapper) { - gradleVersion = gradle.gradleVersion -} diff --git a/example/gradle/wrapper/gradle-wrapper.jar b/example/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 3baa851..0000000 Binary files a/example/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/example/src/main/java/net/thauvin/erik/semver/example/Example.java b/example/src/main/java/net/thauvin/erik/semver/example/Example.java deleted file mode 100644 index d4e81a0..0000000 --- a/example/src/main/java/net/thauvin/erik/semver/example/Example.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Example.java - * - * Copyright (c) 2016-2017, Erik C. Thauvin (erik@thauvin.net) - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * Neither the name of this project nor the names of its contributors may be - * used to endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package net.thauvin.erik.semver.example; - -import net.thauvin.erik.semver.Version; - -import java.text.SimpleDateFormat; - -/** - * The Example class. - * - * @author Erik C. Thauvin - * @created 2016-01-13 - * @since 1.0 - */ -@Version(properties = "version.properties") -public class Example { - public static void main(final String... args) { - final SimpleDateFormat sdf = new SimpleDateFormat("EEE, d MMM yyyy 'at' HH:mm:ss z"); - - System.out.println("-----------------------------------------------------"); - - System.out.println(" " + GeneratedVersion.PROJECT + ' ' + GeneratedVersion.VERSION); - - System.out.println(" Built on: " + sdf.format(GeneratedVersion.BUILDDATE)); - System.out.println(" Major: " + GeneratedVersion.MAJOR); - System.out.println(" Minor: " + GeneratedVersion.MINOR); - System.out.println(" Patch: " + GeneratedVersion.PATCH); - System.out.println(" PreRelease: " + GeneratedVersion.PRERELEASE); - System.out.println(" BuildMetaData: " + GeneratedVersion.BUILDMETA); - - System.out.println("-----------------------------------------------------"); - } -} \ No newline at end of file diff --git a/example/.gitignore b/examples/java/.gitignore similarity index 100% rename from example/.gitignore rename to examples/java/.gitignore diff --git a/examples/java/build.gradle b/examples/java/build.gradle new file mode 100644 index 0000000..78c81a4 --- /dev/null +++ b/examples/java/build.gradle @@ -0,0 +1,25 @@ +apply plugin: 'java' +apply plugin: 'application' + +// ./gradlew + +defaultTasks 'run' + +def semverProcessor = 'net.thauvin.erik:semver:1.0.1' + +sourceCompatibility = 1.8 +targetCompatibility = 1.8 + +compileJava.options.annotationProcessorGeneratedSourcesDirectory = file("${projectDir}/src/generated") + +mainClassName = 'com.example.Example' + +repositories { + mavenLocal() + mavenCentral() +} + +dependencies { + annotationProcessor semverProcessor + compileOnly semverProcessor +} \ No newline at end of file diff --git a/examples/java/gradle/wrapper/gradle-wrapper.jar b/examples/java/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..758de96 Binary files /dev/null and b/examples/java/gradle/wrapper/gradle-wrapper.jar differ diff --git a/example/gradle/wrapper/gradle-wrapper.properties b/examples/java/gradle/wrapper/gradle-wrapper.properties similarity index 79% rename from example/gradle/wrapper/gradle-wrapper.properties rename to examples/java/gradle/wrapper/gradle-wrapper.properties index 7d773c3..2a96be4 100644 --- a/example/gradle/wrapper/gradle-wrapper.properties +++ b/examples/java/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Mon Jul 18 17:32:58 PDT 2016 +#Wed Jun 27 00:00:26 PDT 2018 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-all.zip diff --git a/example/gradlew b/examples/java/gradlew similarity index 87% rename from example/gradlew rename to examples/java/gradlew index 27309d9..cccdd3d 100644 --- a/example/gradlew +++ b/examples/java/gradlew @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh ############################################################################## ## @@ -33,11 +33,11 @@ DEFAULT_JVM_OPTS="" # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" -warn ( ) { +warn () { echo "$*" } -die ( ) { +die () { echo echo "$*" echo @@ -154,11 +154,19 @@ if $cygwin ; then esac fi -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " } -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" +APP_ARGS=$(save "$@") -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/example/gradlew.bat b/examples/java/gradlew.bat similarity index 94% rename from example/gradlew.bat rename to examples/java/gradlew.bat index 832fdb6..f955316 100644 --- a/example/gradlew.bat +++ b/examples/java/gradlew.bat @@ -49,7 +49,6 @@ goto fail @rem Get command-line arguments, handling Windows variants if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_args :win9xME_args @rem Slurp the command line arguments. @@ -60,11 +59,6 @@ set _SKIP=2 if "x%~1" == "x" goto execute set CMD_LINE_ARGS=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ :execute @rem Setup the command line diff --git a/example/kobalt/src/Build.kt b/examples/java/kobalt/src/Build.kt similarity index 100% rename from example/kobalt/src/Build.kt rename to examples/java/kobalt/src/Build.kt diff --git a/example/kobalt/wrapper/kobalt-wrapper.jar b/examples/java/kobalt/wrapper/kobalt-wrapper.jar similarity index 100% rename from example/kobalt/wrapper/kobalt-wrapper.jar rename to examples/java/kobalt/wrapper/kobalt-wrapper.jar diff --git a/example/kobalt/wrapper/kobalt-wrapper.properties b/examples/java/kobalt/wrapper/kobalt-wrapper.properties similarity index 100% rename from example/kobalt/wrapper/kobalt-wrapper.properties rename to examples/java/kobalt/wrapper/kobalt-wrapper.properties diff --git a/example/kobaltw b/examples/java/kobaltw similarity index 100% rename from example/kobaltw rename to examples/java/kobaltw diff --git a/example/kobaltw.bat b/examples/java/kobaltw.bat similarity index 100% rename from example/kobaltw.bat rename to examples/java/kobaltw.bat diff --git a/example/settings.gradle b/examples/java/settings.gradle similarity index 94% rename from example/settings.gradle rename to examples/java/settings.gradle index 9c6dad5..f170c1a 100644 --- a/example/settings.gradle +++ b/examples/java/settings.gradle @@ -16,4 +16,4 @@ include 'api' include 'services:webservice' */ -rootProject.name = 'example' +rootProject.name = 'examples-java' diff --git a/example/src/generated/java/net/thauvin/erik/semver/example/GeneratedVersion.java b/examples/java/src/generated/com/example/GeneratedVersion.java similarity index 95% rename from example/src/generated/java/net/thauvin/erik/semver/example/GeneratedVersion.java rename to examples/java/src/generated/com/example/GeneratedVersion.java index a301be1..4023644 100644 --- a/example/src/generated/java/net/thauvin/erik/semver/example/GeneratedVersion.java +++ b/examples/java/src/generated/com/example/GeneratedVersion.java @@ -2,22 +2,21 @@ * This file is automatically generated. * Do not modify! -- ALL CHANGES WILL BE ERASED! */ -package net.thauvin.erik.semver.example; +package com.example; import java.util.Date; /** * Provides semantic version information. * - * @author Semantic Version - * Annotation Processor + * @author Semantic Version Annotation Processor */ public final class GeneratedVersion { public final static String PRERELEASE_PREFIX = "-"; public final static String BUILDMETA_PREFIX = "+"; public final static String PROJECT = "Example"; - public final static Date BUILDDATE = new Date(1493952813608L); + public final static Date BUILDDATE = new Date(1530167147192L); public final static int MAJOR = 2; public final static int MINOR = 17; public final static int PATCH = 52; diff --git a/examples/java/src/main/java/com/example/Example.java b/examples/java/src/main/java/com/example/Example.java new file mode 100644 index 0000000..c3cb880 --- /dev/null +++ b/examples/java/src/main/java/com/example/Example.java @@ -0,0 +1,25 @@ +package com.example; + +import net.thauvin.erik.semver.Version; + +import java.text.SimpleDateFormat; + +@Version(properties = "version.properties") +public class Example { + public static void main(final String... args) { + final SimpleDateFormat sdf = new SimpleDateFormat("EEE, d MMM yyyy 'at' HH:mm:ss z"); + + System.out.println("-----------------------------------------------------"); + + System.out.println(" " + GeneratedVersion.PROJECT + ' ' + GeneratedVersion.VERSION); + + System.out.println(" Built on: " + sdf.format(GeneratedVersion.BUILDDATE)); + System.out.println(" Major: " + GeneratedVersion.MAJOR); + System.out.println(" Minor: " + GeneratedVersion.MINOR); + System.out.println(" Patch: " + GeneratedVersion.PATCH); + System.out.println(" PreRelease: " + GeneratedVersion.PRERELEASE); + System.out.println(" BuildMetaData: " + GeneratedVersion.BUILDMETA); + + System.out.println("-----------------------------------------------------"); + } +} \ No newline at end of file diff --git a/example/version.properties b/examples/java/version.properties similarity index 100% rename from example/version.properties rename to examples/java/version.properties diff --git a/examples/kotlin/.gitignore b/examples/kotlin/.gitignore new file mode 100644 index 0000000..32fe2fe --- /dev/null +++ b/examples/kotlin/.gitignore @@ -0,0 +1,32 @@ +**/.idea/dictionaries +**/.idea/gradle.xml +**/.idea/libraries +**/.idea/tasks.xml +**/.idea/workspace.xml +*.iws +*.sublime-* +.classpath +.DS_Store +.gradle +.kobalt +.nb-gradle +.project +.settings +/bin +/build +/deploy +/dist +/gen +/gradle.properties +/lib/kotlin* +/libs +/local.properties +/out +/proguard-project.txt +/project.properties +/target +/test-output +ehthumbs.db +kobaltBuild +kobaltw*-test +Thumbs.db \ No newline at end of file diff --git a/examples/kotlin/build.gradle.kts b/examples/kotlin/build.gradle.kts new file mode 100644 index 0000000..cfaca3a --- /dev/null +++ b/examples/kotlin/build.gradle.kts @@ -0,0 +1,36 @@ +plugins { + kotlin("jvm") version "1.2.50" + application + id("org.jetbrains.kotlin.kapt") version "1.2.50" +} + +// ./gradlew +// ./gradlew runJava +// ./gradlew run runJava + +defaultTasks(ApplicationPlugin.TASK_RUN_NAME) + +var semverProcessor = "net.thauvin.erik:semver:1.0.1" + +dependencies { + kapt(semverProcessor) + compileOnly(semverProcessor) + + compile(kotlin("stdlib")) +} + +repositories { + mavenLocal() + jcenter() +} + +application { + mainClassName = "com.example.Main" +} + +tasks { + val runJava by creating(JavaExec::class) { + main = "com.example.Example" + classpath = java.sourceSets["main"].runtimeClasspath + } +} \ No newline at end of file diff --git a/examples/kotlin/gradle/wrapper/gradle-wrapper.jar b/examples/kotlin/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..758de96 Binary files /dev/null and b/examples/kotlin/gradle/wrapper/gradle-wrapper.jar differ diff --git a/examples/kotlin/gradle/wrapper/gradle-wrapper.properties b/examples/kotlin/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..2d80b69 --- /dev/null +++ b/examples/kotlin/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/examples/kotlin/gradlew b/examples/kotlin/gradlew new file mode 100644 index 0000000..cccdd3d --- /dev/null +++ b/examples/kotlin/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +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 +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +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 + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/examples/kotlin/gradlew.bat b/examples/kotlin/gradlew.bat new file mode 100644 index 0000000..f955316 --- /dev/null +++ b/examples/kotlin/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/examples/kotlin/settings.gradle.kts b/examples/kotlin/settings.gradle.kts new file mode 100644 index 0000000..65d0bd6 --- /dev/null +++ b/examples/kotlin/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "examples-kotlin" diff --git a/examples/kotlin/src/main/java/com/example/Example.java b/examples/kotlin/src/main/java/com/example/Example.java new file mode 100644 index 0000000..abeaf51 --- /dev/null +++ b/examples/kotlin/src/main/java/com/example/Example.java @@ -0,0 +1,22 @@ +package com.example; + +import java.text.SimpleDateFormat; + +public class Example { + public static void main(final String... args) { + final SimpleDateFormat sdf = new SimpleDateFormat("EEE, d MMM yyyy 'at' HH:mm:ss z"); + + System.out.println("-- From Java ----------------------------------------"); + + System.out.println(" " + GeneratedVersion.PROJECT + ' ' + GeneratedVersion.VERSION); + + System.out.println(" Built on: " + sdf.format(GeneratedVersion.BUILDDATE)); + System.out.println(" Major: " + GeneratedVersion.MAJOR); + System.out.println(" Minor: " + GeneratedVersion.MINOR); + System.out.println(" Patch: " + GeneratedVersion.PATCH); + System.out.println(" PreRelease: " + GeneratedVersion.PRERELEASE); + System.out.println(" BuildMetaData: " + GeneratedVersion.BUILDMETA); + + System.out.println("-----------------------------------------------------"); + } +} \ No newline at end of file diff --git a/examples/kotlin/src/main/kotlin/com/example/Main.kt b/examples/kotlin/src/main/kotlin/com/example/Main.kt new file mode 100644 index 0000000..ce661ef --- /dev/null +++ b/examples/kotlin/src/main/kotlin/com/example/Main.kt @@ -0,0 +1,26 @@ +package com.example + +import net.thauvin.erik.semver.Version +import java.text.SimpleDateFormat + +@Version(properties = "version.properties", type = "kt") +class Main { + companion object { + @JvmStatic fun main(args: Array) { + val sdf = SimpleDateFormat("EEE, d MMM yyyy 'at' HH:mm:ss z") + + println("-----------------------------------------------------") + + println(" ${GeneratedVersion.PROJECT} ${GeneratedVersion.VERSION}") + + println(" Built on: " + sdf.format(GeneratedVersion.BUILDDATE)) + println(" Major: ${GeneratedVersion.MAJOR}") + println(" Minor: ${GeneratedVersion.MINOR}") + println(" Patch: ${GeneratedVersion.PATCH}") + println(" PreRelease: ${GeneratedVersion.PRERELEASE}") + println(" BuildMetaData: ${GeneratedVersion.BUILDMETA}") + + println("-----------------------------------------------------") + } + } +} \ No newline at end of file diff --git a/examples/kotlin/version.properties b/examples/kotlin/version.properties new file mode 100644 index 0000000..fca66d0 --- /dev/null +++ b/examples/kotlin/version.properties @@ -0,0 +1,7 @@ +#Mon, 18 Jul 2016 17:33:54 -0700 +version.project=Example +version.major=2 +version.minor=17 +version.patch=52 +version.prerelease=beta +version.buildmeta=007 \ No newline at end of file