Skip to content

Commit

Permalink
CORDA-3224 Java 11 support tweaks. (#251)
Browse files Browse the repository at this point in the history
* Added support for corda artifacts published with jdkClassifier (eg. JDK11 support).
* Support for multiple JDK versions on Macos.
* Bump version label and added changelog entry.
* Update changelog entry.
* Revert version label + changelog update.
* Add static regex declarations for corda versioned fat jar artifacts.
* Address PR review feedback.
  • Loading branch information
josecoll authored and chrisr3 committed Sep 25, 2019
1 parent bfec3ed commit 2649981
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 7 deletions.
4 changes: 4 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@

### Version 5.0.4

* `cordformation`: remove hard dependency on java 1.8 for macos in runnodes (and allow for usage of JAVA_HOME if set)

* `cordformation`: add support for classifier (eg. jdk11) in detection of corda runtime artifacts (eg. corda.jar, test-server.jar).

### Version 5.0.3

* `quasar-utils`: Add `excludeClassLoaders` option to the `quasar` extension. This option requires Quasar 0.7.12_r3 and above, excluding 0.8.0.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,10 @@ class Cordformation : Plugin<Project> {
fun verifyAndGetRuntimeJar(project: Project, jarName: String): File {
val releaseVersion = project.findRootProperty<String>("corda_release_version")
?: throw IllegalStateException("Could not find a valid declaration of \"corda_release_version\"")
// need to cater for optional classifier (eg. corda-4.3-jdk11.jar)
val pattern = "\\Q$jarName\\E(-enterprise)?-\\Q$releaseVersion\\E(-.+)?\\.jar\$".toRegex()
val maybeJar = project.configuration("runtime").filter {
"$jarName-$releaseVersion.jar" in it.toString() || "$jarName-enterprise-$releaseVersion.jar" in it.toString()
it.toString().contains(pattern)
}
if (maybeJar.isEmpty) {
throw IllegalStateException("No $jarName JAR found. Have you deployed the Corda project to Maven? Looked for \"$jarName-$releaseVersion.jar\"")
Expand All @@ -50,7 +52,6 @@ class Cordformation : Plugin<Project> {
require(jar.isFile) { "$jar either does not exist or is not a file" }
return jar
}

}

val executableFileMode = "0755".toInt(8)
Expand Down
7 changes: 4 additions & 3 deletions cordformation/src/main/resources/net/corda/plugins/runnodes
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
#!/usr/bin/env bash

set -euo pipefail
set -eo pipefail

# Allow the script to be run from outside the nodes directory.
basedir=$( dirname "$0" )
cd "$basedir"

if which osascript >/dev/null; then
/usr/libexec/java_home -v 1.8 --exec java -jar runnodes.jar "$@"
if [ -z "$JAVA_HOME" ] && which osascript >/dev/null; then
# use default version of java installed on mac
/usr/libexec/java_home --exec java -jar runnodes.jar "$@"
else
"${JAVA_HOME:+$JAVA_HOME/bin/}java" -jar runnodes.jar "$@"
fi
28 changes: 26 additions & 2 deletions cordformation/src/test/kotlin/net/corda/plugins/CordformTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,30 @@ class CordformTest : BaseformTest() {
assertThat(getNodeCordappConfig(notaryNodeName, localCordappJarName)).isRegularFile()
}



@Test
fun `regex matching used by verifyAndGetRuntimeJar()`() {
val jarName = "corda"

var releaseVersion = "4.3"
var pattern = "\\Q$jarName\\E(-enterprise)?-\\Q$releaseVersion\\E(-.+)?\\.jar\$".toRegex()
assertThat("corda-4.3.jar".contains(pattern)).isTrue()
assertThat("corda-4.3.jar".contains(pattern)).isTrue()
assertThat("corda-4.3.jarBla".contains(pattern)).isFalse()
assertThat("bla\\bla\\bla\\corda-4.3.jar".contains(pattern)).isTrue()
assertThat("corda-4.3-jdk11.jar".contains(pattern)).isTrue()
assertThat("corda-4.3jdk11.jar".contains(pattern)).isFalse()
assertThat("bla\\bla\\bla\\corda-enterprise-4.3.jar".contains(pattern)).isTrue()
assertThat("corda-enterprise-4.3.jar".contains(pattern)).isTrue()
assertThat("corda-enterprise-4.3-jdk11.jar".contains(pattern)).isTrue()

releaseVersion = "4.3-RC01"
pattern = "\\Q$jarName\\E(-enterprise)?-\\Q$releaseVersion\\E(-.+)?\\.jar\$".toRegex()
assertThat("corda-4.3-RC01.jar".contains(pattern)).isTrue()
assertThat("corda-4.3RC01.jar".contains(pattern)).isFalse()

releaseVersion = "4.3.20190925"
pattern = "\\Q$jarName\\E(-enterprise)?-\\Q$releaseVersion\\E(-.+)?\\.jar\$".toRegex()
assertThat("corda-4.3.20190925.jar".contains(pattern)).isTrue()
assertThat("corda-4.3.20190925-TEST.jar".contains(pattern)).isTrue()
}
}

0 comments on commit 2649981

Please sign in to comment.