All Projects → ContextMapper → Context Mapper Dsl

ContextMapper / Context Mapper Dsl

Licence: apache-2.0
ContextMapper DSL: A Domain-specific Language for Context Mapping & Service Decomposition

Programming Languages

java
68154 projects - #9 most used programming language
dsl
153 projects

Projects that are alternatives of or similar to Context Mapper Dsl

Patterns
Complete catalog of all classical patterns in the Archimate language
Stars: ✭ 70 (-20.45%)
Mutual labels:  ddd, domain-driven-design
Eventsourcing
A library for event sourcing in Python.
Stars: ✭ 760 (+763.64%)
Mutual labels:  ddd, domain-driven-design
Isis
Apache Isis™ software is a framework for rapidly developing domain-driven apps in Java. Write your business logic in entities, domain services or view models, and the framework dynamically generates a representation of that domain model as a webapp or as a RESTful API. For prototyping or production.
Stars: ✭ 605 (+587.5%)
Mutual labels:  ddd, domain-driven-design
Typescript Event Sourcing
Domain Driven Design, Event Sourcing & Command Query Responsibility Segregation with Typescript
Stars: ✭ 83 (-5.68%)
Mutual labels:  ddd, domain-driven-design
Context Mapper Examples
ContextMapper DSL: Examples
Stars: ✭ 66 (-25%)
Mutual labels:  ddd, domain-driven-design
Modular Monolith With Ddd
Full Modular Monolith application with Domain-Driven Design approach.
Stars: ✭ 6,210 (+6956.82%)
Mutual labels:  ddd, domain-driven-design
Event Sourcing Castanha
An Event Sourcing service template with DDD, TDD and SOLID. It has High Cohesion and Loose Coupling, it's a good start for your next Microservice application.
Stars: ✭ 68 (-22.73%)
Mutual labels:  ddd, domain-driven-design
Hexagonal Architecture Acerola
An Hexagonal Architecture service template with DDD, CQRS, TDD and SOLID using .NET Core 2.0. All small features are testable and could be mocked. Adapters could be mocked or exchanged.
Stars: ✭ 293 (+232.95%)
Mutual labels:  ddd, domain-driven-design
Ddd Dynamic
Domain Driven Design in Python, Ruby and other dynamic languages resources
Stars: ✭ 973 (+1005.68%)
Mutual labels:  ddd, domain-driven-design
Eventhorizon
CQRS/ES toolkit for Go
Stars: ✭ 961 (+992.05%)
Mutual labels:  ddd, domain-driven-design
All Things Cqrs
Comprehensive guide to a couple of possible ways of synchronizing two states with Spring tools. Synchronization is shown by separating command and queries in a simple CQRS application.
Stars: ✭ 474 (+438.64%)
Mutual labels:  ddd, domain-driven-design
Productcontext Eventsourcing
A practical/experimental Event Sourcing application on Product Bounded Context in an e-commerce
Stars: ✭ 88 (+0%)
Mutual labels:  ddd, domain-driven-design
Akkatecture
a cqrs and event sourcing framework for dotnet core using akka.net
Stars: ✭ 414 (+370.45%)
Mutual labels:  ddd, domain-driven-design
Cp Ddd Framework
A lightweight flexible development framework for complex business architecture with full ecosystem!轻量级业务中台开发框架,中台架构的顶层设计和完整解决方案!
Stars: ✭ 566 (+543.18%)
Mutual labels:  ddd, domain-driven-design
Domain Driven Design Zh
DDD《领域驱动设计》中文翻译
Stars: ✭ 307 (+248.86%)
Mutual labels:  ddd, domain-driven-design
Komga
Media server for comics/mangas/BDs with API and OPDS support
Stars: ✭ 647 (+635.23%)
Mutual labels:  ddd, domain-driven-design
Event Sourcing Cqrs Examples
Event Sourcing and CQRS in practice.
Stars: ✭ 265 (+201.14%)
Mutual labels:  ddd, domain-driven-design
Jivejdon
Jivejdon is a Domain Driven Design appication with CQRS/ES/Clean/Hexagonal architecture
Stars: ✭ 287 (+226.14%)
Mutual labels:  ddd, domain-driven-design
Rails event store
A Ruby implementation of an Event Store based on Active Record
Stars: ✭ 947 (+976.14%)
Mutual labels:  ddd, domain-driven-design
Stepping
Stepping - a tools for code design, event storming, domain model generate.
Stars: ✭ 67 (-23.86%)
Mutual labels:  ddd, domain-driven-design

