View Javadoc

1   package org.apache.torque.mojo;
2   
3   import java.io.File;
4   import java.io.IOException;
5   
6   import org.apache.commons.io.FileUtils;
7   import org.apache.maven.plugin.MojoExecutionException;
8   import org.kuali.core.db.torque.KualiTorqueDataDumpTask;
9   
10  /**
11   * Reads the content of tables from a database and exports the data in a database agnostic format to XML files.
12   * 
13   * @goal exportdata
14   * @phase generate-sources
15   */
16  public class ExportDataMojo extends ExportMojo {
17  
18      /**
19       * The format to use for dates/timestamps
20       * 
21       * @parameter expression="${dateFormat}" default-value="yyyyMMddHHmmss z"
22       * @required
23       */
24      private String dateFormat;
25  
26      /**
27       * The directory where data XML files will be written
28       * 
29       * @parameter expression="${dataXMLDir}" default-value="${basedir}/src/main/impex"
30       * @required
31       */
32      private File dataXMLDir;
33  
34      /**
35       * Configure the Ant task
36       */
37      @Override
38      protected void configureTask() throws MojoExecutionException {
39          KualiTorqueDataDumpTask task = new KualiTorqueDataDumpTask();
40          task.setBuildDirectory(new File(getProject().getBuild().getDirectory()));
41          setAntTask(task);
42          super.configureTask();
43          makeOutputDir();
44      }
45  
46      protected void makeOutputDir() throws MojoExecutionException {
47          if (getDataXMLDir().exists()) {
48              return;
49          }
50          try {
51              FileUtils.forceMkdir(getDataXMLDir());
52          } catch (IOException e) {
53              throw new MojoExecutionException("Error creating output directory", e);
54          }
55      }
56  
57      public File getDataXMLDir() {
58          return dataXMLDir;
59      }
60  
61      public void setDataXMLDir(File outputDir) {
62          this.dataXMLDir = outputDir;
63      }
64  
65      public String getDateFormat() {
66          return dateFormat;
67      }
68  
69      public void setDateFormat(String dateFormat) {
70          this.dateFormat = dateFormat;
71      }
72  }