Community
Participate
Working Groups
The aim of this bug is to integrate the SysML language into EMF Compare. The implementation of SysML chosen is the one used in MDT Papyrus that is to say UML with static profile. In order to do this several other enhancement has to be added: -> New extension point : https://bugs.eclipse.org/bugs/show_bug.cgi?id=358225 -> New Apdater factory into MDT Papyrus : https://bugs.eclipse.org/bugs/show_bug.cgi?id=352555 -> Create a SysML differences meta model in order to handle specifically SysML profile modification (this bug). With in this bug the plugins corresponding to the difference meta model will be publish.
Nice ! We'll make sure to integrate #358225 quickly.
I'm currently reviewing my plugins in order to respect the EMF Compare developer process. But I'm unable to use your checkstyle template. I have try to use both Checkstyle configuration but none of them seem to work. Each time I get the following error: net.sf.eclipsecs.core.util.CheckstylePluginException: cannot initialize module TreeWalker - TreeWalker is not allowed as a parent of FileLength at net.sf.eclipsecs.core.util.CheckstylePluginException.rethrow(CheckstylePluginException.java:66) at net.sf.eclipsecs.core.util.CheckstylePluginException.rethrow(CheckstylePluginException.java:77) at net.sf.eclipsecs.core.builder.Auditor.runAudit(Auditor.java:166) at net.sf.eclipsecs.core.builder.CheckstyleBuilder.handleBuildSelection(CheckstyleBuilder.java:288) at net.sf.eclipsecs.core.builder.CheckstyleBuilder.build(CheckstyleBuilder.java:169) at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239) at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295) at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351) at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374) at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143) at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) Caused by: com.puppycrawl.tools.checkstyle.api.CheckstyleException: cannot initialize module TreeWalker - TreeWalker is not allowed as a parent of FileLength at com.puppycrawl.tools.checkstyle.Checker.setupChild(Checker.java:178) at com.puppycrawl.tools.checkstyle.api.AutomaticBean.configure(AutomaticBean.java:184) at net.sf.eclipsecs.core.builder.CheckerFactory.createCheckerInternal(CheckerFactory.java:320) at net.sf.eclipsecs.core.builder.CheckerFactory.createChecker(CheckerFactory.java:143) at net.sf.eclipsecs.core.builder.Auditor.runAudit(Auditor.java:142) ... 14 more Caused by: com.puppycrawl.tools.checkstyle.api.CheckstyleException: TreeWalker is not allowed as a parent of FileLength at com.puppycrawl.tools.checkstyle.TreeWalker.setupChild(TreeWalker.java:163) at com.puppycrawl.tools.checkstyle.api.AutomaticBean.configure(AutomaticBean.java:184) at com.puppycrawl.tools.checkstyle.Checker.setupChild(Checker.java:157) ... 18 more As I'm not a Checkstyle expert I would like to know if you have already face such difficulty? Regards
Created attachment 205480 [details] Plugins to integrate SysML language into EMF Comapre On this attachment you will find plugins for SysML integration into EMF Compare. To use those plugins you will need MDT Papyrus installed (from nightly build that you can find on the following update site http://download.eclipse.org/modeling/mdt/papyrus/updates/nightly/indigo/). With this you will have the correction of Bug 352555. You will also need to have the enhancement describe in Bug 358225. In order to respect Eclipse process: I wrote 100% of the code; I have the right to contribute the code to Eclipse, and I have included the EPL license header in all source files.
The Acceleo team encountered the checkstyle error, I tweaked the configuration file and pushed it, when you'll rebase the error should be gone. I took the time to review your contribution, it looks globaly good though a few things need to be taken care of : 1°) you have "src" and "custom-src", for the sake of consistency among all the emf compare components I'd like you to change this to "src-gen" for generated code and "src" for custom code. 2°) org.eclipse.emf.compare.sysml.edit/custom-src is not in the build path and looks empty, probably need to be deleted. 3°) checkstyle should be used with the /org.eclipse.emf.compare/codeStyle/EMFCompareCheckstyle5Configuration.xml configuration and projects should be configured to refer to this configuration as a "project relative path". You can have a look on the other projects of emf compare, src-gen folders should be excluded. You did this already for the sysml plugin and the sysml.edit was "exploding". This is just a reminder that now that the CS5 configuration has been fixed, you'll have to enable it on the .edit project. 4°) It's probably better if you delete all the .svn directories before re-submitting the patch. 5°) You should enable the api-tooling on your project, set the latest 1.2.1 release as a baseline and add the missing @since annotations 6°) org.eclipse.emf.compare.sysml/model/uml2diff.ecore looks like a copy of the one in org.eclipse.emf.compare.uml and should be deleted from this project 7°) Version numbers in Manifest.MF should be set to 1.3.0.qualifier 8°) all the plugin name should be meaningfull please have a look on the coresponding org.eclipse.emf.compare.uml2* plugins 9°) provider name should be set to "Eclipse Modeling Project" in Manifest.MF/plugin.properties 10°) org.eclipse.emf.compare.sysml/templates has nothing interesting in it and should be deleted. 11°) as the /org.eclipse.emf.compare.sysml.edit has a specific lower bound dependency on papyrus the require bundle in the corresponding manifest.mf should express this lower bound. These are fairly small changes, the last one bother me more : so far there is no test for this feature and that would make its maintenance quite impossible when the compare engine evolves. 12°) Could you have a look on the org.eclipse.emf.compare.uml2.tests and provide a fairly similar project for sysml models : validating the detection of the diff extensions and their merge (application & undo).
I'm currently taking all you observations into account. I'm have open a "sub bug" needed for this enhancement https://bugs.eclipse.org/bugs/show_bug.cgi?id=361379 .
I have just finished corrected the several enhancement you had highlighted except one: 12 -> I have open a "sub bug" which I would need for this plugin https://bugs.eclipse.org/bugs/show_bug.cgi?id=361531 . Regards,
Created attachment 205811 [details] Plugins for SysML integration after refactoring from observation All the observation has been taken into account. So I have uploaded a new version of the plugins.
Thanks for being so reactive ! I'm reviewing it.
This looks good, thanks for your work ! I opened a contribution questionnaire (CQ) to the IP team. Once we get both the Modeling PMC/Eclipse Legal team clearances we will be able to commit these new plugins.
Created attachment 206472 [details] Feature for SysML Integration This feature integrate the two following plugins: -> org.eclipse.emf.compare.sysml -> org.eclipse.emf.compare.sysml.edit Hoping it's not to late. When do you think the SysML plugins and the featuer would integrate to the update site? Regards, Arthur Daussy.
Hi Arthur, the contribution is still being processed by the IP team. They asked a few clarifications about some part of the code which I just gave. Hopefully we'll get clearance quite soon and then we will be able to integrate it in the repository.
We got clearance from the IP team, I can now proceed to the commit.
https://hudson.eclipse.org/hudson/user/sbouchet/my-views/view/Obeo/job/emf-compare-master/118/ First passing build with your contribution : congrats ! The 119th build should launch the SysML tests. Please have a look on both the integrated code and build result and reopen the bug if anything looks strange to you.
Thanks. I will look into it.