Commit Graph

208 Commits

Author SHA1 Message Date
Maksymilian Pawlak
931ab120fc Merge pull request #1544 from corda/m4ksio_gradle_no_o_fix
Avoid ArrayOutOfBound exception in Gradle
2017-10-23 13:24:31 +01:00
Chris Rankin
2c84d07e8e CORDA-704: Implement @DoNotImplement annotation (#1903)
* Enhance the API Scanner plugin to monitor class annotations.
* Implement @DoNotImplement annotation, and apply it.
* Update API definition.
* Update API change detection to handle @DoNotImplement.
* Document the `@DoNotImplement` annotation.
2017-10-19 17:18:35 +01:00
Maksymilian Pawlak
651bbdcf83 Kotlin migration 2017-10-19 16:13:33 +01:00
Clinton
3dd09fd69b Cordformation in Kotlin (#1873)
Cordformation rewritten in kotlin.
2017-10-19 15:41:25 +01:00
Clinton
2680361696 Renamed "plugins" dir to "cordapps" (#1644)
* Renamed plugins dir to cordapps dir while maintaining backwards compatibility with the plugins dir.
Bumped gradle plugins to 2.0.4
2017-10-13 15:01:24 +01:00
Clinton
15d29d7982 Fixed the dozens of artifactory warnings at gradle initialisation. (#1862)
* Fixed the dozens of artifactory warnings at gradle initialisation.
2017-10-11 12:41:11 +01:00
Alberto Arri
3bee830604 [CORDA-442] Removed the NetworkMap option from Cordform, changed all the examples… (#1827)
[CORDA-442]
Removed the option for Cordformation to specify a networkMap.

All the samples have been migrated to not specify a networkMap.
2017-10-10 15:45:42 +01:00
szymonsztuka
8c9045bd73 deployNodes Gradle task appends properties from an optional file to node.conf (#1444)
* deployNodes Gradle task appends properties from an optional file to node.conf
2017-10-10 15:03:05 +01:00
Shams Asari
bd53a22efa Removed extraAdvertisedServiceIds config
The remaining use for it was the finance CorDapp for permissioning CCY issuers. Instead this is now taken from a custom config in node.conf.
2017-10-10 13:47:37 +01:00
Clinton
484cf75420 CORDA-686 - Split Cordapp gradle plugin from cordformation (#1817)
Added CorDapp gradle plugin written in Kotlin and bumped the version of gradle plugins to 2.0.0 to reflect that this backwards incompatible change is a part of the on going stabilisation of the Corda gradle plugin suite.
2017-10-09 20:08:08 +01:00
Shams Asari
727cd0e55c Cleaned up notary configuration by introducing a notary config option.
extraAdvertisedServiceIds is no longer used for this.
2017-10-07 12:52:37 +01:00
Chris Rankin
d761d52c16 Fix filterAnnotationsFor() to return MethodInfo. 2017-10-06 14:55:30 +01:00
Chris Rankin
d9f086cf91 Modify the API Scanner plugin to filter method annotations. 2017-10-06 12:11:42 +01:00
Alberto Arri
eb0e2535ed [CORDA-442] Make cordformation serialize NodeInfos to disk during deployment. (#1546)
Initial PR for https://r3-cev.atlassian.net/projects/CORDA/issues/CORDA-442

Allow for cordformation not to specify which node is the network map.
When that happens Cordformation will start each node and make it serialize its NodeInfo to disk.
This make 'depolyNodes' slower. On my machine for the traderDemo it's ~25s

PersistentNetworkMapCache will load files from disk at startup.
Additionally nodeinfos are loaded in the networkMapCache only if they're newer than the currently known version.
2017-10-03 15:43:50 +01:00
Chris Rankin
4d4027947b Annotate Gradle task inputs correctly. (#1752) 2017-09-30 21:55:51 +01:00
Chris Rankin
1e12aebe0a Gradle API Scanner plugin (#1669)
* Skeleton plugin.
* Implement Gradle api-scanner plugin, and apply it.
* Generate API documentation for any jar without a classifier.
* Fix usage of smokeTests classifier.
* Tweak Gradle API usage.
* Upgrade to fast-classpath-scanner 2.7.0
* Include interfaces and more modifiers in the class description.
* Allow system classes to be supertypes and implemented interfaces.
* Make API Scanner plugin configuration tweakable via build.gradle.
* Add a miserable amount of unit testing.
* Sort methods and fields using their natural comparators. Way easier!
* Add README for api-scanner plugin.
* Add @OutputFiles to ScanApiTask.
* Rename ScanApiTask to ScanApi.
* Allow the ScanApi task to be disabled.
* WIP: Create a top-level GenerateApi task to collate the ScanApi output.
* Exclude package-private classes, as well as bridge/synthetic methods.
* Replace "End of Class" delimiter with '##'.
* Don't scan modules whose API is still "in flux".
* Include constructors in the API definitions.
* Finish implementation of GenerateApi task.
* Update README to include GenerateApi task.
* Filter out Kotlin's "internal" methods.
* Assign "fatjar" classifier to the fat jar artifact.
* Enhance README for GenerateApi.
* Explain effect of api-scanner plugin, and link to Corda's API strategy.
* Tweak README
* Exclude synthetic Kotlin classes by analysing @Metadata.
* Allow us to exclude some classes explicitly from the API.
2017-09-29 16:55:26 +01:00
Chris Rankin
0e3005518e Exclude kotlin-reflect artifact from any CorDapp. (#1555) 2017-09-19 15:05:54 +01:00
Chris Rankin
5eab71caae Filter for Open Source and Enterprise modules. (#1514) 2017-09-15 09:01:50 +01:00
Ross Nicoll
ae2183c8a1 Reduce use of X500Name bridges (#1483)
* Change to using strings in CordformContext; X500Name is an external API dependency we're trying to avoid, X500Principal rearranges the order of the elements in a way we don't want, and trying to put CordaX500Name into Groovy in the time available is impractical. As such having pre-formatted strings used in the Cordform plugin makes most sense right now.
* Remove uses of CordaX500Name.x500
* Remove old X.500 parsing tools
* Move CordaX500Name.x500 into X500NameUtils
* Move X500NameUtils into internal
2017-09-14 11:56:14 +01:00
Clinton
8415a01a47 Cordform common is now a part of the gradle plugin suite (#1474)
Cordform common is now a full gradle plugin and all related gradle hacks are removed.
2017-09-12 19:18:09 +01:00
cburlinchon
10c4d46b97 Add delay to macos script startup (#1462) 2017-09-11 15:23:03 +01:00
Maksymilian Pawlak
069e31d006 Don't start Corda webserver if no webAddress has been defined for a node (#1434)
Don't start Corda webserver if no webAddress has been defined for a node
2017-09-08 15:25:20 +01:00
Patrick Kuo
57412d4498 Enforce X500Name format defined in design doc (#1427)
* Standardise X500Name format - WIP

* address PR issues

* failing test fix and replace X500Name with getX500Name

* gradle plugin fix

* Added country code validation
2017-09-07 14:47:42 +01:00
Clinton Alexander
40146cdbc0 Fixed a crash in cordformation when trying to build nodes for a project with a file as a dependency and any other dependencies without a group 2017-09-04 15:20:44 +01:00
Chris Rankin
66c35bbffa Demote quasar-core to a runtime dependency, and capsule to "compileOnly". (#1381) 2017-09-01 11:12:04 +01:00
Clinton Alexander
8756f337db Added a flag to denote debug mode for capsule in cordformation. 2017-08-24 15:57:11 +01:00
Clinton Alexander
1b61f94bb8 Improved logging message for including cordapp dependencies. 2017-08-16 18:04:41 +01:00
Matthew Nesbit
ca5ea1e25d Fix a bug where when using a groovy string a cordapp will not be included
because of a string and GString equality failure.
2017-08-16 18:02:20 +01:00
Shams Asari
008301c4e8 Introduced FlowLogic.getFlowContext which provides the flow version and app name of the other side. 2017-08-11 18:01:16 +01:00
Clinton
9eceb26ee9 Renamed corda configuration in gradle to cordaCompile to be more explicit. (#1131)
* Renamed corda configuration in gradle to cordaCompile to be more explicit.

* Bumped version number of gradle plugins.
2017-07-27 17:53:51 +01:00
Clinton
68d05eee04 Added corda and cordaRuntime configurations and documentation on integrating with Corda (#1103)
* Added new corda and cordaRuntime configurations for cordapps to be able to explicitly depend on Corda and exclude corda dependencies from the fatjar

* Added corda integration section to docsite to describe how to integrate with Corda.

* Updated more of the documentation to reflect the new method of specifying core corda dependencies.

* Reorganised document logic to move all build system related documentation to the cordapp build systems page.

* Renamed cordapp build systems doc to match actual purpose.

* Improved the warning for building against a net.corda dependency in a cordapp

* Added a line of dialogue to show further reading for those reading about writing cordapps.
2017-07-25 17:54:36 +01:00
Clinton
0ccfae252f POMs generated by publishing are now correct. (#1055)
* POMs generated by publishing are now correct. The publish extension now requires an explicit call to configure the publishing instead of waiting until after evaluation. This prevents evaluation order issues with the artifact renaming code that causes the POM to have the original, incorrect, artifact names.

* Fixed new test compile issues caused by removal of some dependencies in test utils that caused webserver code to be automatically included in any project also compiling test utils.
2017-07-18 12:34:56 +01:00
Clinton
74c8346863 Cordapps now exclude the META-INF of dependencies. (#988)
* Cordapps now exclude the META-INF of dependencies.

* Only exclude files that cause issues with signed JAR detection.
2017-07-07 15:37:28 +01:00
Clinton Alexander
2b3f6d9701 Revert "Cordapps now exclude the META-INF of dependencies."
This reverts commit 68068e5640.
2017-07-06 15:15:47 +01:00
Clinton Alexander
68068e5640 Cordapps now exclude the META-INF of dependencies. 2017-07-06 15:14:07 +01:00
Clinton
c1088038b7 Cordapps now contain their own dependencies (#915)
* Cordapps now contain all explicitly specified dependencies (and sub
dependencies).

* Removed some useless compile dependencies for trader demo.

* Dependent Cordapps are excluded from the build.
:Removed unnecessary dependencies of demos.

* Cleaned up exclusion rules for cordapp dependencies.
2017-06-30 14:18:46 +01:00
Mike Hearn
82f68f212a Minor: add another emoji, import a couple of changes for Enterprise 2017-06-30 13:06:46 +01:00
Clinton Alexander
89e20d6746 Removing repository addition - this can really mess with the ability to control a project's repositories. 2017-06-28 17:57:16 +01:00
Clinton
08cbcac40c Corda publications and JARs now have cord or corda at the start. (#749)
Core corda publications and JARs now have cord or corda at the start (excluding gradle plugins). Removed an unnecessary dependency on test-utils in node-schemas to prevent an evaluation order bug in gradle.
2017-06-06 15:05:47 +01:00
Joel Dudley
e5fba5d0af Docsite reorg ahead of beta launch. 2017-06-05 13:37:23 +01:00
Clinton Alexander
964dbcd9a9 Fixed java path for both headless and windowed mode. 2017-06-01 17:05:16 +01:00
Clinton Alexander
4ae8356f35 Reordered a lazy eval to avoid an NPE 2017-06-01 15:46:32 +01:00
Clinton Alexander
ecf85c7448 Fixed noderunner issues on Windows by fixing a windows specific path
quoting issue.
2017-06-01 13:31:43 +01:00
Mike Hearn
1c92d554e0 Minor: print a more useful error if you mess up your cordform config. 2017-05-19 16:45:22 +02:00
Mike Hearn
e67521796f NodeRunner/Mac: java_home does not expect to be given a full path to the Java binary, and at the point we get here, we know the full JVM path anyway so we don't need the wrapper. 2017-05-19 16:45:22 +02:00
Andrzej Cichocki
c8d71a96f5 One demo definition for both IntelliJ and gradle (#697)
* Raft notary demo now defined in one place that both IntelliJ/driver and gradle/runnodes can run
* New module cordform-common for code common to cordformation and corda
* Add single notary demo
2017-05-18 15:58:35 +01:00
Andrzej Cichocki
42d0a3c638 Don't keep xterm open if java was killed by user. (#678) 2017-05-16 10:56:17 +01:00
Andrzej Cichocki
45997ccd13 NodeRunner enhancements (#614)
* Use same java.home as caller in terminal window case, previously only headless case did that
* Bump gradlePluginsVersion as I've changed NodeRunner

On Linux:
* Prefer JAVA_HOME over PATH
* Use correct escaping
* Start sh on failure so that terminals don't disappear taking error messages with them
2017-05-09 10:22:22 +01:00
Ross Nicoll
80ad5af8b3 Extract common name from legal name to determine path
Rewrote node name to extract common name to use as the node path for samples, to work around characters
being incorrectly treated as separators.
2017-04-28 16:40:48 +01:00
Shams Asari
b5e022f350 Introducing Platform Version and its use by the NMS for min version requirements for the network 2017-04-24 15:31:10 +01:00
Shams Asari
b1e3a2b4e5 Fixed broken NodeRunner on MacOS 2017-04-13 15:19:15 +01:00
Shams Asari
c17fe29a62 Converted FullNodeConfiguration into a data class and added ability to parse Configs into data classes 2017-04-07 17:54:03 +01:00
Clinton
69d6286a5e Args are correctly passed to node runner (#503)
* Arguments are now correctly passed to the noderunner from platform specific scripts.

* Node runner doesn't start CRaSH shell when running in headless mode.
2017-04-04 15:56:14 +01:00
Clinton
e8316dedd0 Runnodes now exposes default ports for nodes automatically (#480)
Cordformation now automatically assigns a debug port
2017-04-04 11:58:56 +01:00
Patrick Kuo
e6bb2eedc0 bump gradle plugin version to 0.10.3 (#482) 2017-03-31 13:24:58 +01:00
Clinton Alexander
e201569ac9 Made casing of h2Port more consistent with other node properties in Cordformation. 2017-03-31 10:36:34 +01:00
Clinton Alexander
76eb713777 Added a h2 port configuration to Cordformation. 2017-03-30 17:10:49 +01:00
Chris Rankin
f15a22d828 Replace kotlinx-support-jdk8 with kotlin-stdlib-jre8. (#463)
* Replace kotlinx-support-jdk8 with kotlin-stdlib-jre8.
* Add kotlinVersion to constants.properties.

* Remove unused variable.
2017-03-30 16:27:01 +01:00
Shams Asari
52ea54f742 Upgraded both guava and guava-testlib to 21.0 and made sure they share the same version variable 2017-03-24 17:17:36 +00:00
Andrius Dagys
6a21de74b3 NodeRunner: fix OSX script. Add a delay before starting the next node. (#419)
* NodeRunner: fix OSX script. Add a delay before starting the next node.

* Only add delay on macOS
2017-03-24 12:15:57 +00:00
Marek Skocovsky
262c87a5c6 Integrate CRaSH shell (SSHD). Joint effort between Mike Hearn and Marek Skocovsky.
The shell is embedded in the node and offers the ability to monitor
and control the node via the launching terminal.

Still to do:

* Switch to a fork of CRaSH that we can maintain ourselves, and merge in Marek's SSH patch so we can enable SSH access.
* Add persistent command history that survives restarts.
* Tab completion for the 'flow' and 'run' commands.
* Remove the 'jul' command and replace it with a command that lets you see and tail the log4j logs instead.
* Fix or remove the other crash commands that have bitrotted since 2015.
2017-03-24 12:44:54 +01:00
tomconte
79d133d9d7 Use tmux instead of xterm if available 2017-03-22 16:50:59 +00:00
Andras Slemmer
eb9ae6b6b0 runnodes: Fix runnodes on Linux, fix nodeName 2017-03-22 16:49:10 +00:00
Clinton
9a5bba9c04 Created a Kotlin node runner (#367)
* Added a cross platform node runner to replace scripts.

* Added runnodes shell and batch files back.

* Node runner supports new webserver format.

* Runnodes now runs correctly on OSX

* Intermediate commit. Squash me.

* Upgdated gradle plugins version number to 0.10.1

* Further inlined more functions.

* Text display changes for noderunner.
2017-03-22 14:08:23 +00:00
Mike Hearn
1d6fe30f03 Minor: set file mode explicitly so corda.jar is executable on UNIX when copying from a downloaded jar 2017-03-21 18:01:17 +01:00
Ross Nicoll
486368d926 Clean up messaging/RPC port configuration and docs (#296)
* Non-ssl artemis acceptor for RPC connection. (#271)

* New non-ssl acceptor in artemis server for RPC connection.

* Rename artemisAddress with messagingAddress

Rename artemisAddress with messagingAddress so that the node configuration file properties match
the code variable names.
Rename artemisPort to messagingPort in Gradle configuration to match node configuration naming.

* Add rpcPort configuration option for Gradle

* Update docs to reflect changes to RPC port configuration

* Renumber ports in example CorDapp to match numbering used elsewhere

* Restructure upgrade guide

* added config file checks on corda startup to make the upgrade path a bit smoother.
2017-03-17 10:32:14 +00:00
Mike Hearn
a9412b32f3 Allow web servers to be suppressed in runnodes 2017-03-10 17:27:19 +01:00
Clinton Alexander
f786ff9312 Correct CRLF for BAT files and fixed templating of JAR names. 2017-02-27 16:42:28 +00:00
Clinton Alexander
75ff04d5a7 Webserver is now deployed as a capsule. 2017-02-27 16:42:23 +00:00
Clinton Alexander
8414c97a61 Moved JsonSupport to new webserver module. Fixed a few compile errors.
Fixed compile issues caused by webserver being split to a separate project.
WebServer now starts and stops correctly as a separate module.
2017-02-27 16:41:48 +00:00
Clinton Alexander
5516093a59 Modified title of the webserver on systems using xterm to run nodes. 2017-02-22 11:51:05 +00:00
Shams Asari
c7abbe8791 Converting groovy GStrings to normal strings for ConfigValueFactory 2017-02-21 20:15:06 +00:00
Shams Asari
7181b697a3 extraAdvertisedServiceIds config is now a list of strings, rather than a comma separated string 2017-02-21 15:21:37 +00:00
Clinton Alexander
4b71b60066 Cordformation now correctly includes and excludes cordapps. 2017-02-10 15:44:04 +00:00
Clinton Alexander
3482452c8b Added webserver to runnodes. 2017-01-27 14:15:08 +00:00
Clinton Alexander
e38167c500 runnodes.bat no longer recursives when creating nodes. 2017-01-11 11:37:20 +00:00
Shams Asari
7cd281364f Removed basedir from the config file as it's always overwritten by the --base-directory cmd line arg 2017-01-10 10:49:28 +00:00
Mike Hearn
7247e7280f Two runnodes fixes for MacOS X:
1) Support users who run non-bash shells
2) Use /usr/bin/libexec to pick the right Java version, as currently Corda does not start on Java 9
2017-01-06 12:36:49 +01:00
Clinton Alexander
b49c97d409 runnodes.bat returns the user to the original directory. 2017-01-05 16:07:31 +00:00
Clinton Alexander
857de9df49 runnodes.bat can now run the nodes from any working directory and not cause an infinite loop and system crash. 2017-01-05 15:57:32 +00:00
Shams Asari
08e391579c Node verifies the peer it connects to by checking its TLS common name 2017-01-05 14:22:11 +00:00
Clinton Alexander
884ffffd62 Fixed a bug with building gradle plugins due to an invalid version number used. 2017-01-05 14:11:58 +00:00
Mike Hearn
119d00c384 Upgrade dependencies and centralise some more version numbers in the root gradle file 2017-01-04 15:44:56 +01:00
Clinton Alexander
ba321121e5 Fixed instructions in readme 2016-12-09 15:05:18 +00:00
Clinton Alexander
2f61340945 Fixed review comments. 2016-12-08 16:58:22 +00:00
Clinton Alexander
5b4babf329 Removed redundant gradle extension variable to reduce complexity of build.gradle and clear up the process of changing the version numbers. 2016-12-08 12:18:26 +00:00
Clinton Alexander
f1daae0491 To avoid needing to bump three different files upon updates, a common publish properties file has been added. 2016-12-06 16:29:15 +00:00
Clinton Alexander
87e5c9bf46 Added documentation and buildscript to allow full bootstrapping without modifying build files. 2016-12-06 16:14:06 +00:00
Clinton Alexander
1b052b07ec Returned to using more readable bintray syntax. 2016-12-06 16:06:16 +00:00
Clinton Alexander
a6d1a07670 Added documentation for the new publishing functionality of publish-utils. 2016-12-06 16:06:16 +00:00
Clinton Alexander
41b0b6c0b1 Re-added the capsule file. Fixed deploy with another publish option. 2016-12-06 16:06:16 +00:00
Clinton Alexander
1463cd2b37 Renamec capsule module to corda. 2016-12-06 16:06:16 +00:00
Clinton Alexander
b24c628e34 Publications now publish JARs again. Install task now publishes again. 2016-12-06 16:06:16 +00:00
Clinton Alexander
bf49dda731 Corda now publishes with updated publish utils. 2016-12-06 16:06:16 +00:00
Clinton Alexander
4b2d786724 Bintray configuration block now contains all fields required for the bare minimum POM. 2016-12-06 16:06:16 +00:00
Clinton Alexander
6ac7b9384d All gradle plugins can now be published with the publishing plugin. 2016-12-06 16:06:16 +00:00
Clinton Alexander
e751d80c00 Added documentation for bintray configuration. 2016-12-06 16:06:16 +00:00
Clinton Alexander
6bc118b997 Quasar utils now follows the format required by the new publishing utilities gradle plugin. 2016-12-06 16:06:16 +00:00
Clinton Alexander
46ddd3bd0e Publish utils no longer needs a configuration block per project, just one bintray configuration per project providing it fits certain criteria. 2016-12-06 16:06:16 +00:00
Clinton Alexander
4eb7d3db11 Added more publish utilities for simplifying bintray configuration per project to reduced boilerplate. 2016-12-06 16:06:16 +00:00