embulk-output-oracle 0.2.4 → 0.3.0
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 +155 -110
- data/build.gradle +6 -6
- data/classpath/embulk-output-jdbc-0.3.0.jar +0 -0
- data/classpath/embulk-output-oracle-0.3.0.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 +22 -66
- data/src/main/java/org/embulk/output/oracle/DirectBatchInsert.java +289 -289
- data/src/main/java/org/embulk/output/oracle/InsertMethod.java +8 -8
- data/src/main/java/org/embulk/output/oracle/OracleCharset.java +32 -19
- data/src/main/java/org/embulk/output/oracle/OracleOutputConnection.java +165 -134
- 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 +99 -99
- 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 +187 -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/ChildFirstClassLoader.java +42 -42
- data/src/test/java/org/embulk/output/oracle/EmbulkPluginTester.java +120 -120
- data/src/test/java/org/embulk/output/oracle/EmptyConfigSource.java +100 -100
- data/src/test/java/org/embulk/output/oracle/OracleOutputPluginTest.java +172 -161
- data/src/test/java/org/embulk/output/oracle/OracleOutputPluginTestImpl.java +445 -413
- data/src/test/java/org/embulk/output/oracle/TimestampFormatTest.java +57 -57
- data/src/test/resources/data/test1/test1.csv +3 -3
- data/src/test/resources/yml/test-insert-direct.yml +26 -26
- data/src/test/resources/yml/test-insert-oci-split.yml +26 -26
- data/src/test/resources/yml/test-insert-oci.yml +26 -26
- data/src/test/resources/yml/test-insert.yml +25 -25
- data/src/test/resources/yml/test-replace-long-name-multibyte.yml +25 -0
- data/src/test/resources/yml/test-replace-long-name.yml +25 -25
- data/src/test/resources/yml/test-replace.yml +25 -25
- data/src/test/resources/yml/test-string-timestamp.yml +25 -0
- data/src/test/resources/yml/test-url.yml +24 -24
- metadata +6 -5
- data/classpath/embulk-output-jdbc-0.2.4.jar +0 -0
- data/classpath/embulk-output-oracle-0.2.4.jar +0 -0
- data/src/main/java/org/embulk/output/oracle/setter/OracleColumnSetterFactory.java +0 -31
@@ -1,100 +1,100 @@
|
|
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
|
-
}
|
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
|
+
}
|
@@ -1,161 +1,172 @@
|
|
1
|
-
package org.embulk.output.oracle;
|
2
|
-
|
3
|
-
import java.io.File;
|
4
|
-
import java.lang.reflect.Method;
|
5
|
-
import java.net.URL;
|
6
|
-
import java.util.ArrayList;
|
7
|
-
import java.util.List;
|
8
|
-
|
9
|
-
import org.junit.BeforeClass;
|
10
|
-
import org.junit.Test;
|
11
|
-
|
12
|
-
|
13
|
-
public class OracleOutputPluginTest
|
14
|
-
{
|
15
|
-
private static class NamedObject
|
16
|
-
{
|
17
|
-
public final String name;
|
18
|
-
public final Object value;
|
19
|
-
public NamedObject(String name, Object value)
|
20
|
-
{
|
21
|
-
this.name = name;
|
22
|
-
this.value = value;
|
23
|
-
}
|
24
|
-
}
|
25
|
-
|
26
|
-
private static List<NamedObject> testObjects = new ArrayList<NamedObject>();
|
27
|
-
private static NamedObject test12c;
|
28
|
-
private static NamedObject test11g;
|
29
|
-
|
30
|
-
@BeforeClass
|
31
|
-
public static void beforeClass() throws Exception
|
32
|
-
{
|
33
|
-
if (System.getProperty("path.separator").equals(";")) {
|
34
|
-
// forw Windows
|
35
|
-
System.setProperty("file.encoding", "MS932");
|
36
|
-
}
|
37
|
-
|
38
|
-
test12c = createTest("/driver/12c/ojdbc7.jar");
|
39
|
-
if (test12c == null) {
|
40
|
-
System.out.println("Warning: you should put ojdbc7.jar (version 12c) on 'test/resources/driver/12c' directory.");
|
41
|
-
} else {
|
42
|
-
testObjects.add(test12c);
|
43
|
-
}
|
44
|
-
|
45
|
-
test11g = createTest("/driver/11g/ojdbc6.jar");
|
46
|
-
if (test11g == null) {
|
47
|
-
System.out.println("Warning: you should put ojdbc6.jar (version 11g Release 2) on 'test/resources/driver/11g' directory.");
|
48
|
-
} else {
|
49
|
-
testObjects.add(test11g);
|
50
|
-
}
|
51
|
-
}
|
52
|
-
|
53
|
-
private static NamedObject createTest(String jdbcDriverPath) throws Exception
|
54
|
-
{
|
55
|
-
String[] classPaths = System.getProperty("java.class.path").split(System.getProperty("path.separator"));
|
56
|
-
List<URL> urls = new ArrayList<URL>();
|
57
|
-
for (String classPath : classPaths) {
|
58
|
-
urls.add(new File(classPath).toURI().toURL());
|
59
|
-
}
|
60
|
-
// load Oracle JDBC driver dynamically, in order to enable to build without the driver.
|
61
|
-
URL url = OracleOutputPluginTest.class.getResource(jdbcDriverPath);
|
62
|
-
if (url == null) {
|
63
|
-
return null;
|
64
|
-
}
|
65
|
-
|
66
|
-
urls.add(url);
|
67
|
-
ClassLoader classLoader = new ChildFirstClassLoader(urls, OracleOutputPluginTest.class.getClassLoader());
|
68
|
-
Thread.currentThread().setContextClassLoader(classLoader);
|
69
|
-
|
70
|
-
Class<?> testClass = classLoader.loadClass(OracleOutputPluginTest.class.getName() + "Impl");
|
71
|
-
final Object testObject = testClass.newInstance();
|
72
|
-
final String version = (String)invoke(testObject, "beforeClass");
|
73
|
-
if (version == null) {
|
74
|
-
return null;
|
75
|
-
}
|
76
|
-
return new NamedObject(version, testObject);
|
77
|
-
}
|
78
|
-
|
79
|
-
private static void invoke(String methodName) throws Exception
|
80
|
-
{
|
81
|
-
//invoke(test12c, methodName);
|
82
|
-
for (NamedObject testObject : testObjects) {
|
83
|
-
invoke(testObject, methodName);
|
84
|
-
}
|
85
|
-
}
|
86
|
-
|
87
|
-
private static Object invoke(NamedObject testObject, String methodName) throws Exception
|
88
|
-
{
|
89
|
-
if (testObject != null) {
|
90
|
-
System.out.println("*** " + testObject.name + " ***");
|
91
|
-
return invoke(testObject.value, methodName);
|
92
|
-
}
|
93
|
-
return null;
|
94
|
-
}
|
95
|
-
|
96
|
-
private static Object invoke(Object testObject, String methodName) throws Exception
|
97
|
-
{
|
98
|
-
if (testObject != null) {
|
99
|
-
Thread.currentThread().setContextClassLoader(testObject.getClass().getClassLoader());
|
100
|
-
Method method = testObject.getClass().getMethod(methodName);
|
101
|
-
return method.invoke(testObject);
|
102
|
-
}
|
103
|
-
return null;
|
104
|
-
}
|
105
|
-
|
106
|
-
@Test
|
107
|
-
public void testInsert() throws Exception
|
108
|
-
{
|
109
|
-
invoke("testInsert");
|
110
|
-
}
|
111
|
-
|
112
|
-
@Test
|
113
|
-
public void testInsertCreate() throws Exception
|
114
|
-
{
|
115
|
-
invoke("testInsertCreate");
|
116
|
-
}
|
117
|
-
|
118
|
-
@Test
|
119
|
-
public void testInsertDirect() throws Exception
|
120
|
-
{
|
121
|
-
// ArrayIndexOutOfBoundsException thrown if using 12c driver.
|
122
|
-
invoke(test11g, "testInsertDirect");
|
123
|
-
}
|
124
|
-
|
125
|
-
@Test
|
126
|
-
public void testInsertOCI() throws Exception
|
127
|
-
{
|
128
|
-
invoke("testInsertOCI");
|
129
|
-
}
|
130
|
-
|
131
|
-
@Test
|
132
|
-
public void testInsertOCISplit() throws Exception
|
133
|
-
{
|
134
|
-
invoke("testInsertOCISplit");
|
135
|
-
}
|
136
|
-
|
137
|
-
@Test
|
138
|
-
public void testUrl() throws Exception
|
139
|
-
{
|
140
|
-
invoke("testUrl");
|
141
|
-
}
|
142
|
-
|
143
|
-
@Test
|
144
|
-
public void testReplace() throws Exception
|
145
|
-
{
|
146
|
-
invoke("testReplace");
|
147
|
-
}
|
148
|
-
|
149
|
-
@Test
|
150
|
-
public void testReplaceLongName() throws Exception
|
151
|
-
{
|
152
|
-
invoke("testReplaceLongName");
|
153
|
-
}
|
154
|
-
|
155
|
-
@Test
|
156
|
-
public void
|
157
|
-
{
|
158
|
-
invoke("
|
159
|
-
}
|
160
|
-
|
161
|
-
|
1
|
+
package org.embulk.output.oracle;
|
2
|
+
|
3
|
+
import java.io.File;
|
4
|
+
import java.lang.reflect.Method;
|
5
|
+
import java.net.URL;
|
6
|
+
import java.util.ArrayList;
|
7
|
+
import java.util.List;
|
8
|
+
|
9
|
+
import org.junit.BeforeClass;
|
10
|
+
import org.junit.Test;
|
11
|
+
|
12
|
+
|
13
|
+
public class OracleOutputPluginTest
|
14
|
+
{
|
15
|
+
private static class NamedObject
|
16
|
+
{
|
17
|
+
public final String name;
|
18
|
+
public final Object value;
|
19
|
+
public NamedObject(String name, Object value)
|
20
|
+
{
|
21
|
+
this.name = name;
|
22
|
+
this.value = value;
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
private static List<NamedObject> testObjects = new ArrayList<NamedObject>();
|
27
|
+
private static NamedObject test12c;
|
28
|
+
private static NamedObject test11g;
|
29
|
+
|
30
|
+
@BeforeClass
|
31
|
+
public static void beforeClass() throws Exception
|
32
|
+
{
|
33
|
+
if (System.getProperty("path.separator").equals(";")) {
|
34
|
+
// forw Windows
|
35
|
+
System.setProperty("file.encoding", "MS932");
|
36
|
+
}
|
37
|
+
|
38
|
+
test12c = createTest("/driver/12c/ojdbc7.jar");
|
39
|
+
if (test12c == null) {
|
40
|
+
System.out.println("Warning: you should put ojdbc7.jar (version 12c) on 'test/resources/driver/12c' directory.");
|
41
|
+
} else {
|
42
|
+
testObjects.add(test12c);
|
43
|
+
}
|
44
|
+
|
45
|
+
test11g = createTest("/driver/11g/ojdbc6.jar");
|
46
|
+
if (test11g == null) {
|
47
|
+
System.out.println("Warning: you should put ojdbc6.jar (version 11g Release 2) on 'test/resources/driver/11g' directory.");
|
48
|
+
} else {
|
49
|
+
testObjects.add(test11g);
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
53
|
+
private static NamedObject createTest(String jdbcDriverPath) throws Exception
|
54
|
+
{
|
55
|
+
String[] classPaths = System.getProperty("java.class.path").split(System.getProperty("path.separator"));
|
56
|
+
List<URL> urls = new ArrayList<URL>();
|
57
|
+
for (String classPath : classPaths) {
|
58
|
+
urls.add(new File(classPath).toURI().toURL());
|
59
|
+
}
|
60
|
+
// load Oracle JDBC driver dynamically, in order to enable to build without the driver.
|
61
|
+
URL url = OracleOutputPluginTest.class.getResource(jdbcDriverPath);
|
62
|
+
if (url == null) {
|
63
|
+
return null;
|
64
|
+
}
|
65
|
+
|
66
|
+
urls.add(url);
|
67
|
+
ClassLoader classLoader = new ChildFirstClassLoader(urls, OracleOutputPluginTest.class.getClassLoader());
|
68
|
+
Thread.currentThread().setContextClassLoader(classLoader);
|
69
|
+
|
70
|
+
Class<?> testClass = classLoader.loadClass(OracleOutputPluginTest.class.getName() + "Impl");
|
71
|
+
final Object testObject = testClass.newInstance();
|
72
|
+
final String version = (String)invoke(testObject, "beforeClass");
|
73
|
+
if (version == null) {
|
74
|
+
return null;
|
75
|
+
}
|
76
|
+
return new NamedObject(version, testObject);
|
77
|
+
}
|
78
|
+
|
79
|
+
private static void invoke(String methodName) throws Exception
|
80
|
+
{
|
81
|
+
//invoke(test12c, methodName);
|
82
|
+
for (NamedObject testObject : testObjects) {
|
83
|
+
invoke(testObject, methodName);
|
84
|
+
}
|
85
|
+
}
|
86
|
+
|
87
|
+
private static Object invoke(NamedObject testObject, String methodName) throws Exception
|
88
|
+
{
|
89
|
+
if (testObject != null) {
|
90
|
+
System.out.println("*** " + testObject.name + " ***");
|
91
|
+
return invoke(testObject.value, methodName);
|
92
|
+
}
|
93
|
+
return null;
|
94
|
+
}
|
95
|
+
|
96
|
+
private static Object invoke(Object testObject, String methodName) throws Exception
|
97
|
+
{
|
98
|
+
if (testObject != null) {
|
99
|
+
Thread.currentThread().setContextClassLoader(testObject.getClass().getClassLoader());
|
100
|
+
Method method = testObject.getClass().getMethod(methodName);
|
101
|
+
return method.invoke(testObject);
|
102
|
+
}
|
103
|
+
return null;
|
104
|
+
}
|
105
|
+
|
106
|
+
@Test
|
107
|
+
public void testInsert() throws Exception
|
108
|
+
{
|
109
|
+
invoke("testInsert");
|
110
|
+
}
|
111
|
+
|
112
|
+
@Test
|
113
|
+
public void testInsertCreate() throws Exception
|
114
|
+
{
|
115
|
+
invoke("testInsertCreate");
|
116
|
+
}
|
117
|
+
|
118
|
+
@Test
|
119
|
+
public void testInsertDirect() throws Exception
|
120
|
+
{
|
121
|
+
// ArrayIndexOutOfBoundsException thrown if using 12c driver.
|
122
|
+
invoke(test11g, "testInsertDirect");
|
123
|
+
}
|
124
|
+
|
125
|
+
@Test
|
126
|
+
public void testInsertOCI() throws Exception
|
127
|
+
{
|
128
|
+
invoke("testInsertOCI");
|
129
|
+
}
|
130
|
+
|
131
|
+
@Test
|
132
|
+
public void testInsertOCISplit() throws Exception
|
133
|
+
{
|
134
|
+
invoke("testInsertOCISplit");
|
135
|
+
}
|
136
|
+
|
137
|
+
@Test
|
138
|
+
public void testUrl() throws Exception
|
139
|
+
{
|
140
|
+
invoke("testUrl");
|
141
|
+
}
|
142
|
+
|
143
|
+
@Test
|
144
|
+
public void testReplace() throws Exception
|
145
|
+
{
|
146
|
+
invoke("testReplace");
|
147
|
+
}
|
148
|
+
|
149
|
+
@Test
|
150
|
+
public void testReplaceLongName() throws Exception
|
151
|
+
{
|
152
|
+
invoke("testReplaceLongName");
|
153
|
+
}
|
154
|
+
|
155
|
+
@Test
|
156
|
+
public void testReplaceLongNameMultibyte() throws Exception
|
157
|
+
{
|
158
|
+
invoke("testReplaceLongNameMultibyte");
|
159
|
+
}
|
160
|
+
|
161
|
+
@Test
|
162
|
+
public void testReplaceCreate() throws Exception
|
163
|
+
{
|
164
|
+
invoke("testReplaceCreate");
|
165
|
+
}
|
166
|
+
|
167
|
+
@Test
|
168
|
+
public void testStringTimestamp() throws Exception
|
169
|
+
{
|
170
|
+
invoke("testStringTimestamp");
|
171
|
+
}
|
172
|
+
}
|