Skip to content

Commit 72f43ce

Browse files
llingllinggit
authored andcommitted
changes after review for DHFPROD-3107.
1 parent e36020d commit 72f43ce

File tree

2 files changed

+21
-40
lines changed

2 files changed

+21
-40
lines changed

marklogic-client-api/src/main/java/com/marklogic/client/datamovement/LineSplitter.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@
2424
import java.util.stream.Stream;
2525

2626
/**
27-
* java doc to do
27+
* The LineSplitter class is used to separate lines in line-delimited JSON, XML or TEXT files.
28+
* It should also work with gzip-compressed line-delimited files.
2829
*/
2930
public class LineSplitter implements Splitter<StringHandle> {
3031
private Format format = Format.JSON;
@@ -51,7 +52,7 @@ public void setFormat(Format format) {
5152
}
5253

5354
/**
54-
*
55+
* Used to return the number of objects in the stream.
5556
* @return the number of objects in the stream.
5657
*/
5758
@Override
@@ -61,7 +62,8 @@ public long getCount() {
6162

6263
/**
6364
* Takes the input stream and converts it into a stream of StringHandle. The content could be
64-
* line-delimited JSON file, line-delimited XML file or gzip-compressed line-delimited JSON file.
65+
* line-delimited JSON, XML or TEXT file. It could also be gzip-compressed line-delimited files.
66+
* Provide GZIPInputStream to the splitter when splitting gzip files.
6567
* @param input is the incoming input stream.
6668
* @return a stream of StringHandle.
6769
* @throws IOException
Lines changed: 16 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
11
package com.marklogic.client.test;
22

3-
import com.marklogic.client.DatabaseClient;
4-
import com.marklogic.client.DatabaseClientFactory;
53
import com.marklogic.client.datamovement.LineSplitter;
64
import com.marklogic.client.io.Format;
75
import com.marklogic.client.io.StringHandle;
8-
import org.junit.After;
9-
import org.junit.Before;
10-
import org.junit.Test;
6+
import org.junit.*;
117

128
import java.io.BufferedReader;
139
import java.io.File;
@@ -24,31 +20,17 @@ public class LineSplitterTest {
2420
static final private String jsonlFile = "src/test/resources/data" + File.separator + "line-delimited.jsonl";
2521
static final private String jsonlGzipFile = "src/test/resources/data" + File.separator + "line-delimited.jsonl.gz";
2622
static final private String xmlFile = "src/test/resources/data" + File.separator + "line-delimited.txt";
27-
private DatabaseClient client;
28-
29-
@Before
30-
public void setUp() {
31-
client = DatabaseClientFactory.newClient("localhost", 8012,
32-
new DatabaseClientFactory.DigestAuthContext("rest-admin", "x"));
33-
}
3423

3524
@Test
3625
public void testSplitter() throws Exception {
3726
LineSplitter splitter = new LineSplitter();
3827
Stream<StringHandle> contentStream = splitter.split(new FileInputStream(jsonlFile));
3928
assertNotNull(contentStream);
4029

41-
StringHandle[] result = contentStream.toArray(size -> new StringHandle[size]);
42-
assertNotNull(result);
43-
assertEquals(result.length, Files.lines(Paths.get(jsonlFile)).count());
44-
4530
String[] originalResult = Files.lines(Paths.get(jsonlFile))
4631
.toArray(size -> new String[size]);
4732

48-
for (int i = 0; i < result.length && i < originalResult.length; i++) {
49-
assertNotNull(result[i].get());
50-
assertEquals(result[i].get(), originalResult[i]);
51-
}
33+
checkContent(contentStream, splitter.getFormat(), originalResult);
5234
}
5335

5436
@Test
@@ -58,19 +40,12 @@ public void testSplitterGzip() throws Exception {
5840
Stream<StringHandle> contentStream = splitter.split(gzipStream);
5941
assertNotNull(contentStream);
6042

61-
StringHandle[] result = contentStream.toArray(size -> new StringHandle[size]);
62-
assertNotNull(result);
63-
6443
gzipStream = new GZIPInputStream(new FileInputStream(jsonlGzipFile));
6544
String[] originalResult = new BufferedReader(new InputStreamReader(gzipStream))
6645
.lines()
6746
.toArray(size -> new String[size]);
68-
assertEquals(result.length, originalResult.length);
6947

70-
for (int i = 0; i < result.length && i < originalResult.length; i++) {
71-
assertNotNull(result[i].get());
72-
assertEquals(result[i].get(), originalResult[i]);
73-
}
48+
checkContent(contentStream, splitter.getFormat(), originalResult);
7449
}
7550

7651
@Test
@@ -80,21 +55,25 @@ public void testSplitterXML() throws Exception {
8055
Stream<StringHandle> contentStream = splitter.split(new FileInputStream(xmlFile));
8156
assertNotNull(contentStream);
8257

58+
String[] originalResult = Files.lines(Paths.get(xmlFile))
59+
.toArray(size -> new String[size]);
60+
61+
checkContent(contentStream, splitter.getFormat(), originalResult);
62+
}
63+
64+
private void checkContent(Stream<StringHandle> contentStream,
65+
Format format,
66+
String[] originalResult) {
67+
8368
StringHandle[] result = contentStream.toArray(size -> new StringHandle[size]);
8469
assertNotNull(result);
85-
assertEquals(result.length, Files.lines(Paths.get(xmlFile)).count());
8670

87-
String[] originalResult = Files.lines(Paths.get(xmlFile))
88-
.toArray(size -> new String[size]);
89-
assertEquals(result[0].getFormat(), Format.XML);
90-
for (int i = 0; i < result.length && i < originalResult.length; i++) {
71+
assertEquals(result.length, originalResult.length);
72+
assertEquals(result[0].getFormat(), format);
73+
for (int i = 0; i < result.length; i++) {
9174
assertNotNull(result[i].get());
9275
assertEquals(result[i].get(), originalResult[i]);
9376
}
9477
}
9578

96-
@After
97-
public void closeSetUp() {
98-
client.release();
99-
}
10079
}

0 commit comments

Comments
 (0)