src/main/java/org/embulk/output/jdbc/setter/ColumnSetterFactory.java in embulk-output-jdbc-0.7.11 vs src/main/java/org/embulk/output/jdbc/setter/ColumnSetterFactory.java in embulk-output-jdbc-0.7.12
- old
+ new
@@ -1,11 +1,15 @@
package org.embulk.output.jdbc.setter;
+import com.google.common.base.Optional;
import java.util.Calendar;
import java.util.Locale;
import java.sql.Types;
import org.joda.time.DateTimeZone;
+import org.embulk.config.ConfigSource;
+import org.embulk.config.Task;
+import org.embulk.spi.Exec;
import org.embulk.spi.time.TimestampFormatter;
import org.embulk.output.jdbc.BatchInsert;
import org.embulk.output.jdbc.JdbcColumn;
import org.embulk.output.jdbc.JdbcColumnOption;
import org.embulk.config.ConfigException;
@@ -71,15 +75,22 @@
default:
throw new ConfigException(String.format("Unknown value_type '%s' for column '%s'", option.getValueType(), column.getName()));
}
}
+ private static interface FormatterIntlTask extends Task, TimestampFormatter.Task {}
+ private static interface FormatterIntlColumnOption extends Task, TimestampFormatter.TimestampColumnOption {}
+
protected TimestampFormatter newTimestampFormatter(JdbcColumnOption option)
{
+ // TODO: Switch to a newer TimestampFormatter constructor after a reasonable interval.
+ // Traditional constructor is used here for compatibility.
+ final ConfigSource configSource = Exec.newConfigSource();
+ configSource.set("format", option.getTimestampFormat().getFormat());
+ configSource.set("timezone", getTimeZone(option));
return new TimestampFormatter(
- option.getJRuby(),
- option.getTimestampFormat().getFormat(),
- getTimeZone(option));
+ Exec.newConfigSource().loadConfig(FormatterIntlTask.class),
+ Optional.fromNullable(configSource.loadConfig(FormatterIntlColumnOption.class)));
}
protected Calendar newCalendar(JdbcColumnOption option)
{
return Calendar.getInstance(getTimeZone(option).toTimeZone(), Locale.ENGLISH);