Context Mapper

Context Mapper DSL (CML)

Build (master) codecov License Maven Central

ContextMapper is an open source tool providing a Domain-specific Language based on Domain-Driven Design (DDD) patterns for context mapping and service decomposition.

With the ContextMapper DSL language you can express DDD context maps. Once you have modeled your system with the language you can use the provided generators to create UML diagrams, service contracts, and calculate proposals for service decomposition with Service Cutter.

Checkout our website https://contextmapper.org/ to get started. The Context Mapper project has originally been developed as part of research projects at OST (former HSR). You can find the project reports and further background information here.

Features

System Requirements

To use the ContextMapper DSL (CML) you need the following tools:

Getting Started

If you want to use our Context Mapper tool, install the plugin in Eclipse or the extension in VS Code:

  1. Installation of Context Mapper:
  2. Find a detailed manual how to create your first CML project here.
  3. Examples which introduce the language (CML) capabilities can be found here: https://github.com/ContextMapper/context-mapper-examples
  4. Further instructions, user guides and documentation can be found on our website https://contextmapper.org/.

Getting Started (Standalone Library Usage)

If you want to use the Context Mapper DSL (CML) language and the generator tools as standalone library within your Java application you can add the following dependency to your project.

Gradle:

implementation 'org.contextmapper:context-mapper-dsl:6.3.0'

Maven:

<dependency>
  <groupId>org.contextmapper</groupId>
  <artifactId>context-mapper-dsl</artifactId>
  <version>6.3.0</version>
</dependency>

In our context-mapper-standalone-example repository you find an example project showing how to include the library within your project. It further contains code examples illustrating how to use the CML models and the generator tools (PlantUML, MDSL, etc.).

Development

If you want to contribute and setup the IDE for this project on your local system follow the following instructions. Here you get the instructions in more details.

Building the Project

The project currently has two builds since we have to use Maven for building the Eclipse plugin but prefer Gradle in the standalone case. With Gradle you can only build the DSL and the IDE (LSP) project. It is further used to deploy these standalone JARs to the Maven central.

Complete Build with Eclipse Plugin (Maven)

The project uses the Maven Wrapper.

After cloning the project it can be built with the following command within the root directory of the project:

./mvnw clean install

Note: This is an Xtext project and the tests which are evaluating the correctness of the language grammar need an additional maven goal besides test to be executed. Use this command if you want to execute the tests:

./mvnw clean integration-test

Of course they are also executed with a clean install.

Standalone Build Only (Gradle)

To build the standalone projects only, you can use the Gradle Wrapper:

./gradlew clean build

Note: If you want to deploy the libraries into your local Maven repository, you need a GPG key to sign the artifacts:

./gradlew clean publishToMavenLocal -Psigning.keyId=<your-gpg-key-id> -Psigning.password=<gpg-passphrase> -Psigning.secretKeyRingFile=<path-to-gpg-keyring-file>

Setup Eclipse IDE

Since this is an Xtext project you need an Eclipse IDE to work on it. Download the Eclipse IDE for Java and DSL Developers from here. The latest version of Eclipse we worked with is 2019-12.

Additional requirements

Before importing the project you need to install the Tycho Configurator m2e connector. This can be done by following these steps:

  1. Start your Eclipse
  2. Open the maven preferences page: Window -> Preferences -> Maven
  3. Under Discovery press the button Open Catalog and search for Tycho. You should find the Tycho Configurator.
  4. Select the Configurator and press Finish.
  5. An eclipse installation wizard will appear. Go through the wizard to finish the installation and restart eclipse.

Importing the project

After having installed the Tycho Configurator you can import the project with as an existing maven project (Import -> Existing Maven Project).

Build in Eclipse

After importing the project you will have lots of build errors. This is because you have to generate some Xtext sources first. There exists an eclipse launch configuration called 'GenerateContextMappingDSLInfrastructure' delivered with the project. Run this launch configuration (yes, even if there exist build errors). As soon this has completed, execute a clean build with Project -> Clean... -> Clean all projects.

That's it. You should have a clean workspace now without build errors.

Contributing

Contribution is always welcome! Here are some ways how you can contribute:

Licence

ContextMapper is released under the Apache License, Version 2.0.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].