Skip to content

Commit fb9235d

Browse files
author
Aaron
committed
1.4.0
- Dependency updates. - Set connection timeout using read timeout.
1 parent a28f9ff commit fb9235d

File tree

3 files changed

+57
-42
lines changed

3 files changed

+57
-42
lines changed

build.gradle

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
apply plugin: 'application'
22
apply plugin: 'java-library'
3-
apply plugin: 'maven'
3+
apply plugin: 'maven-publish'
44

55
// Version is taken from dslink.json
66
build {
@@ -13,21 +13,21 @@ sourceCompatibility = 1.8
1313
targetCompatibility = 1.8
1414

1515
repositories {
16-
jcenter()
1716
mavenLocal()
17+
mavenCentral()
1818
maven {
1919
url 'https://jitpack.io'
2020
}
2121
}
2222

2323
dependencies {
24-
//api 'org.iot-dsa:dslink-v2-websocket:+' //for a locally installed sdk
25-
api 'com.github.iot-dsa-v2.sdk-dslink-java-v2:dslink-v2-websocket:0.75.3'
24+
//api 'org.iot-dsa:dslink-v2-websocket:0.76.0' //for a locally installed sdk
25+
api 'com.github.iot-dsa-v2.sdk-dslink-java-v2:dslink-v2-websocket:0.76.0'
2626
api 'com.squareup.okhttp3:okhttp:3.14.0'
27-
api 'com.squareup.okhttp3:okhttp-urlconnection:3.8.1'
28-
api 'org.apache.commons:commons-lang3:3.8.1'
29-
implementation 'commons-logging:commons-logging:+'
30-
implementation 'commons-io:commons-io:2.6'
27+
api 'com.squareup.okhttp3:okhttp-urlconnection:3.14.0'
28+
api 'org.apache.commons:commons-lang3:3.11'
29+
implementation 'commons-logging:commons-logging:1.2'
30+
implementation 'commons-io:commons-io:2.8.0'
3131

3232
testImplementation 'junit:junit:+'
3333
testImplementation 'org.mockito:mockito-all:+'
@@ -41,6 +41,14 @@ jar {
4141
}
4242
}
4343

44+
publishing {
45+
publications {
46+
mavenJava(MavenPublication) {
47+
from components.java
48+
}
49+
}
50+
}
51+
4452
applicationDistribution.from(new File(project.projectDir, "/dslink.json"))
4553

4654
run {

dslink.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "dslink-java-v2-restadapter",
3-
"version": "1.3.4",
3+
"version": "1.4.0",
44
"description": "Java DSA to REST adapter DSLink",
55
"main": "bin/dslink-java-v2-restadapter",
66
"configs": {

src/main/java/org/iot/dsa/dslink/restadapter/WebClientProxy.java

Lines changed: 40 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,38 @@
11
package org.iot.dsa.dslink.restadapter;
22

3-
4-
import java.net.CookieManager;
5-
import java.net.CookiePolicy;
6-
import java.time.Duration;
7-
import org.iot.dsa.logging.DSLogger;
8-
import org.iot.dsa.node.DSMap;
9-
import org.iot.dsa.node.DSMap.Entry;
3+
104
import okhttp3.HttpUrl;
115
import okhttp3.JavaNetCookieJar;
126
import okhttp3.MediaType;
137
import okhttp3.OkHttpClient;
148
import okhttp3.Request;
159
import okhttp3.RequestBody;
1610
import okhttp3.Response;
11+
import org.iot.dsa.logging.DSLogger;
12+
import org.iot.dsa.node.DSMap;
13+
import org.iot.dsa.node.DSMap.Entry;
14+
15+
import java.net.CookieManager;
16+
import java.net.CookiePolicy;
17+
import java.util.concurrent.TimeUnit;
1718

1819
public class WebClientProxy extends DSLogger {
20+
1921
private CredentialProvider credentials;
20-
private Duration readTimeout = null;
21-
private Duration writeTimeout = null;
22+
private long readTimeout = -1;
23+
private long writeTimeout = -1;
2224

2325
private OkHttpClient client;
2426

2527
public WebClientProxy(CredentialProvider credentials) {
2628
this.credentials = credentials;
2729
}
28-
29-
public WebClientProxy(CredentialProvider credentials, long readTimeoutMillis, long writeTimeoutMillis) {
30+
31+
public WebClientProxy(CredentialProvider credentials, long readTimeoutMillis,
32+
long writeTimeoutMillis) {
3033
this(credentials);
31-
this.readTimeout = Duration.ofMillis(readTimeoutMillis);
32-
this.writeTimeout = Duration.ofMillis(writeTimeoutMillis);
34+
this.readTimeout = readTimeoutMillis;
35+
this.writeTimeout = writeTimeoutMillis;
3336
}
3437

3538
// public static WebClientProxy buildNoAuthClient() {
@@ -47,14 +50,16 @@ public WebClientProxy(CredentialProvider credentials, long readTimeoutMillis, lo
4750
// public static WebClientProxy buildPasswordFlowOAuth2Client(String username, String password, String clientID, String clientSecret, String tokenURL) {
4851
// return new WebClientProxy(username, password, clientID, clientSecret, tokenURL, Util.AUTH_SCHEME.OAUTH2_USR_PASS);
4952
// }
50-
51-
public Request.Builder prepareInvoke(String httpMethod, String address, DSMap urlParameters, Object body) {
53+
54+
public Request.Builder prepareInvoke(String httpMethod, String address, DSMap urlParameters,
55+
Object body) {
5256
prepareClient();
5357
Request.Builder requestBuilder = prepareRequest(address, urlParameters);
54-
requestBuilder.method(httpMethod, body == null ? null : RequestBody.create(MediaType.parse("application/json"), body.toString()));
58+
requestBuilder.method(httpMethod, body == null ? null :
59+
RequestBody.create(MediaType.parse("application/json"), body.toString()));
5560
return requestBuilder;
5661
}
57-
62+
5863
public Response completeInvoke(Request.Builder requestBuilder) {
5964
Request request = requestBuilder.build();
6065
Response response = null;
@@ -65,17 +70,17 @@ public Response completeInvoke(Request.Builder requestBuilder) {
6570
}
6671
return response;
6772
}
68-
73+
6974

7075
public Response invoke(String httpMethod, String address, DSMap urlParameters, Object body) {
7176
Request.Builder requestBuilder = prepareInvoke(httpMethod, address, urlParameters, body);
7277
return completeInvoke(requestBuilder);
7378
}
74-
79+
7580
private Request.Builder prepareRequest(String address, DSMap urlParameters) {
7681
HttpUrl.Builder urlBuilder = HttpUrl.parse(address).newBuilder();
7782

78-
for (Entry entry: urlParameters) {
83+
for (Entry entry : urlParameters) {
7984
Object value = Util.dsElementToObject(entry.getValue());
8085
urlBuilder.addQueryParameter(entry.getKey(), value.toString());
8186
}
@@ -85,13 +90,13 @@ private Request.Builder prepareRequest(String address, DSMap urlParameters) {
8590
.addHeader("Content-Type", "application/json");
8691
return requestBuilder;
8792
}
88-
93+
8994
private void prepareClient() {
9095
if (client == null) {
91-
client = configureAuthorization();
96+
client = configureAuthorization();
9297
}
9398
}
94-
99+
95100
// private static int responseCount(Response response) {
96101
// int result = 1;
97102
// while ((response = response.priorResponse()) != null) {
@@ -116,41 +121,43 @@ private OkHttpClient configureAuthorization() {
116121
// return response.request().newBuilder().header("Authorization", credential).build();
117122
// }
118123
// });
119-
clientBuilder.addInterceptor(new BasicAuthInterceptor(credentials.getUsername(), credentials.getPassword()));
124+
clientBuilder.addInterceptor(new BasicAuthInterceptor(credentials.getUsername(),
125+
credentials.getPassword()));
120126
break;
121127
case OAUTH2_CLIENT:
122128
case OAUTH2_USR_PASS:
123129
clientBuilder.addInterceptor(new OAuthInterceptor(this));
124130
// client.header(HttpHeaders.AUTHORIZATION, authManager.createAuthorizationHeader());
125131
break;
126132
}
127-
if (readTimeout != null) {
128-
clientBuilder.readTimeout(readTimeout);
133+
if (readTimeout > 0) {
134+
clientBuilder.connectTimeout(readTimeout, TimeUnit.MILLISECONDS);
135+
clientBuilder.readTimeout(readTimeout, TimeUnit.MILLISECONDS);
129136
}
130-
if (writeTimeout != null) {
131-
clientBuilder.writeTimeout(writeTimeout);
137+
if (writeTimeout > 0) {
138+
clientBuilder.writeTimeout(writeTimeout, TimeUnit.MILLISECONDS);
132139
}
133140
CookieManager cookieManager = new CookieManager();
134141
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
135142
clientBuilder.cookieJar(new JavaNetCookieJar(cookieManager));
136143
return clientBuilder.build();
137144
}
138-
145+
139146
public OkHttpClient getClient() {
140147
if (client == null) {
141148
prepareClient();
142149
}
143150
return client;
144151
}
145-
152+
146153
public String getUsername() {
147154
return credentials.getUsername();
148155
}
149156

150157
public String getPassword() {
151158
return credentials.getPassword();
152159
}
153-
160+
154161
public String getClientID() {
155162
return credentials.getClientId();
156163
}
@@ -162,9 +169,9 @@ public String getClientSecret() {
162169
public String getTokenURL() {
163170
return credentials.getTokenURL();
164171
}
165-
172+
166173
public Util.AUTH_SCHEME getScheme() {
167174
return credentials.getAuthScheme();
168175
}
169-
176+
170177
}

0 commit comments

Comments
 (0)