Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "MoDisco/Components/Java/Composition/Documentation/0.9"

(User manual)
 
(16 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{MoDiscoJavaCompositionTabs}}
+
#REDIRECT [[MoDisco/Moved To Help Center]]
 
+
== Java Composition Metamodel ==
+
 
+
=== Description ===
+
This metamodel ''JavaApplication'' aims at weaving a MoDisco Java Model with a MoDisco KDM Inventory Model. It relies on the core metamodel described in the
+
[http://wiki.eclipse.org/MoDisco/Components/KDMSourceExtension/Documentation/0.9 kdm.source extension framework].
+
 
+
Such a metamodel allows to link java nodes to their physical position in the source files (''JavaNodeSourceRegion'' metaclass owning ''startLine'' ''endLine'' properties).
+
 
+
As proposed in [http://wiki.eclipse.org/MoDisco/Components/KDMSourceExtension/Documentation/0.9 kdm.source extension framework], the reference ''JavaASTNodeSourceRegion.javaNode'' derived from ''ASTNodeSourceRegion.node''. So as the ''Java2File.javaUnit'' from ''CodeUnit2File.unit''.
+
 
+
[[Image:JavaApplicationMetaModel.png|frame|center|JavaApplication Metamodel]]
+
 
+
Note : the references ''java2DirectoryChildren'' and ''java2FileChildren'' are expected to be containment references. For some technical reasons (memory usage tuning via lazy loading), they are not containment to make sure that the ''Java2Directory'', ''Java2File'' and ''JavaNodeSourceRegion'' instances are managed in their own graph compared with ''JavaApplication'' instances (See [http://wiki.eclipse.org/MoDisco/Components/Java/Composition/Architecture#Benchmark benchmark]).
+
 
+
==Java Composition Discoverer==
+
 
+
=== Description ===
+
 
+
MoDisco provides a discoverer associated to the metamodel definition described here.
+
 
+
The discovery takes as an entry one workspace Java project.
+
 
+
The first step of the discovery creates one Java model, using the associated discoverer.
+
 
+
The second step of the discovery creates one Kdm inventory model, using the associated discoverer.
+
 
+
The third step creates a model with ''JavaApplication'' metamodel instances with references to the two ''leaf'' models.
+
 
+
[[Image:Javakdmdiscovery.JPG|frame|center|Java and kdm inventory discovery]]
+
 
+
=== User manual  ===
+
 
+
The plug-in provides the user with a contextual menu to easily create models.
+
 
+
By right-clicking on a Java Project in the Eclipse Package Explorer view, you can quickly create the Java Application model of your application (see next Figure).
+
 
+
[[Image:Javakdmdiscoverypopup.JPG|frame|center|Discovering a JavaApplication model]]
+
 
+
The [http://wiki.eclipse.org/MoDisco/Components/Java/Documentation/0.9#User_manual Java discovery parameters window] appears for customizing the Java Model Discovery step.
+
 
+
Once launched, a progress bar will appear at the bottom of the window as soon as the operation begins. Depending on the size of your application, the reverse engineering process might take some time to complete (see next Figure).
+
 
+
[[Image:MoDisco-JavaDiscoverer progress bar model creation.png|frame|center|Progress bar during model creation]]
+
 
+
At the end of the process, the newly created model files are added to the root of your project and the main file is automatically opened in the default editor.
+
A xmi file suffixed by ''_javaapp.xmi'' contains the root element of the model, which refers to the ''.javaxmi'' Java model file and the ''_source.kdm'' Inventory model file.
+
Some referenced xmi ''fragment'' files are serialized into a ''xmiFragmentsJavaApp' directory (see Resources distribution in [http://wiki.eclipse.org/MoDisco/Components/Java/Composition/Architecture benchmark]).
+
 
+
[[Image:JavakdmResourcesTree.JPG|frame|center|JavaApplication xmi files in the package explorer]]
+
 
+
Once the main file ''_javaapp.xmi'' has been opened in MoDisco model Browser, you may navigate through the ''JavaApplication'' metamodel instances to the ''Java'' and ''kdm.source'' metamodels instances.
+
 
+
[[Image:JavakdmBrowsing.JPG|frame|center|browsing the JavaApplication model]]
+
 
+
Some facets called ''TODO'' and ''TODO'' are available for allowing navigation shortcuts from some Java/Kdm.source model elements.
+
(enabling the "Show Derived Links" option is necessary to view the shorcut links)
+
 
+
[[Image:JavakdmFacets.JPG‎|frame|center|Apply TODO facet]]
+
[[Image:TODO.png|frame|center|Navigation shortcut from a java element to the associated source region]]
+
 
+
To take benefit of memory usage tuning (see [http://wiki.eclipse.org/MoDisco/Components/Java/Composition/Architecture benchmark]), for huge Java legacy, the MoDisco global preferences should have the "resources loading depth" set to 1 (0 works but is less interesting for browsing). This setting allows the lazy loading of xmi fragment files, through the model navigation, for less memory usage than with a initial complete resources loading.
+
 
+
[[Image:Resourcesloadingdepth.JPG|frame|center|Setting MoDisco global loading depth preference]]
+
 
+
Using the ''Group by package'' setting will ease the selection in types panel considering the metamodels (EPackages instances) involved.
+
 
+
[[Image:Modiscobrowsergroup.JPG|frame|center|Group by package in MoDisco model browser]]
+
 
+
=== Discoverer API ===
+
 
+
Each MoDisco discoverer responds to a normalized interface and can be called programmatically (see org.eclipse.gmt.modisco.infra.discoverymanager.Discoverer).
+
 
+
As an example, you may checkout the code from org.eclipse.gmt.modisco.java.composition.discoverer.tests project.
+
 
+
== Requirements  ==
+
 
+
To use the plug-ins you need:
+
 
+
*JDK 1.5 or above
+
*a version of Eclipse 3.6 or above with the following set of plug-ins installed
+
 
+
:*[[EMF|EMF]] 2.5.0 or higher
+
 
+
== Source Repository  ==
+
 
+
All of the source code is stored in a public source repository, which you can access at:
+
 
+
[https://dev.eclipse.org/svnroot/modeling/org.eclipse.mdt.modisco/plugins/trunk/org.eclipse.modisco.java.composition/ https://dev.eclipse.org/svnroot/modeling/org.eclipse.mdt.modisco/plugins/trunk/org.eclipse.modisco.java.composition/]
+
 
+
[https://dev.eclipse.org/svnroot/modeling/org.eclipse.mdt.modisco/plugins/trunk/org.eclipse.modisco.java.composition.discoverer/ https://dev.eclipse.org/svnroot/modeling/org.eclipse.mdt.modisco/plugins/trunk/org.eclipse.modisco.java.composition.discoverer/]
+

Latest revision as of 11:46, 2 April 2012

  1. REDIRECT MoDisco/Moved To Help Center

Back to the top