001 /**
002 * Copyright 2004-2012 The Kuali Foundation
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl2.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package org.apache.torque.mojo;
017
018 import org.apache.maven.plugin.MojoExecutionException;
019 import org.kuali.core.db.torque.KualiTorqueSchemaDumpTask;
020
021 /**
022 * Examines the JDBC metadata of a proprietary database and exports the schema information to database agnostic XML. The
023 * generated XML contains information about tables, primary keys, unique constraints, foreign keys, indexes, sequences,
024 * and views. This goal does not export any data. See also <code>impex:exportdata</code> and <code>impex:import</code>
025 *
026 * @goal exportschema
027 * @phase generate-sources
028 */
029 public class ExportSchemaMojo extends ExportMojo {
030
031 /**
032 * Flag indicating whether or not tables will be processed. Default is true
033 *
034 * @parameter expression="${processTables}" default-value="true"
035 */
036 private boolean processTables;
037
038 /**
039 * Flag indicating whether or not views will be processed. Default is true
040 *
041 * @parameter expression="${processViews}" default-value="true"
042 */
043 private boolean processViews;
044
045 /**
046 * Flag indicating whether or not sequences will be processed. Default is true
047 *
048 * @parameter expression="${processSequences}" default-value="true"
049 */
050 private boolean processSequences;
051
052 /**
053 * The file that the schema XML will get written to
054 *
055 * @parameter expression="${schemaXMLFile}" default-value="${basedir}/src/main/impex/${project.artifactId}.xml"
056 * @required
057 */
058 private String schemaXMLFile;
059
060 /**
061 * Configure the Ant task
062 */
063 protected void configureTask() throws MojoExecutionException {
064
065 KualiTorqueSchemaDumpTask task = new KualiTorqueSchemaDumpTask();
066 setAntTask(task);
067 super.configureTask();
068 }
069
070 public boolean isProcessTables() {
071 return processTables;
072 }
073
074 public void setProcessTables(boolean processTables) {
075 this.processTables = processTables;
076 }
077
078 public boolean isProcessViews() {
079 return processViews;
080 }
081
082 public void setProcessViews(boolean processViews) {
083 this.processViews = processViews;
084 }
085
086 public boolean isProcessSequences() {
087 return processSequences;
088 }
089
090 public void setProcessSequences(boolean processSequences) {
091 this.processSequences = processSequences;
092 }
093
094 public String getSchemaXMLFile() {
095 return schemaXMLFile;
096 }
097
098 public void setSchemaXMLFile(String schemaXMLFile) {
099 this.schemaXMLFile = schemaXMLFile;
100 }
101
102 }