Skip to content

OpenEmbeDD source code

Document Actions
Source code of OpenEmbeDD

OpenEmbeDD is an open source platform dedicated to develop Real Time & Embedded systems. It is constructed from the classic Eclipse platform and almost all the tools that are integrated inside are developed from models (MDE: model driven engineering). MDE is a software architecture based on the models, it allows the development of graphical components and of components of checking which are closely binded to each business models tools (eg SysML, UML Marte, parsers, RT / E metamodels, ...). All these tools are based on a core generic meta-development composed by the frameworks Topcased, Kermeta and ATL, which are themselves extensions of the famous modeling frameworks EMF and GMF in Eclipse. All these MDE technologies (Java code, C/C++ code, metamodels, patterns, components technology and so on ...) become open source, that is why we need to dedicate a very important heading for the sources.

Here you can get OpenEmbeDD sources for each release from the beginning of project by several ways. First way is to get source included into zip OpenEmbeDD download which are packaged like archive project and the second way is to get source by using the Update Site of OpenEmbeDD. These last sources into jars are mainly used by developers to take advantage of browsing and debugging code (java at the moment and other languages later).

Here you can also get specific integration projects by using the CVS repository from the forge's OpenEmbeDD.


code_source_white.png Archived Eclipse projects

The OpenEmbeDD integration team collects source code for each version of OpenEmbeDD tools. The zip files contain the corresponding full Eclipse projects: OpenEmbeDD all releases.

You may need an operational OpenEmbeDD platform in order to satisfy some of their dependencies.


Once you have download the archive project you may import it into your workspace. To do that you need to use the OpenEmbeDD platform that matches. Advanced : instead of the entire platform, you can use a simple Eclipse but you have to add dependencies for each project (see the manifest plugin.xml)

Here are few stages to follow :

  • install OpenEmbeDD platform x.y.z
 
  • download archive project you want that corresponds to the platform x.y.z
 
  • unpack the archive project into your Eclipse workspace (root directory of file system) which is currently load by the platform
 
  • finally, logically import projects into the workspace by following this way :
    • go to menu File->Import...
 
 menu_import.PNG 
    •  then you browse the "root directory" of workspace and click on "Finish"
 
 existing_project_into_workspace.PNG
 
    • now you have got the project (with sources and manifests) in your Eclipse workspace
 
 project_into_workspace.PNG 
  • you can do the same way for other projects archived
 



