embulk-output-oracle 0.4.1 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +160 -160
- data/build.gradle +6 -6
- data/classpath/embulk-output-jdbc-0.4.2.jar +0 -0
- data/classpath/{embulk-output-oracle-0.4.1.jar → embulk-output-oracle-0.4.2.jar} +0 -0
- data/lib/embulk/output/oracle.rb +3 -3
- data/src/main/cpp/common/dir-path-load.cpp +424 -424
- data/src/main/cpp/common/dir-path-load.h +36 -36
- data/src/main/cpp/common/embulk-output-oracle.cpp +196 -196
- data/src/main/cpp/common/org_embulk_output_oracle_oci_OCI.h +77 -77
- data/src/main/cpp/linux/build.sh +21 -21
- data/src/main/cpp/win/build.bat +31 -31
- data/src/main/cpp/win/dllmain.cpp +25 -25
- data/src/main/cpp/win/embulk-output-oracle.sln +39 -39
- data/src/main/cpp/win/embulk-output-oracle.vcxproj +175 -175
- data/src/main/java/org/embulk/output/OracleOutputPlugin.java +151 -153
- data/src/main/java/org/embulk/output/oracle/DirectBatchInsert.java +290 -290
- data/src/main/java/org/embulk/output/oracle/InsertMethod.java +8 -8
- data/src/main/java/org/embulk/output/oracle/OracleCharset.java +32 -32
- data/src/main/java/org/embulk/output/oracle/OracleOutputConnection.java +179 -165
- data/src/main/java/org/embulk/output/oracle/OracleOutputConnector.java +49 -49
- data/src/main/java/org/embulk/output/oracle/TimestampFormat.java +37 -37
- data/src/main/java/org/embulk/output/oracle/oci/ColumnDefinition.java +26 -26
- data/src/main/java/org/embulk/output/oracle/oci/OCI.java +139 -139
- data/src/main/java/org/embulk/output/oracle/oci/OCIManager.java +64 -64
- data/src/main/java/org/embulk/output/oracle/oci/OCIWrapper.java +96 -96
- data/src/main/java/org/embulk/output/oracle/oci/RowBuffer.java +105 -105
- data/src/main/java/org/embulk/output/oracle/oci/TableDefinition.java +24 -24
- data/src/test/cpp/common/embulk-output-oracle-test.cpp +69 -69
- data/src/test/cpp/linux/build.sh +19 -19
- data/src/test/cpp/win/build.bat +28 -28
- data/src/test/cpp/win/embulk-output-oracle-test.vcxproj +154 -154
- data/src/test/java/org/embulk/input/filesplit/LocalFileSplitInputPlugin.java +185 -187
- data/src/test/java/org/embulk/input/filesplit/PartialFile.java +49 -49
- data/src/test/java/org/embulk/input/filesplit/PartialFileInputStream.java +154 -154
- data/src/test/java/org/embulk/output/oracle/OracleOutputPluginTest.java +50 -25
- data/src/test/java/org/embulk/output/oracle/OracleOutputPluginTestImpl.java +548 -540
- data/src/test/java/org/embulk/output/oracle/TimestampFormatTest.java +57 -57
- data/src/test/java/org/embulk/output/tester/EmbulkPluginTester.java +79 -0
- data/src/test/resources/data/test1/test1.csv +3 -3
- data/src/test/resources/dummy.txt +1 -0
- data/src/test/resources/yml/test-insert-direct-direct-method.yml +26 -26
- data/src/test/resources/yml/test-insert-direct-empty.yml +25 -25
- data/src/test/resources/yml/test-insert-direct-oci-method-split.yml +28 -28
- data/src/test/resources/yml/test-insert-direct-oci-method.yml +28 -28
- data/src/test/resources/yml/test-insert-direct.yml +25 -25
- data/src/test/resources/yml/test-insert-empty.yml +27 -27
- data/src/test/resources/yml/test-insert.yml +25 -27
- data/src/test/resources/yml/test-replace-empty.yml +31 -31
- data/src/test/resources/yml/test-replace-long-name-multibyte.yml +31 -31
- data/src/test/resources/yml/test-replace-long-name.yml +31 -31
- data/src/test/resources/yml/test-replace.yml +31 -31
- data/src/test/resources/yml/test-string-timestamp.yml +28 -28
- data/src/test/resources/yml/test-url.yml +24 -24
- metadata +6 -8
- data/classpath/embulk-output-jdbc-0.4.1.jar +0 -0
- data/lib/embulk/linux_x64/libembulk-output-oracle.so +0 -0
- data/src/test/java/org/embulk/output/oracle/ChildFirstClassLoader.java +0 -42
- data/src/test/java/org/embulk/output/oracle/EmbulkPluginTester.java +0 -124
- data/src/test/java/org/embulk/output/oracle/EmptyConfigSource.java +0 -105
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: embulk-output-oracle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sadayuki Furuhashi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-08 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Inserts or updates records to a table.
|
14
14
|
email:
|
@@ -19,7 +19,6 @@ extra_rdoc_files: []
|
|
19
19
|
files:
|
20
20
|
- README.md
|
21
21
|
- build.gradle
|
22
|
-
- lib/embulk/linux_x64/libembulk-output-oracle.so
|
23
22
|
- lib/embulk/output/oracle.rb
|
24
23
|
- lib/embulk/win_x64/embulk-output-oracle.dll
|
25
24
|
- src/main/cpp/common/dir-path-load.cpp
|
@@ -51,13 +50,12 @@ files:
|
|
51
50
|
- src/test/java/org/embulk/input/filesplit/LocalFileSplitInputPlugin.java
|
52
51
|
- src/test/java/org/embulk/input/filesplit/PartialFile.java
|
53
52
|
- src/test/java/org/embulk/input/filesplit/PartialFileInputStream.java
|
54
|
-
- src/test/java/org/embulk/output/oracle/ChildFirstClassLoader.java
|
55
|
-
- src/test/java/org/embulk/output/oracle/EmbulkPluginTester.java
|
56
|
-
- src/test/java/org/embulk/output/oracle/EmptyConfigSource.java
|
57
53
|
- src/test/java/org/embulk/output/oracle/OracleOutputPluginTest.java
|
58
54
|
- src/test/java/org/embulk/output/oracle/OracleOutputPluginTestImpl.java
|
59
55
|
- src/test/java/org/embulk/output/oracle/TimestampFormatTest.java
|
56
|
+
- src/test/java/org/embulk/output/tester/EmbulkPluginTester.java
|
60
57
|
- src/test/resources/data/test1/test1.csv
|
58
|
+
- src/test/resources/dummy.txt
|
61
59
|
- src/test/resources/yml/test-insert-direct-direct-method.yml
|
62
60
|
- src/test/resources/yml/test-insert-direct-empty.yml
|
63
61
|
- src/test/resources/yml/test-insert-direct-oci-method-split.yml
|
@@ -71,8 +69,8 @@ files:
|
|
71
69
|
- src/test/resources/yml/test-replace.yml
|
72
70
|
- src/test/resources/yml/test-string-timestamp.yml
|
73
71
|
- src/test/resources/yml/test-url.yml
|
74
|
-
- classpath/embulk-output-jdbc-0.4.
|
75
|
-
- classpath/embulk-output-oracle-0.4.
|
72
|
+
- classpath/embulk-output-jdbc-0.4.2.jar
|
73
|
+
- classpath/embulk-output-oracle-0.4.2.jar
|
76
74
|
homepage: https://github.com/embulk/embulk-output-jdbc
|
77
75
|
licenses:
|
78
76
|
- Apache 2.0
|
Binary file
|
Binary file
|
@@ -1,42 +0,0 @@
|
|
1
|
-
package org.embulk.output.oracle;
|
2
|
-
|
3
|
-
import java.net.URL;
|
4
|
-
import java.net.URLClassLoader;
|
5
|
-
import java.util.List;
|
6
|
-
|
7
|
-
public class ChildFirstClassLoader
|
8
|
-
extends URLClassLoader
|
9
|
-
{
|
10
|
-
public ChildFirstClassLoader(List<URL> urls, ClassLoader parent)
|
11
|
-
{
|
12
|
-
super(urls.toArray(new URL[urls.size()]), parent);
|
13
|
-
}
|
14
|
-
|
15
|
-
@Override
|
16
|
-
protected Class<?> loadClass(String name, boolean resolve)
|
17
|
-
throws ClassNotFoundException
|
18
|
-
{
|
19
|
-
synchronized (getClassLoadingLock(name)) {
|
20
|
-
Class<?> loadedClass = findLoadedClass(name);
|
21
|
-
if (loadedClass != null) {
|
22
|
-
return resolveClass(loadedClass, resolve);
|
23
|
-
}
|
24
|
-
|
25
|
-
try {
|
26
|
-
return resolveClass(findClass(name), resolve);
|
27
|
-
} catch (ClassNotFoundException ignored) {
|
28
|
-
}
|
29
|
-
|
30
|
-
return super.loadClass(name, resolve);
|
31
|
-
}
|
32
|
-
}
|
33
|
-
|
34
|
-
private Class<?> resolveClass(Class<?> clazz, boolean resolve)
|
35
|
-
{
|
36
|
-
if (resolve) {
|
37
|
-
resolveClass(clazz);
|
38
|
-
}
|
39
|
-
return clazz;
|
40
|
-
}
|
41
|
-
|
42
|
-
}
|
@@ -1,124 +0,0 @@
|
|
1
|
-
package org.embulk.output.oracle;
|
2
|
-
|
3
|
-
import java.io.BufferedReader;
|
4
|
-
import java.io.BufferedWriter;
|
5
|
-
import java.io.File;
|
6
|
-
import java.io.FileReader;
|
7
|
-
import java.io.FileWriter;
|
8
|
-
import java.io.IOException;
|
9
|
-
import java.net.URISyntaxException;
|
10
|
-
import java.util.ArrayList;
|
11
|
-
import java.util.Arrays;
|
12
|
-
import java.util.List;
|
13
|
-
import java.util.regex.Matcher;
|
14
|
-
import java.util.regex.Pattern;
|
15
|
-
|
16
|
-
import org.embulk.EmbulkService;
|
17
|
-
import org.embulk.config.ConfigLoader;
|
18
|
-
import org.embulk.config.ConfigSource;
|
19
|
-
import org.embulk.exec.ExecutionResult;
|
20
|
-
import org.embulk.exec.BulkLoader;
|
21
|
-
import org.embulk.plugin.InjectedPluginSource;
|
22
|
-
import org.embulk.spi.ExecSession;
|
23
|
-
|
24
|
-
import com.google.inject.Binder;
|
25
|
-
import com.google.inject.Injector;
|
26
|
-
import com.google.inject.Module;
|
27
|
-
|
28
|
-
public class EmbulkPluginTester
|
29
|
-
{
|
30
|
-
private static class PluginDefinition
|
31
|
-
{
|
32
|
-
public final Class<?> iface;
|
33
|
-
public final String name;
|
34
|
-
public final Class<?> impl;
|
35
|
-
|
36
|
-
|
37
|
-
public PluginDefinition(Class<?> iface, String name, Class<?> impl)
|
38
|
-
{
|
39
|
-
this.iface = iface;
|
40
|
-
this.name = name;
|
41
|
-
this.impl = impl;
|
42
|
-
}
|
43
|
-
|
44
|
-
}
|
45
|
-
|
46
|
-
private final List<PluginDefinition> plugins = new ArrayList<PluginDefinition>();
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
public EmbulkPluginTester()
|
51
|
-
{
|
52
|
-
}
|
53
|
-
|
54
|
-
public EmbulkPluginTester(Class<?> iface, String name, Class<?> impl)
|
55
|
-
{
|
56
|
-
addPlugin(iface, name, impl);
|
57
|
-
}
|
58
|
-
|
59
|
-
public void addPlugin(Class<?> iface, String name, Class<?> impl)
|
60
|
-
{
|
61
|
-
plugins.add(new PluginDefinition(iface, name, impl));
|
62
|
-
}
|
63
|
-
|
64
|
-
public void run(String ymlPath) throws Exception
|
65
|
-
{
|
66
|
-
EmbulkService service = new EmbulkService(new EmptyConfigSource()) {
|
67
|
-
protected Iterable<? extends Module> getAdditionalModules(ConfigSource systemConfig)
|
68
|
-
{
|
69
|
-
return Arrays.asList(new Module()
|
70
|
-
{
|
71
|
-
@Override
|
72
|
-
public void configure(Binder binder)
|
73
|
-
{
|
74
|
-
for (PluginDefinition plugin : plugins) {
|
75
|
-
InjectedPluginSource.registerPluginTo(binder, plugin.iface, plugin.name, plugin.impl);
|
76
|
-
}
|
77
|
-
}
|
78
|
-
});
|
79
|
-
}
|
80
|
-
};
|
81
|
-
Injector injector = service.getInjector();
|
82
|
-
ConfigSource config = injector.getInstance(ConfigLoader.class).fromYamlFile(new File(ymlPath));
|
83
|
-
ExecSession session = ExecSession.builder(injector).fromExecConfig(config).build();
|
84
|
-
try {
|
85
|
-
BulkLoader loader = injector.getInstance(BulkLoader.class);
|
86
|
-
ExecutionResult result = loader.run(session, config);
|
87
|
-
} finally {
|
88
|
-
session.cleanup();
|
89
|
-
}
|
90
|
-
}
|
91
|
-
|
92
|
-
private File convert(String yml) {
|
93
|
-
try {
|
94
|
-
File rootPath = new File(EmbulkPluginTester.class.getResource("/resource.txt").toURI()).getParentFile();
|
95
|
-
File ymlPath = new File(EmbulkPluginTester.class.getResource(yml).toURI());
|
96
|
-
File tempYmlPath = new File(ymlPath.getParentFile(), "temp-" + ymlPath.getName());
|
97
|
-
Pattern pathPrefixPattern = Pattern.compile("^ *path(_prefix)?: '(.*)'$");
|
98
|
-
try (BufferedReader reader = new BufferedReader(new FileReader(ymlPath))) {
|
99
|
-
try (BufferedWriter writer = new BufferedWriter(new FileWriter(tempYmlPath))) {
|
100
|
-
String line;
|
101
|
-
while ((line = reader.readLine()) != null) {
|
102
|
-
Matcher matcher = pathPrefixPattern.matcher(line);
|
103
|
-
if (matcher.matches()) {
|
104
|
-
int group = 2;
|
105
|
-
writer.write(line.substring(0, matcher.start(group)));
|
106
|
-
writer.write(new File(rootPath, matcher.group(group)).getAbsolutePath());
|
107
|
-
writer.write(line.substring(matcher.end(group)));
|
108
|
-
} else {
|
109
|
-
writer.write(line);
|
110
|
-
}
|
111
|
-
writer.newLine();
|
112
|
-
}
|
113
|
-
}
|
114
|
-
}
|
115
|
-
return tempYmlPath.getAbsoluteFile();
|
116
|
-
|
117
|
-
} catch (IOException e) {
|
118
|
-
throw new RuntimeException(e);
|
119
|
-
} catch (URISyntaxException e) {
|
120
|
-
throw new RuntimeException(e);
|
121
|
-
}
|
122
|
-
}
|
123
|
-
|
124
|
-
}
|
@@ -1,105 +0,0 @@
|
|
1
|
-
package org.embulk.output.oracle;
|
2
|
-
|
3
|
-
import java.util.Collections;
|
4
|
-
import java.util.List;
|
5
|
-
import java.util.Map.Entry;
|
6
|
-
|
7
|
-
import org.embulk.config.ConfigSource;
|
8
|
-
import org.embulk.config.DataSource;
|
9
|
-
|
10
|
-
import com.fasterxml.jackson.databind.JsonNode;
|
11
|
-
import com.fasterxml.jackson.databind.node.ObjectNode;
|
12
|
-
|
13
|
-
public class EmptyConfigSource implements ConfigSource
|
14
|
-
{
|
15
|
-
|
16
|
-
@Override
|
17
|
-
public <E> E get(Class<E> type, String attrName)
|
18
|
-
{
|
19
|
-
return null;
|
20
|
-
}
|
21
|
-
|
22
|
-
@Override
|
23
|
-
public <E> E get(Class<E> type, String attrName, E defaultValue)
|
24
|
-
{
|
25
|
-
return defaultValue;
|
26
|
-
}
|
27
|
-
|
28
|
-
@Override
|
29
|
-
public List<String> getAttributeNames()
|
30
|
-
{
|
31
|
-
return Collections.emptyList();
|
32
|
-
}
|
33
|
-
|
34
|
-
@Override
|
35
|
-
public Iterable<Entry<String, JsonNode>> getAttributes()
|
36
|
-
{
|
37
|
-
return Collections.emptyList();
|
38
|
-
}
|
39
|
-
|
40
|
-
@Override
|
41
|
-
public ObjectNode getObjectNode()
|
42
|
-
{
|
43
|
-
return null;
|
44
|
-
}
|
45
|
-
|
46
|
-
@Override
|
47
|
-
public boolean isEmpty()
|
48
|
-
{
|
49
|
-
return true;
|
50
|
-
}
|
51
|
-
|
52
|
-
@Override
|
53
|
-
public ConfigSource deepCopy()
|
54
|
-
{
|
55
|
-
return this;
|
56
|
-
}
|
57
|
-
|
58
|
-
@Override
|
59
|
-
public ConfigSource getNested(String s)
|
60
|
-
{
|
61
|
-
return null;
|
62
|
-
}
|
63
|
-
|
64
|
-
@Override
|
65
|
-
public ConfigSource getNestedOrSetEmpty(String s)
|
66
|
-
{
|
67
|
-
return null;
|
68
|
-
}
|
69
|
-
|
70
|
-
@Override
|
71
|
-
public <T> T loadConfig(Class<T> class1)
|
72
|
-
{
|
73
|
-
return null;
|
74
|
-
}
|
75
|
-
|
76
|
-
@Override
|
77
|
-
public ConfigSource merge(DataSource datasource)
|
78
|
-
{
|
79
|
-
return null;
|
80
|
-
}
|
81
|
-
|
82
|
-
@Override
|
83
|
-
public ConfigSource set(String s, Object obj)
|
84
|
-
{
|
85
|
-
return null;
|
86
|
-
}
|
87
|
-
|
88
|
-
@Override
|
89
|
-
public ConfigSource setAll(DataSource datasource)
|
90
|
-
{
|
91
|
-
return null;
|
92
|
-
}
|
93
|
-
|
94
|
-
@Override
|
95
|
-
public ConfigSource setNested(String s, DataSource datasource)
|
96
|
-
{
|
97
|
-
return null;
|
98
|
-
}
|
99
|
-
|
100
|
-
@Override
|
101
|
-
public ConfigSource remove(String s) {
|
102
|
-
return null;
|
103
|
-
}
|
104
|
-
|
105
|
-
}
|