001 package org.apache.torque.mojo; 002 003 import org.apache.maven.plugin.MojoExecutionException; 004 import org.kuali.core.db.torque.KualiTorqueSchemaDumpTask; 005 006 /** 007 * Examines the JDBC metadata of a proprietary database and exports the schema information to database agnostic XML. The 008 * generated XML contains information about tables, primary keys, unique constraints, foreign keys, indexes, sequences, 009 * and views. This goal does not export any data. See also <code>impex:exportdata</code> and <code>impex:import</code> 010 * 011 * @goal exportschema 012 * @phase generate-sources 013 */ 014 public class ExportSchemaMojo extends ExportMojo { 015 016 /** 017 * Flag indicating whether or not tables will be processed. Default is true 018 * 019 * @parameter expression="${processTables}" default-value="true" 020 */ 021 private boolean processTables; 022 023 /** 024 * Flag indicating whether or not views will be processed. Default is true 025 * 026 * @parameter expression="${processViews}" default-value="true" 027 */ 028 private boolean processViews; 029 030 /** 031 * Flag indicating whether or not sequences will be processed. Default is true 032 * 033 * @parameter expression="${processSequences}" default-value="true" 034 */ 035 private boolean processSequences; 036 037 /** 038 * The file that the schema XML will get written to 039 * 040 * @parameter expression="${schemaXMLFile}" default-value="${basedir}/src/main/impex/${project.artifactId}.xml" 041 * @required 042 */ 043 private String schemaXMLFile; 044 045 /** 046 * Configure the Ant task 047 */ 048 protected void configureTask() throws MojoExecutionException { 049 050 KualiTorqueSchemaDumpTask task = new KualiTorqueSchemaDumpTask(); 051 setAntTask(task); 052 super.configureTask(); 053 } 054 055 public boolean isProcessTables() { 056 return processTables; 057 } 058 059 public void setProcessTables(boolean processTables) { 060 this.processTables = processTables; 061 } 062 063 public boolean isProcessViews() { 064 return processViews; 065 } 066 067 public void setProcessViews(boolean processViews) { 068 this.processViews = processViews; 069 } 070 071 public boolean isProcessSequences() { 072 return processSequences; 073 } 074 075 public void setProcessSequences(boolean processSequences) { 076 this.processSequences = processSequences; 077 } 078 079 public String getSchemaXMLFile() { 080 return schemaXMLFile; 081 } 082 083 public void setSchemaXMLFile(String schemaXMLFile) { 084 this.schemaXMLFile = schemaXMLFile; 085 } 086 087 }