001 package org.apache.torque.mojo;
002
003 import java.io.File;
004
005 import org.apache.maven.plugin.MojoExecutionException;
006 import org.apache.torque.mojo.morph.MorphRequest;
007 import org.apache.torque.mojo.morph.Morpher;
008 import org.apache.torque.mojo.morph.SchemaMorpher;
009
010 /**
011 * Convert an Ant impex schema XML file into a maven-impex-plugin schema XML file
012 *
013 * @goal morphschema
014 * @phase generate-sources
015 */
016 public class MorphSchemaMojo extends AbstractMorphSingleMojo {
017
018 /**
019 * The XML file describing the database schema (Maven style)
020 *
021 * @parameter expression="${newSchemaXMLFile}" default-value=
022 * "${project.build.directory}/generated-impex/${project.artifactId}.xml"
023 * @required
024 */
025 private File newSchemaXMLFile;
026
027 /**
028 * The XML file describing the database schema (Ant style)
029 *
030 * @parameter expression="${oldSchemaXMLFile}" default-value="${basedir}/src/main/impex/schema.xml"
031 * @required
032 */
033 private File oldSchemaXMLFile;
034
035 @Override
036 protected void beforeExecution() {
037 setNewFile(newSchemaXMLFile);
038 setOldFile(oldSchemaXMLFile);
039 }
040
041 @Override
042 protected void executeMojo() throws MojoExecutionException {
043 getLog().info("------------------------------------------------------------------------");
044 getLog().info("Converting schema XML file");
045 getLog().info("------------------------------------------------------------------------");
046 super.executeMojo();
047 }
048
049 @Override
050 protected Morpher getMorpher(final MorphRequest request, final String artifactId) {
051 return new SchemaMorpher(request, artifactId);
052 }
053
054 public File getNewSchemaXMLFile() {
055 return newSchemaXMLFile;
056 }
057
058 public void setNewSchemaXMLFile(final File newSchemaXMLFile) {
059 this.newSchemaXMLFile = newSchemaXMLFile;
060 }
061
062 public File getOldSchemaXMLFile() {
063 return oldSchemaXMLFile;
064 }
065
066 public void setOldSchemaXMLFile(final File oldSchemaXMLFile) {
067 this.oldSchemaXMLFile = oldSchemaXMLFile;
068 }
069 }