Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Corona HowTo: Generate the Corona ContextContainer Model"
Line 52: | Line 52: | ||
## open context menu for Repositories and select New Child->Repository Repository | ## open context menu for Repositories and select New Child->Repository Repository | ||
## select Repository node and define Repository properties using properties view | ## select Repository node and define Repository properties using properties view | ||
− | + | # After defining sample project context container model: | |
## save data graph | ## save data graph | ||
− | ## open saved data graph with Text Editor | + | ## 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> | <pre> | ||
<?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||
Line 84: | Line 87: | ||
</sdo:datagraph> | </sdo:datagraph> | ||
</pre> | </pre> | ||
− | |||
− | |||
− | |||
# Create editor for generated model | # Create editor for generated model | ||
## select project containing specialized model editor code | ## select project containing specialized model editor code | ||
Line 111: | Line 111: | ||
## open saved project model with Text Editor (from context menu select Open with->Text Editor) | ## open saved project model with Text Editor (from context menu select Open with->Text Editor) | ||
## Defined project model form should be similar to the following one: | ## Defined project model form should be similar to the following one: | ||
+ | ###To load such project model the following generated api has to be used: | ||
+ | ####ProjectXMLProcessor xmlProcessor = new ProjectXMLProcessor(); | ||
+ | ####Resource resource = xmlProcessor.load(inputStream, options); | ||
<pre> | <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"> | <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 content-type="http://www.eclipse.org/corona/contentTypes/teamMemberRepository" name="Team Member Repository" uri="http://www.eclipse.org/corona/repository/TeamMemberRepository"> | + | <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-configurations default-configuration-name="members_1"> | + | </repository> |
− | + | </repositories> | |
− | + | ||
− | <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"/> | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</project:project-context-container> | </project:project-context-container> | ||
</pre> | </pre> | ||
− | |||
− | |||
− |
Revision as of 17:44, 12 December 2006
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.
<?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>
- 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)
- Defined project model form should be similar to the following one:
- To load such project model the following generated api has to be used:
- ProjectXMLProcessor xmlProcessor = new ProjectXMLProcessor();
- Resource resource = xmlProcessor.load(inputStream, options);
- To load such project model the following generated api has to be used:
<?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>