Skip to content

Development How To

Arnaud Dieumegard edited this page Jan 3, 2022 · 8 revisions

Breakdown

  • Common: Generic plugins, independent from Capella metamodel. Used by various plugins ;
  • Core: Plugins dependent from Capella metamodel (Regarding charts, transitions, model validation, queries on semantic browser, property views, etc.) ;
  • Legacy : Obsolete dependencies ;
  • Doc: Capella documentation plugins - documentation as Eclipse documentation (e.g. Eclipse help menu) ;
  • M2: Capella metamodel (ecore files) ;
  • Releng : Code generation plugins (Generate Capella EMF code from ecore metamodels), target platform definition and product definition.

Generate Metamodel

This step can only be done in a Capella Studio environment

  • Import releng/*.egf, core/plugins/*.gen*, common/plugins/*.gen*, and m2/*
  • Import in your workspace *emde.model as source from Capella Studio (File → Import... → Plug-in Development → Plug-ins and Fragments → Projects with source folders → Add emde.model → Finish )
  • Do your modifications into m2 folder ecore (data.def) ;
  • Open the file org.polarsys.capella.core.egf/egf/capella.fcore
  • Right Click on org.polarsys.capella.core.egf root element and Run EGF Activity.
  • If new derived features are added we need to add their implementations in Helper classes and contribute Viatra surrogate queries Tip: To avoid rebuilding the whole Viatra project, we can remove existing queries and only generate new queries.
  • Edit the release note located in the embedded doc of Capella (Release Note)

Documentation

Capella documentation is stored in Capella Git repository doc folder.

To create/update documentation, Mylyn/Wikitext must be installed in you IDE (which shall be already the case)

Contribute html documentation

Contribute to the extension point org.eclipse.help.toc;

Ensure that:

plugin.xml contains the contribution to the org.eclipse.help.toc extension point.

toc.xml root element references an anchor defined in the main table of contents org.polarsys.capella.doc/toc.xml#<anchor>

Contribute to the documentation modifying a Mediawiki file in the <html>/*.mediawiki. In case of a creation of a new Mediawiki file, do not forget to update the toc.xml in order to create a new Topic accordingly.

Generate HTML documentation

Before testing the contribution, the documentation first needs to be transformed into HTML.

To do so, right-click on the build.xml file and select Run as > External Tools Configuration... Ensure that in JRE tab, the option Run in the same JRE as the workspace is selected. Then press Run button. The generation starts and in logged in the console window.

When the generation ends with success, you can test it by launching Capella target platform then launching the Help menu.

Viewpoints

Metamodel Migration

  • Modify the metamodel(s)
  • Regenerate code for EGF Patterns
    • If metamodel modification only contains URI version modification: update .fcore models URIs references
    • If metamodel modification is more complex:
      • Find all .fcore models referencing elements of the metamodel and update the .fcore models content
      • In all .fcore models containing patterns, find all patterns extending super patterns. This can be done using the "Interpreter" view and the following query (the .fcore file must be open and set as context for the query) aql:self.eAllContents()->filter(pattern::Pattern)->select(it | it.superPattern <> null)->collect(sp | sp.eContainer().eContainer().name + '.' + sp.eContainer().name + '.' + sp.name)
      • If these super patterns contain references to elements of the metamodel, update according to super patterns modifications. Some tooling exists to help: right click on the PatternViewpoint element of an .fcore model an hit Compare Patterns methods with super patterns.
    • Force regeneration of EGF patterns: right-click on the PatternViewpoint element of each modified .fcore model and hit Generate Patterns.
Clone this wiki locally