blob: 380cd166c8e48c3cbe1479ab8e78544d12581aa9 [file] [log] [blame]
Title: maven2-cdbimport
<P><TT>cdbimport</TT> is a Maven 2 mojo that that uses Cayenne to generate a DataMap based on an existing database schema. By default, it is bound to the <TT>generate-sources</TT> phase. This allows you to generate your DataMap prior to building your project, which may be necessary if you are also using the <A href="maven2-cgen.html" title="maven2-cgen">cgen</A> task.</P>
<H3><A name="maven2-cdbimport-Parameters%28asXMLelements%29"></A>Parameters (as XML elements)</H3>
<DIV class="table-wrap">
<TABLE class="confluenceTable"><TBODY>
<TR>
<TH class="confluenceTh"> Attribute </TH>
<TH class="confluenceTh"> Description </TH>
<TH class="confluenceTh"> Required </TH>
</TR>
<TR>
<TD class="confluenceTd"> map </TD>
<TD class="confluenceTd"> DataMap XML file to use as a schema descriptor. </TD>
<TD class="confluenceTd"> Yes </TD>
</TR>
<TR>
<TD class="confluenceTd"> overwriteExisting </TD>
<TD class="confluenceTd"> Indicates whether existing DB and object entities should be overwritten. This is an all-or-nothing setting. If you need finer granularity, please use the Cayenne Modeler. Default is <TT>true</TT>. </TD>
<TD class="confluenceTd"> No </TD>
</TR>
<TR>
<TD class="confluenceTd"> schemaName </TD>
<TD class="confluenceTd"> Database schema to use for importing. </TD>
<TD class="confluenceTd"> No </TD>
</TR>
<TR>
<TD class="confluenceTd"> tablePattern </TD>
<TD class="confluenceTd"> Pattern to match tables against for import. Default is to match all tables. </TD>
<TD class="confluenceTd"> No </TD>
</TR>
<TR>
<TD class="confluenceTd"> importProcedures </TD>
<TD class="confluenceTd"> Indicates whether stored procedures should be imported. Default is <TT>false</TT>. </TD>
<TD class="confluenceTd"> No </TD>
</TR>
<TR>
<TD class="confluenceTd"> procedurePattern </TD>
<TD class="confluenceTd"> Pattern to match stored procedures against for import. Default is to match all stored procedures. This value is only meaningful if <TT>importProcedures</TT> is <TT>true</TT>. </TD>
<TD class="confluenceTd"> No </TD>
</TR>
<TR>
<TD class="confluenceTd"> meaningfulPk </TD>
<TD class="confluenceTd"> Indicates whether primary keys should be mapped as attributes of the object entity. Default is <TT>false</TT>. </TD>
<TD class="confluenceTd"> No </TD>
</TR>
<TR>
<TD class="confluenceTd"> namingStrategy </TD>
<TD class="confluenceTd"> The naming strategy used for mapping database names to object entity names. Default is <TT>org.apache.cayenne.map.naming.SmartNamingStrategy</TT>. </TD>
<TD class="confluenceTd"> No </TD>
</TR>
<TR>
<TD class="confluenceTd"> adapter </TD>
<TD class="confluenceTd"> Java class name implementing org.apache.cayenne.dba.DbAdapter. While this attribute is optional (a generic JdbcAdapter is used if not set), it is highly recommended to specify correct target adapter. </TD>
<TD class="confluenceTd"> No (but strongly recommended) </TD>
</TR>
<TR>
<TD class="confluenceTd"> driver </TD>
<TD class="confluenceTd"> A class of JDBC driver to use for the target database. </TD>
<TD class="confluenceTd"> Yes </TD>
</TR>
<TR>
<TD class="confluenceTd"> url </TD>
<TD class="confluenceTd"> JDBC connection URL of a target database. </TD>
<TD class="confluenceTd"> Yes </TD>
</TR>
<TR>
<TD class="confluenceTd"> username </TD>
<TD class="confluenceTd"> Database user name. </TD>
<TD class="confluenceTd"> No </TD>
</TR>
<TR>
<TD class="confluenceTd"> password </TD>
<TD class="confluenceTd"> Database user password. </TD>
<TD class="confluenceTd"> No </TD>
</TR>
</TBODY></TABLE>
</DIV>
<H3><A name="maven2-cdbimport-Examples"></A>Examples</H3>
<P>Load the Maven 2 plugin and configure the <TT>cdbimport</TT> mojo:</P>
<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
<PRE class="code-xml">
<SPAN class="code-tag">&lt;build&gt;</SPAN>
<SPAN class="code-tag">&lt;plugins&gt;</SPAN>
<SPAN class="code-tag">&lt;plugin&gt;</SPAN>
<SPAN class="code-tag">&lt;groupId&gt;</SPAN>org.apache.cayenne.plugins<SPAN class="code-tag">&lt;/groupId&gt;</SPAN>
<SPAN class="code-tag">&lt;artifactId&gt;</SPAN>maven-cayenne-plugin<SPAN class="code-tag">&lt;/artifactId&gt;</SPAN>
<SPAN class="code-tag">&lt;executions&gt;</SPAN>
<SPAN class="code-tag">&lt;execution&gt;</SPAN>
<SPAN class="code-tag">&lt;id&gt;</SPAN>cdbimport<SPAN class="code-tag">&lt;/id&gt;</SPAN>
<SPAN class="code-tag">&lt;configuration&gt;</SPAN>
<SPAN class="code-tag"><SPAN class="code-comment">&lt;!-- Configuration items go in here. See table, above. --&gt;</SPAN></SPAN>
<SPAN class="code-tag">&lt;/configuration&gt;</SPAN>
<SPAN class="code-tag">&lt;goals&gt;</SPAN>
<SPAN class="code-tag">&lt;goal&gt;</SPAN>cdbimport<SPAN class="code-tag">&lt;/goal&gt;</SPAN>
<SPAN class="code-tag">&lt;/goals&gt;</SPAN>
<SPAN class="code-tag">&lt;/execution&gt;</SPAN>
<SPAN class="code-tag">&lt;/executions&gt;</SPAN>
<SPAN class="code-tag">&lt;/plugin&gt;</SPAN>
<SPAN class="code-tag">&lt;/plugins&gt;</SPAN>
<SPAN class="code-tag">&lt;/build&gt;</SPAN>
</PRE>
</DIV></DIV>
<P>Here is an example of using <TT>cdbimport</TT> to create DB schema objects on a local HSQLDB database named &quot;bookmarker&quot; from a DataMap located in &quot;main/resources/datamap.map.xml&quot;:</P>
<DIV class="code panel" style="border-width: 1px;"><DIV class="codeContent panelContent">
<PRE class="code-xml">
<SPAN class="code-tag">&lt;build&gt;</SPAN>
<SPAN class="code-tag">&lt;plugins&gt;</SPAN>
<SPAN class="code-tag">&lt;plugin&gt;</SPAN>
<SPAN class="code-tag">&lt;groupId&gt;</SPAN>org.apache.cayenne.plugins<SPAN class="code-tag">&lt;/groupId&gt;</SPAN>
<SPAN class="code-tag">&lt;artifactId&gt;</SPAN>maven-cayenne-plugin<SPAN class="code-tag">&lt;/artifactId&gt;</SPAN>
<SPAN class="code-tag">&lt;executions&gt;</SPAN>
<SPAN class="code-tag">&lt;execution&gt;</SPAN>
<SPAN class="code-tag">&lt;id&gt;</SPAN>cdbimport<SPAN class="code-tag">&lt;/id&gt;</SPAN>
<SPAN class="code-tag">&lt;configuration&gt;</SPAN>
<SPAN class="code-tag">&lt;map&gt;</SPAN>${project.build.sourceDirectory}/../resources/datamap.map.xml<SPAN class="code-tag">&lt;/map&gt;</SPAN>
<SPAN class="code-tag">&lt;adapter&gt;</SPAN>org.apache.cayenne.dba.hsqldb.HSQLDBAdapter<SPAN class="code-tag">&lt;/adapter&gt;</SPAN>
<SPAN class="code-tag">&lt;driver&gt;</SPAN>org.hsqldb.jdbcDriver<SPAN class="code-tag">&lt;/driver&gt;</SPAN>
<SPAN class="code-tag">&lt;url&gt;</SPAN>jdbc:hsqldb:hsql://localhost/bookmarker<SPAN class="code-tag">&lt;/url&gt;</SPAN>
<SPAN class="code-tag">&lt;username&gt;</SPAN>sa<SPAN class="code-tag">&lt;/username&gt;</SPAN>
<SPAN class="code-tag">&lt;/configuration&gt;</SPAN>
<SPAN class="code-tag">&lt;goals&gt;</SPAN>
<SPAN class="code-tag">&lt;goal&gt;</SPAN>cdbimport<SPAN class="code-tag">&lt;/goal&gt;</SPAN>
<SPAN class="code-tag">&lt;/goals&gt;</SPAN>
<SPAN class="code-tag">&lt;/execution&gt;</SPAN>
<SPAN class="code-tag">&lt;/executions&gt;</SPAN>
<SPAN class="code-tag">&lt;/plugin&gt;</SPAN>
<SPAN class="code-tag">&lt;/plugins&gt;</SPAN>
<SPAN class="code-tag">&lt;/build&gt;</SPAN>
</PRE>
</DIV></DIV>