Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [viatra-dev] MWE-based transformation chain workflow

Hi,

1. I'm trying to understand the Hello World Example based on the wiki page.

BatchTransformationStep.java and EventDrivenTransformationStep.java appear to be almost the same - how is one of them event driven, while the other not? I don't understand the difference between them, as they both process and send out events.

Also, what does EventDrivenChannel do? Where is the other endpoint?


2. Some of the comments seem inconsistent, e.g.:
               //Create a serializer transformation step
               //Define both m2MChannel as target channel
       transformationStep = ModelModifierStep{
modifierChannel = MWE2ListeningChannel{channel = ModifierChannel}
           m2MChannel = MWE2TargetChannel{channel = M2MChannel}
       }


3. The code looks very boilerplaty, and sometimes a bit dizzying to read, especially the parts like these:

 m2MChannel = MWE2ListeningChannel{channel = M2MChannel}
 changeMonitorChannel = MWE2TargetChannel{channel = ChangeMonitorChannel}

Each of these lines correspond to a single channel, yet has 3 diffent things called a 'channel'. Is it possible to rename the classes MWE2ListeningChannel and MWE2TargetChannel to something more readable, more intuitive, and most of all, not "*Channel" (which makes them easy to confuse with the actual channels)?
How about, for instance, these names:

 m2MChannel = ListenTo {channel = M2MChannel}
 changeMonitorChannel = AnnounceOn {channel = ChangeMonitorChannel}

To take a sample from the more complex example as well:

m2TChannel = ListenTo {channel = M2TChannel processor = ChangeDeltaEventProcessor{}} serializerChannel = AnnounceOn {channel = SerializerChannel factory = M2TOutputEventFactory{}}

Seems to work out...
Can be SubscribeTo instead of ListenTo, and PublishTo instead of AnnounceOn, if we want to stick with standard terminology.

Or, if we are allowed to change the port names as well, we can maybe even have something like these:

 activateWhen = ListenTo {channel = M2MChannel}
 whenDone = AnnounceOn {channel = ChangeMonitorChannel}

But I'm not sure this style would work on the CPS example - maybe someone with a better understanding of the domain can siggest meaningful names for the ports.

Cheers,
Gaben

-----Original Message----- From: Ujhelyi Zoltán
Sent: Wednesday, June 17, 2015 2:29 PM
To: Viatra project developer discussions
Subject: [viatra-dev] MWE-based transformation chain workflow

Hi all,

Péter Lunk has finished an MWE-based transformation integration workflow, that supports creating transformation chains from batch and incremental transformations both, and also created an example and documentation to illustrate its usage. I have already demoed its earlier version at a developer meeting, and the feedback from there was useful (and hopefully included).

As now the implementation seems to work, I would like to ask for another round of review, and if no further issue comes forth, we plan to include this feature early in the 0.8 development timeframe.

Links:
* Gerrit change request: https://git.eclipse.org/r/#/c/50176/
* Documentation: https://wiki.eclipse.org/VIATRA/Transformation_API/MWE2_Integration * CPS example implementation: https://github.com/lunkpeter/incquery-examples-cps/tree/MWE/addons/org.eclipse.incquery.examples.cps.mwe2integration.example/src/org/eclipse/incquery/examples/cps/integration

Cheers,
Zoli
-- Zoltán Ujhelyi
https://www.inf.mit.bme.hu/en/members/ujhelyiz

Fault Tolerant Systems Research Group
Budapest University of Technology and Economics

_______________________________________________
viatra-dev mailing list
viatra-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/viatra-dev




Back to the top