Hi Will, I created a first attempt of a YAMTL M2M service at https://github.com/arturboronat/mdenet-yamtl
This service executes a basic M2M transformation where one model is received as input and another one is produced. The tool service is flexible: trafo, metamodels and models can be changed. The example is an activity that transforms a class diagram into a relational schema.
The unit test case in com.mde-network.ep.toolfunctions.yamtl_m2m_function is working. Please check that they are working for you locally too.
Some help is needed for configuring the service/activity. The configuration should be fairly similar to the ETL service/activity. In fact, I have followed their configuration but it crashes with this output log. The issues is with the dependencies of the Groovy plugin I am using (org.codehaus.gmavenplus:gmavenplus-plugin). If you look at the project pom, the configuration is fairly simple. It should work on docker too.
Some additional feedback regarding the example project template below:
- The project template could benefit from further improvement. Ideally, a template should include parameters and generate configuration files with the appropriate names. However, currently, a template is merely a copy, needing the user to manually search through different configuration files and replace names. This process can only be accomplished once the tool model is clearly understood (and yet there is a fair amount of detail). I believe this poses a challenge for the adoption of the tool.
- Not sure why we need two containers:
The docker-compose.yml defines two containers one is the helloworld platform tool service and the other is a web server making the activity contents of the helloworld-example/ available.. Is this needed when using a Java-based tool?
- I found a bit of confusion around the terms
tool and service and function (tool service kind of disambiguates the issue). The issue is that a tool (parent pom) seems to be an aggregate of services (function subprojects). Are they interchangeable? Perhaps use only one?
- I found a bit of confusion around the terms
example and activity. tool-examples refer to activities.
- The helloworld example is java-based but uses the configuration based on eclipse, with two projects. Why not to use the OCL example to explain the Eclipse-based configuration instead? And the helloworld example for the Java-based one?
- In the helloworld example,
RunConversionXToY is a template for RunHelloWorldFunction that is actually not used. It gives the impression that it needs to be included.
Hi Will, I created a first attempt of a YAMTL M2M service at https://github.com/arturboronat/mdenet-yamtl
This service executes a basic M2M transformation where one model is received as input and another one is produced. The tool service is flexible: trafo, metamodels and models can be changed. The example is an activity that transforms a class diagram into a relational schema.
The unit test case in
com.mde-network.ep.toolfunctions.yamtl_m2m_functionis working. Please check that they are working for you locally too.Some help is needed for configuring the service/activity. The configuration should be fairly similar to the ETL service/activity. In fact, I have followed their configuration but it crashes with this output log. The issues is with the dependencies of the Groovy plugin I am using (org.codehaus.gmavenplus:gmavenplus-plugin). If you look at the project pom, the configuration is fairly simple. It should work on docker too.
Some additional feedback regarding the example project template below:
The docker-compose.yml defines two containers one is the helloworld platform tool service and the other is a web server making the activity contents of the helloworld-example/ available.. Is this needed when using a Java-based tool?toolandserviceandfunction(tool servicekind of disambiguates the issue). The issue is that a tool (parent pom) seems to be an aggregate of services (function subprojects). Are they interchangeable? Perhaps use only one?exampleandactivity.tool-examplesrefer to activities.RunConversionXToYis a template forRunHelloWorldFunctionthat is actually not used. It gives the impression that it needs to be included.