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 "Corona HowTo: Generate the Corona ContextContainer Model"

m
m (obsolete)
 
Line 1: Line 1:
<table border='1' cellpadding='3'>
 
<tr>
 
<td>[http://www.eclipse.org/corona Eclipse Home]</td>
 
<td>[[Corona|Wiki Home]]</td>
 
<td>[[Corona Development|Development]]</td>
 
<td>[[Corona HowTo|How To...]]</td>
 
</tr>
 
</table>
 
----
 
== EMF/SDO model generation on the basis of model schema ==
 
  
Assumption: used eclipse platform is extended by emf-sdo-xsd sdk.
 
 
# Create EMF project for generic model
 
## open New Project Wizard (File->New->Project)
 
## select EMF Project and Next>
 
## define Project Name e.g. org.eclipse.corona.model.container and select Next>
 
## select XML Schema as a model importer and Next>
 
## browse file system to load model schema (context-container-xxx.xsd) and select Next>
 
## check if root package name is org.eclipse.corona.model.container and...
 
## file name is container.ecore
 
## select Finish
 
## EMF project including generic model is created.
 
# Create EMF project for model extending generic model
 
## open New Project Wizard (File->New->Project)
 
## select EMF Project and Next>
 
## define Project Name e.g. org.eclipse.corona.model.container.project and select Next>
 
## select XML Schema as a model importer and Next>
 
## browse file system to load model schema (project-context-container-xxx.xsd) and select Next>
 
## as the root package select org.eclipse.corona.model.container.project
 
## browse for referenced generator model and select genmodel file (e.g. org.eclipse.corona.model.container/model/context-container-xxx.genmodel)
 
## confirm referenced generator model selection (using checkbox)
 
## select Finish
 
##EMF project including model extending the generic model is created.
 
# SDO model code generation
 
## from the model root context menu (right mouse button) select Set SDO Defaults
 
## save model changes
 
##  from the model root context menu select Generate Model Code to generate SDO model sources
 
## to generate editor for SDO model select from mentioned context menu first Generate Edit Code, then Generate Editor Code
 
## to generate default test cases for generated model select from the same menu option Generate Test Code instead of selecting separately each code generation option you can select Generate All
 
##Repeat these steps for both generic and specialized model.
 
# Create data graph for generated model
 
## select project containing specialized model code
 
## run selected project as eclipse application (remove ecf plugins from used run configuration)
 
##In newly opened eclipse workbench:
 
### open New Project Wizard (File->New->Project)
 
### select General->Project and Next>
 
### define Project Name e.g. org.eclipse.corona.model.container.graph and select Finish
 
### open context menu for newly created project and select New->Other
 
### select Data Graph Model from Example EMF Model Creation Wizards and Next->
 
### if needed change suggested data graph file name and select Next->
 
### select as Model URI: http://www.eclipse.org/corona/model/container/project and as Model Object:  ProjectContextContainer
 
### select Finish
 
##Data graph representing specialized model is created.
 
# Define sample project context container model using newly created data graph
 
## open data graph with Data Graph Editor
 
## expand data graph and select Project Context Container
 
## using properties view you can define the following: name, container uri, container type, container description
 
#To define nested model elements (e.g. repositories):
 
## open context menu for Project Context Container and select New Child->Repositories Repositories
 
## open context menu for Repositories and select New Child->Repository Repository
 
## select Repository node and define Repository properties using properties view
 
# After defining sample project context container model:
 
## save data graph
 
## open saved data graph with Text Editor
 
### from context menu select Open with->Text Editor
 
# Defined data graph form should be similar to the following one:
 
## To load Xml into Datagraph: SDOUtil.loadDataGraph… api has to be used. (described on corona-dev)
 
## Xml is an example of serialized project context container model.
 
<pre>
 
<?xml version="1.0" encoding="UTF-8"?>
 
<sdo:datagraph xmlns:project="http://www.eclipse.org/corona/model/container/project"
 
  xmlns:sdo="commonj.sdo">
 
  <changeSummary xmlns=""/>
 
  <project:project-context-container name="Sample Eclipse Project">
 
  <container-uri> http://www.eclipse.org/corona/container/sampleEclipseProject
 
  </container-uri> 
 
    <container-type>http://www.eclipse.org/corona/containerTypes/eclipseProject</container-type>
 
    <container-description>Sample eclipse project description</container-description> 
 
    <repositories>       
 
      <repository content-type="http://www.eclipse.org/corona/contentTypes/teamMemberRepository"
 
          name="Team Member Repository"  uri="http://www.eclipse.org/corona/repository/TeamMemberRepository">       
 
        <description>Team Member Repository description</description>
 
        <repository-configurations default-configuration-name="memebers_1">
 
          <repository-configuration name="members_1">
 
        <repository-connection-parameters access-type="http://www.eclipse.org/corona/accessTypes/xmlRepository"
 
                name="XML repository resource">
 
              <repository-connection-parameter name="fileURI" value="file:///model/data/teamMembers.xml"/>
 
              <resource-subset selection-criteria="//team/members"  type="http://www.eclipse.org/corona/resourceSubsetTypes/XPathResultSet"/>
 
            </repository-connection-parameters>
 
          </repository-configuration>
 
        </repository-configurations>
 
      </repository>
 
    </repositories>
 
  </project:project-context-container>
 
</sdo:datagraph>
 
</pre>       
 
# Create editor for generated model
 
## select project containing specialized model editor code
 
## run selected project as eclipse application (remove ecf plugins from used run configuration)
 
##In newly opened eclipse workbench:
 
### open New Project Wizard (File->New->Project)
 
### select General->Project and Next>
 
### define Project Name e.g. org.eclipse.corona.model.container.editor and select Finish
 
### open context menu for newly created project and select New->Other
 
### select Project Model from Example EMF Model Creation Wizards and Next->
 
### if needed change suggested project file name and select Next->
 
### select Model Object: Context Container
 
### select Finish
 
# Define sample project context container model using newly created editor
 
## open model  with Project Model Editor
 
## expand model and select Context Container
 
## using properties view you can define the following: name, container uri, container type, container description
 
# To define nested model elements (e.g. repositories):
 
## open context menu for Context Container and select New Child->Repositories
 
## open context menu for Repositories and select New Child->Repository
 
## select Repository node and define Repository properties using properties view
 
# After defining sample project context container model:
 
## save project model
 
## open saved project model with Text Editor (from context menu select Open with->Text Editor)
 
##To load such project model the following generated api has to be used:
 
###ProjectXMLProcessor xmlProcessor = new ProjectXMLProcessor();
 
###Resource resource = xmlProcessor.load(inputStream, options);
 
## Defined project model form should be similar to the following one:
 
<pre>
 
<?xml version="1.0" encoding="UTF-8"?>
 
<project:project-context-container xmlns:project="http://www.eclipse.org/corona/model/container/project" name="Project Model">
 
<container-uri>http://www.eclipse.org/corona/container/sampleEclipseProject</container-uri>
 
<container-type>http://www.eclipse.org/corona/containerTypes/eclipseProject</container-type>
 
<container-description>Project Model Description</container-description>       
 
<repositories>
 
  <repository content-type="http://www.eclipse.org/corona/contentTypes/teamMemberRepository"
 
    name="Team Member Repository" uri="http://www.eclipse.org/corona/repository/TeamMemberRepository">
 
    <description>Team Member Repository description</description>
 
    <repository-configurations default-configuration-name="members_1"> 
 
      <repository-configuration name="members_1">
 
        <repository-connection-parameters access-type="http://www.eclipse.org/corona/accessTypes/xmlRepository"
 
          name="XML repository resource">
 
          <repository-connection-parameter  name="fileURI" value="file:///model/data/teamMembers.xml"/>
 
          <resource-subset selection-criteria="//team/members" type="http://www.eclipse.org/corona/resourceSubsetTypes/XPathResultSet"/>
 
        </repository-connection-parameters>
 
      </repository-configuration>
 
    </repository-configurations>
 
  </repository>
 
</repositories>
 
</project:project-context-container>
 
</pre>
 

Latest revision as of 10:50, 27 February 2008

Back to the top