diff --git a/oscarwriter/pom.xml b/oscarwriter/pom.xml
new file mode 100644
index 00000000..51643c76
--- /dev/null
+++ b/oscarwriter/pom.xml
@@ -0,0 +1,84 @@
+
+
+
+ datax-all
+ com.alibaba.datax
+ 0.0.1-SNAPSHOT
+
+ 4.0.0
+ oscarwriter
+ oscarwriter
+ jar
+ writer data into oscar database
+
+
+
+ com.alibaba.datax
+ datax-common
+ ${datax-project-version}
+
+
+ slf4j-log4j12
+ org.slf4j
+
+
+
+
+ org.slf4j
+ slf4j-api
+
+
+ ch.qos.logback
+ logback-classic
+
+
+
+ com.alibaba.datax
+ plugin-rdbms-util
+ ${datax-project-version}
+
+
+ com.oscar
+ oscar
+ 7.0.8
+ system
+ ${basedir}/src/main/lib/oscarJDBC.jar
+
+
+
+
+
+
+
+ maven-compiler-plugin
+
+ ${jdk-version}
+ ${jdk-version}
+ ${project-sourceEncoding}
+
+
+
+
+ maven-assembly-plugin
+
+
+ src/main/assembly/package.xml
+
+ datax
+
+
+
+ dwzip
+ package
+
+ single
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/oscarwriter/src/main/assembly/package.xml b/oscarwriter/src/main/assembly/package.xml
new file mode 100644
index 00000000..2401372e
--- /dev/null
+++ b/oscarwriter/src/main/assembly/package.xml
@@ -0,0 +1,42 @@
+
+
+
+ dir
+
+ false
+
+
+ src/main/resources
+
+ plugin.json
+ plugin_job_template.json
+
+ plugin/writer/oscarwriter
+
+
+ src/main/lib
+
+ oscarJDBC.jar
+
+ plugin/writer/oscarwriter/libs
+
+
+ target/
+
+ oscarwriter-0.0.1-SNAPSHOT.jar
+
+ plugin/writer/oscarwriter
+
+
+
+
+
+ false
+ plugin/writer/oscarwriter/libs
+ runtime
+
+
+
diff --git a/oscarwriter/src/main/java/com/alibaba/datax/plugin/writer/oscarwriter/OscarWriter.java b/oscarwriter/src/main/java/com/alibaba/datax/plugin/writer/oscarwriter/OscarWriter.java
new file mode 100644
index 00000000..0602bb44
--- /dev/null
+++ b/oscarwriter/src/main/java/com/alibaba/datax/plugin/writer/oscarwriter/OscarWriter.java
@@ -0,0 +1,90 @@
+package com.alibaba.datax.plugin.writer.oscarwriter;
+
+import com.alibaba.datax.common.plugin.RecordReceiver;
+import com.alibaba.datax.common.spi.Writer;
+import com.alibaba.datax.common.util.Configuration;
+import com.alibaba.datax.plugin.rdbms.util.DataBaseType;
+import com.alibaba.datax.plugin.rdbms.writer.CommonRdbmsWriter;
+
+import java.util.List;
+
+public class OscarWriter extends Writer {
+ private static final DataBaseType DATABASE_TYPE = DataBaseType.Oscar;
+
+ public static class Job extends Writer.Job {
+ private Configuration originalConfig = null;
+ private CommonRdbmsWriter.Job commonRdbmsWriterJob;
+
+ @Override
+ public void preCheck() {
+ this.init();
+ this.commonRdbmsWriterJob.writerPreCheck(this.originalConfig, DATABASE_TYPE);
+ }
+
+ @Override
+ public void init() {
+ this.originalConfig = super.getPluginJobConf();
+
+ this.commonRdbmsWriterJob = new CommonRdbmsWriter.Job(
+ DATABASE_TYPE);
+ this.commonRdbmsWriterJob.init(this.originalConfig);
+ }
+
+ @Override
+ public void prepare() {
+ this.commonRdbmsWriterJob.prepare(this.originalConfig);
+ }
+
+ @Override
+ public List split(int mandatoryNumber) {
+ return this.commonRdbmsWriterJob.split(this.originalConfig,
+ mandatoryNumber);
+ }
+
+ @Override
+ public void post() {
+ this.commonRdbmsWriterJob.post(this.originalConfig);
+ }
+
+ @Override
+ public void destroy() {
+ this.commonRdbmsWriterJob.destroy(this.originalConfig);
+ }
+
+ }
+
+ public static class Task extends Writer.Task {
+ private Configuration writerSliceConfig;
+ private CommonRdbmsWriter.Task commonRdbmsWriterTask;
+
+ @Override
+ public void init() {
+ this.writerSliceConfig = super.getPluginJobConf();
+ this.commonRdbmsWriterTask = new CommonRdbmsWriter.Task(DATABASE_TYPE);
+ this.commonRdbmsWriterTask.init(this.writerSliceConfig);
+ }
+
+ @Override
+ public void prepare() {
+ this.commonRdbmsWriterTask.prepare(this.writerSliceConfig);
+ }
+
+ @Override
+ public void startWrite(RecordReceiver recordReceiver) {
+ this.commonRdbmsWriterTask.startWrite(recordReceiver,
+ this.writerSliceConfig, super.getTaskPluginCollector());
+ }
+
+ @Override
+ public void post() {
+ this.commonRdbmsWriterTask.post(this.writerSliceConfig);
+ }
+
+ @Override
+ public void destroy() {
+ this.commonRdbmsWriterTask.destroy(this.writerSliceConfig);
+ }
+
+ }
+
+}
diff --git a/oscarwriter/src/main/java/com/alibaba/datax/plugin/writer/oscarwriter/OscarWriterErrorCode.java b/oscarwriter/src/main/java/com/alibaba/datax/plugin/writer/oscarwriter/OscarWriterErrorCode.java
new file mode 100644
index 00000000..7ae21576
--- /dev/null
+++ b/oscarwriter/src/main/java/com/alibaba/datax/plugin/writer/oscarwriter/OscarWriterErrorCode.java
@@ -0,0 +1,31 @@
+package com.alibaba.datax.plugin.writer.oscarwriter;
+
+import com.alibaba.datax.common.spi.ErrorCode;
+
+public enum OscarWriterErrorCode implements ErrorCode {
+ ;
+
+ private final String code;
+ private final String describe;
+
+ private OscarWriterErrorCode(String code, String describe) {
+ this.code = code;
+ this.describe = describe;
+ }
+
+ @Override
+ public String getCode() {
+ return this.code;
+ }
+
+ @Override
+ public String getDescription() {
+ return this.describe;
+ }
+
+ @Override
+ public String toString() {
+ return String.format("Code:[%s], Describe:[%s]. ", this.code,
+ this.describe);
+ }
+}
diff --git a/oscarwriter/src/main/resources/plugin.json b/oscarwriter/src/main/resources/plugin.json
new file mode 100644
index 00000000..f1a99fec
--- /dev/null
+++ b/oscarwriter/src/main/resources/plugin.json
@@ -0,0 +1,6 @@
+{
+ "name": "oscarwriter",
+ "class": "com.alibaba.datax.plugin.writer.oscarwriter.OscarWriter",
+ "description": "useScene: prod. mechanism: Jdbc connection using the database, execute insert sql. warn: The more you know about the database, the less problems you encounter.",
+ "developer": "linjiayu"
+}
\ No newline at end of file
diff --git a/oscarwriter/src/main/resources/plugin_job_template.json b/oscarwriter/src/main/resources/plugin_job_template.json
new file mode 100644
index 00000000..3c5e0707
--- /dev/null
+++ b/oscarwriter/src/main/resources/plugin_job_template.json
@@ -0,0 +1,15 @@
+{
+ "name": "oscarwriter",
+ "parameter": {
+ "username": "",
+ "password": "",
+ "column": [],
+ "preSql": [],
+ "connection": [
+ {
+ "jdbcUrl": "",
+ "table": []
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/package.xml b/package.xml
index 2323ce18..49e3c4ec 100755
--- a/package.xml
+++ b/package.xml
@@ -378,5 +378,12 @@
datax
+
+ oscarwriter/target/datax/
+
+ **/*.*
+
+ datax
+
diff --git a/plugin-rdbms-util/src/main/java/com/alibaba/datax/plugin/rdbms/util/DataBaseType.java b/plugin-rdbms-util/src/main/java/com/alibaba/datax/plugin/rdbms/util/DataBaseType.java
index eb82aa44..b6b8140c 100755
--- a/plugin-rdbms-util/src/main/java/com/alibaba/datax/plugin/rdbms/util/DataBaseType.java
+++ b/plugin-rdbms-util/src/main/java/com/alibaba/datax/plugin/rdbms/util/DataBaseType.java
@@ -20,7 +20,8 @@ public enum DataBaseType {
DB2("db2", "com.ibm.db2.jcc.DB2Driver"),
ADS("ads","com.mysql.jdbc.Driver"),
ClickHouse("clickhouse", "ru.yandex.clickhouse.ClickHouseDriver"),
- KingbaseES("kingbasees", "com.kingbase8.Driver");
+ KingbaseES("kingbasees", "com.kingbase8.Driver"),
+ Oscar("oscar", "com.oscar.Driver");
private String typeName;
@@ -55,13 +56,15 @@ public enum DataBaseType {
case DB2:
break;
case PostgreSQL:
- break;
+ break;
case ClickHouse:
break;
case RDBMS:
break;
case KingbaseES:
break;
+ case Oscar:
+ break;
default:
throw DataXException.asDataXException(DBUtilErrorCode.UNSUPPORTED_TYPE, "unsupported database type.");
}
@@ -96,13 +99,15 @@ public enum DataBaseType {
case DB2:
break;
case PostgreSQL:
- break;
+ break;
case ClickHouse:
break;
case RDBMS:
break;
case KingbaseES:
break;
+ case Oscar:
+ break;
default:
throw DataXException.asDataXException(DBUtilErrorCode.UNSUPPORTED_TYPE, "unsupported database type.");
}
@@ -128,7 +133,8 @@ public enum DataBaseType {
case DB2:
case PostgreSQL:
case KingbaseES:
- break;
+ case Oscar:
+ break;
default:
throw DataXException.asDataXException(DBUtilErrorCode.UNSUPPORTED_TYPE, "unsupported database type.");
}
@@ -152,6 +158,7 @@ public enum DataBaseType {
case DB2:
case PostgreSQL:
case KingbaseES:
+ case Oscar:
break;
default:
throw DataXException.asDataXException(DBUtilErrorCode.UNSUPPORTED_TYPE, "unsupported database type");
@@ -177,6 +184,8 @@ public enum DataBaseType {
break;
case KingbaseES:
break;
+ case Oscar:
+ break;
default:
throw DataXException.asDataXException(DBUtilErrorCode.UNSUPPORTED_TYPE, "unsupported database type");
}
diff --git a/pom.xml b/pom.xml
index 5b7f8e48..b28dcb8e 100755
--- a/pom.xml
+++ b/pom.xml
@@ -97,6 +97,7 @@
gdbwriter
cassandrawriter
clickhousewriter
+ oscarwriter
plugin-rdbms-util
plugin-unstructured-storage-util