From 1e025bded2f457f18369a3fccb817927af4f418d Mon Sep 17 00:00:00 2001 From: Clinton Alexander Date: Fri, 25 Nov 2016 15:36:22 +0000 Subject: [PATCH 1/5] Moved the version numbers for the gradle plugins into the individual projects. Added RPC user configuration block. Reformated groovy code with IntelliJ auto refactor. --- build.gradle | 2 +- gradle-plugins/build.gradle | 1 - gradle-plugins/cordformation/build.gradle | 2 ++ .../main/groovy/net/corda/plugins/Node.groovy | 32 ++++++++++++++----- gradle-plugins/publish-utils/build.gradle | 2 ++ gradle-plugins/quasar-utils/build.gradle | 2 ++ 6 files changed, 31 insertions(+), 10 deletions(-) diff --git a/build.gradle b/build.gradle index 83d4522477..fb572f7dba 100644 --- a/build.gradle +++ b/build.gradle @@ -28,7 +28,7 @@ buildscript { classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4' classpath 'net.corda.plugins:publish-utils:0.5' classpath 'net.corda.plugins:quasar-utils:0.5.2' - classpath 'net.corda.plugins:cordformation:0.5.3' + classpath 'net.corda.plugins:cordformation:0.5.4' // Can run 'gradle dependencyUpdates' to find new versions of things. classpath 'com.github.ben-manes:gradle-versions-plugin:0.12.0' diff --git a/gradle-plugins/build.gradle b/gradle-plugins/build.gradle index ffc80eb9dd..04e9074d75 100644 --- a/gradle-plugins/build.gradle +++ b/gradle-plugins/build.gradle @@ -20,7 +20,6 @@ apply plugin: 'maven-publish' allprojects { group 'net.corda' - version "$corda_version" } subprojects { diff --git a/gradle-plugins/cordformation/build.gradle b/gradle-plugins/cordformation/build.gradle index 9ae980c4b1..23ce13be03 100644 --- a/gradle-plugins/cordformation/build.gradle +++ b/gradle-plugins/cordformation/build.gradle @@ -3,6 +3,8 @@ apply plugin: 'net.corda.plugins.publish-utils' apply plugin: 'maven-publish' apply plugin: 'com.jfrog.bintray' +version = "0.5.4" // Increment appropriately before publishing locally + dependencies { compile gradleApi() compile localGroovy() diff --git a/gradle-plugins/cordformation/src/main/groovy/net/corda/plugins/Node.groovy b/gradle-plugins/cordformation/src/main/groovy/net/corda/plugins/Node.groovy index 3b64b31704..88defd2cda 100644 --- a/gradle-plugins/cordformation/src/main/groovy/net/corda/plugins/Node.groovy +++ b/gradle-plugins/cordformation/src/main/groovy/net/corda/plugins/Node.groovy @@ -1,13 +1,11 @@ package net.corda.plugins -import com.typesafe.config.Config -import com.typesafe.config.ConfigFactory -import com.typesafe.config.ConfigRenderOptions -import com.typesafe.config.ConfigValueFactory +import com.typesafe.config.* import org.gradle.api.Project import java.nio.charset.StandardCharsets import java.nio.file.Files + /** * Represents a node that will be installed. */ @@ -30,10 +28,18 @@ class Node { * @note Your app will be installed by default and does not need to be included here. */ protected List cordapps = [] + /** + * Set the configuration closure list that create the RPC users for this node. This configuration block allows + * arbitrary configuration. The recommended current structure is: + * [[['user': "username_here", 'password': "password_here", 'permissions': ["permissions_here"]]] + * The above is a list to a map of keys to values using Groovy map and list shorthands. + * + * @note Incorrect configurations will not cause a DSL error. + */ + protected List> rpcUsers = [] private String dirName private Config config = ConfigFactory.empty() - //private Map config = new HashMap() private File nodeDir private Project project @@ -122,6 +128,7 @@ class Node { */ void build(File baseDir) { nodeDir = new File(baseDir, dirName) + configureRpcUsers() installCordaJAR() installBuiltPlugin() installCordapps() @@ -138,6 +145,13 @@ class Node { return config.getString("artemisAddress") } + /** + * Write the RPC users to the config + */ + private void configureRpcUsers() { + config = config.withValue("rpcUsers", ConfigValueFactory.fromIterable(rpcUsers)) + } + /** * Installs the corda fat JAR to the node directory. */ @@ -213,12 +227,14 @@ class Node { * @return A file representing the Corda JAR. */ private File verifyAndGetCordaJar() { - def maybeCordaJAR = project.configurations.runtime.filter { it.toString().contains("corda-${project.corda_version}.jar")} - if(maybeCordaJAR.size() == 0) { + def maybeCordaJAR = project.configurations.runtime.filter { + it.toString().contains("corda-${project.corda_version}.jar") + } + if (maybeCordaJAR.size() == 0) { throw new RuntimeException("No Corda Capsule JAR found. Have you deployed the Corda project to Maven? Looked for \"corda-${project.corda_version}.jar\"") } else { def cordaJar = maybeCordaJAR.getSingleFile() - assert(cordaJar.isFile()) + assert (cordaJar.isFile()) return cordaJar } } diff --git a/gradle-plugins/publish-utils/build.gradle b/gradle-plugins/publish-utils/build.gradle index bdaff87a9e..d13683c4a5 100644 --- a/gradle-plugins/publish-utils/build.gradle +++ b/gradle-plugins/publish-utils/build.gradle @@ -2,6 +2,8 @@ apply plugin: 'groovy' apply plugin: 'maven-publish' apply plugin: 'com.jfrog.bintray' +version = "0.5" // Increment appropriately before publishing locally + dependencies { compile gradleApi() compile localGroovy() diff --git a/gradle-plugins/quasar-utils/build.gradle b/gradle-plugins/quasar-utils/build.gradle index 32ebb113c9..c241bd21a6 100644 --- a/gradle-plugins/quasar-utils/build.gradle +++ b/gradle-plugins/quasar-utils/build.gradle @@ -3,6 +3,8 @@ apply plugin: 'net.corda.plugins.publish-utils' apply plugin: 'com.jfrog.bintray' apply plugin: 'maven-publish' +version = "0.5.2" // Increment appropriately before publishing locally + dependencies { compile gradleApi() compile localGroovy() From 94166484ca7ac6ae34b4db1b27764a9ffec8430e Mon Sep 17 00:00:00 2001 From: Clinton Alexander Date: Fri, 25 Nov 2016 16:21:02 +0000 Subject: [PATCH 2/5] Fixed whitespace issue and documentation. --- .../src/main/groovy/net/corda/plugins/Node.groovy | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gradle-plugins/cordformation/src/main/groovy/net/corda/plugins/Node.groovy b/gradle-plugins/cordformation/src/main/groovy/net/corda/plugins/Node.groovy index 88defd2cda..07b86b46d4 100644 --- a/gradle-plugins/cordformation/src/main/groovy/net/corda/plugins/Node.groovy +++ b/gradle-plugins/cordformation/src/main/groovy/net/corda/plugins/Node.groovy @@ -2,7 +2,6 @@ package net.corda.plugins import com.typesafe.config.* import org.gradle.api.Project - import java.nio.charset.StandardCharsets import java.nio.file.Files @@ -29,8 +28,8 @@ class Node { */ protected List cordapps = [] /** - * Set the configuration closure list that create the RPC users for this node. This configuration block allows - * arbitrary configuration. The recommended current structure is: + * Set the RPC users for this node. This configuration block allows arbitrary configuration. + * The recommended current structure is: * [[['user': "username_here", 'password': "password_here", 'permissions': ["permissions_here"]]] * The above is a list to a map of keys to values using Groovy map and list shorthands. * @@ -234,7 +233,7 @@ class Node { throw new RuntimeException("No Corda Capsule JAR found. Have you deployed the Corda project to Maven? Looked for \"corda-${project.corda_version}.jar\"") } else { def cordaJar = maybeCordaJAR.getSingleFile() - assert (cordaJar.isFile()) + assert(cordaJar.isFile()) return cordaJar } } From 2d444fe42bffcb4997c4216783fddb6da198e3cb Mon Sep 17 00:00:00 2001 From: Clinton Alexander Date: Fri, 25 Nov 2016 16:34:32 +0000 Subject: [PATCH 3/5] Re-unified the gradle plugin versions. --- build.gradle | 7 ++++--- gradle-plugins/build.gradle | 4 ++-- gradle-plugins/cordformation/build.gradle | 2 -- gradle-plugins/publish-utils/build.gradle | 2 -- gradle-plugins/quasar-utils/build.gradle | 2 -- 5 files changed, 6 insertions(+), 11 deletions(-) diff --git a/build.gradle b/build.gradle index fb572f7dba..2b69065921 100644 --- a/build.gradle +++ b/build.gradle @@ -2,6 +2,7 @@ buildscript { // Our version: bump this on release. ext.corda_version = "0.6-SNAPSHOT" + ext.gradle_plugins_version = "0.5.5" ext.kotlin_version = '1.0.5' ext.quasar_version = '0.7.6' ext.asm_version = '0.5.3' @@ -26,9 +27,9 @@ buildscript { dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4' - classpath 'net.corda.plugins:publish-utils:0.5' - classpath 'net.corda.plugins:quasar-utils:0.5.2' - classpath 'net.corda.plugins:cordformation:0.5.4' + classpath "net.corda.plugins:publish-utils:$gradle_plugins_version" + classpath "net.corda.plugins:quasar-utils:$gradle_plugins_version" + classpath "net.corda.plugins:cordformation:$gradle_plugins_version" // Can run 'gradle dependencyUpdates' to find new versions of things. classpath 'com.github.ben-manes:gradle-versions-plugin:0.12.0' diff --git a/gradle-plugins/build.gradle b/gradle-plugins/build.gradle index 04e9074d75..33b9c0836b 100644 --- a/gradle-plugins/build.gradle +++ b/gradle-plugins/build.gradle @@ -2,8 +2,7 @@ // or if you are developing these plugins. See the readme for more information. buildscript { - // Our version: bump this on release. - ext.corda_version = "0.6-SNAPSHOT" + ext.gradle_plugins_version = "0.5.5" // Our version: bump this on release. ext.corda_published_version = "0.5" // Depend on our existing published publishing plugin. repositories { @@ -19,6 +18,7 @@ buildscript { apply plugin: 'maven-publish' allprojects { + version "$corda_version" group 'net.corda' } diff --git a/gradle-plugins/cordformation/build.gradle b/gradle-plugins/cordformation/build.gradle index 23ce13be03..9ae980c4b1 100644 --- a/gradle-plugins/cordformation/build.gradle +++ b/gradle-plugins/cordformation/build.gradle @@ -3,8 +3,6 @@ apply plugin: 'net.corda.plugins.publish-utils' apply plugin: 'maven-publish' apply plugin: 'com.jfrog.bintray' -version = "0.5.4" // Increment appropriately before publishing locally - dependencies { compile gradleApi() compile localGroovy() diff --git a/gradle-plugins/publish-utils/build.gradle b/gradle-plugins/publish-utils/build.gradle index d13683c4a5..bdaff87a9e 100644 --- a/gradle-plugins/publish-utils/build.gradle +++ b/gradle-plugins/publish-utils/build.gradle @@ -2,8 +2,6 @@ apply plugin: 'groovy' apply plugin: 'maven-publish' apply plugin: 'com.jfrog.bintray' -version = "0.5" // Increment appropriately before publishing locally - dependencies { compile gradleApi() compile localGroovy() diff --git a/gradle-plugins/quasar-utils/build.gradle b/gradle-plugins/quasar-utils/build.gradle index c241bd21a6..32ebb113c9 100644 --- a/gradle-plugins/quasar-utils/build.gradle +++ b/gradle-plugins/quasar-utils/build.gradle @@ -3,8 +3,6 @@ apply plugin: 'net.corda.plugins.publish-utils' apply plugin: 'com.jfrog.bintray' apply plugin: 'maven-publish' -version = "0.5.2" // Increment appropriately before publishing locally - dependencies { compile gradleApi() compile localGroovy() From 1d789d3a45ebf9363a1579a0102b3b24a606120c Mon Sep 17 00:00:00 2001 From: Clinton Alexander Date: Fri, 25 Nov 2016 16:39:18 +0000 Subject: [PATCH 4/5] Fixed gradle plugins version. --- gradle-plugins/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle-plugins/build.gradle b/gradle-plugins/build.gradle index 33b9c0836b..a42bcb3b9a 100644 --- a/gradle-plugins/build.gradle +++ b/gradle-plugins/build.gradle @@ -18,7 +18,7 @@ buildscript { apply plugin: 'maven-publish' allprojects { - version "$corda_version" + version "$gradle_plugins_version" group 'net.corda' } From 5af5cc100a8dc70306e0abc75cf3f665ce5b1135 Mon Sep 17 00:00:00 2001 From: Clinton Alexander Date: Fri, 25 Nov 2016 16:56:09 +0000 Subject: [PATCH 5/5] Updated documentation to reflect current gradle plugins build cycle. --- docs/source/creating-a-cordapp.rst | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/source/creating-a-cordapp.rst b/docs/source/creating-a-cordapp.rst index cae637d740..1b49f77fa1 100644 --- a/docs/source/creating-a-cordapp.rst +++ b/docs/source/creating-a-cordapp.rst @@ -144,6 +144,7 @@ To build against Corda and the plugins that cordapps use, update your build.grad buildscript { ext.corda_version = '' + ext.corda_gradle_plugins_version = '' // This is usually the same as corda_version. ... your buildscript ... repositories { @@ -153,9 +154,9 @@ To build against Corda and the plugins that cordapps use, update your build.grad dependencies { ... your dependencies ... - classpath "net.corda.plugins:cordformation:$corda_version" - classpath "net.corda.plugins:quasar-utils:$corda_version" - classpath "net.corda.plugins:publish-utils:$corda_version" + classpath "net.corda.plugins:cordformation:$corda_gradle_plugins_version" + classpath "net.corda.plugins:quasar-utils:$corda_gradle_plugins_version" + classpath "net.corda.plugins:publish-utils:$corda_gradle_plugins_version" } }