Skip to content

Commit aa70425

Browse files
authored
1.0.3
SDK updates.
2 parents 3d7ec93 + 31d7d1b commit aa70425

File tree

6 files changed

+430
-437
lines changed

6 files changed

+430
-437
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ repositories {
2424

2525
dependencies {
2626
//implementation 'org.iot-dsa:dslink-v2-websocket:+' //for a locally installed sdk
27-
implementation 'com.github.iot-dsa-v2.sdk-dslink-java-v2:dslink-v2-websocket:v+'
27+
implementation 'com.github.iot-dsa-v2.sdk-dslink-java-v2:dslink-v2-websocket:+'
2828
implementation 'commons-logging:commons-logging:+'
2929
implementation 'org.apache.commons:commons-lang3:3.6'
3030
implementation 'commons-io:commons-io:2.6'

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.0.3",
3+
"version": "1.0.4",
44
"description": "Java DSA to REST adpater DSLink",
55
"main": "bin/dslink-java-v2-restadapter",
66
"configs": {
Lines changed: 180 additions & 180 deletions
Original file line numberDiff line numberDiff line change
@@ -1,180 +1,180 @@
1-
package org.iot.dsa.dslink.restadapter;
2-
3-
import org.iot.dsa.dslink.restadapter.Util.AUTH_SCHEME;
4-
import org.iot.dsa.node.*;
5-
import org.iot.dsa.node.DSMap.Entry;
6-
import org.iot.dsa.node.action.ActionInvocation;
7-
import org.iot.dsa.node.action.ActionResult;
8-
import org.iot.dsa.node.action.DSAction;
9-
import org.iot.dsa.util.DSException;
10-
11-
public class ConnectionNode extends DSNode {
12-
13-
private DSMap parameters;
14-
private WebClientProxy clientProxy;
15-
16-
public ConnectionNode() {
17-
18-
}
19-
20-
ConnectionNode(DSMap parameters) {
21-
this.parameters = parameters;
22-
}
23-
24-
@Override
25-
protected void declareDefaults() {
26-
super.declareDefaults();
27-
declareDefault(Constants.ACT_REMOVE, makeRemoveAction());
28-
declareDefault(Constants.ACT_ADD_RULE, makeAddRuleAction());
29-
declareDefault(Constants.ACT_ADD_RULE_TABLE, makeAddRuleTableAction());
30-
}
31-
32-
@Override
33-
protected void onStarted() {
34-
if (this.parameters == null) {
35-
DSIObject o = get(Constants.PARAMS);
36-
if (o instanceof DSMap) {
37-
this.parameters = (DSMap) o;
38-
}
39-
} else {
40-
put(Constants.PARAMS, parameters.copy()).setHidden(true);
41-
}
42-
}
43-
44-
@Override
45-
protected void onStable() {
46-
switch (AUTH_SCHEME.valueOf(getAuthScheme())) {
47-
case NO_AUTH:
48-
clientProxy = WebClientProxy.buildNoAuthClient();
49-
break;
50-
case BASIC_USR_PASS:
51-
clientProxy = WebClientProxy.buildBasicUserPassClient(getUsername(), getPassword());
52-
break;
53-
case OAUTH2_CLIENT:
54-
clientProxy = WebClientProxy.buildClientFlowOAuth2Client(getClientId(), getClientSecret(), getTokenURL());
55-
break;
56-
case OAUTH2_USR_PASS:
57-
clientProxy = WebClientProxy.buildPasswordFlowOAuth2Client(getUsername(), getPassword(), getClientId(), getClientSecret(), getTokenURL());
58-
break;
59-
default:
60-
DSException.throwRuntime(new RuntimeException("Unsupported AuthScheme: " + getAuthScheme()));
61-
}
62-
put(Constants.ACT_EDIT, makeEditAction()).setTransient(true);
63-
}
64-
65-
private DSAction makeAddRuleAction() {
66-
DSAction act = new DSAction.Parameterless() {
67-
@Override
68-
public ActionResult invoke(DSInfo target, ActionInvocation invocation) {
69-
((ConnectionNode) target.get()).addRule(invocation.getParameters());
70-
return null;
71-
}
72-
};
73-
act.addParameter(Constants.NAME, DSValueType.STRING, null);
74-
act.addParameter(Constants.SUB_PATH, DSValueType.STRING, null);
75-
act.addParameter(Constants.REST_URL, DSValueType.STRING, null);
76-
act.addDefaultParameter(Constants.REST_METHOD, DSString.valueOf("POST"), null);
77-
act.addDefaultParameter(Constants.URL_PARAMETERS, new DSMap(), null);
78-
act.addParameter(Constants.REQUEST_BODY, DSValueType.STRING, null);
79-
act.addParameter(Constants.MIN_REFRESH_RATE, DSValueType.NUMBER, "Optional, ensures at least this many seconds between updates");
80-
act.addParameter(Constants.MAX_REFRESH_RATE, DSValueType.NUMBER, "Optional, ensures an update gets sent every this many seconds");
81-
return act;
82-
}
83-
84-
85-
private void addRule(DSMap parameters) {
86-
String name = parameters.getString(Constants.NAME);
87-
put(name, new RuleNode(parameters));
88-
}
89-
90-
private DSAction makeAddRuleTableAction() {
91-
DSAction act = new DSAction.Parameterless() {
92-
@Override
93-
public ActionResult invoke(DSInfo target, ActionInvocation invocation) {
94-
((ConnectionNode) target.get()).addRuleTable(invocation.getParameters());
95-
return null;
96-
}
97-
};
98-
act.addParameter(Constants.NAME, DSValueType.STRING, null);
99-
act.addDefaultParameter(Constants.RULE_TABLE, new DSList(), null);
100-
return act;
101-
}
102-
103-
private void addRuleTable(DSMap parameters) {
104-
String name = parameters.getString(Constants.NAME);
105-
DSList table = parameters.getList(Constants.RULE_TABLE);
106-
put(name, new RuleTableNode(table));
107-
}
108-
109-
private DSAction makeRemoveAction() {
110-
return new DSAction.Parameterless() {
111-
@Override
112-
public ActionResult invoke(DSInfo target, ActionInvocation invocation) {
113-
((ConnectionNode) target.get()).delete();
114-
return null;
115-
}
116-
};
117-
}
118-
119-
private void delete() {
120-
getParent().remove(getInfo());
121-
}
122-
123-
private DSIObject makeEditAction() {
124-
DSAction act = new DSAction.Parameterless() {
125-
@Override
126-
public ActionResult invoke(DSInfo target, ActionInvocation invocation) {
127-
((ConnectionNode) target.get()).edit(invocation.getParameters());
128-
return null;
129-
}
130-
};
131-
AUTH_SCHEME scheme = AUTH_SCHEME.valueOf(getAuthScheme());
132-
if (!Util.AUTH_SCHEME.OAUTH2_CLIENT.equals(scheme)) {
133-
act.addDefaultParameter(Constants.USERNAME, DSString.valueOf(getUsername()), null);
134-
act.addDefaultParameter(Constants.PASSWORD, DSString.valueOf(getPassword()), null).setEditor("password");
135-
}
136-
if (Util.AUTH_SCHEME.OAUTH2_CLIENT.equals(scheme) || Util.AUTH_SCHEME.OAUTH2_USR_PASS.equals(scheme)) {
137-
act.addDefaultParameter(Constants.CLIENT_ID, DSString.valueOf(getClientId()), null);
138-
act.addDefaultParameter(Constants.CLIENT_SECRET, DSString.valueOf(getClientSecret()), null).setEditor("password");
139-
act.addDefaultParameter(Constants.TOKEN_URL, DSString.valueOf(getTokenURL()), null);
140-
}
141-
return act;
142-
}
143-
144-
private void edit(DSMap parameters) {
145-
for (Entry entry : parameters) {
146-
this.parameters.put(entry.getKey(), entry.getValue().copy());
147-
}
148-
put(Constants.PARAMS, parameters.copy());
149-
onStable();
150-
}
151-
152-
private String getUsername() {
153-
return parameters.getString(Constants.USERNAME);
154-
}
155-
156-
private String getPassword() {
157-
return parameters.getString(Constants.PASSWORD);
158-
}
159-
160-
private String getClientId() {
161-
return parameters.getString(Constants.CLIENT_ID);
162-
}
163-
164-
private String getClientSecret() {
165-
return parameters.getString(Constants.CLIENT_SECRET);
166-
}
167-
168-
private String getTokenURL() {
169-
return parameters.getString(Constants.TOKEN_URL);
170-
}
171-
172-
private String getAuthScheme() {
173-
return parameters.getString(Constants.CONNTYPE);
174-
}
175-
176-
public WebClientProxy getWebClientProxy() {
177-
return clientProxy;
178-
}
179-
180-
}
1+
package org.iot.dsa.dslink.restadapter;
2+
3+
import org.iot.dsa.dslink.restadapter.Util.AUTH_SCHEME;
4+
import org.iot.dsa.node.*;
5+
import org.iot.dsa.node.DSMap.Entry;
6+
import org.iot.dsa.node.action.ActionInvocation;
7+
import org.iot.dsa.node.action.ActionResult;
8+
import org.iot.dsa.node.action.DSAction;
9+
import org.iot.dsa.util.DSException;
10+
11+
public class ConnectionNode extends DSNode {
12+
13+
private DSMap parameters;
14+
private WebClientProxy clientProxy;
15+
16+
public ConnectionNode() {
17+
18+
}
19+
20+
ConnectionNode(DSMap parameters) {
21+
this.parameters = parameters;
22+
}
23+
24+
@Override
25+
protected void declareDefaults() {
26+
super.declareDefaults();
27+
declareDefault(Constants.ACT_REMOVE, makeRemoveAction());
28+
declareDefault(Constants.ACT_ADD_RULE, makeAddRuleAction());
29+
declareDefault(Constants.ACT_ADD_RULE_TABLE, makeAddRuleTableAction());
30+
}
31+
32+
@Override
33+
protected void onStarted() {
34+
if (this.parameters == null) {
35+
DSIObject o = get(Constants.PARAMS);
36+
if (o instanceof DSMap) {
37+
this.parameters = (DSMap) o;
38+
}
39+
} else {
40+
put(Constants.PARAMS, parameters.copy()).setPrivate(true);
41+
}
42+
}
43+
44+
@Override
45+
protected void onStable() {
46+
switch (AUTH_SCHEME.valueOf(getAuthScheme())) {
47+
case NO_AUTH:
48+
clientProxy = WebClientProxy.buildNoAuthClient();
49+
break;
50+
case BASIC_USR_PASS:
51+
clientProxy = WebClientProxy.buildBasicUserPassClient(getUsername(), getPassword());
52+
break;
53+
case OAUTH2_CLIENT:
54+
clientProxy = WebClientProxy.buildClientFlowOAuth2Client(getClientId(), getClientSecret(), getTokenURL());
55+
break;
56+
case OAUTH2_USR_PASS:
57+
clientProxy = WebClientProxy.buildPasswordFlowOAuth2Client(getUsername(), getPassword(), getClientId(), getClientSecret(), getTokenURL());
58+
break;
59+
default:
60+
DSException.throwRuntime(new RuntimeException("Unsupported AuthScheme: " + getAuthScheme()));
61+
}
62+
put(Constants.ACT_EDIT, makeEditAction()).setTransient(true);
63+
}
64+
65+
private DSAction makeAddRuleAction() {
66+
DSAction act = new DSAction.Parameterless() {
67+
@Override
68+
public ActionResult invoke(DSInfo target, ActionInvocation invocation) {
69+
((ConnectionNode) target.get()).addRule(invocation.getParameters());
70+
return null;
71+
}
72+
};
73+
act.addParameter(Constants.NAME, DSValueType.STRING, null);
74+
act.addParameter(Constants.SUB_PATH, DSValueType.STRING, null);
75+
act.addParameter(Constants.REST_URL, DSValueType.STRING, null);
76+
act.addDefaultParameter(Constants.REST_METHOD, DSString.valueOf("POST"), null);
77+
act.addDefaultParameter(Constants.URL_PARAMETERS, new DSMap(), null);
78+
act.addParameter(Constants.REQUEST_BODY, DSValueType.STRING, null);
79+
act.addParameter(Constants.MIN_REFRESH_RATE, DSValueType.NUMBER, "Optional, ensures at least this many seconds between updates");
80+
act.addParameter(Constants.MAX_REFRESH_RATE, DSValueType.NUMBER, "Optional, ensures an update gets sent every this many seconds");
81+
return act;
82+
}
83+
84+
85+
private void addRule(DSMap parameters) {
86+
String name = parameters.getString(Constants.NAME);
87+
put(name, new RuleNode(parameters));
88+
}
89+
90+
private DSAction makeAddRuleTableAction() {
91+
DSAction act = new DSAction.Parameterless() {
92+
@Override
93+
public ActionResult invoke(DSInfo target, ActionInvocation invocation) {
94+
((ConnectionNode) target.get()).addRuleTable(invocation.getParameters());
95+
return null;
96+
}
97+
};
98+
act.addParameter(Constants.NAME, DSValueType.STRING, null);
99+
act.addDefaultParameter(Constants.RULE_TABLE, new DSList(), null);
100+
return act;
101+
}
102+
103+
private void addRuleTable(DSMap parameters) {
104+
String name = parameters.getString(Constants.NAME);
105+
DSList table = parameters.getList(Constants.RULE_TABLE);
106+
put(name, new RuleTableNode(table));
107+
}
108+
109+
private DSAction makeRemoveAction() {
110+
return new DSAction.Parameterless() {
111+
@Override
112+
public ActionResult invoke(DSInfo target, ActionInvocation invocation) {
113+
((ConnectionNode) target.get()).delete();
114+
return null;
115+
}
116+
};
117+
}
118+
119+
private void delete() {
120+
getParent().remove(getInfo());
121+
}
122+
123+
private DSIObject makeEditAction() {
124+
DSAction act = new DSAction.Parameterless() {
125+
@Override
126+
public ActionResult invoke(DSInfo target, ActionInvocation invocation) {
127+
((ConnectionNode) target.get()).edit(invocation.getParameters());
128+
return null;
129+
}
130+
};
131+
AUTH_SCHEME scheme = AUTH_SCHEME.valueOf(getAuthScheme());
132+
if (!Util.AUTH_SCHEME.OAUTH2_CLIENT.equals(scheme)) {
133+
act.addDefaultParameter(Constants.USERNAME, DSString.valueOf(getUsername()), null);
134+
act.addDefaultParameter(Constants.PASSWORD, DSString.valueOf(getPassword()), null).setEditor("password");
135+
}
136+
if (Util.AUTH_SCHEME.OAUTH2_CLIENT.equals(scheme) || Util.AUTH_SCHEME.OAUTH2_USR_PASS.equals(scheme)) {
137+
act.addDefaultParameter(Constants.CLIENT_ID, DSString.valueOf(getClientId()), null);
138+
act.addDefaultParameter(Constants.CLIENT_SECRET, DSString.valueOf(getClientSecret()), null).setEditor("password");
139+
act.addDefaultParameter(Constants.TOKEN_URL, DSString.valueOf(getTokenURL()), null);
140+
}
141+
return act;
142+
}
143+
144+
private void edit(DSMap parameters) {
145+
for (Entry entry : parameters) {
146+
this.parameters.put(entry.getKey(), entry.getValue().copy());
147+
}
148+
put(Constants.PARAMS, parameters.copy());
149+
onStable();
150+
}
151+
152+
private String getUsername() {
153+
return parameters.getString(Constants.USERNAME);
154+
}
155+
156+
private String getPassword() {
157+
return parameters.getString(Constants.PASSWORD);
158+
}
159+
160+
private String getClientId() {
161+
return parameters.getString(Constants.CLIENT_ID);
162+
}
163+
164+
private String getClientSecret() {
165+
return parameters.getString(Constants.CLIENT_SECRET);
166+
}
167+
168+
private String getTokenURL() {
169+
return parameters.getString(Constants.TOKEN_URL);
170+
}
171+
172+
private String getAuthScheme() {
173+
return parameters.getString(Constants.CONNTYPE);
174+
}
175+
176+
public WebClientProxy getWebClientProxy() {
177+
return clientProxy;
178+
}
179+
180+
}

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

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -80,19 +80,12 @@ public long getMaxSizeInBytes() {
8080
protected void onStarted() {
8181
instance = this;
8282
getLink().getConnection().subscribe(
83-
DSLinkConnection.CONNECTED, null, null,
84-
new DSISubscriber() {
83+
DSLinkConnection.CONNECTED, null, null, new DSISubscriber() {
8584
@Override
8685
public void onEvent(DSNode node, DSInfo child,
8786
DSIEvent event) {
8887
MainNode.setRequester(getLink().getConnection().getRequester());
8988
}
90-
91-
@Override
92-
public void onUnsubscribed(DSITopic topic,
93-
DSNode node,
94-
DSInfo child) {
95-
}
9689
});
9790
}
9891

0 commit comments

Comments
 (0)