+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/scopes/Copyright.xml b/.idea/scopes/Copyright.xml
deleted file mode 100644
index 5acbcdb..0000000
--- a/.idea/scopes/Copyright.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/.idea/scopes/Sources.xml b/.idea/scopes/Sources.xml
new file mode 100644
index 0000000..73614ea
--- /dev/null
+++ b/.idea/scopes/Sources.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 94a25f7..35eb1dd 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 4a40469..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-language: java
-dist: trusty
-
-jdk:
- - oraclejdk8
-
-addons:
- sonarcloud:
- organization: "ethauvin-github"
-
-before_cache:
- - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
- - rm -fr $HOME/.gradle/caches/*/plugin-resolution/
-
-before_install:
- - chmod +x gradlew
-
-script:
- - ./gradlew check --scan
-
-cache:
- directories:
- - $HOME/.gradle/caches/
- - $HOME/.gradle/wrapper/
-
-after_success:
- - |
- if [ "${TRAVIS_TEST_RESULT}" == 0 ]; then
- ./gradlew sonarqube
- fi
diff --git a/CHANGELOG.md b/CHANGELOG.md
deleted file mode 100644
index 14c8942..0000000
--- a/CHANGELOG.md
+++ /dev/null
@@ -1,68 +0,0 @@
-# Change Log
-
-## [1.0.4](https://github.com/ethauvin/semver-gradle/tree/1.0.4) (2019-07-26)
-[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/1.0.3-beta...1.0.4)
-
-**Implemented enhancements:**
-
-- Access semver version properties in Gradle build file. [\#8](https://github.com/ethauvin/semver-gradle/issues/8)
-
-## [1.0.3-beta](https://github.com/ethauvin/semver-gradle/tree/1.0.3-beta) (2019-07-25)
-[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/1.0.2...1.0.3-beta)
-
-**Closed issues:**
-
-- Thanks! [\#7](https://github.com/ethauvin/semver-gradle/issues/7)
-
-## [1.0.2](https://github.com/ethauvin/semver-gradle/tree/1.0.2) (2019-05-24)
-[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/1.0.1...1.0.2)
-
-**Implemented enhancements:**
-
-- version.properties write issue when using NetBeans on Windows. [\#6](https://github.com/ethauvin/semver-gradle/issues/6)
-
-## [1.0.1](https://github.com/ethauvin/semver-gradle/tree/1.0.1) (2019-05-24)
-[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/1.0.0...1.0.1)
-
-## [1.0.0](https://github.com/ethauvin/semver-gradle/tree/1.0.0) (2019-04-23)
-[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/0.9.9-beta...1.0.0)
-
-**Implemented enhancements:**
-
-- Optionally save version properties [\#1](https://github.com/ethauvin/semver-gradle/issues/1)
-- Set prerelease from commandline [\#3](https://github.com/ethauvin/semver-gradle/issues/3)
-
-**Merged pull requests:**
-
-- Extended existing tests to include semver property [\#5](https://github.com/ethauvin/semver-gradle/pull/5) ([rveede](https://github.com/rveede))
-- Include full semver version in version.properties [\#4](https://github.com/ethauvin/semver-gradle/pull/4) ([rveede](https://github.com/rveede))
-
-## [0.9.9-beta](https://github.com/ethauvin/semver-gradle/tree/0.9.9-beta) (2018-12-20)
-[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/0.9.8-beta...0.9.9-beta)
-
-**Merged pull requests:**
-
-- Add option for disabling saves every project evaluation [\#2](https://github.com/ethauvin/semver-gradle/pull/2) ([lewismorgan](https://github.com/lewismorgan))
-
-## [0.9.8-beta](https://github.com/ethauvin/semver-gradle/tree/0.9.8-beta) (2018-07-14)
-[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/0.9.7-beta...0.9.8-beta)
-
-## [0.9.7-beta](https://github.com/ethauvin/semver-gradle/tree/0.9.7-beta) (2018-07-13)
-[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/0.9.6-beta...0.9.7-beta)
-
-## [0.9.6-beta](https://github.com/ethauvin/semver-gradle/tree/0.9.6-beta) (2018-07-10)
-[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/0.9.5-beta...0.9.6-beta)
-
-## [0.9.5-beta](https://github.com/ethauvin/semver-gradle/tree/0.9.5-beta) (2018-07-07)
-[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/0.9.4-beta...0.9.5-beta)
-
-## [0.9.4-beta](https://github.com/ethauvin/semver-gradle/tree/0.9.4-beta) (2018-07-03)
-[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/0.9.3-beta...0.9.4-beta)
-
-## [0.9.3-beta](https://github.com/ethauvin/semver-gradle/tree/0.9.3-beta) (2018-07-02)
-[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/0.9.2-beta...0.9.3-beta)
-
-## [0.9.2-beta](https://github.com/ethauvin/semver-gradle/tree/0.9.2-beta) (2018-07-01)
-
-
-\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
\ No newline at end of file
diff --git a/LICENSE.TXT b/LICENSE.TXT
index 7345551..b7ddd7f 100644
--- a/LICENSE.TXT
+++ b/LICENSE.TXT
@@ -1,4 +1,4 @@
-Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
+Copyright (c) 2018, Erik C. Thauvin (erik@thauvin.net)
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -24,4 +24,4 @@ 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.
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/README.md b/README.md
index 681d9b4..33b6930 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,14 @@
-[](http://opensource.org/licenses/BSD-3-Clause) [](https://sonarcloud.io/dashboard?id=ethauvin_semver-gradle) [](https://travis-ci.com/ethauvin/semver-gradle) [](https://circleci.com/gh/ethauvin/semver-gradle/tree/master) [](https://plugins.gradle.org/plugin/net.thauvin.erik.gradle.semver)
+[](http://opensource.org/licenses/BSD-3-Clause) [](https://circleci.com/gh/ethauvin/semver-gradle/tree/master)
# Semantic Version Plugin for Gradle
-A [Semantic Version](https://semver.org) Plugin for [Gradle](https://gradle.org) that manages a project version via a properties file, and provide tasks to __automatically increment__ major, minor, patch and build version numbers.
+A [Semantic Version](https://semver.org) Plugin for [Gradle](https://gradle.org) that manages a project version via a properties file, and provide tasks to __automatically increment__ major, minor and patch build numbers.
-The plugin can be used in conjunction with the [__Semantic Version Annotation Processor__](https://github.com/ethauvin/semver).
+The plugin can be used in conjunction with the [Semantic Version Annotation Processor](https://github.com/ethauvin/semver).
## Using the plugin
-The plugin is published to the Plugin Portal; see instructions there: [__net.thauvin.erik.gradle.semver__](https://plugins.gradle.org/plugin/net.thauvin.erik.gradle.semver)
+The plugin is published to the Plugin Portal; see instructions there: [net.thauvin.erik.gradle.semver](https://plugins.gradle.org/plugin/net.thauvin.erik.gradle.semver)
## Version Properties File
@@ -21,19 +21,14 @@ version.minor=0
version.patch=0
version.prerelease=
version.buildmeta=
-version.semver=1.0.0
```
-To change the version of your project, remove the version from `build.gradle` and simply edit the version properties file to match your version number.
-
-- __Examples__: [Java](https://github.com/ethauvin/semver-gradle/tree/master/examples/java), [Kotlin](https://github.com/ethauvin/semver-gradle/tree/master/examples/kotlin)
+To change the version of your project, remove the version from your `build.gradle` and simply edit your the version properties file to match your version number.
If you need to change the properties file or name of the properties keys to match your own build environment. Please see the [Configuration](#configuration) section.
## Increment Version Tasks
-### incrementMajor, incrementMinor and incrementPatch
-
The `incrementMajor`, `incrementMinor` and `incrementPatch` tasks are available to automatically increment their respective and reset lower counterpart version numbers.
- `incrementMajor` will increment the `major` and set the `minor` and `patch` versions to `0`.
@@ -54,81 +49,6 @@ someTask {
}
```
-- __Examples__: [Java](https://github.com/ethauvin/semver-gradle/tree/master/examples/java), [Kotlin](https://github.com/ethauvin/semver-gradle/tree/master/examples/kotlin)
-
-### incrementBuildMeta
-
-The `incrementBuildMeta` task is available to set the build metadata version to a custom calculated value.
-
-#### Examples:
-
-To set the build metadata to a custom formatted date:
-
-```gradle
-incrementBuildMeta {
- doFirst {
- buildMeta = new Date().format("yyyyMMddHHmmss")
- }
-}
-```
-
-```bash
-./gradlew incrementBuildMeta
-
-...
-
-> Task :incrementBuildMeta
-Version: 1.0.16-beta+20180713143416
-```
-
-Or to set the build metadata to a custom formatted number with increment:
-
-
-```gradle
-incrementBuildMeta {
- doFirst {
- buildMeta = sprintf("%03d", (buildMeta as Integer) + 1)
- }
-}
-```
-
-```bash
-./gradlew incrementBuildMeta
-
-...
-
-> Task :incrementBuildMeta
-Version: 1.0.16-beta+002
-```
-
-- __Examples__: [Java](https://github.com/ethauvin/semver-gradle/tree/master/examples/java), [Kotlin](https://github.com/ethauvin/semver-gradle/tree/master/examples/kotlin)
-
-## Command Line
-
-The `major`, `minor`, `patch`, `prerelease` and `buildmeta` versions can also be set via the command line:
-
-```bash
-./gradlew -Dversion.prerelease=beta -Dversion.buildmeta= ...
-```
-
-```ini
-#version.properties
-version.major=1
-version.minor=0
-version.patch=0
-version.prerelease=beta
-version.buildmeta=
-version.semver=1.0.0-beta
-```
-
-The full semantic version can also be specified via the `semver` property:
-
-```sh
-./gradlew -Dversion.semver=1.0.0-beta ...
-```
-
-If a version cannot be parsed your build will **fail**.
-
## Configuration
### Version File Properties
@@ -141,17 +61,15 @@ Property | Description | Default
`version.minor` | The minor version. | `0`
`version.patch` | The patch version. | `0`
`version.prerelease` | The pre-release version |
-`version.prerelease.prefix` | The pre-release prefix | `-`
`version.buildmeta` | The build metatdata version |
+`version.prerelease.prefix` | The pre-release prefix | `-`
`version.buildmeta.prefix` | The build metadata prefix | `+`
`version.separator` | The version separator. | `.`
The version number is built as follows:
-`version.major` `version.separator` `version.minor` `version.separator` `version.patch` `[` `version.prerelease.prefix` `version.prerelease` `]` `[` `version.prerelease.prefix` `version.buildmeta` `]`
-
-For reference, it is automatically included in the `version.semver` property.
+`version.major` `version.separtor` `version.minor` `version.separator` `[` `version.prerelease.prefix` `version.prerelease` `]` `[` `version.prerelease.prefix` `version.buildmeta` `]`
for example:
@@ -162,14 +80,11 @@ version.minor=0
version.patch=0
version.prerelease=beta
version.buildmeta=exp.sha.5114f85
-version.semver=1.0.0-beta+exp.sha.5114f85
```
-`project.version` will be `1.0.0-beta+exp.sha.5114f85` in Gradle.
+`projet.version` will be `1.0.0-beta+exp.sha.5114f85` in Gradle.
-- __Examples__: [Java](https://github.com/ethauvin/semver-gradle/tree/master/examples/java), [Kotlin](https://github.com/ethauvin/semver-gradle/tree/master/examples/kotlin)
-
### Semver
In a Gradle build file, the `semver` block is used to configure how the plugin will read/write the version properties file. In most cases it is not needed.
@@ -187,7 +102,6 @@ or using different property keys for the version data:
```gradle
semver {
keysPrefix = "" // no prefix
- semverKey = "version"
majorKey = "maj"
minorKey = "min"
patchKey = "build"
@@ -204,23 +118,21 @@ min=0
build=0
rel=beta
meta=
-version=1.0.0-beta
```
The following `semver` properties are available:
Property | Description | Default
-:---------------------|:----------------------------------------|:---------------------------
+:---------------------|:----------------------------------------|:------------------------
`properties` | The properties file. | `version.properties`
-`semverKey` | The semver property key. | `version.semver`
-`majorKey` | The major property key. | `version.major`
-`minorKey` | The minor property key. | `version.minor`
-`patchKey` | The patch property key. | `version.patch`
-`preReleaseKey` | The pre-release property key. | `version.prerelease`
-`preReleasePrefixKey` | The build pre-release prefix key. | `version.prerelease.prefix`
-`buildMetaKey` | The build metadata property key. | `version.buildmeta`
-`buildMetaPrefixKey` | The build metadata prefix property key. | `version.buildmeta.prefix`
-`separatorKey` | The separator property key. | `version.separator`
+`majorKey` | The major property key. | `major`
+`minorKey` | The minor property key. | `minor`
+`patchKey` | The patch property key. | `patch`
+`preReleaseKey` | The pre-release property key. | `preRelease`
+`preReleasePrefixKey` | The build pre-release prefix key. | `preReleasePrefix`
+`buildMetaKey` | The build metadata property key. | `buildMeta`
+`buildMetaPrefixKey` | The build metadata prefix property key. | `buildMetaPrefix`
+`separatorKey` | The separator property key. | `separator`
`keysPrefix` | The prefix for all property keys. | `version.`
In order to quickly support multiple projects. The `keysPrefix` property is available to set all properties keys prefixes at once:
@@ -239,64 +151,8 @@ test.minor=0
test.patch=0
test.prerelease=
test.buildmeta=
-test.semver=1.0.0
-```
-
-- __Examples__: [Java](https://github.com/ethauvin/semver-gradle/tree/master/examples/java), [Kotlin](https://github.com/ethauvin/semver-gradle/tree/master/examples/kotlin)
-
-### Semver Extension Properties
-
-The values stored in the version properties file can individually be accessed using the `semver` extension, for example:
-
-```gradle
- fooTask {
- doFirst {
- println "Build: $semver.buildMeta"
- }
- }
-```
-
-The semver extension properties are:
-
-Property | Description
-:-------------------------|:----------------------------
-`semver.semver` | The full semantic version.
-`semver.version` | Same as `semver.semver`.
-`semver.major` | The major version.
-`semver.minor` | The minor version.
-`semver.patch` | The patch version.
-`semver.preRelease` | The pre-release version
-`semver.preReleasePrefix` | The pre-release prefix
-`semver.buildMeta` | The build metatdata version
-`semver.buildMetaPrefix` | The build metadata prefix
-`semver.separator` | The version separator.
-
-## Version is "unspecified"
-
-This is a common problem stemming from the configuration and build phases in Gradle.
-
-It is always preferable to access to version during the execution stage, in a `doFirst` or `doLast` closure within your tasks:
-
-```gradle
-task foo() {
- doFirst {
- println project.version
- }
-}
-```
-
-or if absolutely necessary, at the end of the configuration stage in a `project.afterEvaluate` block:
-
-```gradle
-foo {
- project.afterEvaluate {
- println project.version
- }
-}
```
## Source Code Generation
-If you'd like to incorporate the version number data into your source code, please have a look at the [__Semantic Version Annotation Processor__](https://github.com/ethauvin/semver).
-
-There are also full [examples](https://github.com/ethauvin/semver-gradle/tree/master/examples/annotation-processor) in both [Java](https://github.com/ethauvin/semver-gradle/tree/master/examples/annotation-processor/java) and [Kotlin](https://github.com/ethauvin/semver-gradle/tree/master/examples/annotation-processor/kotlin) showing how to use both the plugin and annotation processor concurrently.
+If you'd like to incorporate the version number data into your source code, please have a look at the [Semantic Version Annotation Processor](https://github.com/ethauvin/semver).
\ No newline at end of file
diff --git a/bitbucket-pipelines.yml b/bitbucket-pipelines.yml
deleted file mode 100644
index 7d98402..0000000
--- a/bitbucket-pipelines.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-image: openjdk:8
-
-pipelines:
- default:
- - step:
- caches:
- - gradle
- script:
- - bash ./gradlew check
diff --git a/build.gradle.kts b/build.gradle.kts
index 5d51035..1d3913b 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,44 +1,45 @@
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
+ `kotlin-dsl`
`java-gradle-plugin`
`maven-publish`
- jacoco
- kotlin("jvm") version "1.3.72"
- id("com.github.ben-manes.versions") version "0.36.0"
- id("com.gradle.plugin-publish") version "0.12.0"
- id("io.gitlab.arturbosch.detekt") version "1.14.2"
- id("org.gradle.kotlin.kotlin-dsl") version "1.3.6"
- id("org.sonarqube") version "3.0"
+ id("com.gradle.plugin-publish") version "0.9.10"
+ id("com.github.ben-manes.versions") version "0.20.0"
+ id("org.jlleitschuh.gradle.ktlint") version "4.1.0"
}
-version = "1.0.5-beta"
+version = "0.9.2-beta"
group = "net.thauvin.erik.gradle"
-object VersionInfo {
- const val spek = "2.0.13"
-}
-val versions: VersionInfo by extra { VersionInfo }
+var github = "https://github.com/ethauvin/semver-gradle"
+var packageName = "net.thauvin.erik.gradle.semver"
-val github = "https://github.com/ethauvin/semver-gradle"
-val packageName = "net.thauvin.erik.gradle.semver"
+var spekVersion = "1.1.5"
repositories {
jcenter()
}
dependencies {
- implementation(gradleApi())
+ compile(gradleApi())
- implementation(platform("org.jetbrains.kotlin:kotlin-bom"))
- implementation(kotlin("stdlib"))
testImplementation(kotlin("reflect"))
testImplementation(kotlin("test"))
-
testImplementation(gradleTestKit())
- testImplementation("org.spekframework.spek2:spek-dsl-jvm:${versions.spek}")
- testRuntimeOnly("org.spekframework.spek2:spek-runner-junit5:${versions.spek}")
+ testImplementation("org.jetbrains.spek:spek-api:$spekVersion") {
+ exclude(group = "org.jetbrains.kotlin")
+ }
+
+ testRuntimeOnly("org.jetbrains.spek:spek-junit-platform-engine:$spekVersion") {
+ exclude(group = "org.jetbrains.kotlin")
+ exclude(group = "org.junit.platform")
+ }
+
+ testRuntimeOnly("org.junit.platform:junit-platform-launcher:1.2.0") {
+ because("Needed to run tests IDEs that bundle an older version")
+ }
}
tasks {
@@ -50,42 +51,19 @@ tasks {
withType {
useJUnitPlatform {
- includeEngines("spek2")
+ includeEngines("spek")
}
}
- withType {
- reports {
- html.isEnabled = true
- xml.isEnabled = true
- }
- }
-
- "sonarqube" {
- dependsOn("jacocoTestReport")
- }
-}
-
-detekt {
- // input = files("src/main/kotlin", "src/test/kotlin")
- // filters = ".*/resources/.*,.*/build/.*"
- baseline = project.rootDir.resolve("detekt-baseline.xml")
-}
-
-sonarqube {
- properties {
- property("sonar.projectName", "semver-gradle")
- property("sonar.projectKey", "ethauvin_semver-gradle")
- property("sonar.sourceEncoding", "UTF-8")
+ val check by getting {
+ dependsOn("ktlintCheck")
}
}
gradlePlugin {
- plugins {
- create(project.name) {
+ (plugins) {
+ project.name {
id = packageName
- displayName = "SemVer Plugin"
- description = "Semantic Version Plugin for Gradle"
implementationClass = "$packageName.SemverPlugin"
}
}
@@ -94,9 +72,18 @@ gradlePlugin {
pluginBundle {
website = github
vcsUrl = github
+ description = "Semantic Version Plugin for Gradle"
tags = listOf("semver", "semantic", "version", "versioning", "auto-increment", "kotlin", "java")
+
+ (plugins) {
+ project.name {
+ id = packageName
+ displayName = project.name
+ }
+ }
+
mavenCoordinates {
groupId = project.group.toString()
artifactId = project.name
}
-}
+}
\ No newline at end of file
diff --git a/detekt-baseline.xml b/detekt-baseline.xml
deleted file mode 100644
index 52cc674..0000000
--- a/detekt-baseline.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
- MagicNumber:Utils.kt$Utils$3
- MagicNumber:Utils.kt$Utils$4
- MagicNumber:Utils.kt$Utils$5
- NestedBlockDepth:Utils.kt$Utils$fun loadProperties(file: File): Properties
- NestedBlockDepth:Utils.kt$Utils$fun parseSemVer(input: String?, version: Version): Boolean
- NestedBlockDepth:Utils.kt$Utils$fun saveProperties(projectDir: File, config: SemverConfig, version: Version)
-
-
diff --git a/examples/annotation-processor/java/.editorconfig b/examples/annotation-processor/java/.editorconfig
deleted file mode 100644
index a6971e1..0000000
--- a/examples/annotation-processor/java/.editorconfig
+++ /dev/null
@@ -1,2 +0,0 @@
-[*]
-insert_final_newline=true
diff --git a/examples/annotation-processor/java/.gitattributes b/examples/annotation-processor/java/.gitattributes
deleted file mode 100644
index 6ec2ae2..0000000
--- a/examples/annotation-processor/java/.gitattributes
+++ /dev/null
@@ -1,5 +0,0 @@
-# Set the default behavior, in case people don't have core.autocrlf set.
-* text=auto
-
-# batch files are specific to windows and always crlf
-*.bat eol=crlf
diff --git a/examples/annotation-processor/java/.gitignore b/examples/annotation-processor/java/.gitignore
deleted file mode 100644
index a78c5c2..0000000
--- a/examples/annotation-processor/java/.gitignore
+++ /dev/null
@@ -1,82 +0,0 @@
-!.vscode/extensions.json
-!.vscode/launch.json
-!.vscode/settings.json
-!.vscode/tasks.json
-!gradle-wrapper.jar
-.classpath
-.DS_Store
-.gradle
-.history
-.idea_modules/
-.idea/**/contentModel.xml
-.idea/**/dataSources.ids
-.idea/**/dataSources.local.xml
-.idea/**/dataSources/
-.idea/**/dbnavigator.xml
-.idea/**/dictionaries
-.idea/**/dynamic.xml
-.idea/**/gradle.xml
-.idea/**/libraries
-.idea/**/mongoSettings.xml
-.idea/**/shelf
-.idea/**/sqlDataSources.xml
-.idea/**/tasks.xml
-.idea/**/uiDesigner.xml
-.idea/**/usage.statistics.xml
-.idea/**/workspace.xml
-.idea/caches/build_file_checksums.ser
-.idea/httpRequests
-.idea/replstate.xml
-.kobalt
-.mtj.tmp/
-.mvn/timing.properties
-.mvn/wrapper/maven-wrapper.jar
-.nb-gradle
-.project
-.scannerwork
-.settings
-.vscode/*
-*.class
-*.code-workspace
-*.ctxt
-*.ear
-*.iws
-*.jar
-*.log
-*.nar
-*.rar
-*.sublime-*
-*.tar.gz
-*.war
-*.zip
-atlassian-ide-plugin.xml
-bin/
-build/
-cmake-build-*/
-com_crashlytics_export_strings.xml
-crashlytics-build.properties
-crashlytics.properties
-dependency-reduced-pom.xml
-deploy/
-dist/
-ehthumbs.db
-fabric.properties
-gen/
-gradle.properties
-hs_err_pid*
-kobaltBuild
-kobaltw*-test
-lib/kotlin*
-libs/
-local.properties
-out/
-pom.xml.next
-pom.xml.releaseBackup
-pom.xml.tag
-pom.xml.versionsBackup
-proguard-project.txt
-project.properties
-release.properties
-target/
-test-output
-Thumbs.db
diff --git a/examples/annotation-processor/java/.idea/compiler.xml b/examples/annotation-processor/java/.idea/compiler.xml
deleted file mode 100644
index cb1142d..0000000
--- a/examples/annotation-processor/java/.idea/compiler.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/annotation-processor/java/.idea/encodings.xml b/examples/annotation-processor/java/.idea/encodings.xml
deleted file mode 100644
index 97626ba..0000000
--- a/examples/annotation-processor/java/.idea/encodings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/annotation-processor/java/.idea/inspectionProfiles/Project_Default.xml b/examples/annotation-processor/java/.idea/inspectionProfiles/Project_Default.xml
deleted file mode 100644
index 8ff795e..0000000
--- a/examples/annotation-processor/java/.idea/inspectionProfiles/Project_Default.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/annotation-processor/java/.idea/misc.xml b/examples/annotation-processor/java/.idea/misc.xml
deleted file mode 100644
index db06c18..0000000
--- a/examples/annotation-processor/java/.idea/misc.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/annotation-processor/java/.idea/modules.xml b/examples/annotation-processor/java/.idea/modules.xml
deleted file mode 100644
index 7cd1f26..0000000
--- a/examples/annotation-processor/java/.idea/modules.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/annotation-processor/java/.idea/modules/ap-examples-java.iml b/examples/annotation-processor/java/.idea/modules/ap-examples-java.iml
deleted file mode 100644
index 57e5b58..0000000
--- a/examples/annotation-processor/java/.idea/modules/ap-examples-java.iml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/annotation-processor/java/.idea/modules/ap-examples-java.main.iml b/examples/annotation-processor/java/.idea/modules/ap-examples-java.main.iml
deleted file mode 100644
index c65ff83..0000000
--- a/examples/annotation-processor/java/.idea/modules/ap-examples-java.main.iml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/annotation-processor/java/.idea/modules/ap-examples-java.test.iml b/examples/annotation-processor/java/.idea/modules/ap-examples-java.test.iml
deleted file mode 100644
index e3e8de5..0000000
--- a/examples/annotation-processor/java/.idea/modules/ap-examples-java.test.iml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/annotation-processor/java/.idea/vcs.xml b/examples/annotation-processor/java/.idea/vcs.xml
deleted file mode 100644
index c2365ab..0000000
--- a/examples/annotation-processor/java/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/annotation-processor/java/build.gradle b/examples/annotation-processor/java/build.gradle
deleted file mode 100644
index b343869..0000000
--- a/examples/annotation-processor/java/build.gradle
+++ /dev/null
@@ -1,48 +0,0 @@
-plugins {
- id 'java'
- id 'application'
- id 'net.thauvin.erik.gradle.semver' version '1.0.4'
- id 'com.github.ben-manes.versions' version '0.28.0'
-}
-
-// ./gradlew
-// ./gradlew clean incrementPatch run
-// ./gradlew clean incrementMinor run
-// ./gradlew clean incrementMajor run
-
-mainClassName = 'com.example.Example'
-
-defaultTasks 'run'
-
-def semverProcessor = "net.thauvin.erik:semver:1.2.0"
-
-dependencies {
- annotationProcessor semverProcessor
- implementation semverProcessor
-}
-
-tasks.withType(JavaCompile) {
- options.annotationProcessorGeneratedSourcesDirectory = file("${projectDir}/src/generated/java")
- options.compilerArgs += [ "-Asemver.project.dir=$projectDir" ]
-}
-
-repositories {
- mavenLocal()
- jcenter()
-}
-
-run {
- doFirst {
- println "Version: $version"
- }
-
-// args = ['example.properties']
- args = ['version.properties']
-}
-
-semver {
-// properties = "example.properties"
-// keysPrefix = "example."
-// preReleaseKey = "release"
-// buildMetaKey = "meta"
-}
diff --git a/examples/annotation-processor/java/example.properties b/examples/annotation-processor/java/example.properties
deleted file mode 100644
index ef37d26..0000000
--- a/examples/annotation-processor/java/example.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-#Generated by the Semver Plugin for Gradle
-#Thu Nov 01 18:52:23 PDT 2018
-example.major=1
-example.meta=
-example.minor=0
-example.patch=0
-example.release=
diff --git a/examples/annotation-processor/java/gradle/wrapper/gradle-wrapper.jar b/examples/annotation-processor/java/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index f3d88b1..0000000
Binary files a/examples/annotation-processor/java/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/examples/annotation-processor/java/gradle/wrapper/gradle-wrapper.properties b/examples/annotation-processor/java/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index a2bf131..0000000
--- a/examples/annotation-processor/java/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.2.2-bin.zip
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
diff --git a/examples/annotation-processor/java/gradlew b/examples/annotation-processor/java/gradlew
deleted file mode 100755
index 2fe81a7..0000000
--- a/examples/annotation-processor/java/gradlew
+++ /dev/null
@@ -1,183 +0,0 @@
-#!/usr/bin/env sh
-
-#
-# Copyright 2015 the original author or authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-##############################################################################
-##
-## 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='"-Xmx64m" "-Xms64m"'
-
-# 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 or MSYS, switch paths to Windows format before running java
-if [ "$cygwin" = "true" -o "$msys" = "true" ] ; 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=`expr $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"
-
-exec "$JAVACMD" "$@"
diff --git a/examples/annotation-processor/java/gradlew.bat b/examples/annotation-processor/java/gradlew.bat
deleted file mode 100644
index 62bd9b9..0000000
--- a/examples/annotation-processor/java/gradlew.bat
+++ /dev/null
@@ -1,103 +0,0 @@
-@rem
-@rem Copyright 2015 the original author or authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem https://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-@rem
-
-@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 Resolve any "." and ".." in APP_HOME to make it shorter.
-for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
-
-@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="-Xmx64m" "-Xms64m"
-
-@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/annotation-processor/java/settings.gradle b/examples/annotation-processor/java/settings.gradle
deleted file mode 100644
index 73dfdee..0000000
--- a/examples/annotation-processor/java/settings.gradle
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- * This file was generated by the Gradle 'init' task.
- *
- * The settings file is used to specify which projects to include in your build.
- *
- * Detailed information about configuring a multi-project build in Gradle can be found
- * in the user guide at https://docs.gradle.org/4.8.1/userguide/multi_project_builds.html
- */
-
-rootProject.name = 'ap-examples-java'
diff --git a/examples/annotation-processor/java/src/generated/java/com/example/GeneratedVersion.java b/examples/annotation-processor/java/src/generated/java/com/example/GeneratedVersion.java
deleted file mode 100644
index 5010897..0000000
--- a/examples/annotation-processor/java/src/generated/java/com/example/GeneratedVersion.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * This file is automatically generated.
- * Do not modify! -- ALL CHANGES WILL BE ERASED!
- */
-
-package com.example;
-
-import java.util.Date;
-
-/**
- * Provides semantic version information.
- *
- * @author Semantic Version Annotation Processor
- */
-public final class GeneratedVersion {
- public static final String PROJECT = "Java Example";
- public static final Date BUILDDATE = new Date(1564027571537L);
- public static final int MAJOR = 2;
- public static final int MINOR = 10;
- public static final int PATCH = 0;
- public static final String PRERELEASE = "";
- public static final String PRERELEASE_PREFIX = "-";
- public static final String BUILDMETA = "";
- public static final String BUILDMETA_PREFIX = "+";
- public static final String SEPARATOR = ".";
- public static final String VERSION = "2.10.0";
-
- /**
- * Disables the default constructor.
- */
- private GeneratedVersion() {
- throw new UnsupportedOperationException("Illegal constructor call.");
- }
-}
diff --git a/examples/annotation-processor/java/src/main/java/com/example/Example.java b/examples/annotation-processor/java/src/main/java/com/example/Example.java
deleted file mode 100644
index 723f398..0000000
--- a/examples/annotation-processor/java/src/main/java/com/example/Example.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.example;
-
-import net.thauvin.erik.semver.Version;
-
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.List;
-
-import java.text.SimpleDateFormat;
-
-@Version(properties = "version.properties")
-//@Version(
-// properties = "example.properties",
-// keysPrefix = "example.",
-// preReleaseKey = "release",
-// buildMetaKey = "meta")
-public class Example {
- public static void main(String... args) throws IOException {
- final SimpleDateFormat sdf = new SimpleDateFormat("EEE, d MMM yyyy 'at' HH:mm:ss z");
-
- System.out.println("-----------------------------------------------------");
-
- System.out.println(" Version: " + 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("-----------------------------------------------------");
-
- if (args.length == 1) {
- final Path path = Paths.get(args[0]);
- if (Files.exists(path)) {
- final List content = Files.readAllLines(path);
- System.out.println("> cat " + path.getFileName());
- for (final String line : content) {
- System.out.println(line);
- }
- }
- }
- }
-}
diff --git a/examples/annotation-processor/java/version.properties b/examples/annotation-processor/java/version.properties
deleted file mode 100644
index fc54733..0000000
--- a/examples/annotation-processor/java/version.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-#Generated by the Semver Plugin for Gradle
-#Wed Jul 24 21:06:09 PDT 2019
-version.buildmeta=
-version.major=2
-version.minor=10
-version.patch=0
-version.prerelease=
-version.project=Java Example
-version.semver=2.10.0
diff --git a/examples/annotation-processor/kotlin/.editorconfig b/examples/annotation-processor/kotlin/.editorconfig
deleted file mode 100644
index a6971e1..0000000
--- a/examples/annotation-processor/kotlin/.editorconfig
+++ /dev/null
@@ -1,2 +0,0 @@
-[*]
-insert_final_newline=true
diff --git a/examples/annotation-processor/kotlin/.gitattributes b/examples/annotation-processor/kotlin/.gitattributes
deleted file mode 100644
index 6ec2ae2..0000000
--- a/examples/annotation-processor/kotlin/.gitattributes
+++ /dev/null
@@ -1,5 +0,0 @@
-# Set the default behavior, in case people don't have core.autocrlf set.
-* text=auto
-
-# batch files are specific to windows and always crlf
-*.bat eol=crlf
diff --git a/examples/annotation-processor/kotlin/.gitignore b/examples/annotation-processor/kotlin/.gitignore
deleted file mode 100644
index 638960b..0000000
--- a/examples/annotation-processor/kotlin/.gitignore
+++ /dev/null
@@ -1,81 +0,0 @@
-!.vscode/extensions.json
-!.vscode/launch.json
-!.vscode/settings.json
-!.vscode/tasks.json
-!gradle-wrapper.jar
-.classpath
-.DS_Store
-.gradle
-.history
-.idea_modules/
-.idea/**/contentModel.xml
-.idea/**/dataSources.ids
-.idea/**/dataSources.local.xml
-.idea/**/dataSources/
-.idea/**/dbnavigator.xml
-.idea/**/dictionaries
-.idea/**/dynamic.xml
-.idea/**/gradle.xml
-.idea/**/libraries
-.idea/**/mongoSettings.xml
-.idea/**/shelf
-.idea/**/sqlDataSources.xml
-.idea/**/tasks.xml
-.idea/**/uiDesigner.xml
-.idea/**/usage.statistics.xml
-.idea/**/workspace.xml
-.idea/caches/build_file_checksums.ser
-.idea/httpRequests
-.idea/replstate.xml
-.kobalt
-.mtj.tmp/
-.mvn/timing.properties
-.mvn/wrapper/maven-wrapper.jar
-.nb-gradle
-.project
-.scannerwork
-.settings
-.vscode/*
-*.class
-*.code-workspace
-*.ctxt
-*.ear
-*.iws
-*.jar
-*.log
-*.nar
-*.rar
-*.sublime-*
-*.tar.gz
-*.war
-*.zip
-atlassian-ide-plugin.xml
-bin/
-build/
-cmake-build-*/
-com_crashlytics_export_strings.xml
-crashlytics-build.properties
-crashlytics.properties
-dependency-reduced-pom.xml
-deploy/
-dist/
-ehthumbs.db
-fabric.properties
-gen/
-hs_err_pid*
-kobaltBuild
-kobaltw*-test
-lib/kotlin*
-libs/
-local.properties
-out/
-pom.xml.next
-pom.xml.releaseBackup
-pom.xml.tag
-pom.xml.versionsBackup
-proguard-project.txt
-project.properties
-release.properties
-target/
-test-output
-Thumbs.db
diff --git a/examples/annotation-processor/kotlin/.idea/compiler.xml b/examples/annotation-processor/kotlin/.idea/compiler.xml
deleted file mode 100644
index 0974d2a..0000000
--- a/examples/annotation-processor/kotlin/.idea/compiler.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/annotation-processor/kotlin/.idea/encodings.xml b/examples/annotation-processor/kotlin/.idea/encodings.xml
deleted file mode 100644
index 97626ba..0000000
--- a/examples/annotation-processor/kotlin/.idea/encodings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/annotation-processor/kotlin/.idea/inspectionProfiles/Project_Default.xml b/examples/annotation-processor/kotlin/.idea/inspectionProfiles/Project_Default.xml
deleted file mode 100644
index 8ff795e..0000000
--- a/examples/annotation-processor/kotlin/.idea/inspectionProfiles/Project_Default.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/annotation-processor/kotlin/.idea/misc.xml b/examples/annotation-processor/kotlin/.idea/misc.xml
deleted file mode 100644
index db06c18..0000000
--- a/examples/annotation-processor/kotlin/.idea/misc.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/annotation-processor/kotlin/.idea/modules.xml b/examples/annotation-processor/kotlin/.idea/modules.xml
deleted file mode 100644
index 3b646e0..0000000
--- a/examples/annotation-processor/kotlin/.idea/modules.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin.iml b/examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin.iml
deleted file mode 100644
index d89813c..0000000
--- a/examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin.iml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin.main.iml b/examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin.main.iml
deleted file mode 100644
index 4a6974e..0000000
--- a/examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin.main.iml
+++ /dev/null
@@ -1,58 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/annotation-processor/kotlin/.idea/vcs.xml b/examples/annotation-processor/kotlin/.idea/vcs.xml
deleted file mode 100644
index c2365ab..0000000
--- a/examples/annotation-processor/kotlin/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/annotation-processor/kotlin/build.gradle.kts b/examples/annotation-processor/kotlin/build.gradle.kts
deleted file mode 100644
index 78cd80b..0000000
--- a/examples/annotation-processor/kotlin/build.gradle.kts
+++ /dev/null
@@ -1,56 +0,0 @@
-plugins {
- kotlin("jvm").version("1.3.61")
- application
- id("org.jetbrains.kotlin.kapt").version("1.3.61")
- id("net.thauvin.erik.gradle.semver").version("1.0.4")
- id("com.github.ben-manes.versions").version("0.28.0")
-}
-
-// ./gradlew
-// ./gradlew clean incrementPatch run
-// ./gradlew clean incrementMinor run
-// ./gradlew clean incrementMajor run
-
-defaultTasks(ApplicationPlugin.TASK_RUN_NAME)
-
-var semverProcessor = "net.thauvin.erik:semver:1.2.0"
-
-dependencies {
- kapt(semverProcessor)
- implementation(semverProcessor)
-
- implementation(kotlin("stdlib"))
-}
-
-repositories {
- mavenLocal()
- jcenter()
-}
-
-application {
- mainClassName = "com.example.Main"
-}
-
-kapt {
- arguments {
- arg("semver.project.dir", projectDir)
- }
-}
-
-tasks {
- "run"(JavaExec::class) {
- doFirst {
- println("Verion: $version")
- }
-
-// args = listOf("example.properties")
- args = listOf("version.properties")
- }
-}
-
-semver {
-// properties = "example.properties"
-// keysPrefix = "example."
-// preReleaseKey = "release"
-// buildMetaKey = "meta"
-}
diff --git a/examples/annotation-processor/kotlin/example.properties b/examples/annotation-processor/kotlin/example.properties
deleted file mode 100644
index 7c54620..0000000
--- a/examples/annotation-processor/kotlin/example.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-#Generated by the Semver Plugin for Gradle
-#Sun Jul 01 21:42:39 PDT 2018
-example.major=1
-example.release=
-example.meta=
-example.minor=0
-example.patch=0
diff --git a/examples/annotation-processor/kotlin/gradle.properties b/examples/annotation-processor/kotlin/gradle.properties
deleted file mode 100644
index 93cd554..0000000
--- a/examples/annotation-processor/kotlin/gradle.properties
+++ /dev/null
@@ -1 +0,0 @@
-#kapt.use.worker.api=true
diff --git a/examples/annotation-processor/kotlin/gradle/wrapper/gradle-wrapper.jar b/examples/annotation-processor/kotlin/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index f3d88b1..0000000
Binary files a/examples/annotation-processor/kotlin/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/examples/annotation-processor/kotlin/gradle/wrapper/gradle-wrapper.properties b/examples/annotation-processor/kotlin/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index a2bf131..0000000
--- a/examples/annotation-processor/kotlin/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.2.2-bin.zip
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
diff --git a/examples/annotation-processor/kotlin/gradlew b/examples/annotation-processor/kotlin/gradlew
deleted file mode 100755
index 2fe81a7..0000000
--- a/examples/annotation-processor/kotlin/gradlew
+++ /dev/null
@@ -1,183 +0,0 @@
-#!/usr/bin/env sh
-
-#
-# Copyright 2015 the original author or authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-##############################################################################
-##
-## 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='"-Xmx64m" "-Xms64m"'
-
-# 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 or MSYS, switch paths to Windows format before running java
-if [ "$cygwin" = "true" -o "$msys" = "true" ] ; 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=`expr $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"
-
-exec "$JAVACMD" "$@"
diff --git a/examples/annotation-processor/kotlin/gradlew.bat b/examples/annotation-processor/kotlin/gradlew.bat
deleted file mode 100644
index 62bd9b9..0000000
--- a/examples/annotation-processor/kotlin/gradlew.bat
+++ /dev/null
@@ -1,103 +0,0 @@
-@rem
-@rem Copyright 2015 the original author or authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem https://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-@rem
-
-@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 Resolve any "." and ".." in APP_HOME to make it shorter.
-for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
-
-@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="-Xmx64m" "-Xms64m"
-
-@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/annotation-processor/kotlin/settings.gradle.kts b/examples/annotation-processor/kotlin/settings.gradle.kts
deleted file mode 100644
index ff704be..0000000
--- a/examples/annotation-processor/kotlin/settings.gradle.kts
+++ /dev/null
@@ -1 +0,0 @@
-rootProject.name = "ap-examples-kotlin"
diff --git a/examples/annotation-processor/kotlin/src/main/kotlin/com/example/Main.kt b/examples/annotation-processor/kotlin/src/main/kotlin/com/example/Main.kt
deleted file mode 100644
index cc503f1..0000000
--- a/examples/annotation-processor/kotlin/src/main/kotlin/com/example/Main.kt
+++ /dev/null
@@ -1,45 +0,0 @@
-package com.example
-
-import net.thauvin.erik.semver.Version
-import java.io.File
-import java.text.SimpleDateFormat
-
-@Version(properties = "version.properties", type = "kt")
-//@Version(
-// properties = "example.properties",
-// type = "kt",
-// keysPrefix = "example.",
-// preReleaseKey = "release",
-// buildMetaKey = "meta")
-class Main {
- companion object {
- @JvmStatic
- fun main(args: Array) {
- val sdf = SimpleDateFormat("EEE, d MMM yyyy 'at' HH:mm:ss z")
-
- println("-----------------------------------------------------")
-
- println(" Version: ${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("-----------------------------------------------------")
-
- if (args.size == 1) {
- File(args[0]).apply {
- if (exists()) {
- println("> cat $name")
- forEachLine {
- println(it)
- }
- }
- }
- }
- }
- }
-}
diff --git a/examples/annotation-processor/kotlin/version.properties b/examples/annotation-processor/kotlin/version.properties
deleted file mode 100644
index 8da5e3a..0000000
--- a/examples/annotation-processor/kotlin/version.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-#Generated by the Semver Plugin for Gradle
-#Wed Jul 24 21:06:46 PDT 2019
-version.buildmeta=
-version.major=14
-version.minor=3
-version.patch=0
-version.prerelease=
-version.project=Kotlin Example
-version.semver=14.3.0
diff --git a/examples/examples.sh b/examples/examples.sh
deleted file mode 100755
index 787be4a..0000000
--- a/examples/examples.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash
-
-# Version 1.0
-
-if [ $# -eq 0 ]; then
- echo "Usage: $0 "
- exit 1
-fi
-
-# set the examples directories
-declare -a examples=(
- "java"
- "kotlin"
- "annotation-processor/java"
- "annotation-processor/kotlin")
-
-dir=$(dirname "$(readlink -f "$0")")
-cyan=$(tput setaf 6)
-normal=$(tput sgr0)
-
-i=0
-for ex in "${examples[@]}"; do
- if [ $i -ne 0 ]
- then
- read -p "Press [Enter] key to continue..."
- clear
- fi
- cd "$dir/$ex" || exit 1
- echo "> Project: ${cyan}${ex}${normal}"
- ./gradlew --console=plain --no-build-cache clean "$@" || exit 1
- (( i++ ))
-done
diff --git a/examples/java/.editorconfig b/examples/java/.editorconfig
deleted file mode 100644
index a6971e1..0000000
--- a/examples/java/.editorconfig
+++ /dev/null
@@ -1,2 +0,0 @@
-[*]
-insert_final_newline=true
diff --git a/examples/java/.gitattributes b/examples/java/.gitattributes
deleted file mode 100644
index 6ec2ae2..0000000
--- a/examples/java/.gitattributes
+++ /dev/null
@@ -1,5 +0,0 @@
-# Set the default behavior, in case people don't have core.autocrlf set.
-* text=auto
-
-# batch files are specific to windows and always crlf
-*.bat eol=crlf
diff --git a/examples/java/.gitignore b/examples/java/.gitignore
deleted file mode 100644
index a78c5c2..0000000
--- a/examples/java/.gitignore
+++ /dev/null
@@ -1,82 +0,0 @@
-!.vscode/extensions.json
-!.vscode/launch.json
-!.vscode/settings.json
-!.vscode/tasks.json
-!gradle-wrapper.jar
-.classpath
-.DS_Store
-.gradle
-.history
-.idea_modules/
-.idea/**/contentModel.xml
-.idea/**/dataSources.ids
-.idea/**/dataSources.local.xml
-.idea/**/dataSources/
-.idea/**/dbnavigator.xml
-.idea/**/dictionaries
-.idea/**/dynamic.xml
-.idea/**/gradle.xml
-.idea/**/libraries
-.idea/**/mongoSettings.xml
-.idea/**/shelf
-.idea/**/sqlDataSources.xml
-.idea/**/tasks.xml
-.idea/**/uiDesigner.xml
-.idea/**/usage.statistics.xml
-.idea/**/workspace.xml
-.idea/caches/build_file_checksums.ser
-.idea/httpRequests
-.idea/replstate.xml
-.kobalt
-.mtj.tmp/
-.mvn/timing.properties
-.mvn/wrapper/maven-wrapper.jar
-.nb-gradle
-.project
-.scannerwork
-.settings
-.vscode/*
-*.class
-*.code-workspace
-*.ctxt
-*.ear
-*.iws
-*.jar
-*.log
-*.nar
-*.rar
-*.sublime-*
-*.tar.gz
-*.war
-*.zip
-atlassian-ide-plugin.xml
-bin/
-build/
-cmake-build-*/
-com_crashlytics_export_strings.xml
-crashlytics-build.properties
-crashlytics.properties
-dependency-reduced-pom.xml
-deploy/
-dist/
-ehthumbs.db
-fabric.properties
-gen/
-gradle.properties
-hs_err_pid*
-kobaltBuild
-kobaltw*-test
-lib/kotlin*
-libs/
-local.properties
-out/
-pom.xml.next
-pom.xml.releaseBackup
-pom.xml.tag
-pom.xml.versionsBackup
-proguard-project.txt
-project.properties
-release.properties
-target/
-test-output
-Thumbs.db
diff --git a/examples/java/.idea/compiler.xml b/examples/java/.idea/compiler.xml
deleted file mode 100644
index 0888ebb..0000000
--- a/examples/java/.idea/compiler.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/java/.idea/encodings.xml b/examples/java/.idea/encodings.xml
deleted file mode 100644
index 97626ba..0000000
--- a/examples/java/.idea/encodings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/java/.idea/inspectionProfiles/Project_Default.xml b/examples/java/.idea/inspectionProfiles/Project_Default.xml
deleted file mode 100644
index 8ff795e..0000000
--- a/examples/java/.idea/inspectionProfiles/Project_Default.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/java/.idea/misc.xml b/examples/java/.idea/misc.xml
deleted file mode 100644
index db06c18..0000000
--- a/examples/java/.idea/misc.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/java/.idea/modules.xml b/examples/java/.idea/modules.xml
deleted file mode 100644
index da0a5ad..0000000
--- a/examples/java/.idea/modules.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/java/.idea/modules/examples-java.main.iml b/examples/java/.idea/modules/examples-java.main.iml
deleted file mode 100644
index b3b97ea..0000000
--- a/examples/java/.idea/modules/examples-java.main.iml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/java/.idea/modules/examples-java.test.iml b/examples/java/.idea/modules/examples-java.test.iml
deleted file mode 100644
index 860abdf..0000000
--- a/examples/java/.idea/modules/examples-java.test.iml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/java/.idea/vcs.xml b/examples/java/.idea/vcs.xml
deleted file mode 100644
index b2bdec2..0000000
--- a/examples/java/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/java/build.gradle b/examples/java/build.gradle
deleted file mode 100644
index e841b08..0000000
--- a/examples/java/build.gradle
+++ /dev/null
@@ -1,64 +0,0 @@
-plugins {
- id 'java'
- id 'application'
- id 'net.thauvin.erik.gradle.semver' version '1.0.4'
- id 'com.github.ben-manes.versions' version '0.36.0'
-}
-
-// ./gradlew
-// ./gradlew incrementPatch run
-// ./gradlew incrementMinor run
-// ./gradlew incrementMajor run
-// ./gradlew incrementBuildMeta run
-// ./gradlew echoVersion
-
-
-defaultTasks 'run'
-
-dependencies {
- testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
- testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
-}
-
-repositories {
- jcenter()
-}
-
-test {
- useJUnitPlatform()
-}
-
-application {
- mainClassName = 'App'
-// project.afterEvaluate {
-// println "Version: $version"
-// }
-}
-
-semver {
-// properties = "example.properties"
-// keysPrefix = "example."
-// preReleaseKey = "release"
-// buildMetaKey = "meta"
-}
-
-incrementBuildMeta {
- doFirst {
-// buildMeta = sprintf("%03d", (buildMeta as Integer) + 1)
- buildMeta = new Date().format("yyyyMMddHHmmss")
- }
-}
-
-run {
- doFirst {
-// println "Version: ${-> version}"
- println "Version: $version"
- }
-
-// args = ['example.properties']
- args = ['version.properties']
-}
-
-task echoVersion(type:Exec) {
- commandLine 'echo', "${-> project.version}"
-}
diff --git a/examples/java/example.properties b/examples/java/example.properties
deleted file mode 100644
index 5438279..0000000
--- a/examples/java/example.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-#Generated by the Semver Plugin for Gradle
-#Sun Jul 01 12:21:40 PDT 2018
-example.major=1
-example.release=alpha
-example.meta=
-example.minor=1
-example.patch=1
diff --git a/examples/java/gradle/wrapper/gradle-wrapper.jar b/examples/java/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index e708b1c..0000000
Binary files a/examples/java/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/examples/java/gradle/wrapper/gradle-wrapper.properties b/examples/java/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index be52383..0000000
--- a/examples/java/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-bin.zip
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
diff --git a/examples/java/gradlew b/examples/java/gradlew
deleted file mode 100755
index 4f906e0..0000000
--- a/examples/java/gradlew
+++ /dev/null
@@ -1,185 +0,0 @@
-#!/usr/bin/env sh
-
-#
-# Copyright 2015 the original author or authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-##############################################################################
-##
-## 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='"-Xmx64m" "-Xms64m"'
-
-# 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 or MSYS, switch paths to Windows format before running java
-if [ "$cygwin" = "true" -o "$msys" = "true" ] ; 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=`expr $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"
-
-exec "$JAVACMD" "$@"
diff --git a/examples/java/gradlew.bat b/examples/java/gradlew.bat
deleted file mode 100644
index 107acd3..0000000
--- a/examples/java/gradlew.bat
+++ /dev/null
@@ -1,89 +0,0 @@
-@rem
-@rem Copyright 2015 the original author or authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem https://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-@rem
-
-@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 Resolve any "." and ".." in APP_HOME to make it shorter.
-for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
-
-@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="-Xmx64m" "-Xms64m"
-
-@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 execute
-
-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 execute
-
-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
-
-: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 %*
-
-: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/java/java.iml b/examples/java/java.iml
deleted file mode 100644
index d6ebd48..0000000
--- a/examples/java/java.iml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/java/settings.gradle b/examples/java/settings.gradle
deleted file mode 100644
index 99bca64..0000000
--- a/examples/java/settings.gradle
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- * This file was generated by the Gradle 'init' task.
- *
- * The settings file is used to specify which projects to include in your build.
- *
- * Detailed information about configuring a multi-project build in Gradle can be found
- * in the user guide at https://docs.gradle.org/4.8.1/userguide/multi_project_builds.html
- */
-
-rootProject.name = 'examples-java'
diff --git a/examples/java/src/main/java/App.java b/examples/java/src/main/java/App.java
deleted file mode 100644
index 32b2431..0000000
--- a/examples/java/src/main/java/App.java
+++ /dev/null
@@ -1,20 +0,0 @@
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.List;
-
-public class App {
- public static void main(String... args) throws IOException {
- if (args.length == 1) {
- final Path path = Paths.get(args[0]);
- if (Files.exists(path)) {
- final List content = Files.readAllLines(path);
- System.out.println("> cat " + path.getFileName());
- for (final String line : content) {
- System.out.println(line);
- }
- }
- }
- }
-}
diff --git a/examples/java/src/test/java/AppTest.java b/examples/java/src/test/java/AppTest.java
deleted file mode 100644
index b214b69..0000000
--- a/examples/java/src/test/java/AppTest.java
+++ /dev/null
@@ -1,12 +0,0 @@
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertAll;
-
-class AppTest {
- @Test
- void testAppHasMain() {
- final App classUnderTest = new App();
- assertAll("app should have a main method.",
- () -> classUnderTest.getClass().getMethod("main", String[].class));
- }
-}
diff --git a/examples/java/version.properties b/examples/java/version.properties
deleted file mode 100644
index f5bf6aa..0000000
--- a/examples/java/version.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-#Generated by the Semver Plugin for Gradle
-#Fri Sep 25 17:38:33 PDT 2020
-version.buildmeta=20200925173833
-version.major=1
-version.minor=0
-version.patch=0
-version.prerelease=
-version.semver=1.0.0+20200925173833
diff --git a/examples/kotlin/.editorconfig b/examples/kotlin/.editorconfig
deleted file mode 100644
index a6971e1..0000000
--- a/examples/kotlin/.editorconfig
+++ /dev/null
@@ -1,2 +0,0 @@
-[*]
-insert_final_newline=true
diff --git a/examples/kotlin/.gitattributes b/examples/kotlin/.gitattributes
deleted file mode 100644
index 6ec2ae2..0000000
--- a/examples/kotlin/.gitattributes
+++ /dev/null
@@ -1,5 +0,0 @@
-# Set the default behavior, in case people don't have core.autocrlf set.
-* text=auto
-
-# batch files are specific to windows and always crlf
-*.bat eol=crlf
diff --git a/examples/kotlin/.gitignore b/examples/kotlin/.gitignore
deleted file mode 100644
index a78c5c2..0000000
--- a/examples/kotlin/.gitignore
+++ /dev/null
@@ -1,82 +0,0 @@
-!.vscode/extensions.json
-!.vscode/launch.json
-!.vscode/settings.json
-!.vscode/tasks.json
-!gradle-wrapper.jar
-.classpath
-.DS_Store
-.gradle
-.history
-.idea_modules/
-.idea/**/contentModel.xml
-.idea/**/dataSources.ids
-.idea/**/dataSources.local.xml
-.idea/**/dataSources/
-.idea/**/dbnavigator.xml
-.idea/**/dictionaries
-.idea/**/dynamic.xml
-.idea/**/gradle.xml
-.idea/**/libraries
-.idea/**/mongoSettings.xml
-.idea/**/shelf
-.idea/**/sqlDataSources.xml
-.idea/**/tasks.xml
-.idea/**/uiDesigner.xml
-.idea/**/usage.statistics.xml
-.idea/**/workspace.xml
-.idea/caches/build_file_checksums.ser
-.idea/httpRequests
-.idea/replstate.xml
-.kobalt
-.mtj.tmp/
-.mvn/timing.properties
-.mvn/wrapper/maven-wrapper.jar
-.nb-gradle
-.project
-.scannerwork
-.settings
-.vscode/*
-*.class
-*.code-workspace
-*.ctxt
-*.ear
-*.iws
-*.jar
-*.log
-*.nar
-*.rar
-*.sublime-*
-*.tar.gz
-*.war
-*.zip
-atlassian-ide-plugin.xml
-bin/
-build/
-cmake-build-*/
-com_crashlytics_export_strings.xml
-crashlytics-build.properties
-crashlytics.properties
-dependency-reduced-pom.xml
-deploy/
-dist/
-ehthumbs.db
-fabric.properties
-gen/
-gradle.properties
-hs_err_pid*
-kobaltBuild
-kobaltw*-test
-lib/kotlin*
-libs/
-local.properties
-out/
-pom.xml.next
-pom.xml.releaseBackup
-pom.xml.tag
-pom.xml.versionsBackup
-proguard-project.txt
-project.properties
-release.properties
-target/
-test-output
-Thumbs.db
diff --git a/examples/kotlin/.idea/compiler.xml b/examples/kotlin/.idea/compiler.xml
deleted file mode 100644
index 3628231..0000000
--- a/examples/kotlin/.idea/compiler.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/kotlin/.idea/encodings.xml b/examples/kotlin/.idea/encodings.xml
deleted file mode 100644
index 97626ba..0000000
--- a/examples/kotlin/.idea/encodings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/kotlin/.idea/inspectionProfiles/Project_Default.xml b/examples/kotlin/.idea/inspectionProfiles/Project_Default.xml
deleted file mode 100644
index 8ff795e..0000000
--- a/examples/kotlin/.idea/inspectionProfiles/Project_Default.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/kotlin/.idea/misc.xml b/examples/kotlin/.idea/misc.xml
deleted file mode 100644
index db06c18..0000000
--- a/examples/kotlin/.idea/misc.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/kotlin/.idea/modules.xml b/examples/kotlin/.idea/modules.xml
deleted file mode 100644
index 825faa5..0000000
--- a/examples/kotlin/.idea/modules.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/kotlin/.idea/modules/examples-kotlin.iml b/examples/kotlin/.idea/modules/examples-kotlin.iml
deleted file mode 100644
index 81fc2ee..0000000
--- a/examples/kotlin/.idea/modules/examples-kotlin.iml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/kotlin/.idea/modules/examples-kotlin.main.iml b/examples/kotlin/.idea/modules/examples-kotlin.main.iml
deleted file mode 100644
index 9848c98..0000000
--- a/examples/kotlin/.idea/modules/examples-kotlin.main.iml
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/kotlin/.idea/modules/examples-kotlin.test.iml b/examples/kotlin/.idea/modules/examples-kotlin.test.iml
deleted file mode 100644
index 7925939..0000000
--- a/examples/kotlin/.idea/modules/examples-kotlin.test.iml
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/kotlin/.idea/vcs.xml b/examples/kotlin/.idea/vcs.xml
deleted file mode 100644
index b2bdec2..0000000
--- a/examples/kotlin/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/kotlin/build.gradle.kts b/examples/kotlin/build.gradle.kts
deleted file mode 100644
index d54e882..0000000
--- a/examples/kotlin/build.gradle.kts
+++ /dev/null
@@ -1,64 +0,0 @@
-import net.thauvin.erik.gradle.semver.SemverIncrementBuildMetaTask
-import java.lang.String.format
-import java.time.LocalDateTime
-import java.time.format.DateTimeFormatter
-
-plugins {
- kotlin("jvm").version("1.4.10")
- application
- id("net.thauvin.erik.gradle.semver").version("1.0.4")
- id("com.github.ben-manes.versions").version("0.36.0")
-}
-
-// ./gradlew
-// ./gradlew incrementPatch run
-// ./gradlew incrementMinor run
-// ./gradlew incrementMajor run
-// ./gradlew incrementBuildMeta run
-
-defaultTasks(ApplicationPlugin.TASK_RUN_NAME)
-
-dependencies {
- implementation(kotlin("stdlib"))
- testImplementation("org.testng:testng:7.3.0")
-}
-
-repositories {
- jcenter()
-}
-
-application {
- mainClassName = "com.example.MainKt"
-// project.afterEvaluate {
-// println("Version: $version")
-// }
-}
-
-semver {
-// properties = "example.properties"
-// keysPrefix = "example."
-// preReleaseKey = "release"
-// buildMetaKey = "meta"
-}
-
-tasks {
- withType {
- useTestNG()
- }
-
- "incrementBuildMeta"(SemverIncrementBuildMetaTask::class) {
- doFirst {
-// buildMeta = format("%03d", buildMeta.toInt() + 1)
- buildMeta = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))
- }
- }
-
- "run"(JavaExec::class) {
- doFirst {
- println("Version: $version")
- }
-
-// args = listOf("example.properties")
- args = listOf("version.properties")
- }
-}
diff --git a/examples/kotlin/example.properties b/examples/kotlin/example.properties
deleted file mode 100644
index 849d314..0000000
--- a/examples/kotlin/example.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-#Generated by the Semver Plugin for Gradle
-#Thu Nov 01 18:52:15 PDT 2018
-example.major=1
-example.meta=20181101185211
-example.minor=0
-example.patch=0
-example.release=beta
diff --git a/examples/kotlin/gradle/wrapper/gradle-wrapper.jar b/examples/kotlin/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index e708b1c..0000000
Binary files a/examples/kotlin/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/examples/kotlin/gradle/wrapper/gradle-wrapper.properties b/examples/kotlin/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index be52383..0000000
--- a/examples/kotlin/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-bin.zip
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
diff --git a/examples/kotlin/gradlew b/examples/kotlin/gradlew
deleted file mode 100755
index 4f906e0..0000000
--- a/examples/kotlin/gradlew
+++ /dev/null
@@ -1,185 +0,0 @@
-#!/usr/bin/env sh
-
-#
-# Copyright 2015 the original author or authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-##############################################################################
-##
-## 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='"-Xmx64m" "-Xms64m"'
-
-# 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 or MSYS, switch paths to Windows format before running java
-if [ "$cygwin" = "true" -o "$msys" = "true" ] ; 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=`expr $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"
-
-exec "$JAVACMD" "$@"
diff --git a/examples/kotlin/gradlew.bat b/examples/kotlin/gradlew.bat
deleted file mode 100644
index 107acd3..0000000
--- a/examples/kotlin/gradlew.bat
+++ /dev/null
@@ -1,89 +0,0 @@
-@rem
-@rem Copyright 2015 the original author or authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem https://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-@rem
-
-@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 Resolve any "." and ".." in APP_HOME to make it shorter.
-for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
-
-@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="-Xmx64m" "-Xms64m"
-
-@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 execute
-
-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 execute
-
-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
-
-: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 %*
-
-: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
deleted file mode 100644
index 65d0bd6..0000000
--- a/examples/kotlin/settings.gradle.kts
+++ /dev/null
@@ -1 +0,0 @@
-rootProject.name = "examples-kotlin"
diff --git a/examples/kotlin/src/main/kotlin/com/example/Main.kt b/examples/kotlin/src/main/kotlin/com/example/Main.kt
deleted file mode 100644
index caaa0c1..0000000
--- a/examples/kotlin/src/main/kotlin/com/example/Main.kt
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.example
-
-import java.io.File
-
-fun main(args: Array) {
- if (args.size == 1) {
- File(args[0]).apply {
- if (exists()) {
- println("> cat $name")
- forEachLine {
- println(it)
- }
- }
- }
- }
-}
diff --git a/examples/kotlin/src/test/kotlin/com/example/MainTest.kt b/examples/kotlin/src/test/kotlin/com/example/MainTest.kt
deleted file mode 100644
index e49aac0..0000000
--- a/examples/kotlin/src/test/kotlin/com/example/MainTest.kt
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.example
-
-import org.testng.annotations.Test
-
-class ExampleTest {
- @Test
- fun f() = println("Running test")
-}
diff --git a/examples/kotlin/version.properties b/examples/kotlin/version.properties
deleted file mode 100644
index 98e937a..0000000
--- a/examples/kotlin/version.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-#Generated by the Semver Plugin for Gradle
-#Mon Nov 09 21:24:16 PST 2020
-version.buildmeta=20201109212416
-version.major=1
-version.minor=2
-version.patch=4
-version.prerelease=beta
-version.semver=1.2.4-beta+20201109212416
diff --git a/examples/test/.editorconfig b/examples/test/.editorconfig
deleted file mode 100644
index a6971e1..0000000
--- a/examples/test/.editorconfig
+++ /dev/null
@@ -1,2 +0,0 @@
-[*]
-insert_final_newline=true
diff --git a/examples/test/.gitignore b/examples/test/.gitignore
index 4d64aee..6322c7f 100644
--- a/examples/test/.gitignore
+++ b/examples/test/.gitignore
@@ -1,83 +1,29 @@
-!.vscode/extensions.json
-!.vscode/launch.json
-!.vscode/settings.json
-!.vscode/tasks.json
-!gradle-wrapper.jar
+**/.idea/dictionaries
+**/.idea/gradle.xml
+**/.idea/libraries
+**/.idea/tasks.xml
+**/.idea/workspace.xml
+*.sublime-*
+*.iws
.classpath
.DS_Store
.gradle
-.history
-.idea_modules/
-.idea/**/contentModel.xml
-.idea/**/dataSources.ids
-.idea/**/dataSources.local.xml
-.idea/**/dataSources/
-.idea/**/dbnavigator.xml
-.idea/**/dictionaries
-.idea/**/dynamic.xml
-.idea/**/gradle.xml
-.idea/**/libraries
-.idea/**/mongoSettings.xml
-.idea/**/shelf
-.idea/**/sqlDataSources.xml
-.idea/**/tasks.xml
-.idea/**/uiDesigner.xml
-.idea/**/usage.statistics.xml
-.idea/**/workspace.xml
-.idea/caches/build_file_checksums.ser
-.idea/httpRequests
-.idea/replstate.xml
.kobalt
-.mtj.tmp/
-.mvn/timing.properties
-.mvn/wrapper/maven-wrapper.jar
.nb-gradle
.project
-.scannerwork
.settings
-.vscode/*
-*.class
-*.code-workspace
-*.ctxt
-*.ear
-*.iws
-*.jar
-*.log
-*.nar
-*.rar
-*.sublime-*
-*.tar.gz
-*.war
-*.zip
-atlassian-ide-plugin.xml
-bin/
-build/
-cmake-build-*/
-com_crashlytics_export_strings.xml
-crashlytics-build.properties
-crashlytics.properties
-dependency-reduced-pom.xml
-deploy/
-dist/
+/bin
+/build
+/deploy
+/dist
+/gen
+/gradle.properties
+/local.properties
+/out
+/proguard-project.txt
+/project.properties
+/target
+/test-output
ehthumbs.db
-fabric.properties
-gen/
-gradle.properties
-hs_err_pid*
kobaltBuild
-kobaltw*-test
-lib/kotlin*
-libs/
-local.properties
-out/
-pom.xml.next
-pom.xml.releaseBackup
-pom.xml.tag
-pom.xml.versionsBackup
-proguard-project.txt
-project.properties
-release.properties
-target/
-test-output
-Thumbs.db
-version.properties
+Thumbs.db
\ No newline at end of file
diff --git a/examples/test/build.gradle b/examples/test/build.gradle
index 9813e76..a0d7017 100644
--- a/examples/test/build.gradle
+++ b/examples/test/build.gradle
@@ -1,10 +1,9 @@
buildscript {
repositories {
mavenLocal()
- mavenCentral()
}
dependencies {
- classpath "net.thauvin.erik.gradle:semver:1.0.5-beta"
+ classpath "net.thauvin.erik.gradle:semver:0.9.2-beta"
}
}
@@ -14,51 +13,25 @@ apply plugin: 'net.thauvin.erik.gradle.semver'
mainClassName = 'App'
-//version = 1.0
-
-def f = new File("version.properties")
-
-def semverProcessor = 'net.thauvin.erik:semver:1.2.0'
+version = 1.0
dependencies {
- annotationProcessor semverProcessor
- compileOnly semverProcessor
+
}
repositories {
- mavenLocal()
jcenter()
}
-application {
- println(project.version)
- project.afterEvaluate {
- println(project.version)
- }
-}
-
-
-incrementBuildMeta {
- doFirst {
- //buildMeta = sprintf("%03d", (buildMeta as Integer) + 1)
- buildMeta = new Date().format("yyyyMMddHHmmss")
- }
-}
-
run {
+ //dependsOn("incrementPatch")
doFirst {
- println("Version: $semver.major$semver.separator$semver.minor$semver.separator$semver.patch$semver.preReleasePrefix$semver.preRelease$semver.buildMetaPrefix$semver.buildMeta")
- args = [f.name]
+ println("Version: $version")
}
}
-task echoVersion(type:Exec) {
- commandLine "echo", "${-> version}"
-}
-
semver {
- properties = "${f.name}"
- keysPrefix = f.name.substring(0, f.name.indexOf(".") + 1)
+ properties = "test.properties"
+ keysPrefix = "test."
buildMetaKey = "meta"
- semverKey = "fullversion"
-}
+}
\ No newline at end of file
diff --git a/examples/test/gradle/wrapper/gradle-wrapper.jar b/examples/test/gradle/wrapper/gradle-wrapper.jar
index 5c2d1cf..758de96 100644
Binary files a/examples/test/gradle/wrapper/gradle-wrapper.jar and b/examples/test/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/examples/test/gradle/wrapper/gradle-wrapper.properties b/examples/test/gradle/wrapper/gradle-wrapper.properties
index 4b7e1f3..2d80b69 100644
--- a/examples/test/gradle/wrapper/gradle-wrapper.properties
+++ b/examples/test/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.5.1-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/examples/test/gradlew b/examples/test/gradlew
index 8e25e6c..cccdd3d 100755
--- a/examples/test/gradlew
+++ b/examples/test/gradlew
@@ -1,21 +1,5 @@
#!/usr/bin/env sh
-#
-# Copyright 2015 the original author or authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
##############################################################################
##
## Gradle start up script for UN*X
@@ -44,7 +28,7 @@ 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='"-Xmx64m" "-Xms64m"'
+DEFAULT_JVM_OPTS=""
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
diff --git a/examples/test/gradlew.bat b/examples/test/gradlew.bat
index 9618d8d..f955316 100644
--- a/examples/test/gradlew.bat
+++ b/examples/test/gradlew.bat
@@ -1,19 +1,3 @@
-@rem
-@rem Copyright 2015 the original author or authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem https://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-@rem
-
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@@ -30,7 +14,7 @@ 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="-Xmx64m" "-Xms64m"
+set DEFAULT_JVM_OPTS=
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
diff --git a/examples/test/locked b/examples/test/locked
deleted file mode 100644
index e69de29..0000000
diff --git a/examples/test/locked.properties b/examples/test/locked.properties
deleted file mode 100644
index 03fc5bd..0000000
--- a/examples/test/locked.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-#Generated by the Semver Plugin for Gradle
-#Fri Apr 19 13:31:37 PDT 2019
-version.fullversion=11.0.0-alpha+20190419133137
-version.major=11
-version.meta=20190419133137
-version.minor=0
-version.patch=0
-version.prerelease=alpha
diff --git a/examples/test/src/main/java/App.class b/examples/test/src/main/java/App.class
index 04cd607..08ab694 100644
Binary files a/examples/test/src/main/java/App.class and b/examples/test/src/main/java/App.class differ
diff --git a/examples/test/src/main/java/App.java b/examples/test/src/main/java/App.java
index 318ac03..bd9132e 100644
--- a/examples/test/src/main/java/App.java
+++ b/examples/test/src/main/java/App.java
@@ -1,22 +1,12 @@
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.util.List;
-
+/*
+ * This Java source file was generated by the Gradle 'init' task.
+ */
public class App {
- public static void main(String[] args) {
- new App().cat(args[0]);
+ public String getGreeting() {
+ return "Hello world.";
}
- public void cat(String name) {
- try {
- final List content = Files.readAllLines(Paths.get(name));
- System.out.println("> cat " + name);
- for (String line : content) {
- System.out.println(line);
- }
- } catch (IOException e) {
- System.out.println(e);
- }
+ public static void main(String[] args) {
+ System.out.println(new App().getGreeting());
}
-}
\ No newline at end of file
+}
diff --git a/examples/test/src/test/java/AppTest.java b/examples/test/src/test/java/AppTest.java
new file mode 100644
index 0000000..e611fc7
--- /dev/null
+++ b/examples/test/src/test/java/AppTest.java
@@ -0,0 +1,12 @@
+/*
+ * This Java source file was generated by the Gradle 'init' task.
+ */
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+public class AppTest {
+ @Test public void testAppHasAGreeting() {
+ App classUnderTest = new App();
+ assertNotNull("app should have a greeting", classUnderTest.getGreeting());
+ }
+}
diff --git a/examples/test/test.groovy b/examples/test/test.groovy
deleted file mode 100644
index 7f66d71..0000000
--- a/examples/test/test.groovy
+++ /dev/null
@@ -1,8 +0,0 @@
-if (this.args.length > 0) {
- for (arg in this.args) {
- f = new File(arg)
- println("${f.name}\t-> exits: ${f.exists()}, canRead: ${f.canRead()} --> `${f.absoluteFile}`")
- }
-} else {
- println("Usage: groovy ${this.class.getName()} filename")
-}
\ No newline at end of file
diff --git a/examples/test/test.properties b/examples/test/test.properties
new file mode 100644
index 0000000..6bcc88e
--- /dev/null
+++ b/examples/test/test.properties
@@ -0,0 +1,7 @@
+#Generated by the Semver Plugin for Gradle
+#Sun Jul 01 11:09:26 PDT 2018
+test.major=1
+test.prerelease=beta
+test.meta=007
+test.patch=3
+test.minor=0
diff --git a/examples/version.properties b/examples/version.properties
deleted file mode 100644
index e60c0e6..0000000
--- a/examples/version.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-#Generated by the Semver Plugin for Gradle
-#Thu May 23 22:24:06 PDT 2019
-version.fullversion=1.0.0
-version.major=1
-version.meta=
-version.minor=0
-version.patch=0
-version.prerelease=
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index e708b1c..758de96 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index be52383..2d80b69 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
index 4f906e0..cccdd3d 100755
--- a/gradlew
+++ b/gradlew
@@ -1,21 +1,5 @@
#!/usr/bin/env sh
-#
-# Copyright 2015 the original author or authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
##############################################################################
##
## Gradle start up script for UN*X
@@ -44,7 +28,7 @@ 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='"-Xmx64m" "-Xms64m"'
+DEFAULT_JVM_OPTS=""
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
@@ -82,7 +66,6 @@ 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
@@ -126,11 +109,10 @@ if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
-# For Cygwin or MSYS, switch paths to Windows format before running java
-if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+# 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
@@ -156,19 +138,19 @@ if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
else
eval `echo args$i`="\"$arg\""
fi
- i=`expr $i + 1`
+ 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" ;;
+ (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
@@ -177,9 +159,14 @@ save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
-APP_ARGS=`save "$@"`
+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/gradlew.bat b/gradlew.bat
index 107acd3..f955316 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -1,19 +1,3 @@
-@rem
-@rem Copyright 2015 the original author or authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem https://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-@rem
-
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@@ -29,18 +13,15 @@ if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
-@rem Resolve any "." and ".." in APP_HOME to make it shorter.
-for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
-
@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="-Xmx64m" "-Xms64m"
+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 execute
+if "%ERRORLEVEL%" == "0" goto init
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@@ -54,7 +35,7 @@ goto fail
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-if exist "%JAVA_EXE%" goto execute
+if exist "%JAVA_EXE%" goto init
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
@@ -64,14 +45,28 @@ 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 %*
+"%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
diff --git a/preflightcheck.sh b/preflightcheck.sh
deleted file mode 100644
index f95e229..0000000
--- a/preflightcheck.sh
+++ /dev/null
@@ -1,212 +0,0 @@
-#!/bin/bash
-
-# set source and test locations
-src="src/main/kotlin/net/thauvin/erik/gradle/semver/"
-test="src/main/kotlin/net/thauvin/erik/gradle/semver/"
-# e.g: .java, .kt, etc.
-ext=".kt"
-java8=true
-# e.g:
-declare -a examples=(
- "examples/java incrementBuildMeta run"
- "examples/kotlin incrementBuildMeta run"
- "examples/annotation-processor/java incrementMinor run"
- "examples/annotation-processor/kotlin incrementMinor run")
-# e.g: empty or javadoc, etc.
-gradle_doc=""
-# e.g. empty or sonarqube
-gradle_sonar="sonarqube"
-# gradle options for examples
-gradle_opts="--console=plain --no-build-cache --no-daemon"
-# maven arguments for examples
-maven_args="compile exec:java"
-
-#
-# Version: 1.1.3
-#
-
-if [ "$java8" = true ]
-then
- export JAVA_HOME="$JAVA8_HOME"
- export PATH="$(cygpath "$JAVA_HOME")/bin:$PATH"
-fi
-
-pwd=$PWD
-red=$(tput setaf 1)
-cyan=$(tput setaf 6)
-std=$(tput sgr0)
-date=$(date +%Y)
-
-pause() {
- read -p "Press [Enter] key to continue..."
-}
-
-checkCopyright() {
- if [ "$(grep -c "$date" "$1")" -eq 0 ]
- then
- echo -e " Invalid: ${red}$f${std}"
- else
- echo -e " Checked: $1"
- fi
-}
-
-runGradle() {
- cd "$1" || exit 1
- clear
- reset
- echo -e "> Project: ${cyan}${1}${std} [Gradle]"
- shift
- ./gradlew $@ || exit 1
- pause
- cd "$pwd"
-}
-
-runKobalt() {
- cd "$1" || exit 1
- if [ -f kobalt/src/Build.kt ]
- then
- clear
- reset
- echo -e "> Project: ${cyan}${1}${std} [Kobalt]"
- shift
- ./kobaltw $@ || exit 1
- pause
- fi
- cd "$pwd"
-}
-
-runMaven() {
- cd "$1" || exit 1
- if [ -f pom.xml ]
- then
- clear
- reset
- echo -e "> Project: ${cyan}${1}${std} [Maven]"
- shift
- mvn $@ || exit 1
- pause
- fi
- cd "$pwd"
-}
-
-updateWrappers() {
- clear
- ./updatewrappers.sh
- pause
-}
-
-checkDeps() {
- clear
- echo -e "${cyan}Checking depencencies...${std}"
- gradle --console=plain dU || exit 1
- read -p "Check Examples depencencies? [y/n] " cont
- clear
- case $cont in
- [Nn] ) return ;;
- * ) for ex in "${!examples[@]}"
- do
- runGradle $(echo "${examples[ex]}" | cut -d " " -f 1) dU
- runKobalt $(echo "${examples[ex]}" | cut -d " " -f 1) checkVersions
- runMaven $(echo "${examples[ex]}" | cut -d " " -f 1) versions:display-dependency-updates
- if [ "$ex" -eq "${#examples}" ]
- then
- read -p "Continue? [y/n]: " cont
- clear
- case $cont in
- * ) continue ;;
- [Nn] ) return ;;
- esac
- fi
- done ;;
- esac
-}
-
-gradleCheck() {
- clear
- echo -e "${cyan}Checking Gradle build....${std}"
- gradle $gradle_opts clean check $gradle_doc $gradle_sonar || exit 1
- pause
-}
-
-runExamples() {
- for ex in "${!examples[@]}"
- do
- runGradle ${examples[ex]} clean $gradle_opts
- runKobalt ${examples[ex]} clean
- runMaven $(echo "${examples[ex]}" | cut -d " " -f 1) clean $maven_args
- done
-}
-
-examplesMenu() {
- clear
- echo -e "${cyan}Examples${std}"
- for ex in "${!examples[@]}"
- do
- printf ' %d. %s\n' $(($ex + 1)) $(echo "${examples[ex]}" | cut -d " " -f 1)
- done
- echo " $((${#examples[@]} + 1)). Run All Examples"
- read -p "Enter choice [1-${#examples[@]}]: " choice
- clear
- case $choice in
- [0-9] ) if [ "$choice" -gt "${#examples[@]}" ]
- then
- runExamples
- examplesMenu
- else
- runGradle ${examples[$(($choice - 1))]}
- runKobalt ${examples[$(($choice - 1))]}
- runMaven $(echo "${examples[$(($choice - 1))]}" | cut -d " " -f 1) $maven_args
- examplesMenu
- fi ;;
- * ) return ;;
- esac
-}
-
-validateCopyrights() {
- clear
- echo -e "${cyan}Validating copyrights...${std}"
- for f in LICENSE.TXT ${src}/*${ext} ${test}/*${ext}
- do
- checkCopyright "$f"
- done
- pause
-}
-
-everything() {
- updateWrappers
- checkDeps
- gradleCheck
- runExamples
- validateCopyrights
-}
-
-showMenu() {
- clear
- echo "${cyan}Preflight Check${std}"
- echo " 1. Update Wrappers"
- echo " 2. Check Dependencies"
- echo " 3. Check Gradle Build"
- echo " 4. Run Examples"
- echo " 5. Validate Copyrights"
- echo " 6. Check Everything"
-}
-
-readOptions() {
- local choice
- read -p "Enter choice [1-6]: " choice
- case $choice in
- 1) updateWrappers ;;
- 2) checkDeps ;;
- 3) gradleCheck ;;
- 4) examplesMenu ;;
- 5) validateCopyrights ;;
- 6) everything ;;
- *) exit 0 ;;
- esac
-}
-
-while true
-do
- showMenu
- readOptions
-done
diff --git a/settings.gradle.kts b/settings.gradle.kts
index e9b895f..849893a 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -1,17 +1,2 @@
-plugins {
- id("com.gradle.enterprise").version("3.3.4")
-}
-
-gradleEnterprise {
- buildScan {
- link("GitHub", "https://github.com/ethauvin/semver-gradle/tree/master")
- if ("true" == System.getenv("CI")) {
- publishOnFailure()
- tag("CI")
- }
- termsOfServiceUrl = "https://gradle.com/terms-of-service"
- termsOfServiceAgree = "yes"
- }
-}
-
rootProject.name = "semver"
+enableFeaturePreview("STABLE_PUBLISHING")
\ No newline at end of file
diff --git a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverConfig.kt b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverConfig.kt
index 06a8f7b..6da6279 100644
--- a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverConfig.kt
+++ b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverConfig.kt
@@ -1,7 +1,7 @@
/*
* SemverConfig.kt
*
- * Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
+ * Copyright (c) 2018, Erik C. Thauvin (erik@thauvin.net)
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -29,18 +29,12 @@
* 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.gradle.semver
-import javax.inject.Inject
-
-open class SemverConfig @Inject constructor(
- private val semVersion: Version
-) {
+open class SemverConfig {
companion object {
const val DEFAULT_KEYS_PREFIX = "version."
- const val DEFAULT_PROPERTIES = "${DEFAULT_KEYS_PREFIX}properties"
- const val DEFAULT_SEMVER_KEY = "semver"
+ const val DEFAULT_PROPERTIES = "properties"
const val DEFAULT_MAJOR_KEY = "major"
const val DEFAULT_MINOR_KEY = "minor"
const val DEFAULT_PATCH_KEY = "patch"
@@ -52,10 +46,6 @@ open class SemverConfig @Inject constructor(
}
var properties = DEFAULT_PROPERTIES
-
- // Keys
- var semverKey = DEFAULT_SEMVER_KEY
- get() = "$keysPrefix$field"
var majorKey = DEFAULT_MAJOR_KEY
get() = "$keysPrefix$field"
var minorKey = DEFAULT_MINOR_KEY
@@ -73,51 +63,4 @@ open class SemverConfig @Inject constructor(
var separatorKey = DEFAULT_SEPARATOR
get() = "$keysPrefix$field"
var keysPrefix = DEFAULT_KEYS_PREFIX
-
- // Extension Properties
- val semver: String
- get() = semVersion.semver
- val version: String
- get() = semVersion.semver
- val major: Int
- get() = semVersion.major
- val minor: Int
- get() = semVersion.minor
- val patch: Int
- get() = semVersion.patch
- val preRelease: String
- get() = semVersion.preRelease
- val buildMeta: String
- get() = semVersion.buildMeta
- val preReleasePrefix: String
- get() = semVersion.preReleasePrefix
- val buildMetaPrefix: String
- get() = semVersion.buildMetaPrefix
- val separator: String
- get() = semVersion.separator
-
- override fun toString(): String {
- return "SemverConfig(" +
- "properties='$properties', " +
- "semverKey='$semverKey', " +
- "majorKey='$majorKey', " +
- "minorKey='$minorKey', " +
- "patchKey='$patchKey', " +
- "preReleaseKey='$preReleaseKey', " +
- "preReleasePrefixKey='$preReleasePrefixKey', " +
- "buildMetaKey='$buildMetaKey', " +
- "buildMetaPrefixKey='$buildMetaPrefixKey', " +
- "separator='$separatorKey', " +
- "keysPrefix='$keysPrefix', " +
- "semver='$semver', " +
- "major='$major', " +
- "minor='$minor', " +
- "patch='$patch', " +
- "preRelease='$preRelease', " +
- "buildMeta='$buildMeta', " +
- "preReleasePrefix='$preReleasePrefix', " +
- "buildMetaPrefix='$buildMetaPrefix', " +
- "separator='$separator'" +
- ')'
- }
-}
+}
\ No newline at end of file
diff --git a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementBuildMetaTask.kt b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementBuildMetaTask.kt
deleted file mode 100644
index 7463ba0..0000000
--- a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementBuildMetaTask.kt
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * SemverIncrementBuildMetaTask.kt
- *
- * Copyright (c) 2018-2020, 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.gradle.semver
-
-import org.gradle.api.DefaultTask
-import org.gradle.api.tasks.CacheableTask
-import org.gradle.api.tasks.Input
-import org.gradle.api.tasks.TaskAction
-import javax.inject.Inject
-
-@CacheableTask
-open class SemverIncrementBuildMetaTask @Inject constructor(
- private val config: SemverConfig,
- private val version: Version
-) : DefaultTask() {
- init {
- group = "version"
- description = "Increments Build version metadata."
- }
-
- @Suppress("MemberVisibilityCanBePrivate")
- @Input
- var buildMeta: String = ""
-
- @Suppress("unused")
- @TaskAction
- fun increment() {
- if (version.buildMeta != buildMeta) {
- version.buildMeta = buildMeta
- project.version = version.semver
- logger.lifecycle("Version: ${project.version}")
- Utils.saveProperties(project.projectDir, config, version)
- }
- }
-}
diff --git a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementTask.kt b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementTask.kt
index 9e5af44..a6e676d 100644
--- a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementTask.kt
+++ b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementTask.kt
@@ -1,7 +1,7 @@
/*
* SemverIncrementTask.kt
*
- * Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
+ * Copyright (c) 2018, Erik C. Thauvin (erik@thauvin.net)
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -29,35 +29,33 @@
* 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.gradle.semver
+import net.thauvin.erik.gradle.semver.SemverPlugin.Types
import org.gradle.api.DefaultTask
-import org.gradle.api.tasks.CacheableTask
+import org.gradle.api.tasks.Input
import org.gradle.api.tasks.TaskAction
-import javax.inject.Inject
-@CacheableTask
-open class SemverIncrementTask @Inject constructor(
- private val config: SemverConfig,
- private val version: Version,
- private val type: String
-) : DefaultTask() {
+open class SemverIncrementTask : DefaultTask() {
init {
group = "version"
- description = "Increments ${type.capitalize()} version number."
}
+ @Input
+ lateinit var config: SemverConfig
+
+ @Input
+ lateinit var version: Version
+
+ @Input
+ lateinit var type: Types
+
@Suppress("unused")
@TaskAction
fun increment() {
- version.increment(
- isMajor = type == SemverConfig.DEFAULT_MAJOR_KEY,
- isMinor = type == SemverConfig.DEFAULT_MINOR_KEY,
- isPatch = type == SemverConfig.DEFAULT_PATCH_KEY
- )
+ version.increment(isMajor = type == Types.MAJOR, isMinor = type == Types.MINOR, isPatch = type == Types.PATCH)
project.version = version.semver
- logger.lifecycle("Version: ${project.version}")
- Utils.saveProperties(project.projectDir, config, version)
+ logger.warn("Version: ${project.version}")
+ SemverPlugin.saveProperties(config, version)
}
-}
+}
\ No newline at end of file
diff --git a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverPlugin.kt b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverPlugin.kt
index 1e137e7..cf1143d 100644
--- a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverPlugin.kt
+++ b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverPlugin.kt
@@ -1,7 +1,7 @@
/*
* SemverPlugin.kt
*
- * Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
+ * Copyright (c) 2018, Erik C. Thauvin (erik@thauvin.net)
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -29,72 +29,96 @@
* 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.gradle.semver
import org.gradle.api.GradleException
import org.gradle.api.Plugin
import org.gradle.api.Project
-import org.gradle.util.GradleVersion
+import java.io.File
+import java.io.FileInputStream
+import java.io.FileOutputStream
+import java.util.Properties
class SemverPlugin : Plugin {
- private val simpleName = SemverPlugin::class.simpleName
private var version = Version()
private lateinit var config: SemverConfig
- override fun apply(project: Project) {
- if (GradleVersion.current() < GradleVersion.version("4.8.1")) {
- throw GradleException("The $simpleName plugin requires Gradle version 4.8.1 or greater.")
- }
- config = project.extensions.create("semver", SemverConfig::class.java, version)
- project.afterEvaluate(this::afterEvaluate)
+ enum class Types {
+ MAJOR, MINOR, PATCH
+ }
- project.tasks.apply {
- create("incrementMajor", SemverIncrementTask::class.java, config, version, SemverConfig.DEFAULT_MAJOR_KEY)
- create("incrementMinor", SemverIncrementTask::class.java, config, version, SemverConfig.DEFAULT_MINOR_KEY)
- create("incrementPatch", SemverIncrementTask::class.java, config, version, SemverConfig.DEFAULT_PATCH_KEY)
- create("incrementBuildMeta", SemverIncrementBuildMetaTask::class.java, config, version)
+ companion object {
+ fun saveProperties(config: SemverConfig, version: Version) {
+ Properties().apply {
+ put(config.majorKey, version.major)
+ put(config.minorKey, version.minor)
+ put(config.patchKey, version.patch)
+ put(config.preReleaseKey, version.preRelease)
+ put(config.buildMetaKey, version.buildMeta)
+ if (version.buildMetaPrefix != Version.DEFAULT_BUILDMETA_PREFIX)
+ put(config.buildMetaPrefixKey, version.buildMetaPrefix)
+ if (version.preReleasePrefix != Version.DEFAULT_PRERELEASE_PREFIX)
+ put(config.preReleasePrefixKey, version.preReleasePrefix)
+ if (version.separator != Version.DEFAULT_SEPARATOR)
+ put(config.separatorKey, version.separator)
+ FileOutputStream(config.properties).use { output ->
+ store(output, "Generated by the Semver Plugin for Gradle")
+ }
+ }
+ }
+ }
+
+ override fun apply(project: Project?) {
+ project!!.afterEvaluate(this::afterEvaluate)
+ config = project.extensions.create("semver", SemverConfig::class.java)
+
+ project.tasks.create("incrementMajor", SemverIncrementTask::class.java) {
+ description = "Increments Major version number."
+ config = this@SemverPlugin.config
+ version = this@SemverPlugin.version
+ type = Types.MAJOR
+ }
+
+ project.tasks.create("incrementMinor", SemverIncrementTask::class.java) {
+ description = "Increments Minor version number."
+ config = this@SemverPlugin.config
+ version = this@SemverPlugin.version
+ type = Types.MINOR
+ }
+
+ project.tasks.create("incrementPatch", SemverIncrementTask::class.java) {
+ description = "Increments Patch version number."
+ config = this@SemverPlugin.config
+ version = this@SemverPlugin.version
+ type = Types.PATCH
}
}
private fun afterEvaluate(project: Project) {
- val propsFile = Utils.getPropertiesFile(project.projectDir, config.properties)
-
if (project.version != "unspecified") {
- project.logger.warn(
- "Please specify the version in ${propsFile.name} and remove it from ${project.buildFile.name}"
- )
+ project.logger.warn("Please specify the version in ${config.properties} and remove it from ${project.buildFile.name}")
}
+ File(config.properties).apply {
- propsFile.apply {
- val isNew = !exists()
-
- project.logger.info(
- "[$simpleName] Attempting to read properties from: `$absoluteFile`. " +
- "[exists: $isNew, isFile: $isFile, canRead: ${canRead()}]"
- )
-
- val props = Utils.loadProperties(this)
- val requiredProps = setOf(
- config.semverKey, config.majorKey, config.minorKey, config.patchKey,
- config.preReleaseKey, config.buildMetaKey
- )
- val hasReqProps = !isNew && props.stringPropertyNames().containsAll(requiredProps) &&
- Utils.isNotSystemProperty(requiredProps)
-
- Utils.loadVersion(config, version, props)
-
- project.tasks.withType(SemverIncrementBuildMetaTask::class.java) {
- buildMeta = version.buildMeta
- }
-
- project.version = version.semver
- project.logger.info("[$simpleName] Project version set to: ${project.version}")
-
- if (!hasReqProps || !isFile) {
- project.logger.info("[$simpleName] Saving version properties to `$absoluteFile`.")
- Utils.saveProperties(project.projectDir, config, version)
+ if (canRead()) {
+ FileInputStream(this).use { fis ->
+ Properties().apply {
+ load(fis)
+ version.major = getProperty(config.majorKey, Version.DEFAULT_MAJOR)
+ version.minor = getProperty(config.minorKey, Version.DEFAULT_MINOR)
+ version.patch = getProperty(config.patchKey, Version.DEFAULT_PATCH)
+ version.preRelease = getProperty(config.preReleaseKey, Version.DEFAULT_EMPTY)
+ version.preReleasePrefix = getProperty(config.preReleasePrefixKey, Version.DEFAULT_PRERELEASE_PREFIX)
+ version.buildMeta = getProperty(config.buildMetaKey, Version.DEFAULT_EMPTY)
+ version.buildMetaPrefix = getProperty(config.buildMetaPrefixKey, Version.DEFAULT_BUILDMETA_PREFIX)
+ version.separator = getProperty(config.separatorKey, Version.DEFAULT_SEPARATOR)
+ project.version = version.semver
+ }
+ }
+ } else if (exists()) {
+ throw GradleException("Unable to read version from ${config.properties}")
}
+ saveProperties(config, version)
}
}
-}
+}
\ No newline at end of file
diff --git a/src/main/kotlin/net/thauvin/erik/gradle/semver/SortedProperties.kt b/src/main/kotlin/net/thauvin/erik/gradle/semver/SortedProperties.kt
deleted file mode 100644
index 1a99d15..0000000
--- a/src/main/kotlin/net/thauvin/erik/gradle/semver/SortedProperties.kt
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * SortedProperties.kt
- *
- * Copyright (c) 2018-2020, 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.gradle.semver
-
-import java.util.Collections
-import java.util.Enumeration
-import java.util.Properties
-
-internal class SortedProperties : Properties() {
- override val entries: MutableSet>
- get() = super.entries.sortedWith(Comparator { a, b -> a.toString().compareTo(b.toString()) }).toMutableSet()
-
- override fun keys(): Enumeration {
- val keys = Collections.list(super.keys())
- keys.sortWith(Comparator { a, b -> a.toString().compareTo(b.toString()) })
- return Collections.enumeration(keys)
- }
-}
diff --git a/src/main/kotlin/net/thauvin/erik/gradle/semver/Utils.kt b/src/main/kotlin/net/thauvin/erik/gradle/semver/Utils.kt
deleted file mode 100644
index e7cd681..0000000
--- a/src/main/kotlin/net/thauvin/erik/gradle/semver/Utils.kt
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * Utils.kt
- *
- * Copyright (c) 2018-2020, 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.gradle.semver
-
-import org.gradle.api.GradleException
-import java.io.File
-import java.io.FileInputStream
-import java.io.FileOutputStream
-import java.io.IOException
-import java.util.Properties
-
-/**
- * The Utils class.
- *
- * @author Erik C. Thauvin
- * @created 2019-04-10
- * @since 1.0
- */
-object Utils {
- fun File.canReadFile(): Boolean {
- return canRead() && isFile
- }
-
- private fun Properties.put(key: String, value: String, isValidCondition: Boolean) {
- if (isValidCondition) put(key, value)
- }
-
- fun isNotSystemProperty(keys: Set): Boolean {
- keys.forEach {
- if (System.getProperties().containsKey(it)) return false
- }
- return true
- }
-
- fun getPropertiesFile(projectDir: File, propsFile: String): File {
- return if (File(propsFile).isAbsolute) {
- File(propsFile)
- } else {
- File(projectDir, propsFile)
- }
- }
-
- fun loadProperties(file: File): Properties {
- var isNew = false
- val props = Properties()
- file.apply {
- try {
- if (!exists() && createNewFile()) {
- isNew = true
- }
- } catch (e: IOException) {
- throw GradleException("Unable to create: `$absoluteFile`", e)
- }
- if (canReadFile()) {
- FileInputStream(this).reader().use { reader ->
- props.apply {
- if (!isNew) {
- load(reader)
- }
- }
- }
- } else {
- throw GradleException("Unable to read version from: `$absoluteFile`")
- }
- }
- return props
- }
-
- fun loadIntProperty(props: Properties, key: String, default: Int): Int {
- try {
- return loadProperty(props, key, default.toString()).toInt()
- } catch (e: java.lang.NumberFormatException) {
- throw GradleException("Unable to parse $key property. (${e.message})", e)
- }
- }
-
- fun loadProperty(props: Properties, key: String, default: String): String {
- return System.getProperty(key, if (props.isNotEmpty()) props.getProperty(key, default) else default)
- }
-
- fun loadVersion(config: SemverConfig, version: Version, props: Properties) {
- props.apply {
- if (!parseSemVer(System.getProperty(config.semverKey), version)) {
- version.major = loadIntProperty(this, config.majorKey, Version.DEFAULT_MAJOR)
- version.minor = loadIntProperty(this, config.minorKey, Version.DEFAULT_MINOR)
- version.patch = loadIntProperty(this, config.patchKey, Version.DEFAULT_PATCH)
- version.preRelease = loadProperty(this, config.preReleaseKey, Version.DEFAULT_EMPTY)
- version.buildMeta = loadProperty(this, config.buildMetaKey, Version.DEFAULT_EMPTY)
- }
-
- if (!isEmpty) {
- version.preReleasePrefix =
- getProperty(config.preReleasePrefixKey, Version.DEFAULT_PRERELEASE_PREFIX)
- version.buildMetaPrefix =
- getProperty(config.buildMetaPrefixKey, Version.DEFAULT_BUILDMETA_PREFIX)
- version.separator = getProperty(config.separatorKey, Version.DEFAULT_SEPARATOR)
- }
- }
- }
-
- fun parseSemVer(input: String?, version: Version): Boolean {
- if (input.isNullOrBlank()) return false
-
- try {
- val max = 5
- val min = 3
-
- val parts = input.split(
- Regex("[\\Q${version.separator}${version.preReleasePrefix}${version.buildMetaPrefix}\\E]"),
- max
- )
-
- if (parts.size >= min) {
- version.major = parts[0].toInt()
- version.minor = parts[1].toInt()
- version.patch = parts[2].toInt()
- version.preRelease = ""
- version.buildMeta = ""
-
- if (parts.size > min) {
- when {
- parts.size == max -> {
- version.preRelease = parts[3]
- version.buildMeta = parts[4]
- }
- parts.size == 4 -> {
- if (input.endsWith(version.buildMetaPrefix + parts[3])) {
- version.buildMeta = parts[3]
- } else {
- version.preRelease = parts[3]
- }
- }
- }
- }
- } else {
- throw NumberFormatException("Not enough parts.")
- }
- } catch (e: NumberFormatException) {
- throw GradleException("Unable to parse version: \"$input\" (${e.message})", e)
- }
-
- return true
- }
-
- fun saveProperties(projectDir: File, config: SemverConfig, version: Version) {
- val propsFile = getPropertiesFile(projectDir, config.properties)
- SortedProperties().apply {
- try {
- propsFile.apply {
- if (canReadFile()) {
- FileInputStream(this).reader().use { load(it) }
- } else {
- createNewFile()
- }
-
- put(config.semverKey, version.semver)
- put(config.majorKey, version.major.toString())
- put(config.minorKey, version.minor.toString())
- put(config.patchKey, version.patch.toString())
- put(config.preReleaseKey, version.preRelease)
- put(config.buildMetaKey, version.buildMeta)
- put(config.semverKey, version.semver)
-
- put(
- config.buildMetaPrefixKey, version.buildMetaPrefix,
- version.buildMetaPrefix != Version.DEFAULT_BUILDMETA_PREFIX ||
- containsKey(config.buildMetaPrefixKey)
- )
- put(
- config.preReleasePrefixKey, version.preReleasePrefix,
- version.preReleasePrefix != Version.DEFAULT_PRERELEASE_PREFIX ||
- containsKey(config.preReleasePrefixKey)
- )
- put(
- config.separatorKey, version.separator,
- version.separator != Version.DEFAULT_SEPARATOR ||
- containsKey(config.separatorKey)
- )
-
- if (canWrite()) {
- FileOutputStream(this).writer().use {
- store(it, "Generated by the Semver Plugin for Gradle")
- }
- } else {
- throw IOException("Can't write.")
- }
- }
- } catch (e: IOException) {
- throw GradleException("Unable to write version to: `${propsFile.absoluteFile}`", e)
- }
- }
- }
-}
diff --git a/src/main/kotlin/net/thauvin/erik/gradle/semver/Version.kt b/src/main/kotlin/net/thauvin/erik/gradle/semver/Version.kt
index eedbf38..c862f9b 100644
--- a/src/main/kotlin/net/thauvin/erik/gradle/semver/Version.kt
+++ b/src/main/kotlin/net/thauvin/erik/gradle/semver/Version.kt
@@ -1,7 +1,7 @@
/*
* Version.kt
*
- * Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
+ * Copyright (c) 2018, Erik C. Thauvin (erik@thauvin.net)
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -29,14 +29,13 @@
* 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.gradle.semver
class Version {
companion object {
- const val DEFAULT_MAJOR: Int = 1
- const val DEFAULT_MINOR: Int = 0
- const val DEFAULT_PATCH: Int = 0
+ const val DEFAULT_MAJOR: String = "1"
+ const val DEFAULT_MINOR: String = "0"
+ const val DEFAULT_PATCH: String = "0"
const val DEFAULT_EMPTY: String = ""
const val DEFAULT_PRERELEASE_PREFIX = "-"
const val DEFAULT_BUILDMETA_PREFIX = "+"
@@ -54,32 +53,19 @@ class Version {
val semver: String
get() = "$major$separator$minor$separator$patch" +
- (if (preRelease.isNotEmpty()) "$preReleasePrefix$preRelease" else "") +
- (if (buildMeta.isNotEmpty()) "$buildMetaPrefix$buildMeta" else "")
+ (if (preRelease.isNotEmpty()) "$preReleasePrefix$preRelease" else "") +
+ (if (buildMeta.isNotEmpty()) "$buildMetaPrefix$buildMeta" else "")
fun increment(isMajor: Boolean = false, isMinor: Boolean = false, isPatch: Boolean = false) {
if (isMajor) {
- major++
+ major = (major.toInt() + 1).toString()
minor = DEFAULT_MINOR
patch = DEFAULT_PATCH
}
if (isMinor) {
- minor++
+ minor = (minor.toInt() + 1).toString()
patch = DEFAULT_PATCH
}
- if (isPatch) patch++
- }
-
- override fun toString(): String {
- return "Version(" +
- "major='$major', " +
- "minor='$minor', " +
- "patch='$patch', " +
- "preRelease='$preRelease', " +
- "preReleasePrefix='$preReleasePrefix', " +
- "buildMeta='$buildMeta', " +
- "buildMetaPrefix='$buildMetaPrefix', " +
- "separator='$separator', " +
- ')'
+ if (isPatch) patch = (patch.toInt() + 1).toString()
}
}
diff --git a/src/test/kotlin/net/thauvin/erik/gradle/semver/SemverConfigSpec.kt b/src/test/kotlin/net/thauvin/erik/gradle/semver/SemverConfigSpec.kt
index 45105a0..ef3210c 100644
--- a/src/test/kotlin/net/thauvin/erik/gradle/semver/SemverConfigSpec.kt
+++ b/src/test/kotlin/net/thauvin/erik/gradle/semver/SemverConfigSpec.kt
@@ -1,7 +1,7 @@
/*
* SemverConfigSpec.kt
*
- * Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
+ * Copyright (c) 2018, Erik C. Thauvin (erik@thauvin.net)
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -29,60 +29,21 @@
* 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.gradle.semver
-import org.spekframework.spek2.Spek
-import org.spekframework.spek2.style.gherkin.Feature
-import kotlin.test.assertEquals
+import org.jetbrains.spek.api.Spek
+import org.jetbrains.spek.api.dsl.describe
+import org.jetbrains.spek.api.dsl.given
+import org.jetbrains.spek.api.dsl.it
+import org.jetbrains.spek.api.dsl.on
import kotlin.test.assertTrue
@Suppress("unused")
object SemverConfigSpec : Spek({
- Feature("SemverConfig") {
- val config = SemverConfig(Version())
- Scenario("Testing configs") {
+ describe("config test") {
+ given("a config") {
+ val config = SemverConfig()
val vars = listOf(
- config.semverKey,
- config.majorKey,
- config.minorKey,
- config.patchKey,
- config.preReleaseKey,
- config.preReleasePrefixKey,
- config.buildMetaKey,
- config.buildMetaPrefixKey,
- config.separatorKey
- )
- val defaults = listOf(
- SemverConfig.DEFAULT_SEMVER_KEY,
- SemverConfig.DEFAULT_MAJOR_KEY,
- SemverConfig.DEFAULT_MINOR_KEY,
- SemverConfig.DEFAULT_PATCH_KEY,
- SemverConfig.DEFAULT_PRERELEASE_KEY,
- SemverConfig.DEFAULT_PRERELEASE_PREFIX_KEY,
- SemverConfig.DEFAULT_BUILDMETA_KEY,
- SemverConfig.DEFAULT_BUILDMETA_PREFIX_KEY,
- SemverConfig.DEFAULT_SEPARATOR
- )
-
- When("checking defaults") {}
-
- defaults.forEachIndexed { i, d ->
- Then(" ${vars[i]} should be the same: ${config.keysPrefix}$d") {
- assertEquals(vars[i], "${config.keysPrefix}$d")
- }
- }
-
- Then("config.properties should be version.properties") {
- assertEquals(config.properties, "version.properties")
- }
-
- lateinit var newKeys: List
-
- When("setting keyPrefix to test.") {
- config.keysPrefix = "test."
- newKeys = listOf(
- config.semverKey,
config.majorKey,
config.minorKey,
config.patchKey,
@@ -91,34 +52,42 @@ object SemverConfigSpec : Spek({
config.buildMetaKey,
config.buildMetaPrefixKey,
config.separatorKey
- )
- }
-
- Then("all config keys should start with test.xxxx") {
- newKeys.forEach { k ->
- assertTrue(k.startsWith("test."), k)
+ )
+ val defaults = listOf(
+ SemverConfig.DEFAULT_MAJOR_KEY,
+ SemverConfig.DEFAULT_MINOR_KEY,
+ SemverConfig.DEFAULT_PATCH_KEY,
+ SemverConfig.DEFAULT_PRERELEASE_KEY,
+ SemverConfig.DEFAULT_PRERELEASE_PREFIX_KEY,
+ SemverConfig.DEFAULT_BUILDMETA_KEY,
+ SemverConfig.DEFAULT_BUILDMETA_PREFIX_KEY,
+ SemverConfig.DEFAULT_SEPARATOR
+ )
+ on("defaults") {
+ defaults.forEachIndexed { i, d ->
+ it("should be the same: ${vars[i]}, ${config.keysPrefix}$d") {
+ assertTrue(vars[i] == "${config.keysPrefix}$d")
+ }
}
}
+ on("set keys to test.xxx") {
+ config.keysPrefix = "test."
+ val keys = listOf(
+ config.majorKey,
+ config.minorKey,
+ config.patchKey,
+ config.preReleaseKey,
+ config.preReleasePrefixKey,
+ config.buildMetaKey,
+ config.buildMetaPrefixKey,
+ config.separatorKey)
- When("checking extension properties") {}
-
- Then("semver should be defaults") {
- val defaultSemver =
- "${Version.DEFAULT_MAJOR}${Version.DEFAULT_SEPARATOR}${Version.DEFAULT_MINOR}${Version.DEFAULT_SEPARATOR}${Version.DEFAULT_PATCH}"
- assertEquals(config.semver, defaultSemver)
- assertEquals(
- "${config.major}${config.separator}${config.minor}${config.separator}${config.patch}",
- defaultSemver
- )
- assertEquals(config.preRelease, Version.DEFAULT_EMPTY)
- assertEquals(config.buildMeta, Version.DEFAULT_EMPTY)
- assertEquals(config.preReleasePrefix, Version.DEFAULT_PRERELEASE_PREFIX)
- assertEquals(config.buildMetaPrefix, Version.DEFAULT_BUILDMETA_PREFIX)
- }
-
- Then("semver = version") {
- assertEquals(config.semver, config.version)
+ keys.forEach { k ->
+ it("should all start with test.xxx: $k") {
+ assertTrue(k.startsWith("test."))
+ }
+ }
}
}
}
-})
+})
\ No newline at end of file
diff --git a/src/test/kotlin/net/thauvin/erik/gradle/semver/SemverVersionSpec.kt b/src/test/kotlin/net/thauvin/erik/gradle/semver/SemverVersionSpec.kt
index 3dc5f1e..5555b3f 100644
--- a/src/test/kotlin/net/thauvin/erik/gradle/semver/SemverVersionSpec.kt
+++ b/src/test/kotlin/net/thauvin/erik/gradle/semver/SemverVersionSpec.kt
@@ -1,7 +1,7 @@
/*
* SemverVersionSpec.kt
*
- * Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
+ * Copyright (c) 2018, Erik C. Thauvin (erik@thauvin.net)
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -29,175 +29,94 @@
* 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.gradle.semver
-import org.spekframework.spek2.Spek
-import org.spekframework.spek2.style.gherkin.Feature
+import org.jetbrains.spek.api.Spek
+import org.jetbrains.spek.api.dsl.describe
+import org.jetbrains.spek.api.dsl.given
+import org.jetbrains.spek.api.dsl.it
+import org.jetbrains.spek.api.dsl.on
import kotlin.test.assertEquals
@Suppress("unused")
object SemverVersionSpec : Spek({
- Feature("SemverVersion") {
- val version = Version()
- Scenario("Testing Versions") {
- When("validating default version") {}
-
- Then("major should be 1") {
- assertEquals(1, version.major)
- }
-
- Then("minor should be 1") {
- assertEquals(0, version.minor)
- }
-
- Then("patch should be 0") {
- assertEquals(0, version.patch)
- }
-
- Then("prerelease should be empty") {
- assertEquals("", version.preRelease)
- }
-
- Then("meta should be empty") {
- assertEquals("", version.buildMeta)
- }
-
- Then("preRelease prefix should be -") {
- assertEquals("-", version.preReleasePrefix)
- }
-
- Then("meta prefix should be +") {
- assertEquals("+", version.buildMetaPrefix)
- }
-
- Then("separator should be .") {
- assertEquals(".", version.separator)
- }
-
- Then("version should be 1.0.0") {
- assertEquals("1.0.0", version.semver)
- }
-
- When("incrementing major") {
+ describe("version test") {
+ given("a version") {
+ val version = Version()
+ on("increment major") {
version.increment(isMajor = true)
+ it("should return 2.0.0") {
+ assertEquals("2.0.0", version.semver)
+ }
}
-
- Then("should return 2.0.0") {
- assertEquals("2.0.0", version.semver)
- }
-
- When("incrementing minor") {
+ on("increment minor") {
version.increment(isMinor = true)
+ it("should return 2.1.0") {
+ assertEquals("2.1.0", version.semver)
+ }
}
-
- Then("should return 2.1.0") {
- assertEquals("2.1.0", version.semver)
- }
-
- When("incrementing patch") {
+ on("increment patch") {
version.increment(isPatch = true)
+ it("should return 2.1.1") {
+ assertEquals("2.1.1", version.semver)
+ }
}
-
- Then("should return 2.1.1") {
- assertEquals("2.1.1", version.semver)
- }
-
- When("incrementing minor again") {
+ on("increment patch") {
version.increment(isMinor = true)
+ it("should return 2.1.0") {
+ assertEquals("2.1.0", version.semver)
+ }
}
-
- Then("should return 2.2.0") {
- assertEquals("2.2.0", version.semver)
- }
-
- When("incrementing major again") {
+ on("increment patch") {
version.increment(isMajor = true)
+ it("should return 3.0.0") {
+ assertEquals("3.0.0", version.semver)
+ }
}
-
- Then("should return 3.0.0") {
- assertEquals("3.0.0", version.semver)
+ on("increment all") {
+ version.increment(true, true, true)
+ it("should return 3.1.1") {
+ assertEquals("3.1.1", version.semver)
+ }
}
-
- When("incrementing all") {
- version.increment(isMajor = true, isMinor = true, isPatch = true)
+ on("reset version") {
+ version.major = "1"
+ version.minor = "0"
+ version.patch = "0"
+ it("should return 1.0.0") {
+ assertEquals("1.0.0", version.semver)
+ }
}
-
- Then("should return 4.1.1") {
- assertEquals("4.1.1", version.semver)
- }
-
- When("incrementing major and minor") {
- version.increment(isMajor = true, isMinor = true)
- }
-
- Then("should return 5.1.0") {
- assertEquals("5.1.0", version.semver)
- }
-
- When("incrementing minor and patch") {
- version.increment(isMinor = true, isPatch = true)
- }
- Then("should return 5.2.1") {
- assertEquals("5.2.1", version.semver)
- }
-
- When("incrementing nothing") {
- version.increment()
- }
- Then("should still return 5.2.1") {
- assertEquals("5.2.1", version.semver)
- }
-
- When("resetting version") {
- version.major = 1
- version.minor = 0
- version.patch = 0
- }
-
- Then("should return 1.0.0") {
- assertEquals("1.0.0", version.semver)
- }
-
- When("adding prerelease") {
+ on("add prerelease") {
version.preRelease = "beta"
+ it("should return 1.0.0-beta") {
+ assertEquals("1.0.0-beta", version.semver)
+ }
}
-
- Then("should return 1.0.0-beta") {
- assertEquals("1.0.0-beta", version.semver)
- }
-
- When("adding metadata") {
+ on("add metadata") {
version.buildMeta = "007"
+ it("should return 1.0.0-beta+007") {
+ assertEquals("1.0.0-beta+007", version.semver)
+ }
}
-
- Then("should return 1.0.0-beta+007") {
- assertEquals("1.0.0-beta+007", version.semver)
- }
-
- When("changing prerelease prefix") {
+ on("change prerelease prefix") {
version.preReleasePrefix = "--"
+ it("should return 1.0.0--beta+007") {
+ assertEquals("1.0.0--beta+007", version.semver)
+ }
}
-
- Then("should return 1.0.0--beta+007") {
- assertEquals("1.0.0--beta+007", version.semver)
- }
-
- When("changing meta prefix") {
+ on("change prerelease prefix") {
version.buildMetaPrefix = "++"
+ it("should return 1.0.0--beta+=007") {
+ assertEquals("1.0.0--beta++007", version.semver)
+ }
}
-
- Then("should return 1.0.0--beta++007") {
- assertEquals("1.0.0--beta++007", version.semver)
- }
-
- When("changing separator") {
+ on("change sperator") {
version.separator = "-"
- }
-
- Then("should return 1-0-0--beta++007") {
- assertEquals("1-0-0--beta++007", version.semver)
+ it("should return 1-0-0--beta+007") {
+ assertEquals("1-0-0--beta+007", version.semver)
+ }
}
}
}
-})
+})
\ No newline at end of file
diff --git a/src/test/kotlin/net/thauvin/erik/gradle/semver/UtilsSpec.kt b/src/test/kotlin/net/thauvin/erik/gradle/semver/UtilsSpec.kt
deleted file mode 100644
index 3ad050f..0000000
--- a/src/test/kotlin/net/thauvin/erik/gradle/semver/UtilsSpec.kt
+++ /dev/null
@@ -1,269 +0,0 @@
-/*
- * UtilsSpec.kt
- *
- * Copyright (c) 2018-2020, 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.gradle.semver
-
-import net.thauvin.erik.gradle.semver.Utils.canReadFile
-import org.gradle.api.GradleException
-import org.spekframework.spek2.Spek
-import org.spekframework.spek2.style.gherkin.Feature
-import java.io.File
-import java.util.*
-import kotlin.test.assertEquals
-import kotlin.test.assertFailsWith
-import kotlin.test.assertNull
-import kotlin.test.assertTrue
-
-@Suppress("unused")
-object UtilsSpec : Spek(
- {
- Feature("Utils") {
- val version = Version()
- val config = SemverConfig(version)
- val propsFile = File("test.properties")
- val projectDir = File("./")
- lateinit var props: Properties
-
- Scenario("Save/Load Properties") {
- When("saving the property") {
- config.properties = propsFile.name
- Utils.saveProperties(projectDir, config, version)
- }
-
- Then("properties file should exists and be readable") {
- assertEquals(propsFile.canReadFile(), propsFile.canRead() && propsFile.isFile)
- }
-
- When("loading the properties file") {
- props = Utils.loadProperties(propsFile)
- propsFile.delete()
- }
-
- Then("version and properties should be the same.") {
- assertEquals(props.getProperty(config.majorKey), version.major.toString(), "Major")
- assertEquals(props.getProperty(config.minorKey), version.minor.toString(), "Minor")
- assertEquals(props.getProperty(config.patchKey), version.patch.toString(), "Patch")
- assertEquals(props.getProperty(config.preReleaseKey), version.preRelease, "PreRelease")
- assertNull(props.getProperty(config.preReleasePrefixKey), "PreRelease Prefix")
- assertEquals(props.getProperty(config.buildMetaKey), version.buildMeta, "Build Meta")
- assertNull(props.getProperty(config.buildMetaPrefixKey), "Build Meta Prefix")
- assertNull(props.getProperty(config.separatorKey), "Separator")
- assertEquals(props.getProperty(config.semverKey), version.semver, "semver")
- }
- }
-
- Scenario("System Properties") {
- lateinit var sysProps: Array>
-
- Given("new system properties") {
- sysProps = arrayOf(
- Pair(config.majorKey, "2"),
- Pair(config.minorKey, "1"),
- Pair(config.patchKey, "1"),
- Pair(config.preReleaseKey, "beta"),
- Pair(config.buildMetaKey, "007")
- )
- }
-
- Then("none should already exists") {
- assertTrue(
- Utils.isNotSystemProperty(
- setOf(
- config.majorKey,
- config.minorKey,
- config.patchKey,
- config.preReleaseKey,
- config.buildMetaKey
- )
- )
- )
- }
-
- Then("version should match system properties") {
- sysProps.forEach {
- System.getProperties().setProperty(it.first, it.second)
- if (it.first == config.majorKey || it.first == config.minorKey || it.first == config.patchKey) {
- assertEquals(Utils.loadIntProperty(props, it.first, -1), it.second.toInt())
- } else {
- assertEquals(Utils.loadProperty(props, it.first, ""), it.second)
- }
- }
- }
-
- When("loading version") {
- Utils.loadVersion(config, version, props)
- }
-
- Then("version should be identical") {
- assertEquals(version.semver, "2.1.1-beta+007")
- }
-
- When("saving properties") {
- Utils.saveProperties(projectDir, config, version)
- }
-
- lateinit var newProps: Properties
-
- And("loading properties file") {
- newProps = Utils.loadProperties(propsFile)
- }
-
- Then("new properties should validate") {
- sysProps.forEach {
- assertEquals(newProps.getProperty(it.first), it.second, it.second)
- }
- propsFile.delete()
- }
-
- When("setting the version as system property") {
- System.getProperties().setProperty(config.semverKey, "3.2.2")
- }
-
- And("loading the properties") {
- Utils.loadVersion(config, version, props)
- }
-
- Then("versions should match") {
- assertEquals(version.semver, System.getProperty(config.semverKey))
- }
- }
-
- Scenario("Version Parsing") {
- When("validating version parsing") {}
-
- Then("versions should parse") {
- listOf(
- "1.0.0",
- "2.1.0-beta",
- "3.2.1-beta+007",
- "4.3.2+007",
- "11.11.1",
- "111.11.11-beta",
- "1111.111.11-beta+001.12"
- ).forEach {
- assertTrue(Utils.parseSemVer(it, version), "parsing semver: $it")
- assertEquals(it, version.semver, it)
- }
- }
-
- Then("should throw exceptions") {
- assertFailsWith("2.1.1a") {
- Utils.parseSemVer("2.1.1a", version)
- }
- assertFailsWith("2a.1.1") {
- Utils.parseSemVer("2a.1.1", version)
- }
- assertFailsWith("2.1a.1") {
- Utils.parseSemVer("2.1a.1", version)
- }
- assertFailsWith("2.1") {
- Utils.parseSemVer("2.1", version)
- }
- }
-
- Given("new prefixes") {
- version.preReleasePrefix = "."
- version.buildMetaPrefix = "."
- }
-
- Then("prefixes should parse") {
- listOf("2.1.0.beta.1", "2.1.1.1", "3.2.1.beta.1.007").forEach {
- assertTrue(Utils.parseSemVer(it, version), "parsing semver: $it")
- assertEquals(it, version.semver, it)
- }
- }
-
- Then("last pre-release and meta should match") {
- assertEquals(version.preRelease, "beta")
- assertEquals(version.buildMeta, "1.007")
- }
- }
-
- Scenario("Load locked properties") {
- lateinit var locked: File
-
- Given("the locked location") {
- locked = File("locked")
- }
-
- Then("loading locked properties") {
- assertFailsWith {
- Utils.loadProperties(File(locked, propsFile.name))
- }
- locked.delete()
- }
- }
-
- Scenario("Save to locked properties") {
- lateinit var propsLocked: File
- Given("the locked properties") {
- propsLocked = File(System.getProperty("user.home") + File.separator + "locked.properties")
- propsLocked.createNewFile()
- propsLocked.setReadOnly()
- config.properties = propsLocked.name
- }
-
- Then("saving the locked properties file") {
- assertFailsWith {
- Utils.saveProperties(propsLocked.parentFile, config, version)
- }
- propsLocked.delete()
- }
- }
-
- Scenario("Save/Load Properties in foo") {
- lateinit var fooDir: File
- lateinit var fooProps: File
- When("saving the foo property") {
- fooDir = File("foo")
- fooDir.mkdir()
- fooProps = File(fooDir, propsFile.name)
- config.properties = fooProps.absolutePath
- Utils.saveProperties(projectDir, config, version)
- }
-
- Then("foo properties file should exists and be readable") {
- assertEquals(fooProps.canReadFile(), fooProps.canRead() && fooProps.isFile)
- }
-
- When("loading the foo properties file") {
- props = Utils.loadProperties(fooProps)
- fooProps.delete()
- fooDir.delete()
- }
-
- Then("version in foo properties should be the same") {
- assertEquals(props.getProperty(config.semverKey), version.semver)
- }
- }
- }
- }
-)
diff --git a/updatewrappers.sh b/updatewrappers.sh
deleted file mode 100644
index e98cca5..0000000
--- a/updatewrappers.sh
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/bin/bash
-
-
-#
-# Version: 1.0.2
-#
-
-# set the examples directories
-declare -a dirs=(
- "${PWD##*/}"
- "examples/java"
- "examples/kotlin"
- "examples/annotation-processor/java"
- "examples/annotation-processor/kotlin")
-java8=true
-
-###
-
-pwd=$PWD
-cyan=$(tput setaf 6)
-green=$(tput setaf 2)
-red=$(tput setaf 1)
-std=$(tput sgr0)
-
-if [ "$java8" = true ]
-then
- export JAVA_HOME="$JAVA8_HOME"
- export PATH="$(cygpath "$JAVA_HOME")/bin:$PATH"
-fi
-
-kVer=$(kobaltw --version | awk '{print substr($2, 1, length($2)-1)}')
-updateWrappers() {
- curVer="$(gradle --version | awk '/Gradle/ {print $2}')"
- if [ -d gradle ]; then
- if [ "$curVer" != "$(./gradlew --version | awk '/Gradle/ {print $2}')" ]; then
- gradle -q --console=plain wrapper
- echo -e " $(./gradlew --version | awk '/Gradle/') ${green}UPDATED${std}"
- else
- echo -e " Gradle $curVer UP-TO-DATE"
- fi
- fi
- if [ -d kobalt ]; then
- kw=$(cut -d "=" -f 2 kobalt/wrapper/kobalt-wrapper.properties)
- if [ "$kw" = "$kVer" ]
- then
- echo -e " Kobalt $kw UP-TO-DATE"
- else
- echo -e "kobalt.version=$kVer" > kobalt/wrapper/kobalt-wrapper.properties
- echo -e " Kobalt $kVer ${green}UPDATED${std}"
- fi
- fi
-}
-
-echo -e "Updating wrappers..."
-
-for d in "${!dirs[@]}"; do
- if [ "$d" -ne 0 ]; then
- cd "${dirs[d]}" || exit 1
- fi
- echo -e " ${cyan}${dirs[d]}${std}"
- updateWrappers
- cd "$pwd"
-done