Welcome to the Common Domain Model Playground for Java and Python repository. This project contains source code with native CDM functionalities use cases. It also serves as training material for introductory CDM implementation courses.
This project can be used to verify the FINOS CDM dependency resolution and resolve CDM-specific implementation questions by running a set of unit tests with widely used functionalities across industry solutions:
- Serialization: Basic de/serialization tests from/to JSON using the
RosettaObjectMapper
. - Object validation: Demonstrates the usage of the native
RosettaTypeValidator
evaluating cardinality and business conditions. - Qualification: Product-based qualification mechanism built in CDM using native
QualifyFunctionFactory
. - Event driven transitions: A set of post trade event executions using built-in model functions.
All samples included in the project are publicly available at FINOS CDM repository. The playground project uses samples for the version defined in pom's property finos.cdm.version
For more examples and usage, please refer to the FINOS CDM.
The project uses:
- JDK 11
- Maven
mvn clean verify
List the roadmap steps; alternatively link the Confluence Wiki page where the project roadmap is published.
- Expand test coverage with functionalities around function binding through dependency injection
- Expand event execution test coverage
- Include a sample event classification application built with CDM python distribution
- ...
- Fork it (https://github.com/finos/cdm-playground/fork)
- Create your feature branch (
git checkout -b feature/fooBar
) - Read our contribution guidelines and Community Code of Conduct
- Commit your changes (
git commit -am 'Add some fooBar'
) - Push to the branch (
git push origin feature/fooBar
) - Create a new Pull Request
Copyright 2024 Trade Header
Distributed under the Apache License, Version 2.0.
SPDX-License-Identifier: Apache-2.0