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()