You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by th...@apache.org on 2003/07/20 22:37:26 UTC

cvs commit: db-ojb/xdocs/images andromda.jpg

thma        2003/07/20 13:37:26

  Modified:    xdocs    references.xml tutorial1.xml project.xml
                        howto-build-mappings.xml
  Added:       xdocs/images andromda.jpg
  Log:
  finish mapping tool page
  
  Revision  Changes    Path
  1.2       +14 -0     db-ojb/xdocs/references.xml
  
  Index: references.xml
  ===================================================================
  RCS file: /home/cvs/db-ojb/xdocs/references.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- references.xml	26 Jun 2003 20:58:57 -0000	1.1
  +++ references.xml	20 Jul 2003 20:37:25 -0000	1.2
  @@ -61,6 +61,20 @@
       </p>
   
       <p>
  +    	<b><a href="http://www.scrashmeow.org/ojb/">The Object Console project</a></b>
  +    	<br/>
  +    	The Object Console is an open web based application meant for the administration 
  +    	of objects via the web. Any object that is persistable by the 
  +    	ObJectRelationalBridge (OJB) framework can be managed through this tool. 
  +    	In addition, this tool provides administration functionality for the 
  +    	ObJectRelationalBridge (OJB) framework itself.
  +    	<br/>
  +    	Object Console uses Struts and OJB. It ships with full sourcecode and
  +    	is thus a great source for learning Struts + OJB techniques.
  +    </p>
  +
  +
  +    <p>
       	<b><a href="http://sourceforge.net/projects/ojb-net/">The OJB.NET project</a></b>
       	<br/>
       	OJB.NET is an object-to-relational persistence tool for the .NET platform. 
  
  
  
  1.20      +5 -32     db-ojb/xdocs/tutorial1.xml
  
  Index: tutorial1.xml
  ===================================================================
  RCS file: /home/cvs/db-ojb/xdocs/tutorial1.xml,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- tutorial1.xml	11 Feb 2003 19:35:15 -0000	1.19
  +++ tutorial1.xml	20 Jul 2003 20:37:25 -0000	1.20
  @@ -928,40 +928,13 @@
   	A complete documentation of the repository syntax and semantics can be
   	<a href="repository.html">found here</a>.
   </p>
  -</subsection>
  -<subsection name="Tool Support">
  +
   <p>
  -Generally speaking there are three approaches in building an O/R mapping:
  +	There are several tools available that can assist you in building the 
  +	mapping file.
  +	Please have a look at <a href="howto-build-mappings.html">this document</a>
  +	to learn more about those tools.
   </p>
  -<ol>
  -  <li>
  -    <b>Forward engineering</b>, Java classes (or UML model) are
  -    given, SQL DDL and mapping have to be generated.
  -    <br/>
  -    We have started to work on a tool that generates a database from an
  -    existing repository.xml file.
  -    Call <b><code>build[.sh] forward-db</code></b> to see our forward
  -    engineering tool at work.
  -    <br/>
  -    After building your db you can inspect it by calling
  -    <b><code>build[.sh] browse-db</code></b>.
  -  </li>
  -  <li>
  -    <b>Reverse engineering</b>, SQL DDL or a life
  -    Database are given, Java classes and mapping have to be generated.
  -    <br/>
  -    Call <b><code>build[.sh] reverse-db</code></b> to see our reverse
  -    engineering tool at work.
  -  </li>
  -  <li>
  -    <b>Mapping proper</b>, Java Classes and SQL DDL
  -    are given, Mapping has to be generated.
  -    <br/>
  -    We currently don't have a real mapping workbench. But it's already
  -    on our todo list!
  -  </li>
  -</ol>
  -
   
   </subsection>
   </section>
  
  
  
  1.24      +1 -1      db-ojb/xdocs/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/db-ojb/xdocs/project.xml,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- project.xml	7 Jul 2003 05:50:34 -0000	1.23
  +++ project.xml	20 Jul 2003 20:37:25 -0000	1.24
  @@ -12,7 +12,7 @@
         <item name="Features"                href="/features.html"/>
         <item name="Quickstart"              href="/quickstart.html"/>
         <item name="FAQs"                    href="/faq.html"/>
  -      <!-- item name="Mailing lists"           href="/mail-lists.html"/-->
  +      <item name="Mail lists"              href="/mail-lists.html"/>
         <item name="Mail archives"           href="/mail-archives.html"/>
         <item name="references"              href="/references.html"/>
       </menu>
  
  
  
  1.2       +179 -8    db-ojb/xdocs/howto-build-mappings.xml
  
  Index: howto-build-mappings.xml
  ===================================================================
  RCS file: /home/cvs/db-ojb/xdocs/howto-build-mappings.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- howto-build-mappings.xml	13 Jul 2003 21:37:06 -0000	1.1
  +++ howto-build-mappings.xml	20 Jul 2003 20:37:25 -0000	1.2
  @@ -14,11 +14,11 @@
   	can easily be done manually with a text- or xml-editor of your choice.
   	<br/>
   	But keeping the repository in sync with the java codebase and the database
  -	gets more difficult if several hundred classes and several developers
  +	gets more difficult if several hundred classes and large developer teams
   	are involved.
   	<br/>
  -	This page contains tips how integrate mapping tools and code-generators
  -	in your build process.
  +	This page contains tips how to integrate mapping tools and code-generators
  +	into your build process.
   </p>
   </section>
   
  @@ -58,20 +58,20 @@
   	artefacts fit to your development process.
   	<ol>
   		<li>
  -			<b>forward engineering from XMI:</b> An UML model in XMI format with class diagrams of your 
  +			<b>Forward engineering from XMI:</b> An UML model in XMI format with class diagrams of your 
   			persistent classes exists and is used as the master source (model
   			driven approach).
   			Java code, repository.xml and DDL for the database tables have to 
   			be generated from this model.	
   		</li>
   		<li>
  -			<b>forward engineering from Torque:</b> A different model like a 
  -			Torque.XML file exists.
  +			<b>Forward engineering from Torque:</b> A model of the persistent entity classes exists 
  +			in form of a Torque.XML file.
   			Java code, repository.xml and DDL for the database tables have to 
   			be generated from this model.			
   		</li>
   		<li>
  -			<b>forward engineering from repository.xml:</b>
  +			<b>Forward engineering from repository.xml:</b>
   			The OJB repository.xml file is used a model format.
   			Java code and DDL for the database tables have to 
   			be generated from this model.			
  @@ -84,7 +84,7 @@
   			be generated from the java files via Xdoclet transformation.	
   		</li>
   		<li>
  -			<b>reverse engineering from database:</b>
  +			<b>Reverse engineering from database:</b>
   			There is a database with existing tables or a DDL script.
   			Java code and repository.xml have to 
   			be generated from the database.			
  @@ -98,9 +98,180 @@
   	<img src="images/mapping-tools.png" width="700"/>
   </p>
   
  +<p>
  +	In the following sections we will have a closer look at each of these transformations
  +	an discuss tools that provide support each approach.
  +</p>
  +
  +</section>
  +
  +<section name="Forward engineering from XMI">
  +	<p>
  +		This approach is recommended if you start from scratch with a new project
  +		and have to deal with a large number of persistent classes.
  +		This approach works best when there are no restrictions regarding the database,
  +		like integration of legacy tables.
  +		Forward engineering from XMI fits perfectly into a model driven architecture (MDA) 
  +		software development process.
  +	</p>
  +	<p><b>Tool support</b><br/>
  +		<ul>
  +			<li>
  +				<a href="http://axgen.sf.net"><b>AXGen</b></a><br/>
  +				AXgen is a code generator using XMI as input and Velocity templates for transformation. 
  +				<br/>  	 
  +			  	The power of AXgen is in its simplicity. 
  +			  	You don't have to understand complicated structure of your XMI file to write an 
  +			  	XSLT stylsheet for transformation. AXgen uses nsuml to deal with the xmi file, 
  +			  	which gives access to the Metamodel in an objectoriented way. 	
  +			  	<br/> 
  +			  	Further AXgen makes use of Jakartas Velocity. 
  +			  	Velocity is a very sophisticated Java-based template engine. 
  +			  	This means that inside your templates you can call Java methods. 
  +			  	Feel free to write templates that generate anything you want. 	 
  +			  	<br/>
  +			  	Our motive for AXgen is to generate Java Classes for use in a O/R Mapping 
  +			  	tool that allows transparent persistence for Java Objects against relational databases. 
  +			  	Therefore AXgen comes with a bundle of ready to use templates for generating 
  +			  	ObJectRelationalBridge (OJB) specific stuff like: <br/>
  +			  	* Entity Classes<br/>
  +			    * XML Repository<br/>
  +			    * SQL script to build the DB scheme
  +			</li>
  +			<li>
  +				<a href="http://andromda.sf.net"><b>AndroMDA</b></a><br/>
  +				AndroMDA is a code generator framework - it takes a Unified Modeling Language 
  +				(UML) model from a CASE-tool in XMI format and generates custom components. 
  +				It comes with a set of sample templates that generate classes attributed with 
  +				XDoclet tags. One build step later, the XDoclet tool generates full-blown components 
  +				that can readily be deployed in the JBoss application server (and the other servers 
  +				that XDoclet can feed).<br/>
  +				<img src="images/andromda.jpg"/>
  +				<br/>
  +				Currently AndroMDA provides no special support for OJB. But by tagging
  +				classes with tags of the <a href="#Xdoclet transformation from Java code">XDoclet OJB module</a>	
  +				it is possible to use
  +				it as a full forward engineering engine.				
  +			</li>
  +			<li>
  +				Searching the Sourceforge project list for "XMI" 
  +				returns a long list of projects dealing with code generation.
  +				It may be a good idea to check if you find a tool that matches your requirements.
  +			</li>
  +			
  +		</ul>
  +	</p>
  +</section>
  +
  +<section name="Forward engineering from Torque">
  +	<p>
  +		<a href="http://db.apache.org/torque/"><b>Torque</b></a><br/>	
  +		Torque is a persistence layer. Torque includes a  generator  to generate all 
  +		the database resources required by your application and includes a runtime 
  +		environment to run the generated classes.<br/>
  +
  +		Torque was developed as part of the Turbine Framework. 
  +		It is now decoupled and can be used by itself. 
  +		Starting with version 2.2 Turbine uses the decoupled Torque.<br/>
  +		
  +		Torque uses a single XML database schema to generate the SQL for your target database 
  +		and Torque's Peer-based object relation model representing your XML database schema.<br/>
  +
  +		OJB uses Torques generator engine to setup the testbed database and feed it with
  +		initial data.<br/>
  +		
  +		Besides the SQL generation facilities Torque also provides special support for OJB
  +		related transformations. It provides the following two ant targets: 
  +		<ul>
  +		    <li>
  +		    <strong>ojb-model</strong>
  +		    <br/>
  +				generates a simple object model for ojb
  +		    </li> 
  +		    <li>
  +		        
  +		    <strong>ojb-repository</strong>
  +			<br/>
  +			    generates the repository for ojb  
  +		    </li>     
  +		</ul>
  +		A complete list of all availableTorque targets can be found 
  +		<a href="http://db.apache.org/torque/generator/">here</a>	
  +	</p>
  +
  +</section>
  +
  +<section name="Forward engineering from repository.xml">
  +	<p>
  +		There is currently no tool available that directly supports this model.
  +		It is not difficult to implement an XSLT stylesheet that transforms
  +		the OJB repository.xml directly into DDL Statements.<br/>
  +		An even simpler approach could be to transform the repository.xml file into
  +		a Torque xml file. DDL can then be generated by the Torque engine.<br/>
  +		If you write such an XSLT file please tell us about it!		
  +	</p>
  +</section>
  +
  +<section name="Xdoclet transformation from Java code">
  +	<p>
  +		<a href="http://xdoclet.sf.net"><b>XDoclet</b></a><br/>
  +		XDoclet is a code generation engine. It enables  Attribute-Oriented Programming  for java. 
  +		In short, this means that you can add more significance to your code by adding meta data 
  +		(attributes) to your java sources. This is done in special JavaDoc tags.<br/>
  +
  +		XDoclet will parse your source files and generate many artifacts such as XML descriptors 
  +		and/or source code from it. These files are generated from templates that use the information 
  +		provided in the source code and its JavaDoc tags. <br/>
  +
  +		XDoclet lets you apply Continuous Integration in component-oriented development. 
  +		Developers should concentrate their editing work on only one Java source file per component.<br/>
  +		
  +		XDoclet originated as a tool for creating EJBs, it has  evolved  
  +		into a general-purpose code generation engine. XDoclet consists of a core 
  +		and a constantly growing number of modules. 
  +		There is an existing OJB module which is currently part of the OJB contribution package.
  +		This module will be integrated into the regular XDoclet distribution.
  +		A complete documentation is shipped with the module.
  +
  +	</p>
   
   
   </section>
  +
  +<section name="Reverse engineering from database">
  +	<p>
  +		<ul>
  +			<li>
  +				<b>The OJB ReverseDB tool</b><br/>
  +				OJB ships with a simple reverse engineering tool that
  +				allows to connect to a RDBMS via JDBC and to take the tables
  +				from the database catalog as input.<br/>
  +				This tool provides a nice GUI to generate Java classes and the
  +				matching repository.xml file.<br/>
  +				You can invoke the ReverseDB tool with the ANT target <code>reverse-db</code>
  +			</li>
  +			<li>
  +				<a href="http://www.impart.ch/download.htm"><b>Impart Eclipse Plugin for OJB</b></a><br/>
  +				The Impart Eclipse plugin is based on the OJB ReverseDB Tool
  +				and provides the same functionality (and also some additional goodies).
  +				It ships as a plugin to the Eclipse IDE.
  +				It provides a very convenient GUI that integrates smoothly into the Eclipse platform.
  +			</li>			
  +			<li>
  +				<a href="http://sourceforge.net/projects/rdbs2j"><b>RDBS2J</b></a><br/>
  +				RDBS2J is a GUI based mapping tool from relational database scheme to
  +				persistent java classes which use JDO as persistence mechanism.
  +				The mapping can be modified by the GUI.<br/>
  +				The current version is designed to create code for OJB.<br/>
  +				The ODMG and the JDO interface are supported. RDBS2J creates the
  +				*.jdo and the repository_user.xml, which is needed by OJB.
  +			</li>
  +		</ul>
  +    </p>
  +
  +</section>
  +
  +
   
   </body>
   </document>
  
  
  
  1.1                  db-ojb/xdocs/images/andromda.jpg
  
  	<<Binary file>>
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org