DbUnitのOperationタスク
調子にのってOperationタスクでもformat="excel"が使えるようにしてみる.
diff -uNr java.old/org/dbunit/ant/Operation.java java/org/dbunit/ant/Operation.java --- java.old/org/dbunit/ant/Operation.java Fri Jan 23 01:05:38 2004 +++ java/org/dbunit/ant/Operation.java Wed Apr 28 10:00:40 2004 @@ -25,6 +25,7 @@ import org.dbunit.database.IDatabaseConnection; import org.dbunit.dataset.CachedDataSet; import org.dbunit.dataset.IDataSet; +import org.dbunit.dataset.excel.XlsDataSet; import org.dbunit.dataset.stream.IDataSetProducer; import org.dbunit.dataset.stream.StreamingDataSet; import org.dbunit.dataset.xml.FlatXmlProducer; @@ -36,6 +37,7 @@ import java.io.File; import java.io.IOException; +import java.io.FileInputStream; import java.sql.SQLException; /** @@ -161,6 +163,7 @@ public void setFormat(String format) { if (format.equalsIgnoreCase("flat") + || format.equalsIgnoreCase("excel") || format.equalsIgnoreCase("xml")) { this.format = format; @@ -195,6 +198,9 @@ { producer = new XmlProducer(new InputSource(src.toURL().toString())); } + else if (format.equalsIgnoreCase("excel")) { + // 何もしない + } else { producer = new FlatXmlProducer(new InputSource(src.toURL().toString())); @@ -205,11 +211,13 @@ { dataset = new StreamingDataSet(producer); } + else if (format.equalsIgnoreCase("excel")) { + dataset = new XlsDataSet(new FileInputStream(src)); + } else { dataset = new CachedDataSet(producer); } - _operation.execute(connection, dataset); } catch (IOException e)
こんなでイイのか...