Planète Acceleo

Planète Acceleo est un aggrégat des blogs des développeurs d'Acceleo et de la ferme de modules. Vous pouvez vous syndiquer à cette planète en utilisant le flux RSS de cette page

January 20, 2012

Traceability test case : UML to Java generation

The next version of Acceleo will introduce a number of improvements of its existing features, one of its most important, the automatic builder, being entirely re-written in order to get rid of legacy code and improve the user experience. This also comes with a much better experience for users that need to build their Acceleo generators in standalone, through maven or tycho. More news on this are available on the bugzilla and Stephane's latest post.

One of the least visible features, yet one I find among the most interesting aspects of the Acceleo code generator, is the traceability between the generated code, the model used as input of the generation, and the generator itself. Basically, you always know where that esoteric line of code came from : which part of the generation template generated it, and which model element triggered its generation.

This feature has known a series of improvements as we used it intensively with the UML to java generator. We are now confident that we can record and display accurate information even for some of the most complex use cases. This generator isn't the most complex generator we could write with Acceleo, but it is quite complete nonetheless. Here are some examples of what the Traceability can provide to architects developping their code generators :

Determine which model element triggered the generation of a line of code


On the left-hand side, a file that has been generated. On the right-hand side, an editor opened as result of using the action "open input" : the model is opened and the exact element that was used to generate the part of code is selected.

Find the part of a generator that created a given part of the code

On the left-hand side, the same generated file as above. On the right-hand side, the result of using the "open generator" action : the Acceleo generator which generated that selected part of the code is opened, with the exact source expression selected.

Real-time Synchronization



These are but a few of the features that can be derived from the synchronization between code, model, and generators. Some more examples include : previewing the result of a re-generation, incremental generation, round-trip (updating the input model according to manual changes in the output generated code)...

Most of these features are better seen in video to get an idea. If you want to see some of them in action, some more flash videos of what traceability can do for you are available on the Obeo network (though a free registration is required).

by noreply@blogger.com (Laurent Goubet) at January 20, 2012 02:04 PM

January 18, 2012

Maven integration in Acceleo

With the release of the new Acceleo stand alone front end for the compilation of Acceleo modules, I’ve started to work on a brand new maven integration in Acceleo.

Currently in Acceleo, if you need to build Acceleo modules with maven you have to use a Tycho based build with a java class generated by Acceleo to tweak the build (for example to register the metamodel(s) used in the modules). This Tycho based build will always produce an Eclipse plugin as a result.

The next major release of Acceleo will have a maven plugin dedicated to the compilation and it will bring several key improvements. Firstly, the new compilation front end brings a completely stand alone compilation. Those who want to build their Acceleo modules without having to build an Eclipse plugin will be able to do so. Secondly, this new front end support more complex project structures (with for example, multiple output folders in a same project). Thirdly, you will have the ability to contribute a class to influence the uris of the dependencies in the saved files (for example, change all the uris of the dependencies to other module to “platform:/plugins” uris that are more “eclipse plugin” friendly). Finally, it also features an improved resolution of the dependencies of a project with several options.

Your project will be able to have a dependency to Acceleo modules in another project (that should have been previously compiled). A valid Acceleo project is just a directory on the file system with at least one “source” sub-directory and one “output” sub-directory (no need of an Eclipse nature or anything like that).

This first solution is fine as long as you have the source code of the other modules but sometime you need to build something with the dependencies in jars. The maven plugin for Acceleo will let you declare a dependency to a jar containing already compiled Acceleo modules by using:

  • The absolute path of the jar. Ex: C:\…\myJar.jar
  • The path of the jar relative to the project built. Ex: ${project.basedir}\lib\myJar.jar
  • The groupId and the artifactId of the jar resolved by maven  (the version of the jar is optional since some version number includes the date of the build and therefore change often). Ex: myGroupId:myJar:myVersion
  • The name of an Eclipse bundle resolved by Tycho preceding by “p2.eclipse-plugin” only in a Tycho based build (“p2.eclipse-plugin” is the groupId of all the dependencies resolved by Tycho). Just like the previous use case, the version of the jar is optional too. Ex: p2.eclipse-plugin:myJar:myVersion

For those who want to have a look at this new maven based build for Acceleo, you can find its source code on github.com and you can test it with a simple pom.xml like this one.

January 18, 2012 01:08 PM

December 28, 2011

Performing Safety Analyses and System Designs conjointly : a viewpoint matter !

During the last CSDM 2011 conference, I have presented our work made in the IMOFIS project.

IMOFIS was an R&D project with Renault, Alstom Transport, Systerel, UTC, CEA-List and Obeo to develop an environment that assists safety engineers to analyse and verify their systems. This project ended on October 25 2011.

In this project, we have developed a metamodel and a tool, named Alea ToolKit, to capture both parts of the system designs and parts of the safety analyses needed to build a critical systems.

For example, one system studied in this project is the Communication Based Train Control  (CBTC). To build such systems, typical process is dual : on one side the system engineering and in other side the safety engineering. The first one leads to build a safe system. The second leads to verify that the system is build in safety. Between this two engineerings, the exchanges are models, documents and mainly requirements. System have to manage requirements (refine, satisfy, derive it). Safety has to tag requirements as safety ones.
Typical system engineering process
One key problematic in such process is to be able to synchronize system and safety world. One subset of needs is :
  • the adaptability, i.e to provide a tool and methodology usable for several projects and even several domains such as railway and automotive ones. 
  • the interoperability, i.e. to be able to reference system modeling elements to describe the safety analyses,
  • the consistency, i.e. to provide facilities in order to manage several safety modeling levels (Preliminary Hazard Analysis, Fault Tree, FMEA). We want to help user to manage the consistency among thus abstraction levels,
  • the traceability, i.e. to be able to compute links among engineerings and to use those links for navigation.
A set of needs explored in IMOFIS

