embulk-output-oracle 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
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
- }