Commit Graph

197 Commits

Author SHA1 Message Date
Mike Hearn
89f5d9c4f7 Begin release M4 2016-08-31 17:22:52 +02:00
Ross Nicoll
232db9a1fd Move test utilities into their own package
This moves a lot of the test support code into its own package which is only imported for tests,
so it's not shipped as a part of core Corda. The node currently depends on this support code to
compile, although future work could try to separate this out. This change highlights that parts
of production code is dependent on test elements (i.e. dummy keys), and makes it harder for
such accidental crosses to occur later.

An integration test category is also added as part of this work, to contribute towards COR-345.
2016-08-31 15:40:54 +01:00
Clinton Alexander
4652872338 Renamed corda output JAR to corda.jar. 2016-08-24 16:28:28 +01:00
Clinton Alexander
24df3e3c52 Removed term standalone and replaced with more neutral language. 2016-08-24 16:18:52 +01:00
Clinton Alexander
c45aa9ffb1 Started capsule work. 2016-08-22 16:22:37 +01:00
Mike Hearn
db3aa1491c Upgrade Quasar to 0.7.6 and fix an exception handling bug in SMM that it revealed (if an exception was thrown immediately on protocol startup we let it leak instead of capturing it in the future. 2016-08-17 14:43:45 +01:00
rick.parker
d883b3f134 First working hand-rolled persistent wallet
First working Exposed-assisted persistent wallet

Cleaned up Exposed-based persistent wallet

Cleaned up warnings

Fixed up some generic types

Improved comments

Fix up TODO comment

Hikari and config integration

Fix existing tests

Clean up after looking at PR

Clean up commented out lines

Fix initialisation of IRS demo leaving database open

Fix up after rebase

Review feedback.  Main change is lazy wallet iteration.

Rebased and incorporated config changes.

Use standardised config loading.  Make wallet cash test use persistent wallet.

Added test to ensure wallet retains state in database across instance creation.

Tidy up whitespace and fix bug in test.
2016-08-09 16:41:32 +01:00
Matthew Nesbit
b9cc4e57a1 Tidy up whitespace/indenting issue 2016-08-08 14:35:10 +01:00
Matthew Nesbit
6b23800f02 Incorporate Clintons review comments 2016-08-08 11:54:41 +01:00
Matthew Nesbit
3dc8a95d69 Tackle comments from code review and fix bad merge on version 2016-08-05 16:42:55 +01:00
Matthew Nesbit
6b844c0e41 Gradle task to create a build/standalone folder suitable to demonstrate the capsule.io all in one jar 2016-08-05 14:52:29 +01:00
Matthew Nesbit
244150d658 Standalone node built into one simple jar and reads config from .conf file. 2016-08-05 14:52:26 +01:00
Mike Hearn
44dee97899 Begin M3 2016-08-01 14:50:50 +02:00
Clinton Alexander
188fc29436 Cleaned up build.gradle files. 2016-07-28 09:17:49 +01:00
Clinton Alexander
ffc3c8f421 Added Jacoco code coverage to gradle. 2016-07-28 09:17:49 +01:00
Matthew Nesbit
e3aef96b09 Merge remote-tracking branch 'remotes/origin/master' into mnesbit-cor-261-artemis-over-ssl
# Conflicts:
#	build.gradle
2016-07-27 15:43:01 +01:00
Matthew Nesbit
00f897d58d Add X509 creation and manipulation utilities to core and enable SSL in ArtemisMQ 2016-07-26 10:35:54 +01:00
Andrius Dagys
2142bd1d8a Added Log4j bindings for SLF4J. Test log output is redirected to the console, and demo output is now additionally stored in a rolling log file. 2016-07-22 16:15:00 +01:00
Clinton Alexander
c8be3f9276 Merged in irsdemocleanup (pull request #209)
Added OkHttp library and improved help text to demos.
2016-07-08 16:40:30 +01:00
Clinton Alexander
6381b5e6a1 Added OkHttp and used it to clean up the HTTP calls in the demo and then moved those new functions to a util lib. 2016-07-07 16:22:09 +01:00
Mike Hearn
ad3e9be1c8 Add a version number to gradle and allow "gradle install" to install the core module to the local Maven repository. 2016-07-07 13:59:55 +01:00
Mike Hearn
bbc5c2e981 Merged in mike-july-dependency-upgrades (pull request #200)
Upgrade dependencies, July edition.
2016-07-06 16:25:52 +01:00
Mike Hearn
6fb7e59b91 Upgrade dependencies, July edition. 2016-07-06 13:56:22 +01:00
Andras Slemmer
4a89be8785 build: Run integtests after regular ones 2016-07-06 13:25:08 +01:00
Andras Slemmer
2daa8098c9 build: add integrationTest as a test dependency 2016-06-28 16:46:45 +01:00
Clinton Alexander
99fdacd0dc Integration tests now run separately from unit tests (with caveats described in the gradle file) 2016-06-28 14:03:32 +01:00
Andras Slemmer
32b593671b Merged in remove-warnings (pull request #169)
Remove warnings
2016-06-20 14:45:04 +01:00
Shams Asari
411fd1aeb3 Upgraded to artemis 1.3.0 so that exceptions are thrown if something goes wrong on startup 2016-06-20 14:29:27 +01:00
Andras Slemmer
3faf268feb build: add -Xlint: flags 2016-06-20 14:16:13 +01:00
Andras Slemmer
d8e0e8d548 test: Add JsonSupport testing using junit-quickcheck 2016-06-20 11:49:54 +01:00
Andras Slemmer
96d8d4b9d5 build: add comments on added lines 2016-06-17 11:02:43 +01:00
Andras Slemmer
2c6ed9223e build: add back applicationDefaultJvmArgs, mainClassName variables 2016-06-17 10:49:43 +01:00
Andras Slemmer
dc5da8e1ad build: use QuasarPlugin instead of copypasta 2016-06-17 10:16:46 +01:00
Matthew Nesbit
3a27ca5989 Correct main application class name 2016-05-23 15:20:20 +01:00
Matthew Nesbit
63a5fd1b9e Add com.r3corda to all namespaces. 2016-05-23 14:53:56 +01:00
Mike Hearn
e1f899647a Modify the trader demo so it doesn't need a shell script to start it anymore. Now all configuration is in the driver program. 2016-05-17 18:13:24 +02:00
Matthew Nesbit
4fd32c3455 Merge remote-tracking branch 'remotes/origin/master' into mnesbit-cor-174-reorganise-for-bank-developers 2016-05-16 15:27:44 +01:00
Matthew Nesbit
306c9a67cb Force wildcard classpath into generated windows startup scripts to prevent 'command line too long' issues 2016-05-16 13:48:09 +01:00
Matthew Nesbit
988e00099d Capture file moves to separate Node implementation code into its own gradle module and leave only demo code in top level src folders.
I have to temporarily break\disable the IRS demo to which has a circular dependency. Will fix next.
2016-05-14 17:57:41 +01:00
Mike Hearn
506441977f Minor: suppress an IntelliJ Gradle warning 2016-05-13 12:55:45 +02:00
Mike Hearn
232a4b7f53 Kotlin 1.0.2. Enable experimental incremental compilation in Gradle. 2016-05-13 12:50:54 +02:00
Matthew Nesbit
2e7f3a2017 The quasar 0.7.5-SNAPSHOT version has been removed from the Maven Repositories. The official 0.7.5 version has replaced it. 2016-05-05 14:42:56 +01:00
Shams Asari
0575bcc959 Sending message to self no longer goes into continuous loop 2016-04-27 14:50:07 +01:00
Mike Hearn
13f334ceba Dynamic class loading: check in a contract jar as a test resource to ensure tests can run from IntelliJ.
Minor tweak to use val more than var in tests.
2016-04-13 19:54:25 +02:00
sofusmortensen
d05e6bb6a4 Merge branch 'master' into dynamic-loading 2016-04-09 01:01:36 +02:00
sofusmortensen
6fe8107d27 Merge branch 'master' into dynamic-loading 2016-04-08 22:40:18 +02:00
Mike Hearn
a8cfa9df14 Minor: add a TODO to build.gradle about making the quasar scan task incremental. 2016-04-07 20:03:29 +02:00
rick.parker
55265e6115 IRS related protocols and scripts
Additional changes based on feedback

Additional changes based on feedback
2016-04-07 14:56:30 +01:00
rick.parker
3b2d236531 Add Quasar suspendables scanner to gradle build. 2016-03-31 16:52:54 +01:00
sofusmortensen
58a509de63 Merge branch 'master' into dynamic-loading 2016-03-24 13:10:36 +00:00
Mike Hearn
5b7fb86b6b Use TypeSafe Config library instead of Java properties files for the config file format. The default formats are compatible so this should not be disruptive. 2016-03-23 16:49:28 +00:00
sofusmortensen
5d5bcbfb00 Merge branch 'master' into dynamic-loading 2016-03-22 13:37:33 +00:00
sofusmortensen
527b0f4817 Improved unit tests.
Cleaned up project structure a bit.
2016-03-22 12:15:47 +00:00
Mike Hearn
b1694e2d0d Move MockNode/InMemoryNetwork to the main sourceset, as these are useful not only for unit testing, but also simulation tools. 2016-03-22 10:54:35 +00:00
Mike Hearn
9dbb575b51 Kotlin 1.0.1 2016-03-17 13:04:54 +01:00
Mike Hearn
2754546942 Don't report errors when dependency version conflicts are found, as Gradle's default behaviour of picking the newest version is normally the right one and in practice what we've been doing anyway.
Remove RxKotlin. It doesn't add enough value over just using the RxJava API directly.
2016-03-11 11:49:50 +01:00
rick.parker
429ac589df Clean integration of Jersey & Jackson for JAX-RS support, with Config for setting up custom marshalling. No API classes configured by default
Enable Jersey monitoring JMX MBean

Updates based on Mike's feedback
2016-03-11 08:37:53 +00:00
Mike Hearn
a03352e6cd Export JMX statistics via JSON REST endpoints using Jolokia. 2016-03-09 15:53:32 +01:00
Mike Hearn
0f208d8b4d Check in a demo of how to get an interest rate fix from an oracle. 2016-03-08 17:31:35 +01:00
Mike Hearn
8d3c9643e9 Minor: Move TraderDemo to demos package 2016-03-08 17:29:23 +01:00
Mike Hearn
1123c28f02 Make the trader demo attach a PDF to the commercial paper self-issuance and then scan for it on the buyer side, print out the path on the filesystem where the PDF can be found. 2016-03-02 15:08:55 +01:00
Mike Hearn
37f1de8a4d Refactor FetchTransactionsProtocol into FetchDataProtocol and add support for fetching attachments. 2016-02-29 19:05:05 +01:00
Mike Hearn
0224bca1a9 Add a simple file backed attachment store, with tests. 2016-02-29 19:04:41 +01:00
Mike Hearn
105f9e1069 Add Apache JEXL as a dependency, as part of an exploration of on-the-fly contract specialisation (this solution may not be taken forward but suffices to unblock other work) 2016-02-29 18:56:03 +01:00
Mike Hearn
478b6c5fba Trader demo: use a start script instead of Gradle, which simplifies setup.
It also stops Gradle messing with the console output.
2016-02-24 12:58:37 +01:00
Mike Hearn
c3f86f6557 Integrate a simple progress tracking system into the protocol framework.
The progress tracker API lets you model a tree of steps, along the same structure as protocols and subprotocols. Each step has an (optionally changing) label, and thus progress trackers can be arranged in a tree. Updates to the progress at each level flow up the tree via an RxJava observable (I guess we will use this more in future).

A simple console renderer is provided that uses ANSI escapes and Emoji to show animated progress through a protocol.

The trader demo is enhanced to use this framework, when run outside of Gradle.
2016-02-24 12:58:37 +01:00
Mike Hearn
f6167cbe12 Minor: tweak build file to describe how to activate Dokka API docs 2016-02-18 13:43:15 +01:00
Mike Hearn
1f8fd4b578 Kotlin 1.0 (huzzah) 2016-02-16 17:26:12 +01:00
Sofus Mortensen
994abb3edb Added new project core.
Project Contracts depends only on core.
2016-02-16 17:14:17 +01:00
Sofus Mortensen
00977c0d83 build.gradle edited online with Bitbucket 2016-02-16 17:14:17 +01:00
Sofus Mortensen
e34731bad7 Sorting of files. Create build.gradle in contracts. Comments. 2016-02-16 17:14:17 +01:00
Sofus Mortensen
cbfcac994a New separate project for contracts. Canonicalization. 2016-02-16 17:14:17 +01:00
Mike Hearn
88e02440d4 Kotlin 1.0 RC
Hopefully this is the last time they break backwards compatibility.
2016-02-08 19:35:30 +01:00
Mike Hearn
f705eee312 Use buyer/seller instead of alpha/beta and allow nodes to both be named localhost. Update docs. 2016-02-05 15:48:58 +01:00
Mike Hearn
1e8ea8eb2c Implement the beginnings of a serving node.
It uses Artemis (an embeddable MQ broker) and can run in either a 'serving' mode, in which case it will sit around waiting to sell fake commercial paper assets, or a 'buying' mode in which case it will connect to a specified serving node and run the two party trade protocol.

Most services are either mocked out or too trivial to be useful at this point. They will be fleshed out in the future.
2016-02-03 16:57:01 +01:00
Mike Hearn
360d8ec7ad Add dependency on Apache Artemis (message queue library) and clean up a few no longer necessary overrides and version pins. 2016-02-03 15:35:55 +01:00
Mike Hearn
fd63543566 Minor: Quasar 0.9.4 is out so we don't need the snapshot version anymore. 2016-01-22 12:00:14 +01:00
Mike Hearn
33b98bc9c3 Minor: bump Guava to v19 to avoid conflicts with new Quasar 2016-01-12 12:14:46 +01:00
Mike Hearn
412212a860 Switch from JavaFlow to Quasar to provide fibers.
Quasar is a more modern, better maintained and more powerful framework. The main improvement is that this lets us avoid the ClassLoader tricks that JavaFlow was requiring, by using an agent. This introduces a requirement to mark methods that might be on a suspended stack as @Suspendable, but means that code interops cleanly. In Java 9 it is hoped that the marking requirement may even go away entirely.
2016-01-12 12:14:39 +01:00
Mike Hearn
992b56a2b2 Bump Dokka version to fix gradle build 2016-01-05 11:46:26 +01:00
Mike Hearn
cd7d01917f Kotlin 1.0.0-beta-4584 2015-12-24 17:21:10 +00:00
Mike Hearn
0ca47156bc Trading protocol work in progress 2015-12-11 15:19:13 +01:00
Mike Hearn
f13b9b00e4 Minor: fix Arrays.asList serialisation by adding the extra serialisers lib as a dependency 2015-12-10 17:14:49 +01:00
Mike Hearn
65f1e52d12 Bump Dokka version, it has to be kept in sync with the Kotlin compiler. 2015-12-08 17:23:39 +01:00
Mike Hearn
f4ddbc9e82 Bump Kotlin version to 1.0-beta-3594 2015-12-07 13:35:19 +01:00
Mike Hearn
ea4a6d8f06 Add logging utilities using slf4j 2015-12-03 18:24:26 +00:00
Mike Hearn
a95cd056ea Implement a simple transaction graph visualiser tool. 2015-12-02 09:50:45 +00:00
Mike Hearn
8ea4ac8b15 Rename 'playground' to 'R3 Prototyping' 2015-11-30 17:00:25 +00:00
Mike Hearn
af4aa3dedc Minor: remove funktionale from build.gradle, it's unused 2015-11-24 15:21:59 +01:00
Mike Hearn
564fce7e99 Minor: set Java 8 as a requirement in gradle build file 2015-11-23 13:13:46 +01:00
Mike Hearn
92c92db33d Minor: bump Dokka version to fix build 2015-11-21 13:14:53 +01:00
Mike Hearn
6c66eee712 Kotlin Beta 2 2015-11-16 19:23:50 +01:00
Mike Hearn
2d58453225 Minor: add Dokka as an api doc generator tool. It's still kind of rough and needs a stylesheet to be supplied manually. 2015-11-16 12:16:37 +01:00
Mike Hearn
162b830bcd Add some serialization utilities and tests, using Kryo. 2015-11-13 20:38:29 +01:00
Mike Hearn
ac9a371179 Platform: commands can now have multiple signatures per command (i.e. you only have one command of any type per transaction even if there are multiple authorisations). 2015-11-09 19:27:53 +00:00
Mike Hearn
d7a5289c3d Build/git stuff: minor tweaks 2015-11-06 13:56:04 +01:00
Mike Hearn
c60db5544b Initial import 2015-11-03 17:54:17 +01:00