Skip to content

Commit 7a87c76

Browse files
authored
0.53.0
- Combine text and binary transports into one. - Add more logging methods to DSLogger. - Event and action invocation logging in DSNode, really nice!
2 parents 0f473ce + 562446a commit 7a87c76

37 files changed

+1229
-1317
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ subprojects {
55
apply plugin: 'maven'
66

77
group 'org.iot-dsa'
8-
version '0.52.0'
8+
version '0.53.0'
99

1010
sourceCompatibility = 1.8
1111
targetCompatibility = 1.8
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package org.iot.dsa.dslink.websocket;
2+
3+
import com.acuity.iot.dsa.dslink.sys.cert.SysCertService;
4+
import com.acuity.iot.dsa.dslink.transport.DSTransportWs;
5+
import java.net.URI;
6+
import javax.websocket.ClientEndpoint;
7+
import org.glassfish.tyrus.client.ClientManager;
8+
import org.glassfish.tyrus.client.ClientProperties;
9+
import org.glassfish.tyrus.client.SslContextConfigurator;
10+
import org.glassfish.tyrus.client.SslEngineConfigurator;
11+
import org.iot.dsa.util.DSException;
12+
13+
/**
14+
* Websocket client implementation of DSTextTransport based on Tyrus, the reference implementation
15+
* of JSR 356.
16+
*
17+
* @author Aaron Hansen
18+
*/
19+
@ClientEndpoint
20+
public class ClientTransport extends DSTransportWs {
21+
22+
///////////////////////////////////////////////////////////////////////////
23+
// Fields
24+
///////////////////////////////////////////////////////////////////////////
25+
26+
private ClientManager client;
27+
28+
/////////////////////////////////////////////////////////////////
29+
// Methods - In alphabetical order by method name.
30+
/////////////////////////////////////////////////////////////////
31+
32+
@Override
33+
public void open() {
34+
try {
35+
if (isOpen()) {
36+
return;
37+
}
38+
if (client == null) {
39+
client = ClientManager.createClient();
40+
}
41+
URI connUri = new URI(getConnectionUrl());
42+
if ("wss".equalsIgnoreCase(connUri.getScheme())) {
43+
SslEngineConfigurator sslEngineConfigurator = new SslEngineConfigurator(
44+
new SslContextConfigurator());
45+
sslEngineConfigurator
46+
.setHostnameVerifier(SysCertService.getInstance().getHostnameVerifier());
47+
client.getProperties()
48+
.put(ClientProperties.SSL_ENGINE_CONFIGURATOR, sslEngineConfigurator);
49+
}
50+
client.connectToServer(this, connUri);
51+
} catch (Exception x) {
52+
DSException.throwRuntime(x);
53+
}
54+
}
55+
56+
}
Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,19 @@
11
package org.iot.dsa.dslink.websocket;
22

3-
import com.acuity.iot.dsa.dslink.transport.DSBinaryTransport;
4-
import com.acuity.iot.dsa.dslink.transport.DSTextTransport;
53
import com.acuity.iot.dsa.dslink.transport.DSTransport.Factory;
64
import org.iot.dsa.dslink.DSLinkConnection;
7-
import org.iot.dsa.logging.DSLogger;
85

96
/**
107
* Websocket client implementation of DSTransport.Factory based on Tyrus, the reference
118
* implementation of JSR 356.
129
*
1310
* @author Aaron Hansen
1411
*/
15-
public class StandaloneTransportFactory extends DSLogger implements Factory {
12+
public class StandaloneTransportFactory implements Factory {
1613

1714
@Override
18-
public DSBinaryTransport makeBinaryTransport(DSLinkConnection conn) {
19-
return new WsBinaryTransport();
20-
}
21-
22-
@Override
23-
public DSTextTransport makeTextTransport(DSLinkConnection conn) {
24-
return new WsTextTransport();
15+
public ClientTransport makeTransport(DSLinkConnection conn) {
16+
return new ClientTransport();
2517
}
2618

2719
}

dslink-v2-websocket/src/main/java/org/iot/dsa/dslink/websocket/WsBinaryTransport.java

Lines changed: 0 additions & 119 deletions
This file was deleted.

0 commit comments

Comments
 (0)