Hence,to fulfill those needs, we have explored the use of a viewpoint based approach with Obeo Designer. The key idea is to capitalize concepts in a generic/general safety metamodel and to provide different views to specialize the use of this generic metamodel for a specific concerns : a specific abstraction level or a specific domain. This metamodel is build on the the Eclipse Modeling Framework in order to achieve the interoperability with other system metamodels (SysML in our case). The views are implemented in a viewpoint based-engine : Obeo Designer. The resulting modeling framework is the Applied metamodeL for safEty Analyses ToolKit.

    To illustrate such a tool, let's illustrate on the CBTC  example. Firstly, we check the correct viewpoints.

    In a viewpoint based-approach, user choose the viewpoint to load.
    Then, let's take a look to the system design from the SysML viewpoint.



    From SysML, user can navigate to the safety analyses. For example, the F2 function is used in two safety analyses : a cause analysis (Fault tree analysis) and an accident case analysis (Preliminary Hazard Analysis).


    In fact, the safety engineer described the accident case from the SysML model : i.e. he references the SysML CTBC Block and the F2 function from the SysML model. Hence, the safety engineer interoperate with the system design in order to build his analysis.

    From the Alea ToolKit point of view, this scenario is "just" a graphical view on a global enhanced fault tree. The viewpoint tool manage the consistency between this event sequence view and the cause analysis view represented as a fault tree. The following picture is the projection of the previous scenario from a fault tree point of view.
     

    The viewpoint manage also the traceability links between the views. For example, the traceability companion allow to navigate among the safety views. From a second accident case for the excessive speed hazard, user can navigate to the previous scenario.

    Hence, viewpoint based approach allow to provide an integrated modeling framework gathering Safety and System concerns. It improves information search, communication (before many documents were parsed) and coherency among safety/system analyses. This approach is not a new set of methods for safety analyses. It doesn't take into account all the safety activities but PHA, SHA and FMEA modeling at the system level. 

    Next steps are bridges : a safety viewpoint is not only graphical representations, but this is also a set of filters and information synchronizations for specific concerns. Hence my next work is to enhance those graphical viewpoints in order to connect business tools such as my AltaRica editor. This is another R&D story !

    If you want more information, a complete presentation of this work is available here

    by Fred (noreply@blogger.com) at December 28, 2011 09:39 AM

    December 27, 2011

    MDE in action for safety analysis modelling

    Since two years, I am working for the IMOFIS R&D project. The last year, we have developed a graphical modeler for safety concerns. This modeler is based on the EN 50126 and ISO 26262 norms.

    The key idea of this work is to provide a graphical safety viewpoint for system engineering. The system is design with the SysML language. Safety engineers describe their analysis with the safety viewpoint. p { margin-bottom: 0.21cm; }
    The result is pretty cool ! In the next figure I described that the SysML “F2” operation of the SysML Block “CBTC” (Communication Based Train Control) is referenced by a barrier to prevent a derailment (the accident) in case of an excessive speed (the hazard).


    In this work, we use several model-driven technologies to build our software :
    1. The Eclipse Modeling Framework to describe the safety metamodel
    2. The Extended Editing Framework to generate both property views and wizards
    3. The Obeo Designer viewpoint-based studio to create graphical views  without any manual code
    4. The GenDoc2 Topcased technology to generate documentations. This technology is based on the Acceleo model-driven code generation.
    I will present this work on the Topcased Day conference in february !  In the meantime, you can look for screenshots, videos and publications on the Obeo network !



    by Fred (noreply@blogger.com) at December 27, 2011 10:19 PM

    November 16, 2011

    Building @ eclipse tip : signing depending on properties

    Hi,

    I would like to share a tip I've found to be able to sign our EEF project depending on a property during hudson build.

    Historically, Eclipse uses some build type to determine the degree of maturity of a project. We use the same for EEF builds

    I've set up my build to look at the repo every 6 hours, and it will build automatically a N build if any change is found.

    Hopefully, I can kick a build manually, but hudson will then ask me for some properties :

    - a build type ( default to N )
    - a build alias ( default to nothing )

    Then it is very simple to add a profile for the p2 repository generation that will sign the repo if the build alias is set or not !

    The following piece of code is actually doing this:

    http://dev.eclipse.org/viewcvs/viewvc.cgi/org.eclipse.emf/org.eclipse.emf.eef/releng/org.eclipse.emf.eef.update/pom.xml?view=markup&root=Modeling_Project

    And voilà !

    Now the signing occurs only if the build alias is set. I tried to sign the build if

    Obviously using another property ( for example "sign" ) that is set to false by default, or i can use multiple activation (?) ( for example, if build type is R,S,M or I ) can work, too.

    update : seems that blogger does not love xml code.

    by noreply@blogger.com (Stéphane Bouchet) at November 16, 2011 05:06 PM

    November 09, 2011

    Slides from EclipseCon Europe 2011

    For those of you looking for the Acceleo presentation that I’ve realized last week during EclipseCon Europe 2011, you can now find it online.

    I have also put online the presentation that I’ve done during the Eclipse Modeling symposium on the new Interpreter view available in Acceleo 3.2. A video of this presentation during the symposium is available on Dailymotion.

    And now, after Twitter, the Acceleo community will also be available on Google+.

    November 09, 2011 01:59 PM

    November 08, 2011

    Modeling Symposium @ EclipseCon Europe 2011

    The modeling symposium at EclipseCon Europe 2011 was really nice with several talks on various topics related to modeling. I would like to thank all presenters and particularly István who filmed all presentations with his smartphone.
     

    by noreply@blogger.com (Mariot Chauvin) at November 08, 2011 02:23 PM

    November 07, 2011

    Follow the White Rabbit ...

    at Eclipse Day Paris !

    If you're always wondering why we are so excited about Eclipse Modeling Technologies, if you'd like to understand how technologies relates to each others and how they can be used, stop by at Eclipse Day Paris tomorrow :

    "Modeling" . Behind this simple word lies strong opinions, misconceptions, obscure acronyms, meta-things and marketing campains far from the reality of developping an application. But if you look more closely, this forest hides a fairly small set of simple, powerful yet flexible concepts. If you zoom in again, you'll see awesome technologies. While some "dreamers" are giving more and more abstract discourses about modeling, on the field these technologies are pervading, even close to the bare metal in the Eclipse platform itself. In 2011, you might already know you can generate rich applications, but what about web technologies, PHP, C ? 

    This talk will start by taking a step back about what is all this modeling stuff, what it isn't and what technologies the Eclipse Modeling project brings in this regard. The focus will be placed on tools and components useful to build any kind of application and not just Eclipse based ones : EMF, Acceleo. You'll come back with examples of how you could leverage those technologies for your own project.

    by noreply@blogger.com (Cédric Brun) at November 07, 2011 03:56 PM

    November 04, 2011

    EEF 1.1 M3 is approaching

    While some of my colleagues are enjoying the ECE, I stay at Obeo's offices to prepare the Juno release of EEF.

    I finally get a good build using tycho and signing at eclipse, just in time for M3 :)

    This build is available directly from hudson :
    https://hudson.eclipse.org/hudson/job/emf-eef-master/lastSuccessfulBuild/artifact/org.eclipse.emf/org.eclipse.emf.eef/releng/org.eclipse.emf.eef.update/target/

    You can download the zipped repository or point out to the 'repository' folder.

    With this version, you can also give a try to the EMF generation using Acceleo !

    by noreply@blogger.com (Stéphane Bouchet) at November 04, 2011 02:16 PM

    November 03, 2011

    Why not generating EMF code with Acceleo ?

    Obeo has developed the Rolls Royce of the code generation. It's time to use this for the EMF generation tooling.

    Since one year we are developping an alternative EMF generation with EEF. Now we have covered most of the EMF generation (even the model part!) and you can try it with the last EEF nighlty!


    Here is the demonstration Stéphane made of the new wonderful feature:




    For the ESE attenders, I will made a demo @ the modeling symposium this evening !

    by noreply@blogger.com (Goulwen Le Fur) at November 03, 2011 10:18 AM

    EclipseCon Europe Day 1

    Yesterday started the 2011 edition of EclipseCon Europe. It was a great opportunity to attend very nice talks. Unfortunately everybody cannot be there so here is a small description of the talks that I’ve seen along with links for those who want to know more.

    As an Eclipse modeling guy, I’ve started the day with the EMF tutorial in which newcomers to the EMF world could learn what EMF is and taste several key EMF based technologies available in the eclipse foundation thanks to well detailed explanations from the Eclipse Source guys and speakers from the modeling community. For those who want to try this tutorial, its content is available online here and there along with the slide of the presentation.

    After a good launch and an interesting keynote from David Cuartielles, I went to the virtual EMF talk. During this talk, Hugo and Gregoire have presented a new technology to manipulate several EMF models with different metamodels as one model seamlessly. After a good explanation of the concept behind virtual EMF, we had the opportunity to watch it during a demonstration using MoDisco. You can already try virtual EMF and send them your feedback by grabbing it on Eclipse labs.

    Just after this talk I had to present my talk on Acceleo. Where I’ve presented how Acceleo can be used to create and maintain easily a code generator for the language of your choice. I’ll put my presentation online as soon as possible for those who missed it even if the Eclipse Foundation seems to use a very good system to register the talks and I hope that we will be able to see that way the talk we missed later.

    Then I went to Jan’s talk on graphical editing in which he presented an interesting DSL based approach to create a diagram editor. He showed how starting with an EMF model, in his case in an Xtext DSL, you could use a DSL to create the mapping between your model elements and the elements displayed in your diagram and how, in a style sheet DSL, you could define the design of your diagram. With few lines of code, you end up easily with a working diagram view. For those who want to give it a try, go to Jan’s blog and github account.

    This first day was concluded by a keynote from John Swainson giving us the story of the birth of Eclipse and of course a great party to celebrate the 10th birthday of Eclipse.

    November 03, 2011 06:13 AM

    November 02, 2011

    Talk about Wisss during the Acceleo Day at RMLL 2009

    Long time not posting here. I've had a lot of work and nothing really interesting to post. I just inform you that I will make a speech about Wisss during the Acceleo Day in Nantes, at L'école des Mines, next friday at 2:30 pm. More information at : http://2009.rmll.info/Eclipse-Acceleo-Day-Presentation,938.html http://www.acceleo.org/wiki/index.php/EclipseAcceleoDay:Program

    November 02, 2011 05:30 PM

    Apache Virtualhost generator

    Currently I've not much time to work on Wisss :-( However, I will make a tiny dsl and generator to have a virtualhost file generated (independent from Wisss, which already generate a vhost). I've already done this with a shell script but it will be more powerful and easy to ...

    November 02, 2011 05:30 PM

    October 27, 2011

    10 ans déjà !

    This is a post written in french, for english readers, the translation is here.

    La fondation Eclipse célèbre les 10 ans de l'IDE du même nom lors de la conférence Européenne EclipseCon dans les prochains jours.

    Pour l'occasion, un site à été créé retraçant l'historique du projet : http://eclipse.org/10years/
    Ce site permet d'afficher une timeline indiquant les grandes dates de la vie d'Eclipse.
    Celle-ci étant collaborative, profitez en pour y inscrire vos projets Eclipse !!!

    Pour ma part, je profite de ce blog pour revenir sur mon aventure avec Eclipse :
    Mon expérience de développement en JAVA commence à l'EMN, en 2000. A l'époque, j'utilisais l'environnement VisualAge for JAVA.
    En 2001, deux de mes collègues de promotion reviennent d'un stage dans la société OTI, avec dans leurs valises un nouvel IDE. Celui ci deviendra la première version d'Eclipse !
    J'ai été surtout intéressé par son mode de développement, selon des techniques agiles ( build continu et "self hosting").
    Leurs retours très positifs m'ont incité à utiliser la version 1.0 d'Eclipse dès sa sortie.
    Il n'a plus quitté mon PC depuis.

    J'ai tout de suite adhéré aux valeurs d'Eclipse : Communauté, Transparence, Ouverture.
    Dès le début, j'ai utilisé le bugzilla, avec une mince contribution jusqu'en 2007.

    Depuis j'ai été recruté chez OBEO, société est très impliquée dans l'écosystème Eclipse avec divers projets comme Acceleo, ATL et EMF Compare.
    Je suis devenu committeur officiel dans un projet eclipse, dont ce blog en est l'une des vitrines.
    J'ai également pris part à la sortie simultanée de plusieurs versions d'Eclipse. Je suis également impliqué dans les autres projets ainsi que dans l'écosystème Eclipse en général.
    J'utilise quotidiennement les divers outils qu'offre la communauté  (bugzilla, mailing list, wiki).

    Avec le recul, je ne pensais pas il y a 10 ans être autant impliqué !

    Je souhaite un très bon anniversaire à Eclipse (ainsi qu'à ses contributeurs) et lui souhaite encore des dizaines d'autres  anniversaires !



    by noreply@blogger.com (Stéphane Bouchet) at October 27, 2011 05:20 PM

    Celebrating 10 years of Eclipse


    This is a translation of a post written in french, the original is here.

    The Eclipse Foundation celebrates  the 10th birthday of Eclipse IDE during the EclipseCon Europe in few days.

    For the occasion, a site has been created retracing the history of the project: http://eclipse.org/10years/
    This site presents a timeline showing key dates in the life of Eclipse. It is collaborative, take this opportunity to register your Eclipse projects!

    For my part, I will share with you, my Eclipse adventure :

    My experience in Java development begins at the EMN in 2000. At that time I was using VisualAge for Java environment.

    In 2001, two of my colleagues returned from a Canadian intership with a new IDE in their suitcase . It will become the first version of Eclipse! I was particularly interested in its development model, based on agile techniques (continuous build and "self hosting").

    Their very positive feedback prompted me to use the Eclipse version 1.0 upon its release. It hasn't left my computer since.

    I subscribed immediately to the Eclipse Foundation values : Community, Transparency, Openness.
    From the beginning, I used the bugzilla, with a thin contribution until 2007.

    Since then, I was recruited at OBEO, company deeply involved in the Eclipse ecosystem with various projects such as Acceleo, ATL and EMF Compare.

    I became an official committer on the EEF project, which this blog is one of the showcase.

    I also took part in the last 3 Eclipse's simultaneous releases trains. I am also involved to other projects and the Eclipse ecosystem in general.
    Every day, I use the various tools provided by the community (bugzilla, mailing list, wiki).

    Looking back 10 years ago, I didn't thought I will be so involved !

    I wish a very happy birthday to Eclipse (and contributors) and I wish It dozens more birthdays!



    by noreply@blogger.com (Stéphane Bouchet) at October 27, 2011 05:19 PM

    EMF Compare scalability

    During the sponsored work on EMF Compare, we have taken some time to measure the performance of EMF Compare and think about possible improvement axis. We meant to profile both the time needed to compare two models and the overall memory footprint of a comparison, this has been achieved through the use of the Yourkit Java profiler.

    The first measures we took highlighted such a huge kludge that we took the time to better the comparison algorithms before taking any further action. Through the use of google's Guava and some rethinking, we improved the comparison time on big model comparison a great deal, dividing the total comparison time in half!

    Here is a sample of the time it takes now to compare your models with the latest builds of EMF Compare :

    Structure of the sample models used in these tests ("fragments" are the number of fragmented files, the rest are UML model elements contained by the samples) :







    Small Nominal Large

    Fragments 99 399 947

    Packages 97 389 880

    Classes 140 578 2169

    Primitive Types 581 5370 17152

    Data Types 599 5781 18637

    State Machines 55 209 1311

    States 202 765 10156

    Dependencies 235 2522 8681

    Transitions 798 3106 49805

    Operations 1183 5903 46029

    Time and memory used required to compare each of the model sizes (the model is copied, randomly modified, then the copy is compared with its original) :







    Small Nominal Large

    Time (seconds) 6 22 125

    maximum Heap (Mo) 555 1019 2100

    We initially thought that the time was mostly spent matching the elements together. It turns out that the real bottleneck of a comparison is the differencing phase (we know the two elements "match", now we need to know if, and how they differ). Just goes to show you that a profiler is mandatory in order to really know why your product might be slow ;).

    Future development

    These profiling sessions made clear the problems of EMF Compare on large models. We can properly handle "medium" models : EMF Compare is fast and its GUI can react at reasonable speed. However we cannot scale this behavior to large models : memory management is somewhat inefficient (more than 2Go of heap space to compare two models that both "weigh" 50Mo on disk...), the GUI is sluggish... We did isolate a number of potential improvements though. Stay tuned!

    Note : the report is online and can be retrieved from here for those interested.

    by noreply@blogger.com (Laurent Goubet) at October 27, 2011 04:40 PM

    Acceleo 3.2 has been released

    Acceleo 3.2 has been officially released today, you can grab it from the Eclipse Marketplace, the modeling discovery UI or with the Acceleo 3.2.x update site:

    http://download.eclipse.org/modeling/m2t/acceleo/updates/releases/3.2

    In this version, you will be able to see several performance improvements in the tooling and the compilation along with a brand new view in the Acceleo perspective, the Interpreter.

    The Interpreter view will help you create and debug your generators by letting you evaluate on the fly Acceleo expressions. You can find a detailed presentation of this new view on Laurent’s blog or in video on youtube.

    For those who want to know more, I will present a talk about Acceleo next week during EclipseCon Europe at Ludwigsburg.

    October 27, 2011 12:42 PM

    October 10, 2011

    Acceleo 3.2


     To celebrate the historic victory of the french rugby team in the world cup quarter final, the Acceleo team is proud to announce its 3.2 release very soon.

    Photo from NikRugby23
     


    • We tackled performance problems in compilation. Acceleo is now as fast as Vincent Clerc, and even if you totally don't know who he is, you will appreciate the better reactivity of the tool.  


    • We provide a new useful view to test Acceleo and OCL expressions on the fly, the Acceleo interpreter. You will find more details and example of usage of the interpreter in the Laurent's blog entry.

    Screenshot of Acceleo Interpreter


    Want to join the scrum  ? You could install a release candidate and give us feedback before the final release planned for October 24th.

    by noreply@blogger.com (Mariot Chauvin) at October 10, 2011 03:09 PM

    September 28, 2011

    The dynamic interpreter, your code generation companion

    The latest stable release of Acceleo, version 3.1.1 included in Indigo SR1, is fresh from the oven; but development on the next version is already well underway. The upcoming version 3.2 already includes major improvements of the tooling performance (compilation time, completion proposal computation, memory management...), making the everyday use of the Acceleo editor much more appealing; and some of the planned features for this version are already in their finalization stage.

    The one feature I'll linger on here is the dynamic interpreter for Acceleo and OCL expressions that we implemented for this version. Typically, you develop your code generators within the Acceleo editor, making use of the advanced edition features such as completion proposals, live compilation and syntax error reporting, syntax highlighting ...

    However the editor itself cannot help you determine what a given expression will return as its result. When you are in the middle of a complex OCL expression, it is sometimes difficult to say "this expression will output that classifier". And here is where the live interpreter comes into play!


    The image above displays the "interpreter" view and the use we can make of it : We opened the UML metamodel and selected "Class" in it. This makes "Class" the context of any evaluation entered in the interpreter (that would work with anything that can be adapted to an EMF object : selection in a model editor, selection in a graphical editor (GMF, Obeo Designer... even the "variable" view when debugging Acceleo generations!). We entered an expression... and the view made the rest, evaluating that expression on-the fly and displaying its result (here, all of the super-types of the UML "Class").

    Using the Interpreter during debug

    The Interpreter can be used as is, defining your own variables as you need them and entering the expression manually... but it can also be used in conjunction with the debugger. For example, let's say I want to know what happens within the 'UML 2 Java' example that is provided with Acceleo.
    • I open the "classBody" module of that example, and set a breakpoint somewhere within the "generateClassBody" template :
    • Then, run the example in debug mode until the breakpoint is hit :
    • And from there, I can either copy/paste whole expressions in the interpreter :
    • Or "link" the interpreter with the current module context...
    • And directly call its templates :
    • Of course, the result of this last action is lengthier than a single line, double clicking the result will open a popup in which it will be more readable :

    The view features a number of possibilities, creating and assigning variables to be used in the expression, real-time evaluation, linking with an Acceleo editor's context, saving the expression as a new query or template in a given Acceleo module... The view itself can be used without Acceleo, and accepts any other languages through extension points. I can't detail all of its features and extension possibilities here, see the wiki page for more (still a work in progress, yet it does describe the view in little more details than here) :).

    by noreply@blogger.com (Laurent Goubet) at September 28, 2011 01:10 PM

    September 14, 2011

    Eclipse Modeling : the definitive tutorial

    One of the thing we keep hearing from the adopters is : we need more doc, not just reference documentation but also how using and combining the Eclipse Modeling components.

    Richard Gronback's answer to these request was to write a book. But as we are living in a fast changing world filled with innovation it quickly got outdated.

    Reinaldo de Souza, a GSOC student did an amazing work as part of the Amalgamation Project. He did prepare an awesome cross-modeling components tutorials : the design of an Android DSL using Ecore, providing a textual syntax using XText, customizing EMF editors using EEF up to generating the Android code using Acceleo.


    The EMF domain model and Eclipse editors
    https://github.com/eclipse-soc/amalgamation-examples-emf

    Xtext Textual syntax for the DSL :
    https://github.com/eclipse-soc/amalgamation-examples-xtext

    Acceleo to generate the Android code :
    https://github.com/eclipse-soc/amalgamation-examples-acceleo


    It is more than just a start, it really is a complete tutorial with step by step instruction on the wiki and the corresponding projects one can import in his workspace.

    The original idea was to provide also tutorials and examples for GMF or Graphiti. It could not be done in the timeframe but anybody wanting to continue the example with the same domain model using other components is very welcome !

    Now we still have to package it properly so that the adopters can get it in a nicely integrated way in their IDE.


    by noreply@blogger.com (Cédric Brun) at September 14, 2011 12:08 PM

    September 07, 2011

    Collaborative Modeling : the New Deal


    Want to know how we tackle collaborative modeling @ Obeo ? Want to see live demos of consistent optimistic or painless pessimistic strategies ? Want to see more of what is going on mixing Mylyn and EMF/GEF/GMF ? Want to see live collaborative UI based on CDO/Dawn ?

    Benjamin Muskalla (Tasktop), Martin Fluegge and I did prepare something for you.


    All you have to do is to vote for this talk and come to EclipseCon Europe !


    by noreply@blogger.com (Cédric Brun) at September 07, 2011 11:55 AM

    August 22, 2011

    EEF submissions for EclipseCon Europe



    This year, I will try to present two talks to EclipseCon Europe about the Extended Editing Framework (EEF) and more generally Eclipse Modeling : Scientific application redesign in oil industry with Eclipse Modeling and 25 min to take care of your end users with EEF!.

    Scientific application redesign in oil industry with Eclipse Modeling

    This first talk deals with a work we made with IFP energies nouvelles (IFPEN) for redesign a part of its platform OpenFlow. IFPEN develops and provides a platform aiming at creating scientific softwares for oil production industry. This platform offers several services like tools helping creation of graphical user interfaces or a communication framework to send data to supercomputers.


    The communication part of the suite is fully operational but can be really improved, mainly in the way the communications are described. The work with IFPEN was to create a communication designer with EcoreTools and to generate all the communication layer of the IFPEN platform with Acceleo 3.


    For this talk, I will be assisted by two persons of IFPEN and we will show you :
    • The different elements of Eclipse Modeling we used to made this redesign
    • A demonstration of the final Communication Designer
    • And a demonstration of a second tool we made to create automatically GUI with EEF

    25 min to take care of your end users with EEF!

    The second talk I proposed is more EEF-centric. EEF has reached its version 1.0 and is no longer in incubation. The two years in incubation allowed the framework to be more and more robust and to be a real candidate to become the EMF.edit framework version 2.0!

    I will try to focus this talk on a tutorial aspect to enable people attending the presentation to use EEF immediatly on their own use cases.
    The talk will start with a short introduction of the project and will be followed by a first tutorial to get good looking properties view for a given metamodel defined with Ecore.
    After a short presentation of the different kinds of generable GUI with EEF, a second tutorial will show how to create very usable form editors with the extension part of EEF.

    I hope this description of the talks I've submitted around EEF convinced you and make you want to come to this wonderful event that is Europe EclipseCon !


    by noreply@blogger.com (Goulwen Le Fur) at August 22, 2011 09:22 AM

    June 27, 2011

    An AltaRica textual editor in Eclipse


    Since more than one year, I have heard about the AltaRica language provided by the LaBRI. AltaRica is a language designed to model both functional and dysfunctional behaviors of critical systems. AltaRica provides a syntax and a set of model-checkers like ARC that allows to analyze the set of reachable configurations of a concurrent system from an initial state for example. This language has a formal semantic and seems quite easy to learn and to use !

    However, I haven't found a free plug and play editor for a beginner (as me) with auto-completion and error detection. I have thus implemented, during my spare time, a textual AltaRica Eclipse-based editor in a first version.

    My motivation are :
    • to learn the langage 
    • to be able to use this langage with the Eclipse Modeling Framework. In fact, if I succeed, the AltaRica model and all other models used during my critical systems developments (SysML, UML, EventB, Requirements, traceability) will be managed by the same common modelling framework. It will thus facilitate the interroperability ! 
    • to learn the Eclipse-Based xText technology for which you can describe the AltaRica grammar and generate the Eclipse-integrated textual editor.
    An extract from the xText AltaRica grammar






    After several hours, I succeed in providing my first AltaRica editor with auto completion and error detection. For sample, I can edit the counter example delivered with ARC and compile this sample.
    A simple counter from 0 to 10. The counter can be incremented by
         one unit using inc event or by two units using inc2 event.
    Syntax error detection
    Completion proposals
    The ARC compilation results when asking all the path to get count >=3














    The ARC console is not yet integrated in Eclipse because I don't know if someone else could be interested either in using or in contributing to this editor. Please, feel free to contact me if you are interesting !

    by Fred (noreply@blogger.com) at June 27, 2011 10:28 AM

    RT-Simex R&D project presented to the FSE conference

    Last month,

    Julien, from the INRIA Aoste team, has presented the RT-Simex project to the FSE conference (http://fse18.cse.wustl.edu/). The slides are available here : http://www.slideshare.net/fthomasfr/fsertsimex.

    by Fred (noreply@blogger.com) at June 27, 2011 01:27 AM

    June 23, 2011

    What's new in Acceleo 3.1

    Acceleo 3.1 has been released yesterday as part of the Eclipse 3.7 Indigo release train. So let’s have a look at some of the new features available in this release.

    Language improvements

    • Support for documentation for templates, queries and modules.

    • Support for TODO and FIXME

    Tooling improvements

    • Improved real time error detections with new errors detected and warning support.

    • Brand new wizard for the creation of new projects and new modules.

    • Documentation in completion and hover

    • Improved outline view with new actions to filter and sort templates and queries.

    • Improved support for metamodels that have not been deployed in a plugin.
    • New refactoring options (extract as query, pull up, generate documentation…)
    • Acceleo runtime available as an Eclipse library for all Java projects.

    • New preference menu to customize the colors of the Acceleo editor and to activate/deactivate some options of the generation.

    Better Ant and Maven support

    Acceleo 3.0 generates the necessary Ant file to compile an Acceleo project thanks to the PDE build system. Now Acceleo 3.1 adds on top of this, two Ant files for the compilation and the launch of an Acceleo generation out of Eclipse. We are also introducing the generation of the pom.xml for a tycho/maven based build of Acceleo projects.

    New serialization option

    • Support of binary resource serialization for Acceleo modules. With this new option, you will be able to reduce the size of your Acceleo generators and improve their loading time.



    For those who want to know more about Acceleo, you can find more information on the Obeo Network or you can follow me on twitter.

    June 23, 2011 08:10 AM

    June 22, 2011

    Eclipse DemoCamp in Nantes

    Next week the second edition on the Eclipse DemoCamp will take place at the Ecole des Mines de Nantes.

    Even if Nantes is specialized in Eclipse modeling technologies, we have this year an existing program with a good mix of modeling and non-modeling talks.

    6:15PM - 6:35PM: MoDisco & ATL (AtlanMod)

    6:35PM - 6:55PM: EMF Facet (Mia-Software)

    6:55PM - 7:15PM: EEF (Goulwen Le Fur, Obeo)

    7:45PM - 8:05PM: Memory Analyzer (Zenika)

    8:05PM - 8:25PM: Tycho (Pod Programming)

    8:25PM - 8:45PM: EGit (Obeo)

    8:45PM - 9:00PM: General Questions & Wrap-up

    If you want to attend, please update the wiki page or contact me:
    http://wiki.eclipse.org/Eclipse_DemoCamps_Indigo_2011/Nantes

    by Freddy Allilaire (noreply@blogger.com) at June 22, 2011 12:06 AM

    June 01, 2011

    Webinar Retour EclipseCon 2011 : ce qui nous attend dans Eclipse 3.7

    Tomorrow (2011/05/31, at 3 pm Paris timezone), there will a webinar about EclipseCon 2011 and Eclipse Indigo focused on news and northworthy of the Eclipse ecosystem. For the first time, this webinar will be in French since it will target the large and active community of French Eclipse users and some of them are more comfortable with their native language ;)

    Speakers are: Etienne Juliot, Cédric Brun, Mariot Chauvin, Mikaël Barbero, Frédéric Madiot.
    You can register at: http://live.eclipse.org/node/1030



    English abstract
    EclipseCon 2011 was a great success with lots of announcements and exciting new projects.
    If you could not got there or you didn't success to fork yourself to see every talks, this webinar will help you to have an overview of the event and the upcoming technologies for Eclipse Indigo.
    As lots of materials on EclipseCon are already available in English and in a view to increase their visibility to the french community, this webinar will be in French.


    Résumé en français
    EclipseCon 2011 a été un grand succès avec beaucoup d'annonces et de nouveaux projets passionnants.
    Si vous n'étiez pas sur place ou vous n'avez pas réussi à vous dédoubler vous pour voir toutes les conférences, ce webinar vous aidera à avoir un aperçu de l'événement et des technologies à venir pour Eclipse Indigo.
    Comme beaucoup de documents sur EclipseCon sont déjà disponibles en anglais et en vue d'accroître leur visibilité à la communauté française, ce webinar sera en français.

    Ce webinar durera une heure et sera présentée de manière chronologique, comme si vous étiez à Santa Clara du lundi au jeudi. Les orateurs sont exclusivement des commiteurs des projets de la fondation ou des orateurs à la conférence. En prévision de la sortie d'Eclipse 3.7 qui sortira en juin prochain, nous vous montrerons pourquoi cette version est la plus importante depuis plusieurs années en expliquant ses nouveautés : Orion, Eclipse 4, Virgo, Acceleo, WindowBuilder, Tycho, EEF, eGit, ...


    UPDATE :

    The webinar has been recorded and is available at  / La vidéo a été enregistrée à l'adresse :
    http://live.eclipse.org/node/1030

    Here are the slides / Voici les supports de présentation :

    by Etienne Juliot (noreply@blogger.com) at June 01, 2011 03:22 PM

    May 26, 2011

    About modeling workbenches

    I was last week at Cambridge for Code Generation 2011.

    That's the first time I attend to this conference, and I feel I have missed for several years, agreat opportunity to discuss and share ideas about modeling beyond Eclipse community.

    One hot topic of the conference was language workbenches with a competition dedicated to them one day before the official start. You will find several summaries on this first journey with the several presentations, including the Obeo Designer one. I really enjoyed this workshop and discovered interesting new workbenches such as Essential or Whole platform.

    The day after I presented how you could create easily your own modeling workbench mixing several kind of editors. If you did not attend, following is a summary of my presentation.




    I started by explaining why particularly graphical DSL are more interesting than UML if you want to raise your level of abstraction rather than level of complexity.

    UML graphical notation, along being not specific, is ambiguous and not intuitive.







    Building a graphical or textual DSL should be driven by end user way of work and data you model.

    Neither expect from an emacs user to program by drawing some kind of diagram sequence, nor expect from a powerpoint user to create a flowchart by literally typing it.








    One of a key point for a modeling workbench is its ability to support collaborative work, which means enable people with different concerns to work on the same models.

    A modeling workbench should adapt to the workflow of users and set process with conflicts handling.








    Modeling is valuable in itself, however you can reach another level of productivity gain when you use models to produce deliverables : code, documentation or settings file.

    A modeling workbench should manage de- synchronization between models and the deliverables.





    Obeo Designer is a modeling workbench platform which focus on adaptability, flexibility and tooling. It is based on eclipse modeling projects.

    For instance for text generation it includes Acceleo, a template based approach generator with featured editor, debugger and profiler.






    It includes also Viewpoint, a graphical runtime to specify graphical representations such as diagrams and table editors. You don't need to generate any line of code to specify representations.

    Viewpoint provides several mechanisms to display only relevant informations such as layers and filters.








    Live demo showed how to create such editors to edit graphically models and then did a model transformation from UML and a code generation to Java.












    This platform has been used for several Obeo customers and partners with different kind of editors and with various generation use cases.

    For instance for safety analysis with FTA diagrams.








    Viewpoint technology is also capable of drawing advanced diagrams for your domain specific models such as sequences diagrams (including interaction uses and combined fragments).











    Even if you should often avoid UML you may have to deal with such legacy models.

    So we provide open-source UML editors you could easily extend or integrate in a descriptive manner.







    If you want to know more, presentation slides are available online.

    I attended to a lot of interesting talks, but if I should to retain only two, it would definitely be the keynotes from Terrence Parr and Ed Merks. Strong opinions, good sense of humor, and a understandable speech to explain what they have realized.

    by noreply@blogger.com (Mariot Chauvin) at May 26, 2011 02:45 PM

    May 04, 2011

    True story of a successful business model based on Eclipse

    At EclipseCon 2010, I do an original talk about business model. I was very happy to see so many persons to listen a non-technical talk.
    My goal wasn't to explain generalities about FOSS business models (a very good talk was done by Neelan Choksi, the president and COO of Tasktop, and is available at http://www.eclipsecon.org/2011/sessions/?page=sessions&id=2299).

    My goal was to explain our own story, why we continually adapt our commercial offer (service or product), and how we succeed to find a nice way to make money with free software.
    Eg: provide for free our code generation tooling, and selling legacy migration solutions!

    I also explained how Eclipse Foundation help us to find a way to increase the visibility of our work (and so, to increase the number of leads).


    by Etienne Juliot (noreply@blogger.com) at May 04, 2011 03:46 PM

    February 18, 2011

    My new blog about filmmaking and open source

    In parallel with my computing activity, I decided to open a new blog about filmmaking, to share my experiences in this domain...

    I will talk about independent filmmaking, DSLR cinema, new amazing DSLR techniques, film production processes, directing, cinematography... and how the openness and the innovation of free software spirit can also improve all that stuff...

    Here is the link... See you later on this blog or on the other one...

    by noreply@blogger.com (Jonathan Musset) at February 18, 2011 04:32 PM

    November 16, 2010

    Eclipse Modeling for WTP

    If I want to describe cinematic between my webapp, which representation is the easiest to understand :


    this one:

    or this one :

    At Eclipse Summit Europe 2010, I do a talk to explain how Modeling can be useful to design JavaEE based applications:
    • how to create some textual and graphical DSL for each layers of my webapp,
    • how to create Acceleo based code generators for Hibernate, Struts, Spring and others frameworks,
    • how to integrate everything in an Entreprise Architecture with a Togaf based designer.
    Some flash demos are available to see the resulted workbench.

    And here are my slides:

    by Etienne Juliot (noreply@blogger.com) at November 16, 2010 07:22 PM

    November 03, 2010

    Vidéo de la présentation "MDA en 2010 au JUG Summer Camp"

    Juste un mot pour vous dire que les vidéos du JUG Summer Camp 2010 sont disponibles sur Parleys ici : http://www.parleys.com/#id=31362&st=4

    La mienne intitulée "Le MDA en 2010, une visiion pragmatique!" est ici :

    by Jérôme at November 03, 2010 03:46 PM

    October 31, 2010

    My slides about Acceleo / MTL at the Eclipse & OMG symposium

    Here are my slides I presented at the 2nd Biannual Symposium on Eclipse Open Source
    Software & OMG Open Specifications in Minneapolis
    .

    I spoke about our experiences with Acceleo to implement the MOF-to-Text Language specification. At the end of my talk, I explain problems we had about sharing our feedback about specs with the OMG organisation. OMG guys was very interested about this and I hope it will simplify some collaboration beetween Eclipse community and OMG spec writers.

    Here is the abstract:
    "When OMG tackled the standardization of an M2T syntax with the MOF Model to Text Language specification, commiters decided to rewrite Acceleo from scratch as an official Eclipse Foundation project, changing the syntax to the OMG standard while keeping the exemplary tooling and pragmatism of Acceleo.org.
    With Acceleo 3.0 included in Eclipse 3.6, our new goal is to provide the de facto or reference implementation of the standard; however, some parts of the specification are still quite vague and ambiguous and collaboration with OMG isn't smooth. We discuss both the specification and the implementation, and gather overall thoughts on how to provide a long-term and successful communication channel between the Acceleo project and OMG representatives."

    Here are the slides:

    by Etienne Juliot (noreply@blogger.com) at October 31, 2010 05:58 PM

    October 28, 2010

    How to create working Android applications using Eclipse modeling techniques

    Several months ago, at Eclipse Con 2010, I presented a talk titled "Acceleo Code Generation : Let's start with an Android example". This is the demo.

    At Eclipse Summit Europe, we will do the talk again. This time, I won't participate... But, Mikael Barbero and Stephane Begaudeau will show an advanced version of this tutorial : "Creating a Language for Android Apps with Eclipse Modeling". Both are software engineers at Obeo. They have worked on this 4 hours tutorial with Jan Koehnlein and Holger Schill from Itemis.

    In this tutorial, attendees will create working Android applications using Eclipse modeling techniques. This talk will start with a short presentation of Android and its development tools. Then the attendees will learn how to define abstractions using EMF Ecore and how to create a language and an editor for these with Xtext. Finally, they will implement a generator that creates the Java and XML source code of the Android application with the help of Acceleo. The team will demonstrate how these ingredients are integrated into the Eclipse workbench just like Java and XML do.

    Thank you guys for the good job you have done to prepare this tutorial. That kicks ass! The result seems to be very impressive...

    This tutorial will also be interesting for beginners... Being an expert at code generation or Acceleo is not necessary to get started on your first code generator : using the Acceleo editor and the powerful features it exposes (completion, syntax highlighting, on-the-fly compilation, quick outline, ...), it is very easy to get started once you understand the most basic principles.

    Flickr/androids eat apples!/laihiu 
    Goulwen Le Fur will also be at Eclipse Summit Europe 2010 and he will talk about EEF, this very usefull component I have talked about several times this year.



    by noreply@blogger.com (Jonathan Musset) at October 28, 2010 01:15 PM

    July 06, 2010

    Eclipse DemoCamp in Nantes this week

    Don't forget this Thursday if you're closed to Nantes to attend to our Eclipse DemoCamp.

    Here we have the program:
    18:00 - 18:10: Welcome
    18:10 - 18:35: Modisco, by Gabriel Barbier, Mia-Software
    18:35 - 19:00: WTP with Glassfish, by Laurent Ruaud and Evariste Konkolé, Serli
    19:00 - 19:25: Acceleo, by Stéphane Bégaudeau, Obeo
    19:25 - 19:50: Eclipse SOA, by INRIA
    19:50 - 20:15: ATL in the AtlanMod Model Management Architecture, by Hugo Bruneliere, EMN/INRIA
    20:15 - 20h45: GMF Showcases, by Etienne Juliot, Obeo
    20:45 - 21h00: Open discussion

    Our goal: few slides, lots of demos!

    If you want to attend, please use the wiki page: http://wiki.eclipse.org/Eclipse_DemoCamps_Helios_2010/Nantes

    See you on Thursday!

    by Freddy Allilaire (noreply@blogger.com) at July 06, 2010 06:28 PM

    July 02, 2010

    Acceleo 3 and properties

    Since I'm often brought to develop acceleo generators, I often had to design my templates so that they can be easily parameterized by users.
    This is important since by doing so, acceleo modules are flexible enough to fit my users needs and (hopefully) I don't have to update modules too often.
    Of course, you need to carefully design your templates to achieve this modularity. But for simple needs, simple solutions are the best.
    Acceleo natively supports the use of properties files which is an efficient and simple way to parameterize generation module: Properties are generally simple to understand and users can use them easily.
    Well, Acceleo 3 is out, and of course properties are still supported. I just wanted to point out something I stumble upon just recently: Properties files are now accessed via the java ResourceBundle mechanism. And consequently, they need to be in the classpath in order to be accessed at runtime.
    So, as a module developer, you'll place your default properties files (those you provide with your modules in order to have a sensible default behavior) in a package of your module project.
    Well, don't forget to check that this package is exported at runtime, otherwise your properties won't be accessible when you run your generations!


    You probably already know how to do it but just in case: open the META-INF/MANIFEST.MF file, and in the Runtime tab just add the package(s) that contain your properties files.
    And since you need to do this also for your entry point templates, it may be a good idea to place default properties files in the same package as the entry point template files?

    by noreply@blogger.com (Laurent Delaigue) at July 02, 2010 01:43 PM

    June 29, 2010

    Acceleo 3.0.0 is released!

    Acceleo 3.0 has just been released and it comes with compatibility with Eclipse 3.4, 3.5 and the latest 3.6 versions. Acceleo 3.0 is a pragmatic implementation of the OMG Model-to-text specification. It supports the developer with most of the features that can be expected from a top quality code generator IDE: simple syntax, efficient code generation, advanced tooling, features on par with the JDT... Acceleo also has a unique tooling around example-based design of code generators with all the pragmatism we had with the 2.x stream.

    Acceleo can be downloaded and installed in a number of ways. If you have an existing Eclipse installation and simply wish to install Acceleo in it, installing through the update site is the easiest way. If you'd rather install a new Eclipse with Acceleo, you may want to take a look at the facilities provided by the amalgamation project. Amalgamation is the project that leads the creation of the modeling bundle, it has an easy one click discover and install wizard. Thanks to it you could also easily install also ATL 3.1 (the model-to-model transformation language in Eclipse), EEF (a way to improve the EMF model creation), EMF Compare 1.1 and many other modeling components.

    Acceleo 3.1 will be released in June 2011 with the Eclipse Indigo release train. We also planned several corrective versions for the 2.x maintenance stream: a 2.7.1 version will be released this year and a 2.8 version in 2011. Meanwhile, the Acceleo team is investigating towards Eclipse 4 (e4) compatibility. All the links and information to download and install Acceleo are available from here: http://www.eclipse.org/acceleo/download/

    Note that examples are available from the menu right-click => New => Examples => Acceleo Plug-ins.

    Do not hesitate to give feedback through the mailing-lists, the bug-tracker or the web forum, a Wiki is available to ease the collaboration and the gathering of tips and tricks.
    Support information: http://www.eclipse.org/acceleo/support/
    Developers information: http://www.eclipse.org/acceleo/developers/

    Thanks to all the developers and contributors involved in this release!

    by Freddy Allilaire (noreply@blogger.com) at June 29, 2010 05:08 PM

    June 25, 2010

    How to create an Acceleo 2.x generator for composed metamodels

    Imagine you have a metamodel that reference other metamodels and you want to create a generator for this metamodel. Let's take an example :

    The first metamodel contains an EClass named Object that have a reference package of type EPackage. That create a reference to the ECore metamodel.

    First we have to create a template for the first metamodel :

    %
    metamodel http://www.obeo.fr/first

    import manymetamodels.ecore
    %>

    %script type="first.Object" name="default" file="test.txt"%>
    Object %name%> :

    %package.default%>

    Then we need to create the template manymetamodels.ecore.mt :

    %
    metamodel http://www.eclipse.org/emf/2002/Ecore
    %>

    %script type="ecore.EPackage" name="default"%>
    EPackage %name%>.


    And that's all. So you just need to create at least one template per metamodel and then inport them according to the way you navigate your metamodels.

    by yvan (noreply@blogger.com) at June 25, 2010 01:56 AM

    June 18, 2010

    Eclipse Wordlcup : Bye Bye France, Hello source code !

    Very sad day for french people, French team is probably out of the competition, thanks to Nicolas, Sidney and ... of course Raymond. Anyway, Here is the current rating in the Eclipse community :


    Came from the end of ranking ldelaigue lead now the game. lredor is second, arichard third and Jens fourth. Finally fmaillet is always in top 5.

    Sorry for Jonathan and Cédric who are now ranked 8th and 10th of the game. More information on : Forecast ranking.

    I've just added the source code of the Eclipse Worldcup Forecast application on the Eclipse CVS. You can find it in the test directory of the eef project. Here is a PSF file.

    Feel free to create you're own extension for the Eclipse WorldcupForecast Application ;)

    by noreply@blogger.com (Goulwen Le Fur) at June 18, 2010 12:31 PM

    June 10, 2010

    Eclipse DemoCamp in Nantes

    Obeo and INRIA organize an Eclipse DemoCamp at Nantes on the 8th of July: http://wiki.eclipse.org/Eclipse_DemoCamps_Helios_2010/Nantes

    Don't be afraid, we looked at the world cup agenda and there will be no game on this day! So you could attend quietly and maybe take a break about soccer for few hours.

    However don't miss the first Eclipse World cup experience where I hope lot of people will join us (Go! Go! Go France!). If you're interested, take a look to the post made by Goulwen.

    For the DemoCamp, we have started to work on the agenda and already several interesting demos will be presented: Acceleo by Obeo, MoDisco by Mia-software, WTP by Serli and more to come.

    If you want to propose a demo or simply attend, please sign up on the wiki.

    See you in Nantes!

    by Freddy Allilaire (noreply@blogger.com) at June 10, 2010 07:31 PM

    May 20, 2010

    Agility 1.4 is out

    Agility is a product based on Eclipse that help migrating code. You can find more details here. This new release comes with several improvements :

    - Custom link resolution
    - OStore reflective editor
    - Export to product parser

    There are also bug fixes of course :)

    Lien

    by yvan (noreply@blogger.com) at May 20, 2010 06:36 AM

    April 12, 2010

    Acceleo 2.7 is out

    There are several improvements and bug fix :

    - Profiling now profile compilation of templates. EObjects profiling can
    be also disabled. It's very useful when generating from big models.
    - EA models import has been improved
    - Some improvements have been done on resource caching
    - A template extender have been added. It allows to explicitly extends
    template from a module. It relay on extension point.
    - It's now possible to add custom services as system services. For those
    services the import statement is not required.
    - The import order error has been changed into a warning.

    For a more complete list you can visite the official Acceleo web site.
    To download this new version you can use this update site http://www.acceleo.org/update.

    by yvan (noreply@blogger.com) at April 12, 2010 02:17 AM

    April 07, 2010

    The new acceleo release before the 3.0 version

    Acceleo 2.7 has just been released. The Acceleo profiler has been improved in particular when generating from big models. A template extender was added; it allows to explicitly extend a template from an Acceleo module. Custom services can now be added as a system services. Several fixes were done on the models import from the Enterprise Architect modeler. Concerning the Acceleo modules, the C and Java modules have been improved. A new build is available on the update site.

    Furthermore some bugs have been fixed; you may want to have a look on the new and noteworthy page for the 2.7.0 release: http://www.acceleo.org/pages/new-and-noteworthy-acceleo-2-7-0/

    The "Acceleo modeling bundles" providing the Eclipse platform, Acceleo, its prerequisites have been updated. These bundles are the way to go if you want to test the power of modeling within Eclipse: http://www.acceleo.org/pages/download-bundle/ They provide as usual the ATL workbench for model to model transformations, EMF Compare for model comparison and others components composing the official Eclipse Modeling Package.

    We planned several corrective versions for the 2.x branch: a 2.7.1 version will be released this year and a 2.8 version in 2011. But as you may know, the next major release of Acceleo is currently implemented and this new version is an official Eclipse foundation project (http://www.eclipse.org/acceleo). The most obvious change of this new version is the overhaul of the syntax as we now follow the OMG standard "MOF Model To Text Language" (MTL) based on OCL. In incubation since a little more than two years within Eclipse, Acceleo 3.0 is coming soon with the Eclipse Helios train (June 2010). Acceleo 3.0 already supports a level of functionality close to its 2.x stream. “Pre-release candidate” milestone could already be tested: http://www.eclipse.org/modeling/m2t/downloads/?project=acceleo

    Do not hesitate to give feedback through the mailing-lists, the bug-tracker or the web forum, a Wiki is available to ease the collaboration and the gathering of tips and tricks. http://www.acceleo.org/pages/take-part-in-acceleo/

    Thanks to all the developpers and contributors involved in this release!

    by Freddy Allilaire (noreply@blogger.com) at April 07, 2010 06:59 PM

    February 11, 2010

    2nd Birthday of ParisJUG

    juggyannif02.jpg I just back in my Home Office from a two days trip to Paris.I went to the second birthday of ParisJUG. Thanks and bravo to Antonio and all the ParisJUG team for the organization! It was a special event about the Open-Source revolution.
    All French JUG leaders are came specially for this event. Orianne and Jerome Petit, the Poitou-Charentes JUG leaders, announced that we would organize an event in September: The Beach JUG (aka Le JUG de la Plage!) ;-) The event will take place in La Rochelle on the French west coast. This will be an opportunity for me to talk about Model Driven. If you are interested to come and talk, ping me, I will redirect.


    The evening starting by an excellent Keynote presented by Sacha Labourey. He shares with us his experience as Open-Source committer on JBoss, then CTO and co-GM of the RedHat / JBoss company. And he detailed some best practices for creating an Open-Source and succeed in life (in Open-Source world ;)) I liked this phrase: "We are free and we don't suck ! "
    Then there is a surprise, a mystery guest, the buzz turned the whole day on Twitter, tracks from Clara Morgane to Nicolas Sarkozy:

    And finally, it's Marc Fleury, the JBoss Founder who became!
    I had the honor to discuss with Marc around a glass of French wine! Marc has a really cool life, since it sold JBoss. He came back to Europe, in Madrid and spend full time with his children and used his free time to study Economy... a huge topic to me...
    400people.jpg eclipse_built on_neg_logo_fc_xsm.aiJust after the Keynote, Etienne Juliot presented a quickie before almost 400 people. It explain how Obeo joined the Eclipse Foundation as a Strategic Member and how to build a viable Business Model based on the Eclipse ecosystem.

    bisounours.jpg

    I remember two messages: "Do it!" and "Professional Open-Source is not a Bisounours World", which reaches the Sacha opinion. Indeed, Etienne told us that it is very difficult to monetize open source technologies in order to build a solid software company. He explained how Obeo has managed to build a clear strategy and build a solid business model.


    The evening then continued with a third half-time with almost 120 people, the moment to talk with many good Open-Source Guys!

    by Jérôme at February 11, 2010 07:45 PM

    January 13, 2010

    New succes for Agility

    Obeo Agility is a proprietary product edited by Obeo. It's used for code migration. It parses legacy code into a model used for generating code for the targeted technology. We already parse and migrate millions of code lines from many languages (Cobol, Ada, PL1, ...). We finished a project for parsing 5 millions of code lines written in Natural. The goal for this project was not migrating the code, but automating code review. Reports are generated using... Acceleo.

    by yvan (noreply@blogger.com) at January 13, 2010 05:55 AM

    November 30, 2009

    Profiling your code generation

    I am now developing on the Eclipse Acceleo project. To get started I bring a feature form the old Acceleo project. I write a profiler for the new Acceleo. It's very similar to the old profiler.

    As you can see the screen shot show many statistics about the module execution. By double clicking on an element you can open its definition.

    by yvan (noreply@blogger.com) at November 30, 2009 09:59 AM

    November 12, 2009

    Eclipse Demo Camp 2009 in Paris with Acceleo and OD

    Next week, November 17th, come in Paris to see Eclipse Community and news of Eclipse projects.
    I co-organise this event with Cedric Vidal , a very nice guy with lots of cool ideas on model driven and EMF, and we want to promote talks with live demos and few slides (I hate "slideware talks").
    We success

    Some very nice talks will be propose on Birt, XText, UI (with XWT and Wazaabi) and a "guess star" with an introduction of Mike Milinkovich (Executive Director of the Eclipse Fondation).


    Jonathan Musset will talk about the new features of Eclipse Acceleo project. This demo has been shown at Eclipse Summit Europe and was very impressive by the quality of the template editor which is perhaps the best editor of Eclipse platform, just after JDT.




    We will also make some demo of Obeo Designer, our Eclipse Modeling distribution with a new exciting tooling to create GMF designers without any Java code (during our demo, we will create from scratch a new nice designer).




    Info on the Eclipse wiki page:
    http://wiki.eclipse.org/Eclipse_DemoCamps_November_2009/Paris

    Register on http://eclipsedemocampparis09.eventbrite.com/
    or directly with this form:

    Events

    by Etienne Juliot (noreply@blogger.com) at November 12, 2009 12:06 PM

    June 30, 2009

    Eclipse Acceleo Day program is available!

    The first Eclipse Acceleo workshop will take place on July 10, 2009 in Nantes. More information available here: http://www.acceleo.org/wiki/index.php/EclipseAcceleoDay
    The complete program is now available with a lot of interesting talks dealing with Eclipse, MDE, DSM and of course Acceleo ;-)

    Hour Title Presenter Affiliation Language
    09:00 Introduction Etienne Juliot OBEO English
    09:30 Presentation of a DSM-oriented design and generation environment Erlé Le Gac Capgemini French
    10:00 MDA & Acceleo deployment feedbacks Vincent Fady Atos Origin French
    10:30 Coffee break


    11:00 Acceleo, contribution to the industrialization of developments: Feedback from Bull-Centre de Services Paris Olivier Leal Bull French
    11:45 An Open-source Model Driven software development toolset - Lesson learned from Orange Labs Samuel Liard Orange Labs French
    12:15 Lunch


    14:00 MDSD Scaffolding and Acceleo Cédric Vidal Proxiad English
    14:30 Presentation of WISSS (Webapp Is Simple, Stupid and Secure) François Gaudin Makina Corpus English
    15:00 Acceleo MTL: a standard alternative for code generation
    Cédric Brun OBEO English
    15:45 Coffee break


    16:15 EEF powered by Acceleo MTL - Acceleo MTL ... and punishment! Goulwen Le Fur OBEO English
    17:00 Panel



    This workshop is free but with mandatory registration (for organisation purposes). Registration details are available here: http://www.acceleo.org/wiki/index.php/EclipseAcceleoDay

    Hope to see you there :-)

    by Freddy Allilaire (noreply@blogger.com) at June 30, 2009 05:44 PM

    June 15, 2009

    Eclipse Acceleo Day

    Eclipse Acceleo Day will take place on July 10, 2009 in Nantes. This workshop is dedicated to Acceleo and associated technologies. All information for attending and participating are available here: Eclipse Acceleo Day.

    The workshop fees have been lowed to their minimum: this is a free workshop ;), but mandatory registration (for organisation purposes). This workshop is co-located with the 10th Libre Software Meeting (http://2009.rmll.info/?lang=en).

    The workshop will be an occasion for some members of Acceleo community to meet and to exchange ideas. This meeting will also be an opportunity to present some of the planned extensions to this tool and discuss MDE related subjects.

    If you want to participate and/or attend, don't hesitate to contact me by email.

    Scope

    Acceleo (http://www.acceleo.org) is an Eclipse-based toolkit for code generation, with a model based approach. Code generation is the technique of using or writing programs that write source code. Code generators are tools built to serve engineers in the automatic creation of applications. Acceleo is a free software, its development is totally open.

    Topics of Interest

    • New Eclipse Acceleo project (http://www.eclipse.org/modeling/m2t/?project=acceleo)
    • MOF-to-Text Language
    • Validation with Acceleo
    • Documentation generation
    • Scripting generation (PHP, Python, Ruby, ...)
    • Link with M2M transformations (ATL and others)
    • Comparison with other generative engines
    • Integration of Acceleo in a industrial tool chain
    • Presentation of existing modules ("ready-to-use" generators)

    Talks

    Most of the talks will be 20-30 minutes long. Participants are welcome to propose a short talk presenting their project of their experience with Acceleo. Working languages are english and french. All slides and documents will be in english. Demos would be greatly appreciated :-)

    Important Dates
    • Registration: July 3rd, 2009 (Even if attendance is free, registration is mandatory for organisation purposes)
    • Workshop Date : July 10th, 2009

    by Freddy Allilaire (noreply@blogger.com) at June 15, 2009 07:03 PM

    May 26, 2009

    Thread safe services

    Last month I explained how to tune Acceleo standalone engine threading. But services were still running in mutual exclusion because historically services didn't need to be thread safe. The result was a performance loss.
    Services of a given service class couldn't run in parallel by default. It means threads will have to wait for other threads to run services. I noticed that a lot of service classes are thread safe, they don't use field or static references.

    But as I can't decide if a service class is thread safe or not for you, I added an interface that bypass the mutual exclusion zone for a given service class. It allows multi threads to run services of a service class. This interface is IThreadSafeService. It declares nothing, so you just have to add the implements clause as following:

    public MyServices implements IThreadSafeService {
    ...
    }

    But be aware, if you use this interface and your service class is not thread safe it can lead to random boggus behavior. And it can be difficult to find out what is the root cause of your troubles.

    by yvan (noreply@blogger.com) at May 26, 2009 06:54 AM

    April 10, 2009

    Acceleo standalone and multi-threading

    One of the main features of the standalone Acceleo engine is to provide multi-thread support. This allows us to divide the code generation time according to the count of available processors, effectively cutting the generation in half on some machines. To share the work between threads, the input model is divided into groups of objects; each group is then queued till a thread can process it.

    There are two parameters to tweak the multi-threaded generation. The first one is the number of threads to run simultaneously, the default value being the number of available processors plus one. This allows us to use all available processors, the one supplementary thread used to cover synchronization waiting time. While some threads are waiting for another one, one processor is free to run the thread which was waiting for an idle processor.

    The second parameter is the number of objects per group, the default being 20 objects per group. This parameter is very important since its allows you to find the optimum between load sharing and thread management overhead. Your objects groups will not be processed using the same amount of time. So Imaging you divided your model into two groups by setting number of objects in the model divided by 2. The group which runs faster will have to wait for the slower group at the end of the generation. In this case you are losing time. On the oposite you can put a single object per group. This way you minimize the loss of time at the genretation end. But threads will spend more time peeking groups in the queue since there are much more groups.

    To set thoses parameters have a look at :
    - Extension.setThreadsNumber(int)
    - Extension.setEObjectsPerThread(int)

    by yvan (noreply@blogger.com) at April 10, 2009 09:36 AM

    February 17, 2009

    Acceleo profiler

    There is a new feature in Acceleo 2.5. This feature allows users to profile the generation process of Acceleo. To activate the profiling you should check the profiling checkbox in the launch configuration of the chain.

    The result of the profiling session is saved as a model, it's very useful for performance comparison (using EMF Compare) or report creation in batch environment (using Acceleo :) ).

    Basicaly the model is the execution tree of Acceleo, each node being a step of the generation process. Those nodes give statistics like the time spent in the node and its subtree, the percentage of time it represents, and the number of times the element have been run by Acceleo. You can also find the list of EObjects for each node in the outline.


    The model can be sorted by chronogical order or by the time spent as shown on the screenshot. It can help in the understanding of the generation process and finding the hotspot(s). Once this hotspot is found you can open the template editor on this element by double clicking it.

    I am sure this will help to optimize your Acceleo templates.

    by yvan (noreply@blogger.com) at February 17, 2009 04:12 AM

    February 10, 2009

    Welcome

    This blog will be dedicated to my development works at Obeo. My aim is to provide useful information on products and features I am working on. This information can be technical tricks for developers or general purpose information.

    Coming soon, the ability of profiling the text generation process of Acceleo...

    by yvan (noreply@blogger.com) at February 10, 2009 07:57 AM

    February 04, 2009

    Acceleo nominated at Eclipse Technology Awards

    Acceleo project has been nominated for the Eclipse Award in the category "Best Open Source Eclipse-Based Developer Tool".
    I really think Acceleo can win because it proposes some nice Eclipse tooling, but also because it proves a real community of users and contributors with an open development process.

    Last year, it was EclEmma which won.

    by Etienne Juliot (noreply@blogger.com) at February 04, 2009 02:42 PM

    December 10, 2008

    Papyrus 1.6 is released with Acceleo !

    Papyrus, one of the best OpenSource UML modeleur on the Eclipse platform has been released.

    http://www.papyrusuml.org/

    Papyrus includes a new killer feature : Java code generation from UML models.

    And which generative engine does they choose ? Yeah ! Acceleo.

    Obeo has joigned Papyrus community to help them to create this Java generator.
    Of course, this generator is under EPL license.

    Acceleo 2.0RC2 has been used, with some specific integration plugins like this one (for the Run... menu) :

    by Etienne Juliot (noreply@blogger.com) at December 10, 2008 06:09 AM

    MDE / MDA / MDSD / etc.

    OMG has defined the MDA term.

    But now, what a jungle !
    Let's see some very simple definitions.

    MDE
    - Model Driven Engineering
    - definition : all the process of creating softwares with a model driven approach.
    - examples : it includes some metamodel based analysis, how to manage teams with MDA,
    which steps are required to create a real model based software factory, ...

    MDA
    - Model Driven Architecture
    - definition : the technical choice of tool and metamodel for all the creation of a new software
    - examples : transformation models engines, separation and links between PIM/CIM/and others

    MDSD
    - Model Driven Software Development (also call MDD : Model Driven Development)
    - definition : metamodel based tools and process for development step
    - examples : source code generation (like Acceleo), PSM model based editor

    DSM
    - Domain Specific Modeling (and DSL : Domain Specific Language)
    - definition : metamodel based modelers to design specific and semantical models
    - examples : GMF based modelers, Workflow modelers, Wysiwig model based modelers

    ADM
    - Architecture Driven Modernization
    - definition : modernize existing software with a metamodel approach
    - examples : reverse engineering systems, recasting engine (like Agility)

    Of course, let's do a metamodel of theses model driven definitions :

    by Etienne Juliot (noreply@blogger.com) at December 10, 2008 06:09 AM

    ATL 2

    ATL v2 will be release very soon.
    ATL is a model transformation engine based on MDA standard and Eclipse platform.
    It can used for:
    - interoperability between tools
    - translate a model from a notation to another (for example: relational to uml)
    - propose "different zooms" on a model (for example: global specification -> detailled specification -> global design -> ...)
    - create any kind of bridge (for example: BPMN -> BPEL or BPMN -> SCA)

    ATL 2 is provide some new exciting features:
    - better completion on model elements
    - virtual machin based on EMF
    - better performance
    - lots of bug fixes
    - a clean updatesite
    - integration inside Ganymede (Eclipse 3.4)
    - and a new commercial support on http://www.atl-pro.com


    See News and Noteworthy for more detail on ATL 2.

    by Etienne Juliot (noreply@blogger.com) at December 10, 2008 06:09 AM

    Acceleo 2.0 : free module for UML2 to Hibernate


    For Acceleo v2.0 and launching of Acceleo Modules Farm, Obeo will release with an OpenSource license one of its commercial modules : UML2Hibernate.

    I have create this module. It uses UML 2.1 models (class diagram with stereotype > >) and generates :

    - DAO layer
    - Entity objects
    - HBM mapping
    - SQL tables (3NF)
    - JUnit tests
    - Hibernate v3 compatible Design Patterns

    It manages lots of associations :
    - inheritance
    - 1-1
    - 1-*
    - *-*
    - recursive associations
    - unidirectionnal and bidirectionnal associations
    - ...

    It will be available before the end of may. I hope you will enjoy it, and you will contribue to improve its features.
    Here is the link where this module will be available : http://www.acceleo.org/pages/modules-repository/

    by Etienne Juliot (noreply@blogger.com) at December 10, 2008 06:09 AM

    Icon set for post-ganymede version of Eclipse SCA

    Hi,

    I just work on some new icons for Eclipse SCA project.
    I need some comments to choose which one need to be removed or changed.

    On my point of view, it will be nicer than the v1.0 version because it will better fit Eclipse UI and icons style.

    New global palette:

    SCA Bindings:

    SCA Implementations:

    SCA Interfaces:


    The new tree Editor:
    The graphical Designer isn't ready because it uses old style for embedded icons.
    For comment, you can use this bug report.

    by Etienne Juliot (noreply@blogger.com) at December 10, 2008 06:09 AM

    June 28, 2008

    Eclipse 3.4 Ganymede: News and Noteworthy by projects

    Eclipse Ganymede has just been released.

    Here are list of new features of modeling projects:



    There are other projects (like Jet, QVT-O, ...) but there haven't a News and Noteworthy page.

    by Etienne Juliot (noreply@blogger.com) at June 28, 2008 03:57 PM

    Last updated:
    February 04, 2012 10:00 AM
    All times are UTC.