001 package org.apache.torque.mojo; 002 003 import java.io.File; 004 import java.io.IOException; 005 006 import org.apache.commons.io.FileUtils; 007 import org.apache.maven.plugin.MojoExecutionException; 008 import org.kuali.core.db.torque.KualiTorqueDataDumpTask; 009 010 /** 011 * Reads the content of tables from a database and exports the data in a database agnostic format to XML files. 012 * 013 * @goal exportdata 014 * @phase generate-sources 015 */ 016 public class ExportDataMojo extends ExportMojo { 017 018 /** 019 * The format to use for dates/timestamps 020 * 021 * @parameter expression="${dateFormat}" default-value="yyyyMMddHHmmss z" 022 * @required 023 */ 024 private String dateFormat; 025 026 /** 027 * The directory where data XML files will be written 028 * 029 * @parameter expression="${dataXMLDir}" default-value="${basedir}/src/main/impex" 030 * @required 031 */ 032 private File dataXMLDir; 033 034 /** 035 * Configure the Ant task 036 */ 037 protected void configureTask() throws MojoExecutionException { 038 KualiTorqueDataDumpTask task = new KualiTorqueDataDumpTask(); 039 setAntTask(task); 040 super.configureTask(); 041 makeOutputDir(); 042 } 043 044 protected void makeOutputDir() throws MojoExecutionException { 045 if (getDataXMLDir().exists()) { 046 return; 047 } 048 try { 049 FileUtils.forceMkdir(getDataXMLDir()); 050 } catch (IOException e) { 051 throw new MojoExecutionException("Error creating output directory", e); 052 } 053 } 054 055 public File getDataXMLDir() { 056 return dataXMLDir; 057 } 058 059 public void setDataXMLDir(File outputDir) { 060 this.dataXMLDir = outputDir; 061 } 062 063 public String getDateFormat() { 064 return dateFormat; 065 } 066 067 public void setDateFormat(String dateFormat) { 068 this.dateFormat = dateFormat; 069 } 070 }