Corda is an open source blockchain project, designed for business from the start. Only Corda allows you to build interoperable blockchain networks that transact in strict privacy. Corda's smart contract technology allows businesses to transact directly, with value.
Go to file
Dan Newton cd73161513 CORDA-2870 improve error messages for non composable types (#5120)
* CORDA-2870 Add `reason` and `remedy` to `LocalTypeInformation.NonComposable`

When creating `LocalTypeInformation.NonComposable` pass in the `reason`
a type was not composable and the `remedy` to fix it. This required
changes in `LocalTypeInformationBuilder` to pass in this extra
information so that it can be used later.

The message that the `ObjectSerializer` includes in its
`NotSerializableException` now includes the extra information about the
non composable type.

* CORDA-2870 Include custom serializers in serialization error message

In `ObjectSerializer`, when a serialization exception is thrown,
include the registered custom serializers + their classloaders as part
of the error message.

This required making properties on `CustomSerializerRegistry` and
`LocalSerializerFactory` public.

Tidy up `LocalTypeInformationBuilder` error message text for
transitive non-composable types.

* CORDA-2870 Tidy up error thrown for unserializable objects

Fix `DeserializeSimpleTypesTests` and tidy up the code in
`ObjectSerializer` a bit.

* CORDA-2870 Remove non-composable warning logs in `LocalTypeInformationBuilder`

The flag `warnIfNonComposable` and its corresponding log lines are not
needed now that the non-composable error messages contain a lot of
information in them.

The `warnIfNonComposable` flag is now incorrect and has been renamed to
`validateProperties` and the function `suppressWarningsAnd` has been
changed to `suppressValidation`.

`propertyDescriptors` has also had its input boolean changed to
`validateProperties` to better represent what it is doing.

* CORDA-2870 Remove need for casting by moving variable to interface

Expose `customSerializerNames` in `LocalSerializerFactory` and
`CustomSerializerFactory`.
2019-05-16 10:05:49 +01:00
.ci ENT-3121 - restrict custom serializers (#1852) 2019-03-29 14:48:07 +00:00
.github Typo. (#3750) 2018-08-07 10:14:23 +01:00
.idea CORDA-2769 - fixed infinite recursive call for copy implementation. (#4912) 2019-03-27 18:51:35 +00:00
buildSrc CORDA-2902: Remove the CanonicalizerPlugin from buildSrc. (#5070) 2019-04-30 14:17:25 +01:00
client ENT-3422 Add JUnit 5 dependencies to all projects (#5084) 2019-05-15 16:40:12 +01:00
common ENT-3422 Add JUnit 5 dependencies to all projects (#5084) 2019-05-15 16:40:12 +01:00
confidential-identities ENT-3422 Add JUnit 5 dependencies to all projects (#5084) 2019-05-15 16:40:12 +01:00
config CORDA-2586 explorer exception handling (#4957) 2019-04-09 19:14:37 +00:00
core ENT-3422 Add JUnit 5 dependencies to all projects (#5084) 2019-05-15 16:40:12 +01:00
core-deterministic ENT-3422 Add JUnit 5 dependencies to all projects (#5084) 2019-05-15 16:40:12 +01:00
create-jdk8u ENT-1467: Make the deterministic JDK image compatible with IntelliJ. (#3416) 2018-06-26 11:53:16 +01:00
djvm ENT-3422 Add JUnit 5 dependencies to all projects (#5084) 2019-05-15 16:40:12 +01:00
docker CORDA-2888 change default dataSource.url to match the docker container structure. (#5098) 2019-05-07 10:32:47 +01:00
docs Database Tables doc fix: Change paragraphs heading, so they don't appear as top level in the side bar; fix a web page link. (#5123) 2019-05-14 14:30:08 +01:00
experimental ENT-3422 Add JUnit 5 dependencies to all projects (#5084) 2019-05-15 16:40:12 +01:00
finance ENT-3422 Add JUnit 5 dependencies to all projects (#5084) 2019-05-15 16:40:12 +01:00
gradle/wrapper CORDA-1983: Upgrade to Gradle 4.10.1. (#3947) 2018-09-15 14:23:16 +01:00
isolated CORDA-2902: Remove the CanonicalizerPlugin from buildSrc. (#5070) 2019-04-30 14:17:25 +01:00
jdk8u-deterministic CID-251: Integrate DJVM with Corda's existing deterministic-rt. (#3846) 2018-08-24 15:51:40 +01:00
lib [CORDA-1611] Upgrade Quasar to 0.7.10 (#3342) 2018-06-12 09:38:14 +01:00
node ENT-3422 Add JUnit 5 dependencies to all projects (#5084) 2019-05-15 16:40:12 +01:00
node-api ENT-3422 Add JUnit 5 dependencies to all projects (#5084) 2019-05-15 16:40:12 +01:00
release-tools NOTICK - Use API key for JIRA interaction (#5045) 2019-04-18 15:02:17 +01:00
samples ENT-3422 Add JUnit 5 dependencies to all projects (#5084) 2019-05-15 16:40:12 +01:00
serialization CORDA-2870 improve error messages for non composable types (#5120) 2019-05-16 10:05:49 +01:00
serialization-deterministic Revert "CORDA-2782 Add Comparable to default whitelist for vault query criteria using comparables (#4920)" 2019-03-26 12:18:45 +01:00
testing ENT-3422 Add JUnit 5 dependencies to all projects (#5084) 2019-05-15 16:40:12 +01:00
tools ENT-3422 Add JUnit 5 dependencies to all projects (#5084) 2019-05-15 16:40:12 +01:00
webserver ENT-3422 Add JUnit 5 dependencies to all projects (#5084) 2019-05-15 16:40:12 +01:00
.gitignore add kotlin 1.3 codestyle to git (#4204) 2018-11-09 09:38:41 +00:00
build.gradle ENT-3422 Add JUnit 5 dependencies to all projects (#5084) 2019-05-15 16:40:12 +01:00
buildCacheSettings.gradle Explicitly disable remote gradle build cache when building locally. (#4095) 2018-10-19 16:40:06 +01:00
constants.properties CORDA-2750: Modularise the DJVM build. (#4897) 2019-03-17 06:06:51 +00:00
CONTRIBUTING.md Combines all contributing info in one place. Clean-up. (#4266) 2018-11-20 18:17:11 +00:00
CONTRIBUTORS.md Update CONTRIBUTORS.md 2019-01-04 11:23:56 +00:00
deterministic.gradle ENT-1463, ENT-1903: Refactor Gradle for deterministic modules (#3387) 2018-06-18 14:14:48 +01:00
gradle.properties BUILD: Resolve warnings with Gradle and system property API usage. (#4904) 2019-03-20 13:39:51 +00:00
gradlew Upgraded to gradle 4.1. 2017-08-23 15:36:08 +01:00
gradlew.bat Upgrade gradle to 4.4.1 2018-01-24 16:15:43 +00:00
LICENSE Update license year 2019 (#4490) 2019-01-03 09:31:15 +00:00
README.md Update README.md (#4507) 2019-01-04 10:54:05 +00:00
settings.gradle ENT-3142 NetworkParameters signing tool (#4996) 2019-04-11 16:45:04 +01:00
TRADEMARK Updated URL link to R3 trademark policy 2017-07-13 11:43:41 +01:00

Corda

License

Corda

Corda is an open source blockchain project, designed for business from the start. Only Corda allows you to build interoperable blockchain networks that transact in strict privacy. Corda's smart contract technology allows businesses to transact directly, with value.

Features

  • Smart contracts that can be written in Java and other JVM languages
  • Flow framework to manage communication and negotiation between participants
  • Peer-to-peer network of nodes
  • "Notary" infrastructure to validate uniqueness and sequencing of transactions without global broadcast
  • Enables the development and deployment of distributed apps called CorDapps
  • Written in Kotlin, targeting the JVM

Getting started

  1. Read the Getting Started documentation
  2. Run the Example CorDapp
  3. Read about Corda's Key Concepts
  4. Follow the Hello, World! tutorial

Contributing

Corda is an open-source project and contributions are welcome!

To find out how to contribute, please see our contributing docs.

License

Apache 2.0

Acknowledgements

YourKit

YourKit supports open source projects with its full-featured Java Profiler.

YourKit, LLC is the creator of YourKit Java Profiler and YourKit .NET Profiler, innovative and intelligent tools for profiling Java and .NET applications.