Skip to content

Module Developer Guide Index

Antonin Abherve edited this page Sep 3, 2020 · 22 revisions

About this guide

This guide explains how to develop modules for Modelio.Concretely, this guide presents a simplified real case study and a tutorial. It goes into detail down to code level when required and when there is a real added value in these details, and remains more general in well known and explored domains.After reading this document, the reader should be able to create, package and deploy its own modules or modify existing modules, with a clear view of mechanisms and their implementation in Modelio.

Beside the big picture this guide provides, the detailed information about the Modelio API can be found here :

Module Developer Guide

[[what-is-a-module]]
*link:What_is_a_module[What is a Module ?]*


[[module-or-macro]]
*link:Module_or_macro[Module or Macro ?]*
* link:Module_or_macro#-What-is-a-macro-[What is a macro ?]
* link:Module_or_macro#-Comparison-between-macro-and-module[Comparison between macro and module]

[[modelio-project-concepts]]
link:Modelio_projects_concepts[Modelio project concepts]

[[module-concepts]]
link:Module_concepts[Module concepts]


* link:Module_concepts#-Identifier[Identifier]
* link:Module_concepts#-Module[Module]
* link:Module_concepts#-Profiles[Profiles]
* link:Module_concepts#-UML-extensions[UML extensions]
* link:Module_concepts#-Module-commands[Module commands]
* link:Module_concepts#-GUI-features[GUI features]
* link:Module_concepts#-Model-management[Model management]
** link:Module_concepts#-Model-navigation[Model navigation]
** link:Module_concepts#-Transactions[Transactions]
** link:Module_concepts#-Model-events[Model events]
* link:Module_concepts#-Runtime-Phases[Runtime Phases]
* link:Module_concepts#-Peers-services[Peers services]



[[module-project-development-structure]]
link:Module_project_development_structure[Module project development structure]


* link:Module_project_development_structure#-Maven-development-structure[Maven development structure]



[[sample-module-design-example-of-junit-module]]
link:Junit_module_design[Sample module design (Example of Junit module)]




[[module-development-tutorial]]
Module development tutorial


* link:Junit_dev_setting_up_dev_env[Setting up the Development Environment]
* link:Junit_dev_basics[Creating the module – basics]
** link:Junit_dev_basics#-Module-declaration[Module declaration]
** link:Junit_dev_basics#-Module-Java-classes[Module Java classes]
** link:Junit_dev_module_profile[Creating a module profile]
** link:Junit_dev_module_stereotypes[Creating module stereotypes]
*** link:Junit_dev_module_stereotypes#-Stereotypes-declaration[Stereotypes declaration]
*** link:Junit_dev_module_stereotypes#-Adding-icons-to-a-stereotype[Adding icons to a stereotype]
** link:Junit_dev_module_commands[Creating module commands]
*** link:Junit_dev_module_commands#-Command-declaration[Command declaration]
*** link:Junit_dev_module_commands#-Command-Java-class[Command Java class]
*** link:Junit_dev_module_commands#-Writing-command-method[Writing command method]
** link:Junit_dev_model_transformation[Processing commands: model transformation]
*** link:Junit_dev_model_transformation#-Step-1-Checking-for-an-already-existing-test-case[Step 1: Checking for an already existing test case]
*** link:Junit_dev_model_transformation#-Step-2-Creatingupdating-the-test-model-hierarchy[Step 2: Creating/updating the test model hierarchy]
*** link:Junit_dev_model_transformation#-Step-3-Creating-the-test-model-class[Step 3: Creating the test model class]
*** link:Junit_dev_model_transformation#-Step-4-Adding-the-ltltJUnitgtgt-stereotype-to-the-test-model-class[Step 4: Adding the <<JUnit>> stereotype to the test model class]
*** link:Junit_dev_model_transformation#-Step-5-Establishing-the-ltltJUnitgtgt-dependency-link[Step 5: Establishing the <<JUnit>> dependency link]
*** link:Junit_dev_model_transformation#-Step-6-Adding-the-test-class-features[Step 6: Adding the test class features]
** link:Junit_dev_catching_modeling_events[Catching modeling events]
*** link:Junit_dev_catching_modeling_events#-A-bit-of-theory-module-model-events[A bit of theory: module model events]
*** link:Junit_dev_catching_modeling_events#-Event-handling-or-listening[Event handling or listening]
*** link:Junit_dev_catching_modeling_events#-Implementation-example[Implementation example]
** link:Junit_dev_module_property_page[Creating a module property page]
*** link:Junit_dev_module_property_page#-Property-page-declaration[Property page declaration]
*** link:Junit_dev_module_property_page#-Commands-associated-with-the-property-page[Commands associated with the property page]
*** link:Junit_dev_module_property_page#-Coding-the-property-page-behavior[Coding the property page behavior]
** link:Junit_dev_diagram[Creating a customized diagram]
* link:Junit_dev_packaging[Packaging the module]
* link:Junit_dev_updating_version[Updating the version]



[[debugging-the-module-with-eclipse]]
link:Debugging_the_module_with_eclipse[Debugging the module with Eclipse]


* link:Debugging_the_module_with_eclipse#-Creating-the-JRE-configuration[Creating the JRE configuration]
* link:Debugging_the_module_with_eclipse#-Creating-the-target-configuration[Creating the target configuration]
* link:Debugging_the_module_with_eclipse#-Creating-the-debug-configuration[Creating the debug configuration]
* link:Debugging_the_module_with_eclipse#-Launching-Modelio-under-Eclipse-debugger[Launching Modelio under Eclipse debugger]
Clone this wiki locally