code_source_white.png Update Manager

       (org.*.source_x.y.z.*/*src.zip)



You can also get the source of each SDK tool in order to have facilities of browsing and debugging code, these jars can be useful for developers. These are often the features of the style org.*.source_x.y.z generated with ANT files from the "PDE Tools".

Here is the procedure to follow if you want to get the source of your development SDK tools :
  • you need to have an OpenEmbeDD platform with your SDK tool and its requirements
(example : Topcased SDK and AADL)
  •   point your Eclipse Update Manager at the site OpenEmbeDD
     -> point your Eclipse Update Manager at the site
          -> Help
               -> Software Updates
                    -> Find and Install...
                         -> Search for new features to install
                              -> Choose the OpenEmbeDD update site to visit
                                   (you can go install_wiz.gifhere to get informations and add the site to visit)
 
 select_site_update_openembedd.PNG 
                                   -> Click on "Finish" to connect the update site
                                   -> Select your features and in particular the features of sources
                                   -> Solve dependencies with button "Select Required"
 (example : the feature source of topcased org.topcased.toolkit.source)
 example_topcased_source_sdk.PNG 
                              -> accept the feature license and finish the installation
                              -> restart Eclipse
 
 inst_ptr.gifyou can then navigate and debug in sources 
 example_browsing_source.PNG 



code_source_white.png CVS + Eclipse (integration projects)



You may also get sources of OpenEmbeDD by using the CVS repository and by checking out integration projects and other projects of partners.

If you want see the code then you can check out the corresponding projects as an anonymous user.

If you want develop with the team OpenEmbeDD you have to ask to get member of the forge's OpenEmbeDD, by using a key SSH and then you could commit your job into the CVS.

In what follows you will learn how to get OpenEmbeDD source using your Eclipse platform.


Last revised : 2007-12-06


Contents



  • 1 Requirements
contents

You need to have an Eclipse Platform with a compatible version, you can go eclipse_iconhere if you want know about what installations are agree. In fact, according to the tag of CVS version used to retrieve the source code, you have to take the adapted version of the Eclipse platform (+ dependencies) to do that you can go install_wiz.gifhere, or if you want to get the latest version CVS then it is advisable take the Eclipse (+ dependencies) of the javaexperimental platform. Rem : in the above, dependencies are required plugins such as EMF.








  • 2 CVS Structure
contents

Currently, the forge's OE includes several projects, including those of the integration team and those of some partners.

Skip table

CVS Repository Root module Projects / Directories
OpenEmbeDD16x16 OpenEmbeDD Integration Team
/cvsroot/openembedd integration_projects/dev
org.openembedd.ATL.doc -
org.openembedd.ATL.help -
org.openembedd.checking -
org.openembedd.checking.sample -
org.openembedd.configuration -
org.openembedd.feature.ATL -
org.openembedd.ui.menu -
/cvsroot/openembedd integration_projects/docs
org.openembedd.documentation.ooo2help -
org.openembedd.documentation.ooo2help.doc -
org.openembedd.documentation.tools -
org.openembedd.documentation.tools.site -
org.openembedd.documentation.tools.userdoc -
org.openembedd.documentation.tools.userdoc.feature -
org.openembedd.plone.site -
/cvsroot/openembedd integration_projects/examples
org.openembedd.example.fragment.resource -
org.openembedd.example.host -
org.openembedd.package.source -
org.openembedd.template.doc -
/cvsroot/openembedd integration_projects/other
org.openembedd.basic.uml2cwm -
org.openembedd.basic.uml2cwm.demo -
org.openembedd.cwm -
org.openembedd.documentation -
org.openembedd.formations -
org.openembedd.formations.atl.umlclassTocwmrelational -
org.openembedd.formations.samples.kermeta01 -
org.openembedd.technology.simulator -
org.openembedd.wizards -
/cvsroot/openembedd integration_projects/pack
org.openembedd.basic.uml2cwm.demo.feature -
org.openembedd.checker.feature -
org.openembedd.integration.bundles.build -
org.openembedd.site -
org.openembedd.site.experimental -
/cvsroot/openembedd integration_projects/tests
org.openembedd.integration.tests.metamodels -
org.openembedd.tests -
org.openembedd.tests.basicdemo -
org.openembedd.tests.specs -
logo_gforge_inria INRIA ESPRESSO
/cvsroot/openembedd espresso_projects
org.topcased.documentation.sme -
org.topcased.modeler.sme -
org.topcased.modeler.sme.source -
org.topcased.sme -
org.topcased.sme.compilation -
org.topcased.sme.compilation.feature -
org.topcased.sme.example -
org.topcased.sme.example.feature -
org.topcased.sme.examples -
org.topcased.sme.feature -
org.topcased.sme.gtk.linux.x86 -
org.topcased.sme.samples -
org.topcased.sme.source -
org.topcased.sme.source.feature -
org.topcased.sme.tcs -
org.topcased.sme.win32.win32.x86 -
logo_gforge_inria INRIA Triskell
/cvsroot/openembedd triskell_projects/generators
org.topcased.modeler.diagramconfigurator -
org.topcased.modeler.editorconfigurator -
org.topcased.modeler.generator -
/cvsroot/openembedd triskell_projects/integration
org.kermeta.diagramregistration -
org.openembedd.checker.kermeta -
org.openembedd.kermeta.sample.configuration -
/cvsroot/openembedd triskell_projects/usecases/cwm_projects
org.kermeta.class2rdbms -
org.kermeta.cwm.feature -
org.kermeta.cwm.simulator.ui -
org.kermeta.cwm.texteditor -
org.kermeta.rdbms.ge -
logo_gforge_inria INRIA AOSTE
/cvsroot/openembedd ctrte.time.parser_projects
doc -
/cvsroot/openembedd ctrte.time.parser_projects/example
GrammarTestAndDemo -
org.openembedd.ctrte.time.parser.demo -
org.openembedd.ctrte.time.parser.example -
org.openembedd.ctrte.time.parser.example.feature -
/cvsroot/openembedd ctrte.time.parser_projects/pluginsrc
org.openembedd.ctrte.time.docparseur -
org.openembedd.ctrte.time.parser -
org.openembedd.ctrte.time.parser.feature -
OpenEmbeDD16x16 internal
/cvsroot/openembedd internal_projects/Tree2List
fr.cs.leplessis.example.doc -
fr.cs.leplessis.example.feature -
fr.cs.leplessis.example.list -
fr.cs.leplessis.example.list.source -
fr.cs.leplessis.example.openembedd.docs -
fr.cs.leplessis.example.site -
fr.cs.leplessis.example.tests -
fr.cs.leplessis.example.tree -
fr.cs.leplessis.example.tree.source -
fr.cs.leplessis.example.tree2list.atl -
fr.cs.leplessis.example.tree2list.kermeta -
org.openembedd.tests.tree2list -









    • 2.1 Projects
contents

Several projects are accommodated in the forge OE, currently there are the project EPRESSO for chain tool Polychrony, the project Triskell with the framework of Kermeta, the project AOSTE Sophia-Antipolis with the parser CCSL, all internal projects to OpenEmbeDD with examples and use cases which are used at meetings engineers, and also the integration projects of the platform OpenEmbeDD which are services to all other partners.

In the future other projects will be hosted by the forge of OpenEmbeDD, it is sufficient for it to contact the cell integration : webmaster.

To find out the contents of each project you can look at the table above.






    • 2.2 Integration project
contents
If we have a look under Eclipse with the CVS Repositories view :



cvs_integration_structure
Integration projects organized in several categories.

cvs_repository_oe_integration
For each project you can choose a tag version which is a state of the repository at a specific moment.


The CVS base of the projects integration contains tools that are provided as services to other partners in OpenEmbeDD. All these projects are grouped into several categories :
  • dev
    inst_ptr.gifdevelopment in order to provide integration tools and glue to the platform
    inst_ptr.gifadditional GUI
    inst_ptr.giftemplates
    inst_ptr.gifmodel transformations
  • docs
    inst_ptr.gifEclipse help and tool documentation
    inst_ptr.gifweb site
  • examples
    inst_ptr.gifexamples of use case
    inst_ptr.gifexamples of component for Eclipse
    inst_ptr.giftemplates
  • other
    inst_ptr.gifdemos
    inst_ptr.gifinternal documentation
    inst_ptr.gifformations
  • pack
    inst_ptr.giffeatures
    inst_ptr.gifbundles
    inst_ptr.gifupdate sites
  • tests
    inst_ptr.giftest tools
    inst_ptr.gifprojects of test





  • 3 Checking Out as an anonymous user
contents
To get the sources of a project with CVS you can do so easily from Eclipse by the following way :

Go to File->New->Project... and then in the CVS repository launch the wizard "Projects from CVS",


project_cvs

  
Once you have launched the wizard, the first page ask you if you want use an existing repository or if you want create it ?





    • 3.1 Add OpenEmbeDD repository
contents
If you want create a repository then you have to enter parameters of connection :
  • host
    inst_ptr.gifscm.gforge.inria.fr
  • path
    inst_ptr.gif/cvsroot/openembedd
  • user
    inst_ptr.gifanonymous
  • connection type
    inst_ptr.gifpserver

cvs_checkout_create_new_repository_oe







    • 3.2 Use existing OpenEmbeDD repository
contents
If the repository already exists then you may to select it :


cvs_existing_repository_location







    • 3.3 Check Out project (example)
contents
Now you can browse modules and directories in order to check out your target, for example here is the project org.openembedd.documentation :


cvs_checkout_oe_documentation

Now, you're going to check out the project into a Eclipse workspace, to do that you can specify a new name for the project or let the current name or download it into an existing project.

Here is the case where we choose the default action i.e. to let the current name for the project :

 
 cvs_checkout_oe_documentation_as 

In this wizard page, you can use an another workspace rather the current workspace location. Here we let the default current workspace :

 
 cvs_checkout_oe_documentation_as_location 



Finally you can choose to take the current version of the project selected or else if necessary you can choose a specific tag :

 
cvs_checkout_notag
to take the current version just click on "Finish"

cvs_checkout_withtag
you can try to get a specific tag, just click on "Refresh Tags"
 

Once the action wizard is terminated, the project which was selected appears in your workspace with the repository CVS into each directory. You can see decorators on each node which specify the state of the CVS element.



       cvs_checkout_oe_open_project_doc


 

 




  • 4 Get involved in the development of OpenEmbeDD
contents

In order to develop on the OpenEmbeDD project 2 things are required :

  1. first is to be a member of the project that is to say, to have an account on the forge of the project
  2. second is to have the right to write into the CVS (SVN soon ...) of the project in order to participate in developments, to do this it is required to register a SSH key







    • 4.1 Being a member of the forge CVS
contents

First you must yet become a member of the forge OpenEmbeDD by getting an account inside it, and to do that you may follow the following details :

r_inria_gforge.PNG

  • click on "Nouveau compte" or "[Demander à rejoindre le projet]" (i.e. "New account" or "Ask to join project")

cvs_become_forge_member

  • click on "[Nouveau compte]"

cvs_become_forge_member_inria

  • enter your required parameters
    inst_ptr.giflogin
    inst_ptr.gifpassword (with confirmation)
    inst_ptr.giffirst name
    inst_ptr.giflast name
    inst_ptr.gifproject name : openembedd
    inst_ptr.gife-mail
  • check the box that you have read the charter and that you accept it (required)
  • validate by clicking on button "S'inscrire" (i.e. enrol in french)

cvs_become_forge_member_inria_parameter

  • once done a congratulation message appears and confirms to you that request is well sent, then a robot will soon create for you an INRIA forge account

cvs_become_forge_member_inria_success
  • you will receive an e-mail enough fastly if the network works fine
  • click on the first link and follow the instructions

cvs_become_forge_member_inria_email
  • terminate your inscription : enter your login and password you created just before in order to access to your page ("My page" here in french)

cvs_become_forge_member_inria_first_connection.
  • now type "openembedd" inside the edit box of search and click on the button "Rechercher" ("Search" in fench)

cvs_become_forge_member_inria_first_connection2
  • click on the link "OpenEmbeDD" to enter in the project area

cvs_become_forge_member_openembedd_select_project

  • then you can see the link "Demander à rejoindre le projet", then click on this link again

cvs_become_forge_member_openembedd_ask_join_project

  • give some reasons to join OpenEmbeDD project and specify which profile you want get exactly, as examples : admin, junior developer, senior developer, support tech, partner leader, license consultant, doc writer, ...

cvs_become_forge_member_openembedd_reason

  • now you have to wait for the validation of your request to join the OpenEmbeDD project, it is advisable to revive by mail or by telephone if the waiting became too long, once the administrator has accepted your request then a period of half an hour is necessary to activate your access
  • once your request is accepted you are a member of the project and access all its services according to your profile
Note : if in the meantime you are disconnected then login you again to continue the operation

  • when you go to your page, you should have the OpenEmbeDD project registered among all your projects in the "My Projects", otherwise it would mean that access is not yet activated

cvs_become_forge_member_openembedd_click_on_project

  • let's verify if the account is well done, you should see your login in the right banner where are all members project

cvs_become_forge_member_openembedd_inside_team



inst_ptr.gifcongratulations now you are a member of the forge OpenEmbeDD, you can now access your profile according to forums and lists, as well as the possibility of modifying elements of the project run with CVS (and very soon with SVN)









    • 4.2 Use key SSH
contents
In order to commit works or to share projects into the CVS of OpenEmbeDD, it is necessary to have also a SSH key.



One way to do it : here is a way to share and/or commit projects into the forge




  • 1 - Start to get a SSH key by using Eclipse preferences
            Note : if you have already a key then you can skip here
  • 2 - Register the key in the forge's OpenEmbeDD
  • 3 - Create the CVS repository with Eclipse (example)








1 - Start to get a SSH key by using Eclipse preferences

In summary : to begin you must have a SSH key which can be retrieved via the RSA generator incorporated into the Eclipse platform (one way to make it), to do this you can go in the menu Windows->Preferences... and then go under the heading General->Networks Connections->SSH2 and generate the key by going on the tabfolder "Key Management" and clicking on "Generate RSA Key..." which appears then in the area selection just below.

     1.1 - Windows preferences




eclipse_menu_preferences     =>     eclipse_preferences_ssh2
Note: it is based on a screensshot of minimum version 3.3.x Eclipse




     1.2 - Generate RSA key

          1.2.1 - Generate

          1.2.2 - Give a password (optional but recommended)



eclipse_preferences_ssh2_genrate_key



          1.2.3 - Save private key



eclipse_preferences_ssh2_genrate_key2



     1.3 - Register key path



eclipse_preferences_ssh2_genrate_key3



     1.3 - Copy the key (in clipboard)



eclipse_preferences_ssh2_genrate_key4



2 - Register the key in the forge's OpenEmbeDD

     2.1 - Go to source area

In the page of OpenEmbeDD forge click on tabfolder "Sources".


      select_files_tabfolder



     2.2 - Enter in your page's ssh key



cvs_key_ssh_empty



     2.3 - Paste your key (if you have no ssh key you can go here)

Paste your key into editing area and update by clicking the button "Mettre à jour".


cvs_key_ssh_area_update



inst_ptr.gifNow you are registered into the server's forge and you can create a repository from the root of OpenEmbeDD CVS.

    warning16x16 warning : the key will be recognized only after about half an hour after its registration




3 - Create the CVS repository with Eclipse (example)



In order to show easy how create the repository we'll use an simple example of sharing of project :



     3.1 - From existing project



cvs_share_project     
-----------------------------------------------------------------------------------------------------------

optional : if SVN is installed in your platform you must specify you choose CVS

cvs_share_project_choice_CVS (optional)
-----------------------------------------------------------------------------------------------------------




     3.2 - Create repository

          3.2.1 - Enter CVS parameters
            • host
              inst_ptr.gifscm.gforge.inria.fr
            • repository path
              inst_ptr.gif/cvsroot/openembedd
            • user
              inst_ptr.gifxxxxxx (warning16x16 your login forge)
            • password
              inst_ptr.gif******* (warning16x16 your password's key or nothing if you have not associate a password)
            • connection type
              inst_ptr.gifextssh
            • use default port
              inst_ptr.gifis checked
warning16x16 warning : if the connection fails then it may be too early because we need a period of half an hour after the registration of our key to have the ssh account active, in this case wait and retry the connection after this delay

cvs_share_project_connection

          3.2.2 - Authentification (login + password created earlier in the document)

               3.2.2.1 Maybe you will get this message :

cvs_share_login_accept_connection => if you get then click "Yes"

               3.2.2.2 Maybe you will get this message : in order to create the file known_hosts to remember the connection

cvs_share_login_creation_known_hosts => if you get then click "Yes"

               3.2.2.3 Maybe you will get this message : in order to confirm the creation of the repository by a new login dialog box

cvs_share_login_forge => enter your login and password again


inst_ptr.gifthis results in the creation of a repository that allows course to "check out" but also and above all to create and modify by making "commit"

      cvs_member_repository Note: it is convenient to use the "CVS Repositories" view







     3.3 - Specify path from the root CVS

          3.3.1 - Module

          3.3.2 - Project Name

cvs_share_project_commit







     3.4 - Commit files and review



cvs_share_project_review

cvs_share_project_commit_comment



     3.5 - Result



cvs_share_project_result_final








...


...
 




    • 4.3 Check Out and Commit code
contents
Once you have your repository with a key then you can check out and commit and share all projects you want. Each time you want update project, you must already synchronize your resources project from Eclipse before to synchronize your repository with the server by the way right click + contextual menu->Team->action you want.





Created by ffillion
Last modified 04.04.2008 02:55 PM
Upcoming Events
OpenEmbeDD at MODELS'08
Toulouse (France),
01.10.2008
OpenEmbeDD at ICT'08
Lyon (France),
25.11.2008
« August 2008 »
Su Mo Tu We Th Fr Sa
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31