Eclipse Modeling Framework - Workflow? - eclipse

I have the following question. I have got an EMF Project with a M2M Transformation which uses ATL as Technology. Then I have a project that uses XPand for Code Generation. I want to do the following workflow.
Model A -- --> Model B ----> Code
How can I realize that, the Problem is, that I have two projects and I must copy my model and metamodel to the other project. Is there any Technology to model such a workflow as described above?
Thank you,
clemens

You should give a look to MWE2 : http://www.eclipse.org/Xtext/documentation.html#MWE2
You'll be able to describe the m2m execution and the xpand generation in your mwe2 workflow.
You'll also need to launch the atl transformation from java, see this: https://github.com/101companies/101repo/blob/master/contributions/atl/src/atl/RunTransfoJava.java
regards

If you can write a corresponding ant script, you can run it with the tycho-application run during a tycho build. ATL has ant tasks, and so does EMF. This is a bit of a hack though, and MWE is a more coordinated way to do it.

Related

What is the differences between code injection and sub-classing in Java

I was reading about code-injection at run-time and there are many tools/APIs available like Javassist, GluonJ and AspectJ which provide features to inject code. However, I did not understand purpose for injecting code at run-time while we can do override behaviors by sub-classing in Java. With Javassist and GluonJ, I can create classes at run-time but why does anyone do that, in the first place? Can anyone please help me to understand the difference and purpose of code injection ?
Code injection is usually used into application that are used to modify/check/trace other software. In Java we usually reffer to this kind of library as Bytecode modification libraries so if you look on the internet you will probably find more information under this name.
Here I listed a couple of examples of big and famous projects that I now are using Bytecode modification into their cores:
Evosuite: this project takes an application in input and generates unit test for it. Code injection is used to explore the desired project and dependencies and traceability
JaCoCO: this project is a tool for Java project. It is supposed to be attached to your application and once you run your JUnit tests it is going to generate a report on the coverage achieved. Obviously here code injection is necessary to trace every method call made during test execution.

How to create Class Diagram in Eclipse?

I just wanted to create the class diagram of my project in Eclipse.The project is already implemented,suggest me any tool that sketch the Diagram of this project in Eclipse.
Take a look at Model Development Tools (MDT).
For reverse engineering, you can use JUPE.
ObjectAid generates classes diagram when you are simply drag and dropping classes from Project manager to the diagram.
UMLGraph creates class/activities diagrams automatically from the code and append them to javadocs.
As far as I know, both work for Java. I don't know if they support other languages.
Papyrus is the very powerful tool for hand creation of any UML and other diagrams

Using ant and netbeans how can I generate a UML diagram

We are trying to include the generation of an UML diagram on build via a task in ant.
So far I can't seem to find an easy way to do this and everything seem to point to eclipse.
We are using NetBeans 7.1.
Any pointers on this ?
Which UML diagrams do you want to generate? If you want to generate the class and sequence diagrams for a use case, MaintainJ is an option.
If you have JUnit test cases for your application, you can generate the class and sequence diagrams for every test case. Check this demo video.
You should probably view this demo video to get an overview of MaintainJ.
Once you understand how to generate the diagrams for every JUnit test case, it is quite easy to integrate it with Ant script. This way, for every new build, you could run all the test cases and generate the UML diagrams for all the test cases.
I am the author of MaintainJ, by the way.
I think this is not a question about the IDE you're using when you want to do this with ant. You have to find a ant plugin/task that can generate graphics out of your class hierarchy.
I only now plugins generating code out of UML diagramms but not the other way round, but a solution for you could be to develop your own ant task maby using ImageMagick to generate the diagramm.

How to generate code by Papyrus on Eclipse?

I install Papyrus at here. So how to generate code using Papyrus ?
To generate the java code from UML you can follow the below steps.
New Project->EMF Project Press Next
give the project name
In Model Importer page select UML model and press Next
Select UML model which is created by using Papyrus.Press next
In Package selection page select all the root packages
click finish, it will generate genmodel.
Use the genmodel to generate Java code.
I hope this information helps.
In order to generate any text artifacts from UML models in the Eclipse Modelling Environment (i.e. Papyrus, TopCased, etc.) you should use Acceleo which is an eclipse implementation of the MOF models to text transformation language, the OMG standard language for models to text transformations.
It is a very well made technology but it could take some time to become familiar with it especially if you do not know MOF and the Model Driven Architecture.
QVT is another OMG language but its aim is models to models transformations (not models to text). It is therefore not the right answer to your question.
These can help you.
Papyrus Tutorials
Papyrus is an Eclipse lugin for modeling, you need to use additional Eclipse plugin to do model transformations. In the other answer you can find link to tutorials. First of them indicates you should use QVTo.
Resources:
http://wiki.eclipse.org/M2M/Operational_QVT_Language_%28QVTO%29
http://www.eclipse.org/m2m/qvto/doc
http://www.eclipse.org/modeling/m2m/downloads/index.php?project=qvtoml
To generate code from a UML diagram created with Papyrus must create a run configuration for Papyrus.
More information and a demo video at the following links.
http://www.papyrusuml.org/scripts/home/publigen/content/templates/show.asp?P=140&L=EN
http://www.papyrusuml.org/home/liblocal/docs/Documentation/Java-Code-Gen/Papyrus-GenJava-GenerateCode.swf
You need to install Papyrus Java Classes Generator.
Help --> install new software
work with : http://download.eclipse.org/modeling/mdt/papyrus/updates/releases/mars
Check group items by category
Check show only the latest version of available software
Check Papyrus Java
Next --> accept terms and conditions
finish
Now, in your model.di : right click on your class --> Java --> Generate java code.
And you're done !
It doesn't work with Java because even if you get a code from a class diagram then this code is so dirty that it is totally unusable.
It seems that this tool has been written by modelers who have never done any java codding :-)

UML tool for reverse engineering an eclipse project

I am currently working on a project in Eclipse but the problem is that this project is very big (a lot of codes, classes, packages, etc) and undocumented. Since, the project is written in Java, my idea was to make a reverse enineering of the project to see his architecture in UML. Do you know an eclipse plugin who can complete this task very easily? Thanks for your answer !!
I think MoDisco is what you are looking for ( here for a short intro)
It seems that the question is dealing with Eclipse plugin therefore Modisco and StartUML are not a possible choice because they are either not a graphical class diagram viewwer or an Eclipse plugin.
The tools that I have evaluated and selected are:
Topcased can reverse a project and gives an UML view. The reverse is good even if not recursive. I mean that you can detect only object having their own information such as class, interface, package, method and attributes but you can not detect calls between classes because this require a recursive reverse.
eUML will give you a visual class diagrams and the possibility to navigate but no model only EMF tags inserted inside your own code. I like the visual representation of the class diagram but having EMF tags in my code is too intrusive !!
You can try RSA which is a pretty good reverse having a real UML model but you will also get EMF tag in your code
The best for me and with no doubt is EclipseUML Omondo with no tag in the code and a high quality UML model but it is really too expensive !!
I'd advise StarUML or StavrUML, the unofficial fork. It reverse engineers code compliant with Java versions before 1.6 or something. Yes, the project was abandoned years ago, but the UML editor remains incredibly strong and powerful.
However, I'd avoid using reverse engineering a UML diagram. You'll probably get an unreadable mess out if it. Just get stuck in and make it manually :)
I'm sure you can find a suitable tool for your needs if you check these.