Commit Graph

1817 Commits

Author SHA1 Message Date
Shams Asari
9ffb43f3f7
CORDA-1385: Ignore duplicate packages and sub-packages in driver extraCordappPackagesToScan (#3066)
Otherwise duplicate test CorDapps are loaded into the node
2018-05-03 12:28:36 +01:00
Chris Rankin
a6b7257491
CORDA-1441: Upgrade to Kotlin 1.2.41 (#3063) 2018-05-03 12:12:54 +01:00
szymonsztuka
23c604b1db
Vault queries - change SQL generation for aggregate function in 'group by' clause. (#3016)
Vault queries: 'order by' function aggregation e.g. 'order by sum(col)' is replaced by the position of the selected column (e.g. 'order by 1'). 
Rationale: A database may be unable to support aggregation function in order by clause e.g. 'order by (sum col_x)' and Hibernate can't produce alias in this case e.g. ' select sum(col_x) as alias_x... order by also_x ...', the best universal solution is to use positional parameter e.g. 'select sum(col_x) as alias_x... order by 1 ...'

(cherry picked from commit 416d4ec)
2018-05-02 16:59:13 +01:00
Katelyn Baker
0d3c7e7762
CORDA-847 - RPC Server lib refactoring (#3056)
Just as we did for the RPC CLient, refactor kryo specific elements into
their own sub module. Also move kryo specific components out of generic
RPC files.

Thus, adding AMQP support will be a much smoother operation
2018-05-02 15:48:41 +01:00
Viktor Kolomeyko
884928c956
CORDA-1416: Upgrade version of Proton-J library (#3050)
* CORDA-1416: Upgrade version of Proton-J library

* CORDA-1416: Compilation fixes following Proton-J upgrade

Reflects:
https://issues.apache.org/jira/browse/PROTON-1712
and
https://issues.apache.org/jira/browse/PROTON-1672

* CORDA-1416: Add an integration test to prove that data saved by from previous version can be read.

* CORDA-1416: Add additional check validate serialized form.
2018-05-02 15:14:45 +01:00
Patrick Kuo
bb76c5bcde
Merge pull request #3054 from corda/pat/registration-tool-bugfix
Bug fix: registration tool doesn't register for service identity if keystore already contains node cert
2018-05-02 13:50:58 +01:00
Andrius Dagys
3bf1e803d9
Move notary service related classes and interfaces in core to interna… (#2827)
* Move notary service related classes and interfaces in core to internal, since we won't be able to stabilise the APIs for writing custom notary services any time soon (the docs already mention it). I left out the wire protocol related classes so we don't accidentally break it.
2018-05-02 12:21:38 +01:00
Patrick Kuo
2750017b8e Bug fix: registration tool doesn't register for service identity if keystore already contains node cert (#756)
* fix a bug where registration tool will refuse to register for a service identity if the keystore contain NODE_CA key already.
some refactoring

(cherry picked from commit 5ed60ab)
2018-05-02 09:59:12 +01:00
Katelyn Baker
e338414cd4
CORDA-847 - RPC Clent lib refactoring (#3052)
Move Kryo into it's own sub module
2018-05-01 20:52:19 +01:00
Michele Sollecito
92922b874c
[CORDA-1397]: Fixed incorrect exception handling in NodeVaultService._query(). (#3043) 2018-05-01 19:33:13 +07:00
Konstantinos Chalkias
5bbfde3d35
Run filterMyKeys only when required (in NodeVaultService) (#3014) 2018-05-01 13:24:06 +01:00
Shams Asari
adef57f127
Including FlowException in the RPC exception whitelist (CORDA-1264) (#3037)
These exceptions are designed to be propagated in P2P and so makes sense to keep them visible if the recipient is an RPC user.
2018-05-01 07:48:50 +01:00
Shams Asari
42edf58b92
Introducing AbstractArgsParser which removes the boilerplate of printing help and exiting the process on cmd line errors. (#3040) 2018-04-30 22:22:51 +01:00
jamesbr3
32b57feaa0 Update jolokia to 1.5.0 (#2617)
* Update jolokia to 1.5.0

* adding jolokia update to changelog
2018-04-30 10:24:08 +01:00
Michal Kit
ab80df342a
CORDA-1319 Adding CRL checking for nodes (#2987)
* Adding CRL support for nodes

* Addressing review comments
2018-04-30 09:26:26 +01:00
bpaunescu
c3e6b39e59
artemis upgrade to 2.5.0 (#3029) 2018-04-27 19:54:08 +01:00
Viktor Kolomeyko
0cbfab9214
CORDA-1335: Move DistributedServiceTests into a separate package to reduce size of attachments produced. (#3021) 2018-04-27 16:47:01 +01:00
Andrius Dagys
efd203e5f3
ENT-1540: Make sure transactions with "expired" time windows get re-notarised correctly (#3004)
* ENT-1540: Make sure transactions with "expired" time windows get re-notarised correctly.

Currently the time window is checked before states are being passed to a uniqueness provider. If the time window is
invalid, the transaction will be rejected even if it has already been notarised, which violated idempotency.

For this reason the time window verification was moved alongside state conflict checks.

* Update API - this only affects custom notary interfaces
2018-04-27 15:02:09 +01:00
Maksymilian Pawlak
b210f7ab0b
DB test using transaction with rollback rather then recreating whole DB (#2994)
VaultQuery tests wrapped inside transaction which gets rolled back rather then recreating DB from scratch for each test
Moved Missing schema test to separate class, as it modifies global test class state
2018-04-27 09:52:25 +01:00
Michele Sollecito
235df69efe
[CORDA-1379]: Allow soft trapping of unknown config keys. (#3011) 2018-04-27 15:33:13 +07:00
Anthony Keenan
aecde00365
CORDA-1001 Remove unused bits of PersistentMap (#3001)
* Remove unused bits of PersistentMap

* Add persistent map tests

* Reivew comments
2018-04-26 21:58:01 +01:00
Thomas Schroeter
2ff3939e2e
Add exponential backoff to P2P messaging retry (#2975) 2018-04-26 13:58:41 +01:00
Andrius Dagys
7ad19af93f
CORDA-1353: Notaries should reject transactions that contain too… (#2986)
CORDA-1353: Notaries should reject transactions that contain too many inputs. Otherwise, it may cause a slowdown or make the service hang.
2018-04-25 17:29:19 +01:00
Shams Asari
e09fc60294
Improved error message on net parameters mismatch during node startup (#3003) 2018-04-25 14:33:07 +01:00
Andras Slemmer
29dbe6ab53 Add flow-id to MDC 2018-04-25 10:36:50 +01:00
Andras Slemmer
f1da044c86 Remove double wrap 2018-04-25 10:36:40 +01:00
Konstantinos Chalkias
03fb9d4be2
CORDA-1354 Check for jars in nested folders (to add in classpath) (#2981)
+ edge cases (logging if we don't have permission to jar folders)
2018-04-24 18:43:07 +01:00
Chris Rankin
8e507d0b88
CORDA-1263: Replace deprecated kotlin-stdlib-jre8 with kotlin-stdlib-jdk8. (#2992) 2018-04-24 14:03:41 +01:00
Chris Burlinchon
b0d2a258c0 cherry-pick 7759fdbb71ea9b2021afd8af0ac05447c5305b3a 2018-04-24 09:36:57 +01:00
Andras Slemmer
a276a2555e Add killFlow tests 2018-04-23 15:36:35 +01:00
Andras Slemmer
5e0202acd0 Add killFlow 2018-04-23 15:36:35 +01:00
Andras Slemmer
6bf34ed5c7 Fix bugs 2018-04-23 15:36:16 +01:00
Andras Slemmer
5b4fd6fe64 Address comments 2018-04-23 15:36:16 +01:00
Rick Parker
57caf9af28 Cherry pick 34f8719363 2018-04-23 15:36:16 +01:00
Andras Slemmer
19dad6da96 Add back deprecated functions 2018-04-23 15:36:16 +01:00
Andras Slemmer
ce5fb66260 StateMachine rewrite 2018-04-23 15:36:16 +01:00
Shams Asari
d3446e213c
Introduced a few more extension methods to Path, which are clearer than the static methods in Files. (#2985)
Also migrated code away from the old File API.
2018-04-23 14:31:49 +01:00
Viktor Kolomeyko
bf4d8ba08c
CORDA-1335: Scan attachment Jar only to speed-up the process. (#2982)
* CORDA-1335: Scan attachment Jar only to speed-up the process.

* CORDA-1335: Explicitly mention other types of contracts to scan.

* CORDA-1335: Refactor to eliminate listing different subclasses of Contract in two separate places.
2018-04-23 09:17:43 +01:00
Anthony Keenan
7db48de2b8
CORDA-1344 Fix query paging in scheduled flow tests (#2970)
* Fix paging tests, move out of scheduled flow tests and provide java example

* Fix a few issues with docs
2018-04-18 11:10:21 +01:00
Shams Asari
1288f63998
Fixed the CorDapp configuration demo (#2967) 2018-04-16 17:23:11 +01:00
Konstantinos Chalkias
6f69f0252d
CORDA-1337 Crypto.registerProviders (#2962)
CORDA-1337 Crypto.registerProviders + add BCPQC as well
2018-04-13 12:40:15 +01:00
Katarzyna Streich
91c52af5ac
ENT-1584: Subscribe to private network maps using UUIDs (#2922)
Client private network map implementation

Add private network maps UUIDs to config as extraNetworkMapKeys. Adjust NetworkMapServer implementation accordingly.
Change NetworkMapUpdaterTest to use NetworkMapServer instead of mock
2018-04-13 10:52:45 +01:00
Patrick Kuo
b5f304a104 ENT-1323 Network map service to check all identities in submitted node info (#499)
* ENT-1323 Network map service to check all identities in submitted node info

* fixup after rebase

* address PR issues, refactored createValidNodeInfo

* address PR issues

(cherry picked from commit f9ed55b)
2018-04-12 13:11:30 +01:00
Shams Asari
f88542faa2
CORDA-1095: Fixed rare race where the startNode future completes before the default notary is visible (#2947) 2018-04-11 15:33:55 +01:00
szymonsztuka
b46c3b89bd
CORDA-1326 Add default shell user only when local shell is started. (#2953)
In productionMode ssh could login to a node using "shell/shell" which is supposed to be available only in dev mode (to enable embedded shell).
2018-04-11 14:06:13 +01:00
szymonsztuka
2dc2a8dc19
ENT-1727 Fix cash selection with PostgreSQL. (#2949)
Change conversion to toStringShort() instead of toBase58String() - as done for H2 Cash Selection.
Fix withIssuerRefs case - iterate via list of IssuerRefs and setBytes instead of setArray of BYTEA.
Add test for Cash Selection with issuerRef.
2018-04-11 13:36:29 +01:00
Matthew Nesbit
70beffac48
Add support for different internal p2p artemis bind address/port (#2951)
* Add support for different internal p2p artemis bind address/port and externally advertised p2pAddress and port.

* Fix formatting
2018-04-11 10:33:17 +01:00
Shams Asari
ecce64ba03
HttpUrlConnection.getErrorStream() can be null, which if not handled can obscure the reporting of an HTTP error response, like in ENT-1744 (#2948) 2018-04-11 09:39:58 +01:00
Viktor Kolomeyko
e48cd808b0
Try to improve stability of NodeRegistrationTest (#2942)
Since we are running web-server and different handling methods will be called from
different threads, it is more appropriate to use concurrent data structures
for exchanging information between threads.

Prior to this change I observed the following exception which is likely to be due `certPaths` not synchronized between threads:
```
Caused by: kotlin.KotlinNullPointerException
    at net.corda.node.utilities.registration.RegistrationHandler$reply$1.invoke(NodeRegistrationTest.kt:151) ~[integrationTest/:?]
    at net.corda.node.utilities.registration.RegistrationHandler$reply$1.invoke(NodeRegistrationTest.kt:122) ~[integrationTest/:?]
    at net.corda.core.internal.InternalUtils.logElapsedTime(InternalUtils.kt:221) ~[corda-core-corda-4.0-snapshot.jar:?]
    at net.corda.core.internal.InternalUtils.logElapsedTime(InternalUtils.kt:213) ~[corda-core-corda-4.0-snapshot.jar:?]
    at net.corda.node.utilities.registration.RegistrationHandler.reply(NodeRegistrationTest.kt:149) ~[integrationTest/:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_161]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_161]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_161]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_161]
 ```
2018-04-06 17:11:03 +01:00
Rick Parker
130b1d9325
CORDA-1303 Regression: Recording a duplicate transaction attempts sec… (#2935)
* CORDA-1303 Regression: Recording a duplicate transaction attempts second insert to vault.

Added unit test, and merged mock and real logic.
2018-04-06 10:28:51 +01:00
Shams Asari
1b37cef822
Minor: use of ByteArray.inputStream() and introduced PublicKey.hash (#2931) 2018-04-05 17:18:27 +01:00
Michal Kit
c8b58a601f
Adding CRL support in the generated certificates. (#2932) 2018-04-05 16:39:41 +01:00
Shams Asari
53a0aae489
Introduced a few helper methods around InputStream.readBytes (#2928) 2018-04-05 14:27:42 +01:00
Viktor Kolomeyko
9a1c27e3e0
Improve performance of NodeStatePersistenceTests (#2921)
Packages re-jig was meant to reduce the size of the jars that are being produced by the
node driver. E.g. previously `MessageState` was in package `net.corda` which resulted in jar file
of around 2MB to be created. Same for `NodeStatePersistenceTests` which was in `net.corda.node`
2018-04-05 09:33:03 +01:00
szymonsztuka
c998968e58
Update RpcExceptionHandlingTest tests introduced by CORDA-1264 (#2916) 2018-04-04 14:35:51 +01:00
szymonsztuka
7ec65901b6 Corda-1286 Fix embedded shell when rpc users from remoted database (#2910) 2018-04-03 19:13:41 +01:00
Viktor Kolomeyko
1f5559e3c4
Speed-up NodeRegistrationTest (#2873)
* Improve logging for NetworkMap requests

* Allow interrupt in polling if the process started successfully

* Put `advertiseNewParameters` back

* Additional log line to indicate when all the nodes are started

* Improve logging and use concurrent map since it is updated from multiple threads

* Change NetworkMap response validity duration and rename parameter accordingly

* Changes following code review from @shamsasari
2018-04-03 17:33:42 +01:00
Shams Asari
65ff214130
CORDA-1276: Cleaned up creation of node-info object on node start and when using --just-generate-node-info (#2909) 2018-04-03 17:30:53 +01:00
Andras Slemmer
ef723b1b68 CORDA-1295: Use ConcurrentHashMap instead of synchronised multimap 2018-04-03 12:06:59 +01:00
Andras Slemmer
6d5e08b44e CORDA-1295: Clean up client->observable association on observable finish 2018-04-03 11:43:17 +01:00
Michele Sollecito
0d1d7daedc
[CORDA-1264]: Ensure correct serialisation and masking for throwables raised by a node and propagated through RPC. (#2892) 2018-03-29 13:01:41 +01:00
Andrzej Grzesik
2863f8403b
CORDA-1277 Remove double quotes from keys in reference.conf
CORDA-1277 Remove double quotes from keys in reference.conf
2018-03-29 09:15:30 +01:00
Katarzyna Streich
d2b7f8b91f
ENT-1686: Improve error message on parameters mismatch (#2891)
Improve error message on parameters mismatch
2018-03-28 16:48:56 +01:00
ags
43ead64240
updating docs 2018-03-28 15:54:58 +01:00
Katarzyna Streich
2e4b223bd8
ENT-1668: Don't crash on node startup when network map is not available (#2887)
Fix ENT-1668

Don't crash on node startup when network map is not available
2018-03-28 15:42:39 +01:00
ags
51567e944d
detect quotes in config keys 2018-03-28 15:23:12 +01:00
Shams Asari
768dd32417
ENT-1663 - Inclusion of the cert path and root cert in the exception message when cert path validation fails. (#2890)
Also, added check to node startup that --initial-registration cannot occur in devMode
2018-03-28 15:18:50 +01:00
ags
e60b816b19
double quotes in reference conf confuse people 2018-03-28 14:28:55 +01:00
Michele Sollecito
36f02ff4b4 [CORDA-1267]: Making Corda's JPA classes non-final and Serializable. (#2882)
* Making Corda's JPA classes non-final and Serializable.

* Making Corda's JPA classes non-final and Serializable.

* Making Corda's JPA classes non-final and Serializable.

* Making Corda's JPA classes non-final and Serializable.
2018-03-28 08:40:28 +01:00
szymonsztuka
4269e4a02e
DrainingMode integration tests - explicit node names, changed column names of a test table. (#2879)
Align DrainingMode integration tests (related to CORDA-1243) with Enterprise repo.
2018-03-27 14:00:28 +01:00
Anthony Keenan
329fa94a09
CORDA-1002 Add node scheduler persistence tests (#2860)
* Add node scheduler persistence tests

* Kill the scheduler threads after node scheduler tests

* Address review comments
2018-03-26 14:48:58 +01:00
Tudor Malene
7978910e0b
ENT-1633 increase node max heap size to 512m (#2851) 2018-03-26 13:41:37 +01:00
Michele Sollecito
975b81c2c4
[CORDA-1243]: Avoid drain-related deadlocks between 2 nodes. (#2866) 2018-03-23 11:45:19 +00:00
Shams Asari
620ba1e8a2
Integration test for network parameter updates and improved logging (#2863) 2018-03-22 14:08:07 +00:00
renlulu
7ce8d7a878 SUBMISSION - Remove repeated code (#2864) 2018-03-22 13:45:02 +00:00
igor nitto
91cda5f18a
Reintroduce accidentally removed RPC addresses print (#2857) [CORDA-1244] 2018-03-21 14:21:09 +00:00
Michele Sollecito
ce8771900e
[CORDA-1235]: Prevent out of order consumption of initiation vs subsequent messages (#2850) 2018-03-21 11:24:53 +00:00
szymonsztuka
f1ac3c39e9
ENT-1634 Fix Primary Key generation for node_notary_request_log table (#2855)
Don't assign a value as it's auto generated, remove redundant default value for GeneratedValue strategy.
2018-03-21 09:41:50 +00:00
igor nitto
8591ae2dc9
CordApps back in node classpath (#2843) [CORDA-1232] 2018-03-19 14:34:02 +00:00
Michele Sollecito
7a077e76f0
CORDA-1099: Orchestrated clean shutdown from Shell (#2831) 2018-03-19 14:20:10 +00:00
Shams Asari
327d7d8acf
Added sign helper method to CertificateAndKeyPair for producing SignedDataWithCert objects (#2841) 2018-03-19 12:47:23 +00:00
bpaunescu
dc595792e7
github issue #2630: missing rpc info at node startup (#2839) 2018-03-16 17:14:25 +00:00
igor nitto
286d1e5add
Propagate cordApp classloader to shell [CORDA-1228] (#2833) 2018-03-16 13:28:04 +00:00
Andrius Dagys
180abcb462 CORDA-1208: Remove unnecessary annotation from entity 2018-03-16 09:08:29 +00:00
Andrius Dagys
e31d2b0cad
CORDA-1208: Notary service should persist the notarisation request si… (#2823)
* CORDA-1208: Notary service should persist the notarisation request signature along with the committed input states.

This required modifying the uniqueness provider interface to accept the signature in addition to input states.
Until now the committed state log used to be stored as a map of (state reference -> (tranasction id, consuming party)).
Adding the serialized signature would mean inflating each state entry by around 700 bytes, which would be grossly inefficient.
Instead, two tables are now used: one for storing (state referece -> transaction id) map, and another for storing the notarisation
request details (transaction id, consuming party, date, signature).

* Update api - all of these changes are only related to custom notaries
2018-03-15 13:29:42 +00:00
Tudor Malene
88c5ab8870 Feature/corda 1219/remove out of process verifier (#2820) 2018-03-15 09:57:59 +00:00
igor nitto
2cff495553
Remove CordApps JARs from node classpath [CORDA-1135] (#2691) 2018-03-14 16:42:23 +00:00
Rick Parker
a24a2105b1
CORDA-1217 Replace Guava caches with Caffeine (#2818) 2018-03-14 16:07:31 +00:00
Viktor Kolomeyko
8f750c0629
CORDA-1042: Change the way how Jolokia library located on the classpath so that it work on Windows (#2817)
Old code failed with:
```
11:34:01.536 [main] ERROR net.corda.node.internal.Node - Exception during node startup
java.nio.file.InvalidPathException: Illegal char <:> at index 2: /C:/Program%20Files/JetBrains/IntelliJ%20IDEA%20Community%20Edition%202017.3.1/lib/idea_rt.jar
	at sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182) ~[?:1.8.0_144]
	at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153) ~[?:1.8.0_144]
	at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77) ~[?:1.8.0_144]
	at sun.nio.fs.WindowsPath.parse(WindowsPath.java:94) ~[?:1.8.0_144]
	at sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:255) ~[?:1.8.0_144]
	at java.nio.file.Paths.get(Paths.java:84) ~[?:1.8.0_144]
	at net.corda.node.utilities.JVMAgentRegistry.resolveAgentJar(JVMAgentRegistry.kt:46) ~[classes/:?]
	at net.corda.node.internal.AbstractNode.initialiseJVMAgents(AbstractNode.kt:785) ~[classes/:?]
	at net.corda.node.internal.AbstractNode.start(AbstractNode.kt:199) ~[classes/:?]
	at net.corda.node.internal.Node.start(Node.kt:335) ~[classes/:?]
	at net.corda.node.internal.NodeStartup.startNode(NodeStartup.kt:146) ~[classes/:?]
	at net.corda.node.internal.NodeStartup.run(NodeStartup.kt:120) [classes/:?]
	at net.corda.node.Corda.main(Corda.kt:16) [classes/:?]
```
2018-03-14 13:42:18 +00:00
Andrzej Cichocki
932d632716
ENT-1439 Refactor Provider setup (#2780)
* Initialise crypto nice and early
* More OO way of requiring correct name for BouncyCastlePQCProvider
2018-03-13 17:22:38 +00:00
Andrzej Grzesik
9a0a0e9880
Merge pull request #2758 from corda/merge/CORDA-1155
CORDA-1155 - Jolokia logging via slf4j (#2753)
2018-03-12 11:19:05 +00:00
Ben Abineri
d9ab693752
make two exceptions that held me up recently more helpful (#2778) 2018-03-12 09:35:40 +00:00
Andrius Dagys
2d31247da2 CORDA-1171: When a double-spend occurs, do not send the consuming transaction id and requesting party back to the client - this might lead to privacy leak. Only the transaction id hash is now returned. 2018-03-09 16:00:52 +00:00
Andrius Dagys
a3bf4577f3 CORDA-696 - Ensure deterministic transaction id calculation for contra… (#2676)
The problem with the previous implementation is that the transaction would be deserialized with the schema specified
in the serialized form, but the calculation of the id would involve re-serializing properties using a local serialization context
which might produce a different result.
2018-03-09 14:39:31 +00:00
ags
ca54ed611c
addressing review remarks 2018-03-08 09:06:12 +00:00
ags
ed3ba537f3
Restoring Jolokia in webserver, to be able to redirect logger via Slf4j 2018-03-07 14:35:15 +00:00
szymonsztuka
0d5f033aae
[CORDA-1085] Alter column names to be consistent with R3.Corda. (#2606)
Alter column names to be consistent with R3.Corda - related to CORDA-990.
2018-03-07 13:28:49 +00:00
Andrzej Grzesik
803ce15b32
Corda-1155 - Jolokia logging via slf4j (#2753)
* Jolokia logging through slf4j

* review remarks
2018-03-07 13:23:00 +00:00
szymonsztuka
72074c76c7
[CORDA-792] Standalone Shell (#2663)
- Existing embedded Shell connects via RPC including checking RPC user credentials (before was a direct use of CordaRPCOps):  in dev mode when console terminal is enabled, node created `shell` user.
- New Standalone Shell app with the same functionalities as Shell: connects to a node via RPC Client,  can use SSL and run SSH server.
2018-03-07 09:57:32 +00:00
Tudor Malene
8fe94bca2d
ENT-1575 Shorten table name (#2750) 2018-03-07 09:55:41 +00:00