You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@edgent.apache.org by dl...@apache.org on 2017/02/08 16:26:29 UTC
[1/2] incubator-edgent git commit: [Edgent-376] Support use in WIoTP
Managed Device context
Repository: incubator-edgent
Updated Branches:
refs/heads/master c23d628fd -> 3699553fd
[Edgent-376] Support use in WIoTP Managed Device context
- add IotpDevice(DeviceClient) ctor
- add a quickstart sample that uses it
Project: http://git-wip-us.apache.org/repos/asf/incubator-edgent/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-edgent/commit/dbc094e4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-edgent/tree/dbc094e4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-edgent/diff/dbc094e4
Branch: refs/heads/master
Commit: dbc094e4064435638b1f64c436e8035fa857deb3
Parents: c23d628
Author: Dale LaBossiere <dl...@us.ibm.com>
Authored: Tue Feb 7 15:07:24 2017 -0500
Committer: Dale LaBossiere <dl...@us.ibm.com>
Committed: Tue Feb 7 15:55:25 2017 -0500
----------------------------------------------------------------------
connectors/.classpath | 10 +-
.../edgent/connectors/iotp/IotpDevice.java | 44 ++++++--
.../connectors/iotp/runtime/IotpConnector.java | 9 +-
.../connectors/iotp/IotpQuickstart2.java | 107 +++++++++++++++++++
scripts/connectors/iotp/runiotpquickstart2.sh | 40 +++++++
5 files changed, 196 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/dbc094e4/connectors/.classpath
----------------------------------------------------------------------
diff --git a/connectors/.classpath b/connectors/.classpath
index fa2b4e2..f166304 100644
--- a/connectors/.classpath
+++ b/connectors/.classpath
@@ -27,12 +27,12 @@
<classpathentry kind="src" path="wsclient/src/main/java"/>
<classpathentry kind="src" path="wsclient-javax.websocket/src/main/java"/>
<classpathentry kind="src" path="wsclient-javax.websocket/src/test/java"/>
- <classpathentry kind="src" path="javax.websocket-client/src/main/resources"/>
+ <classpathentry kind="src" path="javax.websocket-client/src/main/resources"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/http/ext/commons-codec-1.9.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/http/ext/commons-logging-1.2.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/http/ext/httpclient-4.5.1.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/http/ext/httpcore-4.4.4.jar"/>
- <classpathentry kind="lib" path="../externalJars/java8/connectors/iotp/ext/watson-iot-0.1.5.jar"/>
+ <classpathentry exported="true" kind="lib" path="../externalJars/java8/connectors/iotp/ext/watson-iot-0.1.5.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/iotp/ext/commons-lang3-3.4.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/iotp/ext/commons-codec-1.10.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/iotp/ext/commons-logging-1.2.jar"/>
@@ -40,7 +40,7 @@
<classpathentry kind="lib" path="../externalJars/java8/connectors/iotp/ext/httpclient-4.5.1.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/iotp/ext/httpcore-4.4.3.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/iotp/ext/joda-time-2.9.2.jar"/>
- <classpathentry kind="lib" path="../externalJars/java8/connectors/iotp/ext/org.eclipse.paho.client.mqttv3-1.1.0.jar"/>
+ <classpathentry exported="true" kind="lib" path="../externalJars/java8/connectors/iotp/ext/org.eclipse.paho.client.mqttv3-1.1.0.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/kafka/ext/kafka_2.10-0.8.2.2.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/kafka/ext/kafka-clients-0.8.2.2.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/kafka/ext/log4j-1.2.16.jar"/>
@@ -55,13 +55,13 @@
<classpathentry kind="lib" path="../externalJars/java8/connectors/javax.websocket-client/ext/websocket-api-9.3.6.v20151106.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/javax.websocket-client/ext/websocket-client-9.3.6.v20151106.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/javax.websocket-client/ext/websocket-common-9.3.6.v20151106.jar"/>
- <classpathentry kind="lib" path="../externalJars/java8/connectors/javax.websocket-server/ext/javax-websocket-server-impl-9.3.6.v20151106.jar"/>
+ <classpathentry kind="lib" path="../externalJars/java8/connectors/javax.websocket-server/ext/javax-websocket-server-impl-9.3.6.v20151106.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/javax.websocket-server/ext/jetty-http-9.3.6.v20151106.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/javax.websocket-server/ext/jetty-io-9.3.6.v20151106.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/javax.websocket-server/ext/jetty-security-9.3.6.v20151106.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/javax.websocket-server/ext/jetty-server-9.3.6.v20151106.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/javax.websocket-server/ext/jetty-servlet-9.3.6.v20151106.jar"/>
- <classpathentry kind="lib" path="../externalJars/java8/connectors/javax.websocket-server/ext/javax.servlet-api-3.1.0.jar"/>
+ <classpathentry kind="lib" path="../externalJars/java8/connectors/javax.websocket-server/ext/javax.servlet-api-3.1.0.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/javax.websocket-server/ext/websocket-server-9.3.6.v20151106.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/javax.websocket-server/ext/websocket-servlet-9.3.6.v20151106.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/dbc094e4/connectors/iotp/src/main/java/org/apache/edgent/connectors/iotp/IotpDevice.java
----------------------------------------------------------------------
diff --git a/connectors/iotp/src/main/java/org/apache/edgent/connectors/iotp/IotpDevice.java b/connectors/iotp/src/main/java/org/apache/edgent/connectors/iotp/IotpDevice.java
index ad26d7d..e0a4127 100644
--- a/connectors/iotp/src/main/java/org/apache/edgent/connectors/iotp/IotpDevice.java
+++ b/connectors/iotp/src/main/java/org/apache/edgent/connectors/iotp/IotpDevice.java
@@ -40,9 +40,10 @@ import org.apache.edgent.topology.Topology;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.ibm.iotf.client.device.Command;
+import com.ibm.iotf.client.device.DeviceClient;
/**
- * Connector for IBM Watson IoT Platform.
+ * A Device Connector to IBM Watson IoT Platform (WIoTP).
* <BR>
* IBM Watson IoT Platform is a cloud based internet of things
* scale message hub that provides a device model on top of MQTT.
@@ -52,9 +53,26 @@ import com.ibm.iotf.client.device.Command;
* <BR>
* <em>Note IBM Watson IoT Platform was previously known as
* IBM Internet of Things Foundation.</em>
+ * <p>
+ * This connector is a thin wrapper over the WIoTP {@code DeviceClient} Java API.
+ * The constructor {@code Properties} and {@code optionsFile} contents are those
+ * demanded by {@code DeviceClient}.
+ * <p>
+ * For more complex use cases this connector can be constructed to use
+ * a supplied {@code DeviceClient}. This gives an application complete
+ * control over the construction and configuration of the underlying
+ * connection to WIoTP.
+ * <p>
+ * An application that wants to be a WIoTP <i>managed device</i>
+ * and an Edgent application must construct a WIoTP {@code ManagedDevice} instance
+ * and construct this device connector using it.
+ * <P>
+ * If the following link's page doesn't render in javadoc, paste it into a browser window.
+ * <BR>
+ * See the IBM Watson IoT Platform documentation for Developing devices at
+ * <a href="https://internetofthings.ibmcloud.com/">https://internetofthings.ibmcloud.com/</a>
*
* @see <a href="{@docRoot}/org/apache/edgent/connectors/iot/package-summary.html">Edgent generic device model</a>
- * @see <a href="http://www.ibm.com/internet-of-things/iot-platform.html">IBM Watson IoT Platform</a>
* @see org.apache.edgent.samples.connectors.iotp.IotpSensors Sample application
*/
public class IotpDevice implements IotDevice {
@@ -70,8 +88,7 @@ public class IotpDevice implements IotDevice {
private TStream<Command> commandStream;
/**
- * Create a connector to the IBM Watson IoT Platform Bluemix service with the device
- * specified by {@code options}.
+ * Create a connector for the IoT device specified by {@code options}.
* <BR>
* These properties must be set in {@code options}.
*
@@ -95,7 +112,6 @@ public class IotpDevice implements IotDevice {
* IotDevice iotDevice = new IotpDevice(options);
* </code>
* </pre>
-
* <p>
* Connecting to the server occurs when the topology is submitted for
* execution.
@@ -104,6 +120,8 @@ public class IotpDevice implements IotDevice {
* @param options control options
* @param topology
* the connector's associated {@code Topology}.
+ *
+ * @see the IBM Watson IoT Platform documentation for additional properties.
*/
public IotpDevice(Topology topology, Properties options) {
this.topology = topology;
@@ -111,9 +129,7 @@ public class IotpDevice implements IotDevice {
}
/**
- * Create a connector to the IBM Watson IoT Platform Bluemix service.
- * Device identifier and authorization are specified
- * by a configuration file.
+ * Create a connector for the IoT device specified by {@code optionsFile}.
* <BR>
* The format of the file is:
* <pre>
@@ -143,6 +159,8 @@ public class IotpDevice implements IotDevice {
* </p>
* @param topology the connector's associated {@code Topology}.
* @param optionsFile File containing connection information.
+ *
+ * @see the IBM Watson IoT Platform documentation for additional properties.
*/
public IotpDevice(Topology topology, File optionsFile) {
this.topology = topology;
@@ -150,6 +168,16 @@ public class IotpDevice implements IotDevice {
}
/**
+ * Create a connector using the supplied WIoTP {@code DeviceClient}.
+ * @param topology the connector's associated {@code Topology}.
+ * @param deviceClient a WIoTP device client API object.
+ */
+ public IotpDevice(Topology topology, DeviceClient deviceClient) {
+ this.topology = topology;
+ this.connector = new IotpConnector(deviceClient);
+ }
+
+ /**
* Create an {@code IotpDevice} connector to the Quickstart service.
* Quickstart service requires no-sign up to use to allow evaluation
* but has limitations on functionality, such as only supporting
http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/dbc094e4/connectors/iotp/src/main/java/org/apache/edgent/connectors/iotp/runtime/IotpConnector.java
----------------------------------------------------------------------
diff --git a/connectors/iotp/src/main/java/org/apache/edgent/connectors/iotp/runtime/IotpConnector.java b/connectors/iotp/src/main/java/org/apache/edgent/connectors/iotp/runtime/IotpConnector.java
index d2fb227..af16e61 100644
--- a/connectors/iotp/src/main/java/org/apache/edgent/connectors/iotp/runtime/IotpConnector.java
+++ b/connectors/iotp/src/main/java/org/apache/edgent/connectors/iotp/runtime/IotpConnector.java
@@ -38,6 +38,7 @@ public class IotpConnector implements Serializable, AutoCloseable {
private Properties options;
private File optionsFile;
private transient DeviceClient client;
+ private boolean disconnectOnClose = true;
/**
* Create a new connector to the specified MQTT server.
@@ -52,6 +53,11 @@ public class IotpConnector implements Serializable, AutoCloseable {
this.optionsFile = optionsFile;
}
+ public IotpConnector(DeviceClient iotpDeviceClient) {
+ this.client = iotpDeviceClient;
+ this.disconnectOnClose = false;
+ }
+
synchronized DeviceClient connect() {
DeviceClient client;
try {
@@ -100,7 +106,8 @@ public class IotpConnector implements Serializable, AutoCloseable {
if (client == null)
return;
- client.disconnect();
+ if (disconnectOnClose)
+ client.disconnect();
client = null;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/dbc094e4/samples/connectors/src/main/java/org/apache/edgent/samples/connectors/iotp/IotpQuickstart2.java
----------------------------------------------------------------------
diff --git a/samples/connectors/src/main/java/org/apache/edgent/samples/connectors/iotp/IotpQuickstart2.java b/samples/connectors/src/main/java/org/apache/edgent/samples/connectors/iotp/IotpQuickstart2.java
new file mode 100644
index 0000000..eff81c2
--- /dev/null
+++ b/samples/connectors/src/main/java/org/apache/edgent/samples/connectors/iotp/IotpQuickstart2.java
@@ -0,0 +1,107 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+*/
+package org.apache.edgent.samples.connectors.iotp;
+
+import java.util.Properties;
+import java.util.Random;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.edgent.connectors.iot.IotDevice;
+import org.apache.edgent.connectors.iot.QoS;
+import org.apache.edgent.connectors.iotp.IotpDevice;
+import org.apache.edgent.providers.direct.DirectProvider;
+import org.apache.edgent.topology.TStream;
+import org.apache.edgent.topology.Topology;
+
+import com.google.gson.JsonObject;
+import com.ibm.iotf.client.device.DeviceClient;
+import com.ibm.iotf.devicemgmt.DeviceData;
+import com.ibm.iotf.devicemgmt.device.ManagedDevice;
+
+/**
+ * IBM Watson IoT Platform Quickstart sample.
+ * Submits a JSON device event every second using the
+ * same format as the Quickstart device simulator,
+ * with keys {@code temp}, {@code humidity} and {@code objectTemp}
+ * and random values.
+ * <P>
+ * The device type is {@code iotsamples-edgent} and a random
+ * device identifier is generated. Both are printed out when
+ * the application starts.
+ * <P>
+ * A URL is also printed that allows viewing of the data
+ * as it received by the Quickstart service.
+ * <P>
+ * This sample demonstrates using the WIoTP API to initialize the IotpDevice
+ * connector.
+ */
+public class IotpQuickstart2 {
+
+ public static void main(String[] args) throws Exception {
+ boolean useDeviceClient = args.length > 0 && args[0].equals("useDeviceClient");
+
+ DirectProvider tp = new DirectProvider();
+ Topology topology = tp.newTopology("IotpQuickstart");
+
+ // Declare a connector to IoTP Quickstart service, initializing with WIoTP API
+ String deviceId = "qs" + Long.toHexString(new Random().nextLong());
+ Properties options = new Properties();
+ options.setProperty("org", "quickstart");
+ options.setProperty("type", IotpDevice.QUICKSTART_DEVICE_TYPE);
+ options.setProperty("id", deviceId);
+ IotDevice device;
+ if (useDeviceClient) {
+ System.out.println("Using WIoTP DeviceClient");
+ device = new IotpDevice(topology, new DeviceClient(options));
+ }
+ else {
+ System.out.println("Using WIoTP ManagedDevice");
+ DeviceData deviceData = new DeviceData.Builder().build();
+ device = new IotpDevice(topology, new ManagedDevice(options, deviceData));
+ }
+
+ System.out.println("Quickstart device type:" + IotpDevice.QUICKSTART_DEVICE_TYPE);
+ System.out.println("Quickstart device id :" + deviceId);
+ System.out.println("https://quickstart.internetofthings.ibmcloud.com/#/device/"
+ + deviceId);
+
+ Random r = new Random();
+ TStream<double[]> raw = topology.poll(() -> {
+ double[] v = new double[3];
+
+ v[0] = r.nextGaussian() * 10.0 + 40.0;
+ v[1] = r.nextGaussian() * 10.0 + 50.0;
+ v[2] = r.nextGaussian() * 10.0 + 60.0;
+
+ return v;
+ }, 1, TimeUnit.SECONDS);
+
+ TStream<JsonObject> json = raw.map(v -> {
+ JsonObject j = new JsonObject();
+ j.addProperty("temp", v[0]);
+ j.addProperty("humidity", v[1]);
+ j.addProperty("objectTemp", v[2]);
+ return j;
+ });
+
+ device.events(json, "sensors", QoS.FIRE_AND_FORGET);
+
+ tp.submit(topology);
+ }
+ }
http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/dbc094e4/scripts/connectors/iotp/runiotpquickstart2.sh
----------------------------------------------------------------------
diff --git a/scripts/connectors/iotp/runiotpquickstart2.sh b/scripts/connectors/iotp/runiotpquickstart2.sh
new file mode 100755
index 0000000..74a3f75
--- /dev/null
+++ b/scripts/connectors/iotp/runiotpquickstart2.sh
@@ -0,0 +1,40 @@
+#!/bin/bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+edgent=../../..
+
+# Runs IBM Watson IoT Plaform Quickstart sample.
+#
+# runiotpquickstart2.sh
+#
+# This connects to the Quickstart IBM Watson IoT Platform service
+# which requires no registration at all.
+#
+# The application prints out a URL which allows a browser
+# to see the data being sent from this sample to
+# IBM Watson IoT Plaform Quickstart sample.
+
+# Avoid a paho mqtt class security exception.
+# The connector samples jar has dependencies on both the iotp and mqtt connectors
+# and those have dependencies on different versions of the paho mqtt jar.
+# Ensure the right one is used for this sample.
+#export CLASSPATH=${edgent}/samples/lib/edgent.samples.connectors.jar
+IOTP_MQTT_JAR=`ls ${edgent}/connectors/iotp/ext/org.eclipse.paho.client.mqtt*.jar`
+export CLASSPATH=${IOTP_MQTT_JAR}:${edgent}/samples/lib/edgent.samples.connectors.jar
+
+java org.apache.edgent.samples.connectors.iotp.IotpQuickstart2 $*
[2/2] incubator-edgent git commit: fix samples classpath for eclipse
Posted by dl...@apache.org.
fix samples classpath for eclipse
Project: http://git-wip-us.apache.org/repos/asf/incubator-edgent/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-edgent/commit/3699553f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-edgent/tree/3699553f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-edgent/diff/3699553f
Branch: refs/heads/master
Commit: 3699553fd4e2736b2cb0548f5c1f5cd77862f71c
Parents: dbc094e
Author: Dale LaBossiere <dl...@us.ibm.com>
Authored: Tue Feb 7 16:14:52 2017 -0500
Committer: Dale LaBossiere <dl...@us.ibm.com>
Committed: Tue Feb 7 16:14:52 2017 -0500
----------------------------------------------------------------------
connectors/.classpath | 10 +++++-----
samples/.classpath | 2 ++
2 files changed, 7 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/3699553f/connectors/.classpath
----------------------------------------------------------------------
diff --git a/connectors/.classpath b/connectors/.classpath
index f166304..fa2b4e2 100644
--- a/connectors/.classpath
+++ b/connectors/.classpath
@@ -27,12 +27,12 @@
<classpathentry kind="src" path="wsclient/src/main/java"/>
<classpathentry kind="src" path="wsclient-javax.websocket/src/main/java"/>
<classpathentry kind="src" path="wsclient-javax.websocket/src/test/java"/>
- <classpathentry kind="src" path="javax.websocket-client/src/main/resources"/>
+ <classpathentry kind="src" path="javax.websocket-client/src/main/resources"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/http/ext/commons-codec-1.9.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/http/ext/commons-logging-1.2.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/http/ext/httpclient-4.5.1.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/http/ext/httpcore-4.4.4.jar"/>
- <classpathentry exported="true" kind="lib" path="../externalJars/java8/connectors/iotp/ext/watson-iot-0.1.5.jar"/>
+ <classpathentry kind="lib" path="../externalJars/java8/connectors/iotp/ext/watson-iot-0.1.5.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/iotp/ext/commons-lang3-3.4.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/iotp/ext/commons-codec-1.10.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/iotp/ext/commons-logging-1.2.jar"/>
@@ -40,7 +40,7 @@
<classpathentry kind="lib" path="../externalJars/java8/connectors/iotp/ext/httpclient-4.5.1.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/iotp/ext/httpcore-4.4.3.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/iotp/ext/joda-time-2.9.2.jar"/>
- <classpathentry exported="true" kind="lib" path="../externalJars/java8/connectors/iotp/ext/org.eclipse.paho.client.mqttv3-1.1.0.jar"/>
+ <classpathentry kind="lib" path="../externalJars/java8/connectors/iotp/ext/org.eclipse.paho.client.mqttv3-1.1.0.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/kafka/ext/kafka_2.10-0.8.2.2.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/kafka/ext/kafka-clients-0.8.2.2.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/kafka/ext/log4j-1.2.16.jar"/>
@@ -55,13 +55,13 @@
<classpathentry kind="lib" path="../externalJars/java8/connectors/javax.websocket-client/ext/websocket-api-9.3.6.v20151106.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/javax.websocket-client/ext/websocket-client-9.3.6.v20151106.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/javax.websocket-client/ext/websocket-common-9.3.6.v20151106.jar"/>
- <classpathentry kind="lib" path="../externalJars/java8/connectors/javax.websocket-server/ext/javax-websocket-server-impl-9.3.6.v20151106.jar"/>
+ <classpathentry kind="lib" path="../externalJars/java8/connectors/javax.websocket-server/ext/javax-websocket-server-impl-9.3.6.v20151106.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/javax.websocket-server/ext/jetty-http-9.3.6.v20151106.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/javax.websocket-server/ext/jetty-io-9.3.6.v20151106.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/javax.websocket-server/ext/jetty-security-9.3.6.v20151106.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/javax.websocket-server/ext/jetty-server-9.3.6.v20151106.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/javax.websocket-server/ext/jetty-servlet-9.3.6.v20151106.jar"/>
- <classpathentry kind="lib" path="../externalJars/java8/connectors/javax.websocket-server/ext/javax.servlet-api-3.1.0.jar"/>
+ <classpathentry kind="lib" path="../externalJars/java8/connectors/javax.websocket-server/ext/javax.servlet-api-3.1.0.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/javax.websocket-server/ext/websocket-server-9.3.6.v20151106.jar"/>
<classpathentry kind="lib" path="../externalJars/java8/connectors/javax.websocket-server/ext/websocket-servlet-9.3.6.v20151106.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/3699553f/samples/.classpath
----------------------------------------------------------------------
diff --git a/samples/.classpath b/samples/.classpath
index 60f029f..57cac6a 100644
--- a/samples/.classpath
+++ b/samples/.classpath
@@ -19,5 +19,7 @@
<classpathentry combineaccessrules="false" kind="src" path="/runtime"/>
<classpathentry combineaccessrules="false" kind="src" path="/provider_iot"/>
<classpathentry combineaccessrules="false" kind="src" path="/apps"/>
+ <classpathentry kind="lib" path="../externalJars/java8/connectors/iotp/ext/watson-iot-0.1.5.jar"/>
+ <classpathentry kind="lib" path="../externalJars/java8/connectors/iotp/ext/org.eclipse.paho.client.mqttv3-1.1.0.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>