Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ apply plugin: 'java'
apply plugin: 'maven'

group 'org.iot.dsa'
version '0.11.0'
version '0.20.0'

sourceCompatibility = 1.6
targetCompatibility = 1.6
Expand Down
14 changes: 7 additions & 7 deletions docs/DeveloperGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,22 +53,22 @@ Nodes are where application specific logic is bound to the link architecture. N
will use various lifecycle callbacks to trigger their logic.

First you must create a root node. It is the hook for the rest of your functionality. The
convention is to name it RootNode, but make sure it is in a unique package so that multiple links
convention is to name it MainNode, but make sure it is in a unique package so that multiple links
can be run in the same process.

Then you will probably create additional nodes that will be descendants in the tree rooted by your
root node.

### Root Node
### Main Node

All links require a single root node and it must subclass
[org.iot.dsa.dslink.DSRootNode](https://iot-dsa-v2.github.io/sdk-dslink-java-v2/javadoc/index.html?org/iot/dsa/dslink/DSRootNode.html).
The convention is to name the class RootNode but the package must be unique from any other
RootNodes so that multiple links can be run in the same process.
[org.iot.dsa.dslink.DSMainNode](https://iot-dsa-v2.github.io/sdk-dslink-java-v2/javadoc/index.html?org/iot/dsa/dslink/DSMainNode.html).
The convention is to name the class MainNode but the package must be unique from any other
MainNodes so that multiple links can be run in the same process.

When a link launches the first time, the type of the root node is looked up **dslink.json**.
The config _rootType_ must store the fully qualified class name of the root node. After the first
launch, the configuration database is serialized and the _rootType_ config will longer have an
The config _mainType_ must store the fully qualified class name of the root node. After the first
launch, the configuration database is serialized and the _mainType_ config will longer have an
impact.

### Additional Nodes
Expand Down
33 changes: 20 additions & 13 deletions docs/javadoc/allclasses-frame.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_40) on Mon Nov 13 13:50:40 PST 2017 -->
<title>All Classes (dslink-core 0.11.0 API)</title>
<meta name="date" content="2017-11-13">
<!-- Generated by javadoc (1.8.0_40) on Mon Mar 05 09:54:10 PST 2018 -->
<title>All Classes (dslink-core 0.19.0 API)</title>
<meta name="date" content="2018-03-05">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
Expand All @@ -27,11 +27,10 @@ <h1 class="bar">All&nbsp;Classes</h1>
<li><a href="org/iot/dsa/dslink/responder/ApiObject.html" title="interface in org.iot.dsa.dslink.responder" target="classFrame"><span class="interfaceName">ApiObject</span></a></li>
<li><a href="org/iot/dsa/logging/AsyncLogHandler.html" title="class in org.iot.dsa.logging" target="classFrame">AsyncLogHandler</a></li>
<li><a href="org/iot/dsa/node/action/DSAction.html" title="class in org.iot.dsa.node.action" target="classFrame">DSAction</a></li>
<li><a href="org/iot/dsa/node/action/DSActionValues.html" title="class in org.iot.dsa.node.action" target="classFrame">DSActionValues</a></li>
<li><a href="org/iot/dsa/io/DSBase64.html" title="class in org.iot.dsa.io" target="classFrame">DSBase64</a></li>
<li><a href="org/iot/dsa/node/DSBool.html" title="class in org.iot.dsa.node" target="classFrame">DSBool</a></li>
<li><a href="org/iot/dsa/io/DSByteBuffer.html" title="class in org.iot.dsa.io" target="classFrame">DSByteBuffer</a></li>
<li><a href="org/iot/dsa/node/DSBytes.html" title="class in org.iot.dsa.node" target="classFrame">DSBytes</a></li>
<li><a href="org/iot/dsa/io/DSCharBuffer.html" title="class in org.iot.dsa.io" target="classFrame">DSCharBuffer</a></li>
<li><a href="org/iot/dsa/time/DSDateTime.html" title="class in org.iot.dsa.time" target="classFrame">DSDateTime</a></li>
<li><a href="org/iot/dsa/node/DSDouble.html" title="class in org.iot.dsa.node" target="classFrame">DSDouble</a></li>
<li><a href="org/iot/dsa/node/DSElement.html" title="class in org.iot.dsa.node" target="classFrame">DSElement</a></li>
Expand All @@ -42,23 +41,26 @@ <h1 class="bar">All&nbsp;Classes</h1>
<li><a href="org/iot/dsa/node/DSGroup.html" title="class in org.iot.dsa.node" target="classFrame">DSGroup</a></li>
<li><a href="org/iot/dsa/node/DSIBoolean.html" title="interface in org.iot.dsa.node" target="classFrame"><span class="interfaceName">DSIBoolean</span></a></li>
<li><a href="org/iot/dsa/node/DSIEnum.html" title="interface in org.iot.dsa.node" target="classFrame"><span class="interfaceName">DSIEnum</span></a></li>
<li><a href="org/iot/dsa/node/event/DSIEvent.html" title="interface in org.iot.dsa.node.event" target="classFrame"><span class="interfaceName">DSIEvent</span></a></li>
<li><a href="org/iot/dsa/logging/DSILevels.html" title="interface in org.iot.dsa.logging" target="classFrame"><span class="interfaceName">DSILevels</span></a></li>
<li><a href="org/iot/dsa/node/DSIMetadata.html" title="interface in org.iot.dsa.node" target="classFrame"><span class="interfaceName">DSIMetadata</span></a></li>
<li><a href="org/iot/dsa/node/DSInfo.html" title="class in org.iot.dsa.node" target="classFrame">DSInfo</a></li>
<li><a href="org/iot/dsa/node/event/DSInfoTopic.html" title="class in org.iot.dsa.node.event" target="classFrame">DSInfoTopic</a></li>
<li><a href="org/iot/dsa/node/event/DSInfoTopic.Event.html" title="enum in org.iot.dsa.node.event" target="classFrame">DSInfoTopic.Event</a></li>
<li><a href="org/iot/dsa/node/DSInt.html" title="class in org.iot.dsa.node" target="classFrame">DSInt</a></li>
<li><a href="org/iot/dsa/dslink/DSInternalErrorException.html" title="class in org.iot.dsa.dslink" target="classFrame">DSInternalErrorException</a></li>
<li><a href="org/iot/dsa/time/DSInterval.html" title="enum in org.iot.dsa.time" target="classFrame">DSInterval</a></li>
<li><a href="org/iot/dsa/node/DSINumber.html" title="interface in org.iot.dsa.node" target="classFrame"><span class="interfaceName">DSINumber</span></a></li>
<li><a href="org/iot/dsa/dslink/DSInvalidPathException.html" title="class in org.iot.dsa.dslink" target="classFrame">DSInvalidPathException</a></li>
<li><a href="org/iot/dsa/node/DSIObject.html" title="interface in org.iot.dsa.node" target="classFrame"><span class="interfaceName">DSIObject</span></a></li>
<li><a href="org/iot/dsa/io/DSIoException.html" title="class in org.iot.dsa.io" target="classFrame">DSIoException</a></li>
<li><a href="org/iot/dsa/security/DSIPassword.html" title="interface in org.iot.dsa.security" target="classFrame"><span class="interfaceName">DSIPassword</span></a></li>
<li><a href="org/iot/dsa/node/DSIPublisher.html" title="interface in org.iot.dsa.node" target="classFrame"><span class="interfaceName">DSIPublisher</span></a></li>
<li><a href="org/iot/dsa/node/DSIPublisher.Event.html" title="enum in org.iot.dsa.node" target="classFrame">DSIPublisher.Event</a></li>
<li><a href="org/iot/dsa/io/DSIReader.html" title="interface in org.iot.dsa.io" target="classFrame"><span class="interfaceName">DSIReader</span></a></li>
<li><a href="org/iot/dsa/io/DSIReader.Token.html" title="enum in org.iot.dsa.io" target="classFrame">DSIReader.Token</a></li>
<li><a href="org/iot/dsa/dslink/DSIRequester.html" title="interface in org.iot.dsa.dslink" target="classFrame"><span class="interfaceName">DSIRequester</span></a></li>
<li><a href="org/iot/dsa/dslink/DSIResponder.html" title="interface in org.iot.dsa.dslink" target="classFrame"><span class="interfaceName">DSIResponder</span></a></li>
<li><a href="org/iot/dsa/node/DSIStatus.html" title="interface in org.iot.dsa.node" target="classFrame"><span class="interfaceName">DSIStatus</span></a></li>
<li><a href="org/iot/dsa/node/DSISubscriber.html" title="interface in org.iot.dsa.node" target="classFrame"><span class="interfaceName">DSISubscriber</span></a></li>
<li><a href="org/iot/dsa/node/DSIStorable.html" title="interface in org.iot.dsa.node" target="classFrame"><span class="interfaceName">DSIStorable</span></a></li>
<li><a href="org/iot/dsa/node/event/DSISubscriber.html" title="interface in org.iot.dsa.node.event" target="classFrame"><span class="interfaceName">DSISubscriber</span></a></li>
<li><a href="org/iot/dsa/node/DSIValue.html" title="interface in org.iot.dsa.node" target="classFrame"><span class="interfaceName">DSIValue</span></a></li>
<li><a href="org/iot/dsa/io/DSIWriter.html" title="interface in org.iot.dsa.io" target="classFrame"><span class="interfaceName">DSIWriter</span></a></li>
<li><a href="org/iot/dsa/node/DSJavaEnum.html" title="class in org.iot.dsa.node" target="classFrame">DSJavaEnum</a></li>
Expand All @@ -68,11 +70,11 @@ <h1 class="bar">All&nbsp;Classes</h1>
<li><a href="org/iot/dsa/dslink/DSLinkConfig.html" title="class in org.iot.dsa.dslink" target="classFrame">DSLinkConfig</a></li>
<li><a href="org/iot/dsa/dslink/DSLinkConnection.html" title="class in org.iot.dsa.dslink" target="classFrame">DSLinkConnection</a></li>
<li><a href="org/iot/dsa/dslink/DSLinkConnection.Listener.html" title="interface in org.iot.dsa.dslink" target="classFrame"><span class="interfaceName">DSLinkConnection.Listener</span></a></li>
<li><a href="org/iot/dsa/dslink/DSLinkSession.html" title="interface in org.iot.dsa.dslink" target="classFrame"><span class="interfaceName">DSLinkSession</span></a></li>
<li><a href="org/iot/dsa/node/DSList.html" title="class in org.iot.dsa.node" target="classFrame">DSList</a></li>
<li><a href="org/iot/dsa/logging/DSLogger.html" title="class in org.iot.dsa.logging" target="classFrame">DSLogger</a></li>
<li><a href="org/iot/dsa/logging/DSLogging.html" title="class in org.iot.dsa.logging" target="classFrame">DSLogging</a></li>
<li><a href="org/iot/dsa/node/DSLong.html" title="class in org.iot.dsa.node" target="classFrame">DSLong</a></li>
<li><a href="org/iot/dsa/dslink/DSMainNode.html" title="class in org.iot.dsa.dslink" target="classFrame">DSMainNode</a></li>
<li><a href="org/iot/dsa/node/DSMap.html" title="class in org.iot.dsa.node" target="classFrame">DSMap</a></li>
<li><a href="org/iot/dsa/node/DSMap.Entry.html" title="class in org.iot.dsa.node" target="classFrame">DSMap.Entry</a></li>
<li><a href="org/iot/dsa/node/DSMetadata.html" title="class in org.iot.dsa.node" target="classFrame">DSMetadata</a></li>
Expand All @@ -85,15 +87,21 @@ <h1 class="bar">All&nbsp;Classes</h1>
<li><a href="org/iot/dsa/dslink/DSPermissionException.html" title="class in org.iot.dsa.dslink" target="classFrame">DSPermissionException</a></li>
<li><a href="org/iot/dsa/node/DSRegistry.html" title="class in org.iot.dsa.node" target="classFrame">DSRegistry</a></li>
<li><a href="org/iot/dsa/dslink/DSRequestException.html" title="class in org.iot.dsa.dslink" target="classFrame">DSRequestException</a></li>
<li><a href="org/iot/dsa/dslink/DSRootNode.html" title="class in org.iot.dsa.dslink" target="classFrame">DSRootNode</a></li>
<li><a href="org/iot/dsa/DSRuntime.html" title="class in org.iot.dsa" target="classFrame">DSRuntime</a></li>
<li><a href="org/iot/dsa/DSRuntime.Timer.html" title="class in org.iot.dsa" target="classFrame">DSRuntime.Timer</a></li>
<li><a href="org/iot/dsa/node/DSStatus.html" title="class in org.iot.dsa.node" target="classFrame">DSStatus</a></li>
<li><a href="org/iot/dsa/node/DSString.html" title="class in org.iot.dsa.node" target="classFrame">DSString</a></li>
<li><a href="org/iot/dsa/dslink/DSSysNode.html" title="class in org.iot.dsa.dslink" target="classFrame">DSSysNode</a></li>
<li><a href="org/iot/dsa/time/DSTime.html" title="class in org.iot.dsa.time" target="classFrame">DSTime</a></li>
<li><a href="org/iot/dsa/node/event/DSTopic.html" title="class in org.iot.dsa.node.event" target="classFrame">DSTopic</a></li>
<li><a href="org/iot/dsa/dslink/DSUnsupportedException.html" title="class in org.iot.dsa.dslink" target="classFrame">DSUnsupportedException</a></li>
<li><a href="org/iot/dsa/util/DSUtil.html" title="class in org.iot.dsa.util" target="classFrame">DSUtil</a></li>
<li><a href="org/iot/dsa/node/DSValue.html" title="class in org.iot.dsa.node" target="classFrame">DSValue</a></li>
<li><a href="org/iot/dsa/node/DSValueNode.html" title="class in org.iot.dsa.node" target="classFrame">DSValueNode</a></li>
<li><a href="org/iot/dsa/node/event/DSValueTopic.html" title="class in org.iot.dsa.node.event" target="classFrame">DSValueTopic</a></li>
<li><a href="org/iot/dsa/node/event/DSValueTopic.Event.html" title="enum in org.iot.dsa.node.event" target="classFrame">DSValueTopic.Event</a></li>
<li><a href="org/iot/dsa/node/DSValueType.html" title="enum in org.iot.dsa.node" target="classFrame">DSValueType</a></li>
<li><a href="org/iot/dsa/dslink/requester/ErrorType.html" title="enum in org.iot.dsa.dslink.requester" target="classFrame">ErrorType</a></li>
<li><a href="org/iot/dsa/logging/FileLogHandler.html" title="class in org.iot.dsa.logging" target="classFrame">FileLogHandler</a></li>
<li><a href="org/iot/dsa/dslink/responder/InboundInvokeRequest.html" title="interface in org.iot.dsa.dslink.responder" target="classFrame"><span class="interfaceName">InboundInvokeRequest</span></a></li>
<li><a href="org/iot/dsa/dslink/responder/InboundListRequest.html" title="interface in org.iot.dsa.dslink.responder" target="classFrame"><span class="interfaceName">InboundListRequest</span></a></li>
Expand All @@ -104,8 +112,6 @@ <h1 class="bar">All&nbsp;Classes</h1>
<li><a href="org/iot/dsa/io/json/JsonConstants.html" title="interface in org.iot.dsa.io.json" target="classFrame"><span class="interfaceName">JsonConstants</span></a></li>
<li><a href="org/iot/dsa/io/json/JsonReader.html" title="class in org.iot.dsa.io.json" target="classFrame">JsonReader</a></li>
<li><a href="org/iot/dsa/io/json/JsonWriter.html" title="class in org.iot.dsa.io.json" target="classFrame">JsonWriter</a></li>
<li><a href="org/iot/dsa/io/msgpack/MsgpackReader.html" title="class in org.iot.dsa.io.msgpack" target="classFrame">MsgpackReader</a></li>
<li><a href="org/iot/dsa/io/msgpack/MsgpackWriter.html" title="class in org.iot.dsa.io.msgpack" target="classFrame">MsgpackWriter</a></li>
<li><a href="org/iot/dsa/io/NodeDecoder.html" title="class in org.iot.dsa.io" target="classFrame">NodeDecoder</a></li>
<li><a href="org/iot/dsa/io/NodeEncoder.html" title="class in org.iot.dsa.io" target="classFrame">NodeEncoder</a></li>
<li><a href="org/iot/dsa/dslink/requester/OutboundInvokeHandler.html" title="interface in org.iot.dsa.dslink.requester" target="classFrame"><span class="interfaceName">OutboundInvokeHandler</span></a></li>
Expand All @@ -116,6 +122,7 @@ <h1 class="bar">All&nbsp;Classes</h1>
<li><a href="org/iot/dsa/dslink/requester/OutboundStream.html" title="interface in org.iot.dsa.dslink.requester" target="classFrame"><span class="interfaceName">OutboundStream</span></a></li>
<li><a href="org/iot/dsa/dslink/requester/OutboundSubscribeHandler.html" title="interface in org.iot.dsa.dslink.requester" target="classFrame"><span class="interfaceName">OutboundSubscribeHandler</span></a></li>
<li><a href="org/iot/dsa/logging/PrintStreamLogHandler.html" title="class in org.iot.dsa.logging" target="classFrame">PrintStreamLogHandler</a></li>
<li><a href="org/iot/dsa/dslink/requester/SimpleInvokeHandler.html" title="class in org.iot.dsa.dslink.requester" target="classFrame">SimpleInvokeHandler</a></li>
<li><a href="org/iot/dsa/dslink/requester/SimpleRequestHandler.html" title="class in org.iot.dsa.dslink.requester" target="classFrame">SimpleRequestHandler</a></li>
<li><a href="org/iot/dsa/dslink/responder/SubscriptionCloseHandler.html" title="interface in org.iot.dsa.dslink.responder" target="classFrame"><span class="interfaceName">SubscriptionCloseHandler</span></a></li>
</ul>
Expand Down
Loading