Skip to content

yamtl-m2m-service #4

Description

@arturboronat

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    Status
    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions