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.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +160 -160
  3. data/build.gradle +6 -6
  4. data/classpath/embulk-output-jdbc-0.4.2.jar +0 -0
  5. data/classpath/{embulk-output-oracle-0.4.1.jar → embulk-output-oracle-0.4.2.jar} +0 -0
  6. data/lib/embulk/output/oracle.rb +3 -3
  7. data/src/main/cpp/common/dir-path-load.cpp +424 -424
  8. data/src/main/cpp/common/dir-path-load.h +36 -36
  9. data/src/main/cpp/common/embulk-output-oracle.cpp +196 -196
  10. data/src/main/cpp/common/org_embulk_output_oracle_oci_OCI.h +77 -77
  11. data/src/main/cpp/linux/build.sh +21 -21
  12. data/src/main/cpp/win/build.bat +31 -31
  13. data/src/main/cpp/win/dllmain.cpp +25 -25
  14. data/src/main/cpp/win/embulk-output-oracle.sln +39 -39
  15. data/src/main/cpp/win/embulk-output-oracle.vcxproj +175 -175
  16. data/src/main/java/org/embulk/output/OracleOutputPlugin.java +151 -153
  17. data/src/main/java/org/embulk/output/oracle/DirectBatchInsert.java +290 -290
  18. data/src/main/java/org/embulk/output/oracle/InsertMethod.java +8 -8
  19. data/src/main/java/org/embulk/output/oracle/OracleCharset.java +32 -32
  20. data/src/main/java/org/embulk/output/oracle/OracleOutputConnection.java +179 -165
  21. data/src/main/java/org/embulk/output/oracle/OracleOutputConnector.java +49 -49
  22. data/src/main/java/org/embulk/output/oracle/TimestampFormat.java +37 -37
  23. data/src/main/java/org/embulk/output/oracle/oci/ColumnDefinition.java +26 -26
  24. data/src/main/java/org/embulk/output/oracle/oci/OCI.java +139 -139
  25. data/src/main/java/org/embulk/output/oracle/oci/OCIManager.java +64 -64
  26. data/src/main/java/org/embulk/output/oracle/oci/OCIWrapper.java +96 -96
  27. data/src/main/java/org/embulk/output/oracle/oci/RowBuffer.java +105 -105
  28. data/src/main/java/org/embulk/output/oracle/oci/TableDefinition.java +24 -24
  29. data/src/test/cpp/common/embulk-output-oracle-test.cpp +69 -69
  30. data/src/test/cpp/linux/build.sh +19 -19
  31. data/src/test/cpp/win/build.bat +28 -28
  32. data/src/test/cpp/win/embulk-output-oracle-test.vcxproj +154 -154
  33. data/src/test/java/org/embulk/input/filesplit/LocalFileSplitInputPlugin.java +185 -187
  34. data/src/test/java/org/embulk/input/filesplit/PartialFile.java +49 -49
  35. data/src/test/java/org/embulk/input/filesplit/PartialFileInputStream.java +154 -154
  36. data/src/test/java/org/embulk/output/oracle/OracleOutputPluginTest.java +50 -25
  37. data/src/test/java/org/embulk/output/oracle/OracleOutputPluginTestImpl.java +548 -540
  38. data/src/test/java/org/embulk/output/oracle/TimestampFormatTest.java +57 -57
  39. data/src/test/java/org/embulk/output/tester/EmbulkPluginTester.java +79 -0
  40. data/src/test/resources/data/test1/test1.csv +3 -3
  41. data/src/test/resources/dummy.txt +1 -0
  42. data/src/test/resources/yml/test-insert-direct-direct-method.yml +26 -26
  43. data/src/test/resources/yml/test-insert-direct-empty.yml +25 -25
  44. data/src/test/resources/yml/test-insert-direct-oci-method-split.yml +28 -28
  45. data/src/test/resources/yml/test-insert-direct-oci-method.yml +28 -28
  46. data/src/test/resources/yml/test-insert-direct.yml +25 -25
  47. data/src/test/resources/yml/test-insert-empty.yml +27 -27
  48. data/src/test/resources/yml/test-insert.yml +25 -27
  49. data/src/test/resources/yml/test-replace-empty.yml +31 -31
  50. data/src/test/resources/yml/test-replace-long-name-multibyte.yml +31 -31
  51. data/src/test/resources/yml/test-replace-long-name.yml +31 -31
  52. data/src/test/resources/yml/test-replace.yml +31 -31
  53. data/src/test/resources/yml/test-string-timestamp.yml +28 -28
  54. data/src/test/resources/yml/test-url.yml +24 -24
  55. metadata +6 -8
  56. data/classpath/embulk-output-jdbc-0.4.1.jar +0 -0
  57. data/lib/embulk/linux_x64/libembulk-output-oracle.so +0 -0
  58. data/src/test/java/org/embulk/output/oracle/ChildFirstClassLoader.java +0 -42
  59. data/src/test/java/org/embulk/output/oracle/EmbulkPluginTester.java +0 -124
  60. 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.1
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-07-06 00:00:00.000000000 Z
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.1.jar
75
- - classpath/embulk-output-oracle-0.4.1.jar
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
@@ -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
- }