Skip to content

Commit a987c21

Browse files
committed
Initial commit
1 parent 6da4c25 commit a987c21

File tree

6 files changed

+586
-0
lines changed

6 files changed

+586
-0
lines changed

pom.xml

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
5+
<groupId>br.com</groupId>
6+
<artifactId>camel1</artifactId>
7+
<version>0.0.1-SNAPSHOT</version>
8+
<packaging>jar</packaging>
9+
10+
<name>camel1</name>
11+
<url>http://maven.apache.org</url>
12+
13+
<properties>
14+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
15+
</properties>
16+
17+
<dependencies>
18+
<dependency>
19+
<groupId>junit</groupId>
20+
<artifactId>junit</artifactId>
21+
<version>4.12</version>
22+
<scope>test</scope>
23+
</dependency>
24+
25+
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
26+
<dependency>
27+
<groupId>com.fasterxml.jackson.core</groupId>
28+
<artifactId>jackson-core</artifactId>
29+
<version>2.9.6</version>
30+
</dependency>
31+
32+
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-csv -->
33+
<dependency>
34+
<groupId>com.fasterxml.jackson.dataformat</groupId>
35+
<artifactId>jackson-dataformat-csv</artifactId>
36+
<version>2.9.6</version>
37+
</dependency>
38+
39+
<dependency>
40+
<groupId>org.mongodb</groupId>
41+
<artifactId>mongodb-driver</artifactId>
42+
<version>3.2.2</version>
43+
</dependency>
44+
45+
46+
<!-- <dependency> -->
47+
<!-- <groupId>org.apache.camel</groupId> -->
48+
<!-- <artifactId>camel-mongodb</artifactId> -->
49+
<!-- <version>2.22.1</version> -->
50+
51+
<!-- </dependency> -->
52+
53+
<!-- <dependency> -->
54+
<!-- <groupId>org.apache.camel</groupId> -->
55+
<!-- <artifactId>camel-core</artifactId> -->
56+
<!-- <version>2.22.1</version> -->
57+
<!-- </dependency> -->
58+
59+
60+
</dependencies>
61+
62+
63+
64+
<profiles>
65+
<profile>
66+
<id>downloadSources</id>
67+
<activation>
68+
<activeByDefault>true</activeByDefault>
69+
</activation>
70+
<properties>
71+
<downloadSources>true</downloadSources>
72+
<downloadJavadocs>true</downloadJavadocs>
73+
</properties>
74+
</profile>
75+
</profiles>
76+
77+
</project>
78+
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package br.com.javamongocsv;
2+
3+
import java.io.File;
4+
import java.io.IOException;
5+
import java.util.List;
6+
import java.util.Map;
7+
8+
import com.fasterxml.jackson.databind.MappingIterator;
9+
import com.fasterxml.jackson.databind.ObjectMapper;
10+
import com.fasterxml.jackson.dataformat.csv.CsvMapper;
11+
import com.fasterxml.jackson.dataformat.csv.CsvSchema;
12+
13+
14+
/**
15+
* Hello world!
16+
*
17+
*/
18+
public class App
19+
{
20+
public static void main(String[] args) throws Exception {
21+
File input = new File("/private/var/lib/cobdigital/temp/data/CUSTOMERS_CAMP_EMAIL_PROGRAMADO_20180718.CSV");
22+
//File output = new File("/x/data.json");
23+
24+
List<Map<?, ?>> data = readObjectsFromCsv(input);
25+
writeAsJson(data );
26+
}
27+
28+
public static List<Map<?, ?>> readObjectsFromCsv(File file) throws IOException {
29+
CsvSchema bootstrap = CsvSchema.emptySchema().withHeader();
30+
CsvMapper csvMapper = new CsvMapper();
31+
MappingIterator<Map<?, ?>> mappingIterator = csvMapper.reader(Map.class).with(bootstrap).readValues(file);
32+
33+
return mappingIterator.readAll();
34+
}
35+
36+
public static void writeAsJson(List<Map<?, ?>> data ) throws IOException {
37+
ObjectMapper mapper = new ObjectMapper();
38+
mapper.writeValueAsString(data );
39+
System.out.println(mapper.writeValueAsString(data ));
40+
}
41+
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/*
2+
* Copyright (c) 2018 Hash Technology. Todos os direitos reservados.
3+
* Este software é confidencial e um produto proprietário da Hash Technology.
4+
* Qualquer uso não autorizado, reprodução ou transferência deste software é terminantemente proibida.
5+
*/
6+
package br.com.javamongocsv;
7+
8+
import com.mongodb.MongoClient;
9+
import com.mongodb.client.MongoCollection;
10+
import com.mongodb.client.MongoDatabase;
11+
import java.io.Serializable;
12+
import org.bson.Document;
13+
14+
/**
15+
* Classe reponsavel por gerenciar o acesso ao banco de dados mongodb.
16+
* @author Ricardo Limonta
17+
*/
18+
19+
public class DatabaseManager implements Serializable {
20+
21+
private static final long serialVersionUID = 1427551462013092880L;
22+
private static MongoClient mongoClient;
23+
private static MongoDatabase database;
24+
25+
26+
public void startup() {
27+
//cria uma conexao com o mongodb
28+
mongoClient = new MongoClient();
29+
//acessa o database analytics
30+
database = mongoClient.getDatabase("everson");
31+
}
32+
33+
/**
34+
* Retorna uma referencia da colecao solicitada.
35+
* @param collectionName nome da colecao na base de dados.
36+
* @return retorna a referencia para colecao solicitada
37+
*/
38+
public MongoCollection<Document> getCollection(String collectionName) {
39+
return database.getCollection(collectionName);
40+
}
41+
42+
43+
public void shutdown() {
44+
//fecha a conexao com o mongo
45+
mongoClient.close();
46+
}
47+
}
Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
package br.com.javamongocsv.tests;
2+
3+
import java.io.File;
4+
import java.io.IOException;
5+
import java.util.ArrayList;
6+
import java.util.List;
7+
import java.util.Map;
8+
9+
import org.bson.Document;
10+
import org.junit.Before;
11+
import org.junit.Test;
12+
13+
import com.fasterxml.jackson.annotation.JsonInclude;
14+
import com.fasterxml.jackson.databind.DeserializationConfig;
15+
import com.fasterxml.jackson.databind.DeserializationFeature;
16+
import com.fasterxml.jackson.databind.MapperFeature;
17+
import com.fasterxml.jackson.databind.MappingIterator;
18+
import com.fasterxml.jackson.databind.ObjectMapper;
19+
import com.fasterxml.jackson.databind.SerializationConfig;
20+
import com.fasterxml.jackson.databind.SerializationFeature;
21+
import com.fasterxml.jackson.dataformat.csv.CsvMapper;
22+
import com.fasterxml.jackson.dataformat.csv.CsvSchema;
23+
import com.mongodb.MongoClient;
24+
import com.mongodb.client.MongoCollection;
25+
import com.mongodb.client.MongoDatabase;
26+
import com.mongodb.client.model.InsertOneModel;
27+
import com.mongodb.client.model.WriteModel;
28+
29+
/**
30+
* Unit test for simple App.
31+
*/
32+
public class AppTest {
33+
34+
MongoDatabase mongoDatabase;
35+
MongoClient mongoClient;
36+
37+
@Before
38+
public void setUp() {
39+
mongoClient = new MongoClient();
40+
mongoDatabase = mongoClient.getDatabase("everson");
41+
}
42+
43+
@Test
44+
public void main() {
45+
try {
46+
// File input = new
47+
// File("/private/var/lib/cobdigital/temp/data/CUSTOMERS_CAMP_EMAIL_PROGRAMADO_20180718.CSV");
48+
//File input = new File("/private/var/lib/cobdigital/temp/data-json/CUSTOMERS_CAMP_EMAIL.CSV");
49+
File input = new File("/private/var/lib/cobdigital/temp/data/LOAD_CUSTOMER_23.CSV");
50+
51+
52+
List<Map<?, ?>> data = readObjectsFromCsv(input);
53+
// writeAsJson(data);
54+
bulk2(data);
55+
} catch (Exception e) {
56+
e.printStackTrace();
57+
}
58+
}
59+
60+
public List<Map<?, ?>> readObjectsFromCsv(File file) throws IOException {
61+
CsvSchema bootstrap = CsvSchema.emptySchema().withHeader();
62+
CsvMapper csvMapper = new CsvMapper();
63+
MappingIterator<Map<?, ?>> mappingIterator = csvMapper.reader(Map.class).with(bootstrap).readValues(file);
64+
65+
return mappingIterator.readAll();
66+
}
67+
68+
@SuppressWarnings("unused")
69+
public void bulk2(List<Map<?, ?>> data) throws Exception {
70+
MongoCollection<Document> bulkCollection = mongoDatabase.getCollection("bulkCollection");
71+
// Bulk operations
72+
List<WriteModel<Document>> writes = new ArrayList<WriteModel<Document>>();
73+
74+
for (Map<?, ?> map : data) {
75+
ObjectMapper mapper = new ObjectMapper();
76+
mapper.writeValueAsString(map);
77+
System.out.println(mapper.writeValueAsString(map));
78+
79+
//mapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
80+
//mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
81+
//mapper.setConfig(new DeserializationConfig().with(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT) );
82+
//mapper.setSerializationInclusion(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY);
83+
mapper = mapper.setSerializationInclusion(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL);
84+
85+
86+
87+
String jsonString = mapper.writeValueAsString(map).replaceAll("[\\[-\\]]", "");
88+
System.out.println(jsonString);
89+
Document document = Document.parse(jsonString);
90+
writes.add(new InsertOneModel<Document>(document));
91+
}
92+
bulkCollection.drop();
93+
bulkCollection.bulkWrite(writes);
94+
}
95+
96+
public void bulk(List<Map<?, ?>> data) throws Exception {
97+
ObjectMapper mapper = new ObjectMapper();
98+
mapper.writeValueAsString(data);
99+
System.out.println(mapper.writeValueAsString(data));
100+
String jsonString = mapper.writeValueAsString(data).replaceAll("[\\[-\\]]", "");
101+
System.out.println(jsonString);
102+
Document document = Document.parse(jsonString);
103+
104+
MongoCollection<Document> bulkCollection = mongoDatabase.getCollection("bulkCollection");
105+
// Bulk operations
106+
List<WriteModel<Document>> writes = new ArrayList<WriteModel<Document>>();
107+
// writes.add(new InsertOneModel<Document>(new Document("_id", 4)));
108+
// writes.add(new InsertOneModel<Document>(new Document("_id", 5)));
109+
// writes.add(new InsertOneModel<Document>(new Document("_id", 6)));
110+
// writes.add(new UpdateOneModel<Document>(new Document("_id", 1), new
111+
// Document("$set", new Document("x", 2))));
112+
// writes.add(new DeleteOneModel<Document>(new Document("_id", 2)));
113+
// writes.add(new ReplaceOneModel<Document>(new Document("_id", 3), new
114+
// Document("_id", 3).append("x", 4)));
115+
writes.add(new InsertOneModel<Document>(document));
116+
// 1. Ordered bulk operation - order is guarenteed
117+
bulkCollection.drop();
118+
bulkCollection.bulkWrite(writes);
119+
}
120+
121+
public void writeAsJson(List<Map<?, ?>> data) throws IOException {
122+
ObjectMapper mapper = new ObjectMapper();
123+
mapper.writeValueAsString(data);
124+
System.out.println(mapper.writeValueAsString(data));
125+
String jsonString = mapper.writeValueAsString(data);
126+
Document document = Document.parse(jsonString);
127+
//
128+
// String[] slitter = jsonString.split(",");
129+
// for (int i = 0; i < slitter.length; i++) {
130+
// String string = slitter[i];
131+
// Bs
132+
//
133+
// }
134+
// mongoDatabase.getCollection("camel_test").insertOne(document);
135+
// new Document().
136+
137+
//
138+
// DBCollection countersCollection = mongoDatabase.getCollection("counters");
139+
//
140+
// List<WriteModel<Document>> writes = new ArrayList<WriteModel<Document>>();
141+
142+
}
143+
144+
}

0 commit comments

Comments
 (0)