Skip to content

Commit 7e4d20b

Browse files
author
socadk
committed
Release v5.1.2
1 parent dc9ba29 commit 7e4d20b

File tree

113 files changed

+1320
-255
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

113 files changed

+1320
-255
lines changed

.travis.yml

Lines changed: 0 additions & 20 deletions
This file was deleted.

README.md

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
Microservice Domain-Specific Language (MDSL) 5.0
1+
Microservice Domain-Specific Language (MDSL) 5.1
22
================================================
33

4-
[![Build Status](https://travis-ci.com/Microservice-API-Patterns/MDSL-Specification.svg?branch=master)](https://travis-ci.com/Microservice-API-Patterns/MDSL-Specification) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
4+
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
55

6-
Author: Olaf Zimmermann, (c) 2018-2020. All rights reserved.
6+
Author: Olaf Zimmermann, (c) 2018-2021. All rights reserved.
77

88
## What is MDSL?
99

@@ -39,10 +39,10 @@ These two languages can be used independently of each other; for instance, data
3939

4040
## Getting Started
4141

42-
* Presentations featuring Context Mapper, MAP and MDSL can be found [here](https://ozimmer.ch/papers/).
43-
* The [GitHub Pages for MDSL](https://microservice-api-patterns.github.io/MDSL-Specification) provide a tutorial and language reference information.
42+
* The [GitHub Pages for MDSL](https://microservice-api-patterns.github.io/MDSL-Specification) provide a tutorial and language reference information.<!-- * There is a [Project Wiki](https://github.com/Microservice-API-Patterns/MDSL-Specification/wiki/Getting-Started-with-MDSL), which is not populated much (yet) and not kept up to date as much as the GitHub pages. -->
4443
* There is an [Eclipse update site](https://microservice-api-patterns.github.io/MDSL-Specification/updates/) for the MDSL editor.
45-
* All generators are available via a Command Line Interface (CLI) now; see [this readme](./dsl-core/io.mdsl.cli/README.md) and [these examples](./examples/mdsl-standalone-example).
44+
* All generators are available via a Command Line Interface (CLI); see [this readme](./dsl-core/io.mdsl.cli/README.md) and [these examples](./examples/mdsl-standalone-example).
45+
* Presentations featuring Context Mapper, MAP and MDSL can be found [here](https://ozimmer.ch/papers/), and an [end-to-end demo](https://medium.com/olzzio/domain-driven-service-design-with-context-mapper-and-mdsl-d5a0fc6091c2) is available on Medium.
4646
* As a contributor, please consult the [readme file of the dsl-core](./dsl-core/README.md) project for getting started information and prerequisites.
4747

4848

@@ -54,7 +54,7 @@ These two languages can be used independently of each other; for instance, data
5454
* [Data types](https://microservice-api-patterns.github.io/MDSL-Specification/datacontract) (a.k.a. published language)
5555
* [Instance-level concepts](https://microservice-api-patterns.github.io/MDSL-Specification/optionalparts) (provider, client, gateway)
5656

57-
<!-- An implemented proposal of a language extension supporting queue-based messaging endpoints is [AsyncMDSL](https://github.com/giacomodeliberali/MDSL/tree/master/examples/asyncMDSL).-->
57+
<!-- A language extension supporting queue-based messaging endpoints is [AsyncMDSL](https://github.com/giacomodeliberali/MDSL/tree/master/examples/asyncMDSL).-->
5858

5959

6060
## Repository Structure
@@ -74,15 +74,10 @@ If you want to contribute to MDSL, you have to clone this repo and generate the
7474

7575
## Change Log
7676

77-
The current version of the MDSL language is 5.0; the tool version is 5.0.1. This MDSL version extends service contracts with support for events, states, flows, compensation. It also supports true REST level 3 concepts both on the abstract endpoint type level and in the redesigned bindings.
77+
The current version of the MDSL language is 5.1; the tool version is 5.1.2. This MDSL version extends service contracts with support for events, states, flows, compensation (as experimental technology previews). It also supports true REST level 3 concepts both on the abstract endpoint type level and in the redesigned bindings and comes with additional Fremarker generators (Markdown reports, ALPS).
7878

7979
See [change log](changelog.md) for an evolution history; see GitHub [release notes](https://github.com/Microservice-API-Patterns/MDSL-Specification/releases) for additional update information.
8080

81-
<!--
82-
A possible roadmap for language and tools is (subject to change at any time):
83-
84-
* to be continued
85-
-->
8681

8782
## Context Information: MAP and Xtext
8883

@@ -103,15 +98,16 @@ Feedback and contributions welcome!
10398

10499
## Acknowledgements
105100

106-
The creation and release of MDSL 4 was supported by the [Hasler Foundation](https://haslerstiftung.ch/en/welcome-to-the-hasler-foundation/).
107-
108101
Contributors (input, DevOps support, feedback):
109102

110-
* [Olaf Zimmermann (ZIO)](https://ozimmer.ch)
103+
* Giacomo De Liberali (AsyncMDSL language, AsyncAPI generator)
111104
* Stefan Kapferer (also the author of the [MDSL generator in Context Mapper](https://contextmapper.org/docs/mdsl/))
112105
* MAP co-authors: Mirko Stocker, Daniel Lübke, Cesare Pautasso, Uwe Zdun
113-
* Giacomo De Liberali and bachelor/master students at HSR/OST
114-
* Microservices 2019 and VSS 2019 conference participants
106+
* Bachelor/master students at HSR/OST
107+
* Microservices 2019 and [VSS 2019](https://www.computer.org/csdl/magazine/so/2020/01/08938118/1fUSO0QBDnW) conference participants
108+
* Early adopters and reviewers
109+
110+
The creation and release of MDSL 4 in 2020 was supported by the [Hasler Foundation](https://haslerstiftung.ch/en/welcome-to-the-hasler-foundation/).
115111

116112

117113
## Getting involved
@@ -127,4 +123,6 @@ https://github.com/cloudevents/spec/blob/master/CONTRIBUTING.md
127123
128124
-->
129125

130-
*Copyright: Olaf Zimmermann, 2019-2020. All rights reserved. See [license information](/LICENSE).*
126+
-- [Olaf Zimmermann (ZIO)](https://ozimmer.ch)
127+
128+
*Copyright: The author, 2019-2021. All rights reserved. See [license information](/LICENSE).*

TERMS.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<!--
2+
# SPDX-FileCopyrightText: 2020 Copyright Olaf Zimmermann https://ozimmer.ch/about/
3+
#
4+
# SPDX-License-Identifier: CC-BY-4.0
5+
-->
6+
7+
<h2>1. Terms</h2>
8+
9+
<p>By accessing this website and repository, accessible from https://github.com/Microservice-API-Patterns/MDSL-Specification/, you are agreeing to be bound by these Terms and Conditions of Use and agree that you are responsible for the agreement with any applicable local laws. If you disagree with any of these terms, you are prohibited from accessing this site. The materials contained in this Website and repository are protected by copyright and trade mark law.</p>
10+
11+
<h2>2. Use License</h2>
12+
13+
<p>See separate <a href="./LICENSE">LICENSE</a> file and bottom of this page.</p>
14+
15+
<h2>3. Disclaimer</h2>
16+
17+
<p>All the materials are provided "as is". The authors make no warranties, may it be expressed or implied, therefore negates all other warranties. Furthermore, the authors do not make any representations concerning the accuracy or reliability of the use of the materials or otherwise relating to such materials or any sites linked.</p>
18+
19+
<h2>4. Limitations</h2>
20+
21+
<p>The author(s) of this website and repository will not be hold accountable for any damages that will arise with the use or inability to use the materials on it, even if they or an authorized representative of the authors has been notified, orally or written, of the possibility of such damage. Some jurisdiction does not allow limitations on implied warranties or limitations of liability for incidental damages, these limitations may not apply to you.</p>
22+
23+
<h2>5. Revisions and Errata</h2>
24+
25+
<p>The materials appearing in this website and repository may include technical, typographical, or photographic errors. The author(s) will not promise that any of the materials in this website and repository are accurate, complete, or current. Author(s) may change the materials contained on this website and repository at any time without notice. The author(s) does not make any commitment to update the materials.</p>
26+
27+
<h2>6. Links</h2>
28+
29+
<p>The authors have not reviewed all of the sites linked to this website and repository and are not responsible for the contents of any such linked site. The presence of any link does not imply endorsement of the site. The use of any linked website is at the user’s own risk.</p>
30+
31+
<h2>7. Site Terms of Use Modifications</h2>
32+
33+
<p>The authors may revise these Terms of Use for its website and repository at any time without prior notice. By using this website and repository, you are agreeing to be bound by the current version of these Terms and Conditions of Use.</p>
34+
35+
<h2>8. Governing Law</h2>
36+
37+
<p>Any claim related to this website and repository shall be governed by the laws of Switzerland without regards to its conflict of law provisions.</p>
38+
39+
<p>These Terms and Conditions are based on the <a href="https://termsofservicegenerator.net"> World's Free Terms Of Service Generator.</a></p>
40+
41+
42+
### License
43+
44+
See separate [LICENSE](LICENSE) file.

changelog.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@
22

33
Also see GitHub [release notes](https://github.com/Microservice-API-Patterns/MDSL-Specification/releases).
44

5+
V5.1, March to May 2021
6+
7+
* Freemarker template for ALPS and API Description (Markdown)
8+
* GitPages for AsyncMDSL
9+
* CLI enhancements
10+
* CI/CD adjustments
11+
512
V5.0, December 2020
613

714
* Extended HTTP binding: new resource concept, media types, security policies, (error, status) reporting, HATEOAS links (technology preview)

docs/async-mdsl.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Asynchronous Microservice Domain-Specific Language (AsynchMDSL)
2+
title: Asynchronous Microservice Domain-Specific Language (AsyncMDSL)
33
author: Giacomo Di Liberali, Olaf Zimmermann
44
copyright: The authors, 2020-2021. All rights reserved.
55
---
@@ -9,7 +9,7 @@ copyright: The authors, 2020-2021. All rights reserved.
99
AsyncMDSL
1010
=========
1111

12-
_Note:_ The status of the Asynchronous Microservice Domain Specific Language (AsynchMDSL), created by Giacomo Di Liberali, is [*Technology Preview*](https://microservice-api-patterns.org/patterns/evolution/ExperimentalPreview.html), standing at Version 1.1 at present.
12+
_Note:_ The status of the Asynchronous Microservice Domain Specific Language (AsyncMDSL), created by Giacomo Di Liberali, is [*Technology Preview*](https://microservice-api-patterns.org/patterns/evolution/ExperimentalPreview.html), standing at Version 1.1 at present.
1313

1414
AsyncMDSL aims at modeling asynchronous, messaging APIs while exploiting the [design goals of core MDSL](./index). Extending core MDSL, AsyncMDSL derives its abstract syntax from the state-of-the-art patterns and concepts described in the [Enterprise Integration Patterns](https://www.enterpriseintegrationpatterns.com/) book. The language is fully specified in Giacomo Di Liberali's [master thesis](UNIPI-AsyncMDSL-MasterThesis-2020-GiacomoDeLiberali-v1.3.pdf).
1515

@@ -79,13 +79,13 @@ bindings for [protocol] {
7979
Invalid combinations will be notified by the API Linter that comes with the [editor and generator plugin](./generators/async-api) for ASyncMDSL.
8080

8181
-
82-
A channel deliveryGuarantee can be any of:
82+
A channel delivery guarantee can be any of:
8383
> UNKNOWN | AT_LEAST_ONCE | AT_MOST_ONCE | EXACTLY_ONCE
8484

8585
#### Channel path
8686

8787
-
88-
A path param type can assume any of teh basic data types of MDSL:
88+
A path param type can assume any of the basic data types of MDSL:
8989
> bool | int | long | double | string
9090

9191
#### Message
@@ -108,7 +108,7 @@ bindings for [protocol] {
108108

109109
- Protocol can assume one of the [supported protocols](./bindings). As the list of properties is protocol-specific, a single flat JSON object is expected as configuration.
110110

111-
An example of a _binding_ definition can be found in [examples/AsyncMDSL/bindings.mdsl](../examples/AsyncMDSL/bindings.mdsl).
111+
An example of a _binding_ definition can be found in [examples/AsyncMDSL/bindings.mdsl](https://github.com/Microservice-API-Patterns/MDSL-Specification/blob/master/examples/asyncMDSL/bindings.mdsl).
112112

113113
#### Channel definition example
114114

@@ -199,7 +199,7 @@ exposes
199199
> Notice that no protocol-specific validation is applied.
200200

201201
-
202-
Security policy type. MDSL security policies are not yet fully supported. The available values are:
202+
Security policy type. MDSL security policies are not fully supported yet. The available values are:
203203
> JWT | API_KEY
204204

205205
<!-- TODO OAS binding does a lot more since core MDSL 5.0, could bring some of that support here -->
@@ -239,4 +239,4 @@ Valid AsyncMDSL specifications can be mapped to [AsyncAPI](https://www.asyncapi.
239239

240240
*See [license information](https://github.com/socadk/MDSL/blob/master/LICENSE).*
241241

242-
<!-- *EOF* -->
242+
<!-- *EOF* -->

docs/bindings.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Microservice Domain Specific Language (MDSL) Bindings
33
author: Olaf Zimmermann
4-
copyright: Olaf Zimmermann, 2019-2020. All rights reserved.
4+
copyright: Olaf Zimmermann, 2019-2021. All rights reserved.
55
---
66

77
[Home](./index) &mdash; [Endpoint Type](./servicecontract) &mdash; [Data Types](./datacontract) &mdash; [Provider and Client](./optionalparts) &mdash; [Tutorial](./tutorial) &mdash; [Cheat Sheet](./quickreference) &mdash; [Tools](./tools)
@@ -156,6 +156,6 @@ Language specification pages:
156156
* [Data contracts (schemas)](./datacontract)
157157
* Other [runtime concepts](./optionalparts)
158158

159-
*Copyright: Olaf Zimmermann, 2018-2020. All rights reserved. See [license information](https://github.com/Microservice-API-Patterns/MDSL-Specification/blob/master/LICENSE).*
159+
*Copyright: Olaf Zimmermann, 2018-2021. All rights reserved. See [license information](https://github.com/Microservice-API-Patterns/MDSL-Specification/blob/master/LICENSE).*
160160

161161
<!-- *EOF* -->

docs/datacontract.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Microservice Domain Specific Language (MDSL) Data Contracts
33
author: Olaf Zimmermann
4-
copyright: Olaf Zimmermann, 2019-2020. All rights reserved.
4+
copyright: Olaf Zimmermann, 2019-2021. All rights reserved.
55
---
66

77
[Home](./index) &mdash; [Endpoint Type](./servicecontract) &mdash; [Provider and Client](./optionalparts) &mdash; [Bindings](./bindings) &mdash; [Tutorial](./tutorial) &mdash; [Cheat Sheet](./quickreference) &mdash; [Tools](./tools)
@@ -265,6 +265,6 @@ Note that some combinations are syntactically possible at present (to simplify t
265265
* [Quick reference](./quickreference), [tutorial](./tutorial) and [tools](./tools)
266266
* Back to [MDSL homepage](./index).
267267

268-
*Copyright: Olaf Zimmermann, 2018-2020. All rights reserved. See [license information](https://github.com/Microservice-API-Patterns/MDSL-Specification/blob/master/LICENSE).*
268+
*Copyright: Olaf Zimmermann, 2018-2021. All rights reserved. See [license information](https://github.com/Microservice-API-Patterns/MDSL-Specification/blob/master/LICENSE).*
269269

270270
<!-- *EOF* -->

docs/examples.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,6 @@ Back to [MDSL homepage](./index).
9393

9494
More examples in [public](https://github.com/Microservice-API-Patterns/MDSL-Specification/tree/master/examples) and in [private](https://github.com/Microservice-API-Patterns/MDSL-Specification/tree/master/examples) repository.
9595

96-
*Copyright: Olaf Zimmermann, 2018-2020. All rights reserved. See [license information](https://github.com/Microservice-API-Patterns/MDSL-Specification/blob/master/LICENSE).*
96+
*Copyright: Olaf Zimmermann, 2018-2021. All rights reserved. See [license information](https://github.com/Microservice-API-Patterns/MDSL-Specification/blob/master/LICENSE).*
9797

9898
<!-- *EOF* -->

docs/generators/async-api.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -294,4 +294,4 @@ Also checkout our other generators:
294294
* [Bindings](./../bindings) and [instance-level concepts](./../optionalparts).
295295
* Back to [MDSL homepage](./../index).
296296

297-
*Copyright: See [license information](https://github.com/socadk/MDSL/blob/master/LICENSE).*
297+
*Copyright: See [license information](https://github.com/Microservice-API-Patterns/MDSL-Specification/blob/master/LICENSE).*

docs/generators/freemarker.md

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
---
22
title: Microservice Domain Specific Language (MDSL) to Arbitrary Text (via Freemarker Template)
33
author: Stefan Kapferer
4-
copyright: Stefan Kapferer and Olaf Zimmermann, 2020. All rights reserved.
4+
copyright: Stefan Kapferer and Olaf Zimmermann, 2020-2021. All rights reserved.
55
---
66

7+
[Tools Overview](./../tools), [OpenAPI](./open-api), [Protocol Buffers](./protocol-buffers), [GraphQL](./graphql), [Jolie](./jolie), [Java](./java), [AsyncAPI](./async-api)
8+
79
Arbitrary Text Generation with Freemarker Templates
810
===================================================
911
The MDSL Eclipse plugin and the CLI allow API designers to generate arbitrary text files out of MDSL by using a [Freemarker](https://freemarker.apache.org/) template.
@@ -30,7 +32,7 @@ The following example illustrates what the generator can produce for an exemplar
3032

3133
You find the complete sources (incl. generated text file) of this example [here](https://github.com/Microservice-API-Patterns/MDSL-Specification/tree/master/examples/freemarker-example).
3234

33-
We use the following MDSL model which was an outcome of this [blogpost](https://ozimmer.ch/practices/2020/06/10/ICWEKeynoteAndDemo.html) to illustrate our generator outputs:
35+
The following MDSL model, taken from this [blogpost](https://ozimmer.ch/practices/2020/06/10/ICWEKeynoteAndDemo.html), illustrates the generator usage:
3436

3537
```
3638
API description ReferenceManagementServiceAPI
@@ -61,7 +63,7 @@ endpoint type PaperArchiveFacade
6163
payload D<string>
6264
```
6365

64-
We further use the following Freemarker template to generate some exemplary output:
66+
Let us use the following very basic Freemarker template to generate some exemplary output from the above MDSL:
6567

6668
```ftl
6769
# Report for MDSL specification ${fileName}
@@ -75,9 +77,9 @@ The API description ${genModel.apiName} features the following endpoint types (a
7577
</#list>
7678
```
7779

78-
The template aims at generating a markdown report listing the available endpoints.
80+
The template simply generates a markdown report listing the available endpoints.
7981

80-
Applied to the model above, the generator produces the following markdown file:
82+
Applied to the `ReferenceManagementServiceAPI` description above, the generator produces the following markdown file:
8183

8284
```markdown
8385
# Report for MDSL specification ReferenceManagementAPI.mdsl
@@ -89,11 +91,12 @@ The API description ReferenceManagementServiceAPI features the following endpoin
8991
* PaperArchiveFacade
9092
```
9193

92-
You find the complete sources (incl. generated text file) of this example [here](https://github.com/Microservice-API-Patterns/MDSL-Specification/tree/master/examples/freemarker-example).
94+
You find the complete sources (incl. generated text file) of this and other examples [here](https://github.com/Microservice-API-Patterns/MDSL-Specification/tree/master/examples/freemarker-example).
9395

9496
The entire MDSL grammar is available as a data model to the Freemarker templating feature.
9597

96-
More examples of Freemarker templates can be found [here](https://github.com/Microservice-API-Patterns/MDSL-Specification/tree/master/examples/generator-templates).
98+
<!-- removed in V.511 (example folders merged):
99+
More examples of Freemarker templates can be found [here](https://github.com/Microservice-API-Patterns/MDSL-Specification/tree/master/examples/generator-templates). -->
97100

98101

99102
## Generator Model for Freemarker Templating and Model Exports
@@ -112,7 +115,7 @@ This model can also be exported for offline processing (for instance, to feed ot
112115

113116
# Other Generators
114117
Also checkout our other generators:
115-
* [Open API generator](./open-api)
118+
* [OpenAPI generator](./open-api)
116119
* [Protocol Buffers generator](./protocol-buffers)
117120
* [GraphQL generator](./graphql)
118121
* [Jolie generator](./jolie)
@@ -126,4 +129,4 @@ Also checkout our other generators:
126129
* [Bindings](./../bindings) and [instance-level concepts](./../optionalparts).
127130
* Back to [MDSL homepage](./../index).
128131

129-
*Copyright: Stefan Kapferer and Olaf Zimmermann, 2020. All rights reserved. See [license information](https://github.com/Microservice-API-Patterns/MDSL-Specification/blob/master/LICENSE).*
132+
*Copyright: Stefan Kapferer and Olaf Zimmermann, 2020-2021. All rights reserved. See [license information](https://github.com/Microservice-API-Patterns/MDSL-Specification/blob/master/LICENSE).*

0 commit comments

Comments
 (0)