|
|
(One intermediate revision by the same user not shown) |
Line 1: |
Line 1: |
− | === 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>
| |