Skip to content

Commit d3494a4

Browse files
committed
- JDK 6: OCR Sample and detect HTTP and HTTPS
1 parent 4a57285 commit d3494a4

File tree

9 files changed

+113
-69
lines changed

9 files changed

+113
-69
lines changed

turing-jdk6/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
/.idea/
2+
/target/

turing-jdk6/turing-java-sdk-jdk6/pom.xml

+17-2
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,25 @@
8080
<goals>
8181
<goal>shade</goal>
8282
</goals>
83-
<phase>none</phase>
83+
<phase>package</phase>
8484
<configuration>
8585
<shadedArtifactAttached>true</shadedArtifactAttached>
86-
<shadedClassifierName>indexer</shadedClassifierName>
86+
<shadedClassifierName>all</shadedClassifierName>
87+
<minimizeJar>true</minimizeJar>
88+
<filters>
89+
<filter>
90+
<artifact>*:*</artifact>
91+
<excludes>
92+
<exclude>module-info.class</exclude>
93+
<exclude>META-INF/*.SF</exclude>
94+
<exclude>META-INF/*.DSA</exclude>
95+
<exclude>META-INF/*.RSA</exclude>
96+
<exclude>META-INF/NOTICE</exclude>
97+
<exclude>META-INF/LICENSE</exclude>
98+
<exclude>META-INF/MANIFEST.MF</exclude>
99+
</excludes>
100+
</filter>
101+
</filters>
87102
</configuration>
88103
</execution>
89104
</executions>

turing-jdk6/turing-java-sdk-jdk6/src/main/java/com/viglet/turing/client/ocr/TurFileAttributes.java

+13
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,17 @@ public Map<String, String> getMetadata() {
6868
public void setMetadata(Map<String, String> metadata) {
6969
this.metadata = metadata;
7070
}
71+
72+
@Override
73+
public String toString() {
74+
return "TurFileAttributes{" +
75+
"content='" + content + '\'' +
76+
", name='" + name + '\'' +
77+
", title='" + title + '\'' +
78+
", extension='" + extension + '\'' +
79+
", size=" + size +
80+
", lastModified=" + lastModified +
81+
", metadata=" + metadata +
82+
'}';
83+
}
7184
}

turing-jdk6/turing-java-sdk-jdk6/src/main/java/com/viglet/turing/client/ocr/TurFileSize.java

+9
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,13 @@ public float getMegaBytes() {
4343
public void setMegaBytes(float megaBytes) {
4444
this.megaBytes = megaBytes;
4545
}
46+
47+
@Override
48+
public String toString() {
49+
return "TurFileSize{" +
50+
"bytes=" + bytes +
51+
", kiloBytes=" + kiloBytes +
52+
", megaBytes=" + megaBytes +
53+
'}';
54+
}
4655
}

turing-jdk6/turing-java-sdk-jdk6/src/main/java/com/viglet/turing/client/ocr/TurOcr.java

+24-22
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.viglet.turing.client.ocr;
22

3-
import com.fasterxml.jackson.core.type.TypeReference;
43
import com.fasterxml.jackson.databind.ObjectMapper;
54
import com.viglet.turing.client.sn.TurSNServer;
65
import com.viglet.turing.client.sn.utils.TurSNClientUtils;
@@ -10,9 +9,10 @@
109

1110
import javax.net.ssl.HttpsURLConnection;
1211
import java.io.*;
12+
import java.net.HttpURLConnection;
1313
import java.net.URI;
1414
import java.net.URL;
15-
import java.util.List;
15+
import java.net.URLConnection;
1616
import java.util.logging.Level;
1717
import java.util.logging.Logger;
1818

@@ -36,6 +36,7 @@ public class TurOcr {
3636
public static final String TWO_HYPHENS = "--";
3737
public static final String BOUNDARY = "*****";
3838
public static final String MULTIPART = "multipart/form-data";
39+
public static final String HTTPS = "https";
3940

4041
public TurFileAttributes processUrl(TurSNServer turServer, URI url) {
4142
return getTurFileAttributes(turServer,
@@ -52,42 +53,43 @@ public TurFileAttributes processFile(TurSNServer turServer, File file) {
5253
private TurFileAttributes getTurFileAttributes(TurSNServer turServer, JSONObject jsonObject,
5354
String endpoint) {
5455
try {
55-
HttpsURLConnection httpsURLConnection = getHttpsURLConnection(turServer, endpoint);
56-
httpsURLConnection.setRequestProperty(CONTENT_TYPE_HEADER, APPLICATION_JSON);
57-
OutputStream os = httpsURLConnection.getOutputStream();
56+
URLConnection urlConnection = getURLConnection(turServer, endpoint);
57+
urlConnection.setRequestProperty(CONTENT_TYPE_HEADER, APPLICATION_JSON);
58+
OutputStream os = urlConnection.getOutputStream();
5859
byte[] input = jsonObject.toString().getBytes(UTF_8);
5960
os.write(input, 0, input.length);
6061

61-
new ObjectMapper().readValue(TurClientUtils.openConnectionAndRequest(httpsURLConnection),
62-
new TypeReference<List<String>>() {
63-
});
62+
return new ObjectMapper().readValue(TurClientUtils.openConnectionAndRequest(urlConnection),
63+
TurFileAttributes.class);
6464
} catch (IOException e) {
6565
logger.log(Level.SEVERE, e.getMessage(), e);
6666
}
6767
return null;
6868
}
6969

70-
private static HttpsURLConnection getHttpsURLConnection(TurSNServer turServer, String endpoint) throws IOException {
71-
URL url = new URL(null, endpoint, new sun.net.www.protocol.https.Handler());
72-
HttpsURLConnection httpsURLConnection = (HttpsURLConnection) url.openConnection();
73-
httpsURLConnection.setSSLSocketFactory(new TLSSocketConnectionFactory());
74-
httpsURLConnection.setRequestProperty(ACCEPT_HEADER, APPLICATION_JSON);
75-
httpsURLConnection.setRequestProperty(ACCEPT_ENCODING_HEADER, UTF_8);
76-
httpsURLConnection.setRequestProperty(CONNECTION, KEEP_ALIVE);
77-
httpsURLConnection.setRequestProperty(CACHE_CONTROL, NO_CACHE);
78-
httpsURLConnection.setRequestMethod(POST);
79-
httpsURLConnection.setUseCaches(false);
80-
httpsURLConnection.setDoOutput(true);
81-
TurSNClientUtils.basicAuth(httpsURLConnection, turServer.getCredentials());
70+
private static URLConnection getURLConnection(TurSNServer turServer, String endpoint) throws IOException {
71+
URL url = TurClientUtils.getURL(endpoint);
72+
URLConnection urlConnection = url.openConnection();
73+
if (endpoint.toLowerCase().startsWith(HTTPS)) {
74+
((HttpsURLConnection) urlConnection).setSSLSocketFactory(new TLSSocketConnectionFactory());
75+
}
76+
urlConnection.setRequestProperty(ACCEPT_HEADER, APPLICATION_JSON);
77+
urlConnection.setRequestProperty(ACCEPT_ENCODING_HEADER, UTF_8);
78+
urlConnection.setRequestProperty(CONNECTION, KEEP_ALIVE);
79+
urlConnection.setRequestProperty(CACHE_CONTROL, NO_CACHE);
80+
((HttpURLConnection) urlConnection).setRequestMethod(POST);
81+
urlConnection.setUseCaches(false);
82+
urlConnection.setDoOutput(true);
83+
TurSNClientUtils.basicAuth(urlConnection, turServer.getCredentials());
8284

83-
return httpsURLConnection;
85+
return urlConnection;
8486
}
8587

8688
private TurFileAttributes getTurFileAttributes(TurSNServer turServer, File file,
8789
String endpoint) {
8890
String attachmentFileName = file.getName();
8991
try {
90-
HttpsURLConnection httpsURLConnection = getHttpsURLConnection(turServer, endpoint);
92+
URLConnection httpsURLConnection = getURLConnection(turServer, endpoint);
9193
httpsURLConnection.setRequestProperty(
9294
CONTENT_TYPE_HEADER, MULTIPART + ";boundary=" + BOUNDARY);
9395
DataOutputStream request = new DataOutputStream(
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.viglet.turing.client.ocr.sample;
22

3+
import com.fasterxml.jackson.core.JsonProcessingException;
4+
import com.fasterxml.jackson.databind.ObjectMapper;
35
import com.viglet.turing.client.ocr.TurFileAttributes;
46
import com.viglet.turing.client.ocr.TurOcr;
57
import com.viglet.turing.client.sn.TurSNServer;
@@ -8,24 +10,24 @@
810
import java.net.MalformedURLException;
911
import java.net.URI;
1012
import java.net.URL;
11-
import java.util.logging.Logger;
1213

1314
public class TurClientOcrSample {
14-
private static final Logger logger = Logger.getLogger(TurClientOcrSample.class.getName());
15-
public static void main(String[] args) throws MalformedURLException {
15+
public static void main(String[] args) throws MalformedURLException, JsonProcessingException {
1616
if (args.length == 4) {
1717
String turingUrl = args[0];
1818
String username = args[1];
1919
String password = args[2];
2020
String fileUrl = args[3];
2121
TurSNServer turSNServer = new TurSNServer(new URL(turingUrl),
2222
new TurUsernamePasswordCredentials(username, password));
23-
logger.fine("--- Ocr Url");
23+
System.out.println("--- Ocr Url");
2424
TurOcr turOcr = new TurOcr();
2525
TurFileAttributes turFileAttributes = turOcr.processUrl(turSNServer, URI.create(fileUrl));
26-
logger.fine(turFileAttributes.toString());
26+
if (turFileAttributes != null) {
27+
System.out.println( new ObjectMapper().writer().withDefaultPrettyPrinter().writeValueAsString(turFileAttributes));
28+
}
2729
} else {
28-
logger.fine("Parameters: turingUrl apiKey fileUrl");
30+
System.out.println("Parameters: turingUrl username password fileUrl");
2931
}
3032
}
3133
}

turing-jdk6/turing-java-sdk-jdk6/src/main/java/com/viglet/turing/client/sn/TurSNServer.java

+18-19
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,9 @@
1616

1717
package com.viglet.turing.client.sn;
1818

19-
import java.io.BufferedReader;
2019
import java.io.IOException;
21-
import java.io.InputStreamReader;
2220
import java.io.OutputStream;
23-
import java.net.MalformedURLException;
24-
import java.net.URISyntaxException;
25-
import java.net.URL;
21+
import java.net.*;
2622
import java.text.DateFormat;
2723
import java.text.SimpleDateFormat;
2824
import java.util.ArrayList;
@@ -104,6 +100,8 @@ public class TurSNServer {
104100
private static final String ACCEPT_ENCODING_HEADER = "Accept-Encoding";
105101

106102
private static final String APPLICATION_JSON = "application/json";
103+
public static final String HTTPS = "https";
104+
public static final String POST = "POST";
107105

108106
private String turSNServer;
109107

@@ -229,33 +227,34 @@ public List<String> getLatestSearches(int rows) {
229227
TurSNClientUtils.addURLParameter(turingURL, TurSNParamType.ROWS, Integer.toString(rows));
230228

231229
if (this.getCredentials() != null) {
232-
URL url = new URL(null, turingURL.toString(), new sun.net.www.protocol.https.Handler());
233-
HttpsURLConnection httpsURLConnection = (HttpsURLConnection) url.openConnection();
234-
235-
httpsURLConnection.setSSLSocketFactory(new TLSSocketConnectionFactory());
236-
httpsURLConnection.setRequestProperty(ACCEPT_HEADER, APPLICATION_JSON);
237-
httpsURLConnection.setRequestProperty(CONTENT_TYPE_HEADER, APPLICATION_JSON);
238-
httpsURLConnection.setRequestProperty(ACCEPT_ENCODING_HEADER, UTF_8);
230+
URL url = TurClientUtils.getURL(turingURL.toString());
231+
URLConnection urlConnection = url.openConnection();
232+
if (turingURL.toString() .startsWith(HTTPS)) {
233+
((HttpsURLConnection) urlConnection).setSSLSocketFactory(new TLSSocketConnectionFactory());
234+
}
235+
urlConnection.setRequestProperty(ACCEPT_HEADER, APPLICATION_JSON);
236+
urlConnection.setRequestProperty(CONTENT_TYPE_HEADER, APPLICATION_JSON);
237+
urlConnection.setRequestProperty(ACCEPT_ENCODING_HEADER, UTF_8);
239238

240-
httpsURLConnection.setRequestMethod("POST");
241-
httpsURLConnection.setDoOutput(true);
239+
((HttpURLConnection) urlConnection).setRequestMethod(POST);
240+
urlConnection.setDoOutput(true);
242241

243-
TurSNClientUtils.basicAuth(httpsURLConnection, this.getCredentials());
242+
TurSNClientUtils.basicAuth(urlConnection, this.getCredentials());
244243

245244
if (this.getTurSNSitePostParams() != null && this.getTurSNSitePostParams().getUserId() != null) {
246245
TurSNSearchLatestRequestBean turSNSearchLatestRequestBean = new TurSNSearchLatestRequestBean();
247246
turSNSearchLatestRequestBean.setUserId(this.getTurSNSitePostParams().getUserId());
248247
String jsonResult = new ObjectMapper().writeValueAsString(turSNSearchLatestRequestBean);
249248

250-
OutputStream os = httpsURLConnection.getOutputStream();
249+
OutputStream os = urlConnection.getOutputStream();
251250
byte[] input = jsonResult.getBytes(UTF_8);
252251
os.write(input, 0, input.length);
253252
}
254253

255254

256255

257256
logger.fine(String.format("Viglet Turing Request: %s", turingURL.toString()));
258-
return new ObjectMapper().readValue(TurClientUtils.openConnectionAndRequest(httpsURLConnection),
257+
return new ObjectMapper().readValue(TurClientUtils.openConnectionAndRequest(urlConnection),
259258
new TypeReference<List<String>>() {
260259
});
261260
}
@@ -413,15 +412,15 @@ private TurSNDocumentList setResultsResponse(TurSNSiteSearchBean turSNSiteSearch
413412
private HttpsURLConnection preparePostRequest(URL turingURL) {
414413
HttpsURLConnection httpsURLConnection = null;
415414
try {
416-
URL url = new URL(null, turingURL.toString(), new sun.net.www.protocol.https.Handler());
415+
URL url = TurClientUtils.getURL(turingURL.toString());
417416
httpsURLConnection = (HttpsURLConnection) url.openConnection();
418417

419418
httpsURLConnection.setSSLSocketFactory(new TLSSocketConnectionFactory());
420419
httpsURLConnection.setRequestProperty(ACCEPT_HEADER, APPLICATION_JSON);
421420
httpsURLConnection.setRequestProperty(CONTENT_TYPE_HEADER, APPLICATION_JSON);
422421
httpsURLConnection.setRequestProperty(ACCEPT_ENCODING_HEADER, UTF_8);
423422

424-
httpsURLConnection.setRequestMethod("POST");
423+
httpsURLConnection.setRequestMethod(POST);
425424
httpsURLConnection.setDoOutput(true);
426425

427426
TurSNClientUtils.basicAuth(httpsURLConnection, this.getCredentials());

turing-jdk6/turing-java-sdk-jdk6/src/main/java/com/viglet/turing/client/sn/utils/TurSNClientUtils.java

+4-10
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,17 @@
1616
package com.viglet.turing.client.sn.utils;
1717

1818
import java.io.UnsupportedEncodingException;
19-
import java.net.MalformedURLException;
20-
import java.net.URI;
21-
import java.net.URISyntaxException;
19+
import java.net.*;
2220
import java.util.logging.Level;
2321
import java.util.logging.Logger;
2422
import java.util.LinkedHashMap;
2523
import java.util.LinkedList;
2624
import java.util.List;
2725
import java.util.Map;
2826

29-
import javax.net.ssl.HttpsURLConnection;
30-
import java.net.URL;
31-
import java.net.URLDecoder;
3227
import javax.xml.bind.DatatypeConverter;
3328

3429
import com.viglet.turing.client.sn.credentials.TurUsernamePasswordCredentials;
35-
import java.io.UnsupportedEncodingException;
3630

3731

3832
/**
@@ -44,15 +38,15 @@
4438
*
4539
*/
4640
public class TurSNClientUtils {
47-
private static Logger logger = Logger.getLogger(TurSNClientUtils.class.getName());
48-
public static void basicAuth(HttpsURLConnection httpsURLConnection, TurUsernamePasswordCredentials credentials) {
41+
private static final Logger logger = Logger.getLogger(TurSNClientUtils.class.getName());
42+
public static void basicAuth(URLConnection urlConnection, TurUsernamePasswordCredentials credentials) {
4943
if (credentials != null && credentials.getUsername() != null) {
5044
String auth = String.format("%s:%s", credentials.getUsername(), credentials.getPassword());
5145
try{
5246
String encodedAuth = DatatypeConverter.printBase64Binary
5347
(auth.getBytes("UTF-8"));
5448
String authHeader = "Basic " + encodedAuth;
55-
httpsURLConnection.setRequestProperty("Authorization", authHeader);
49+
urlConnection.setRequestProperty("Authorization", authHeader);
5650
} catch (UnsupportedEncodingException e) {
5751
logger.log(Level.SEVERE, e.getMessage(), e);
5852
}
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,53 @@
11
package com.viglet.turing.client.utils;
22

3-
import javax.net.ssl.HttpsURLConnection;
43
import java.io.BufferedReader;
54
import java.io.IOException;
65
import java.io.InputStreamReader;
6+
import java.net.HttpURLConnection;
7+
import java.net.MalformedURLException;
8+
import java.net.URL;
9+
import java.net.URLConnection;
710
import java.util.logging.Level;
811
import java.util.logging.Logger;
912

1013
public class TurClientUtils {
1114
private static final Logger logger = Logger.getLogger(TurClientUtils.class.getName());
12-
public static String openConnectionAndRequest(HttpsURLConnection httpsURLConnection) {
13-
return executeQueryRequest(httpsURLConnection);
15+
16+
public static URL getURL(String endpoint) throws MalformedURLException {
17+
return (endpoint.toLowerCase().startsWith("https")) ?
18+
new URL(null, endpoint, new sun.net.www.protocol.https.Handler()) :
19+
new URL(null, endpoint);
20+
}
21+
public static String openConnectionAndRequest(URLConnection urlConnection) {
22+
return executeQueryRequest(urlConnection);
1423
}
1524

16-
private static String executeQueryRequest(HttpsURLConnection httpsURLConnection) {
25+
private static String executeQueryRequest(URLConnection urlConnection) {
1726
try {
18-
int responseCode = httpsURLConnection.getResponseCode();
19-
return getTurResponseBody(httpsURLConnection, responseCode);
27+
int responseCode = ((HttpURLConnection) urlConnection).getResponseCode();
28+
return getTurResponseBody(urlConnection, responseCode);
2029
} catch (IOException e) {
2130
logger.log(Level.SEVERE, e.getMessage(), e);
2231
}
2332
return null;
2433
}
2534

26-
public static String getTurResponseBody(HttpsURLConnection httpsURLConnection, int result) throws IOException {
35+
public static String getTurResponseBody(URLConnection urlConnection, int result) throws IOException {
2736
StringBuilder responseBody = new StringBuilder();
2837
if (result == 200) {
29-
BufferedReader br = new BufferedReader(new InputStreamReader(httpsURLConnection.getInputStream()));
38+
BufferedReader br = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
3039
String strCurrentLine;
3140
while ((strCurrentLine = br.readLine()) != null) {
3241
responseBody.append(strCurrentLine);
3342
}
3443
} else {
35-
BufferedReader br = new BufferedReader(new InputStreamReader(httpsURLConnection.getErrorStream()));
44+
BufferedReader br = new BufferedReader(new InputStreamReader(((HttpURLConnection) urlConnection).getErrorStream()));
3645
String strCurrentLine;
3746
while ((strCurrentLine = br.readLine()) != null) {
3847
responseBody.append(strCurrentLine);
3948
}
4049
}
41-
httpsURLConnection.disconnect();
50+
((HttpURLConnection) urlConnection).disconnect();
4251
return responseBody.toString();
4352
}
4453
}

0 commit comments

Comments
 (0)