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/20 18:02:12 UTC
incubator-edgent git commit: [Edgent-379] upgrade to WIoTP iot-java
0.2.2
Repository: incubator-edgent
Updated Branches:
refs/heads/master 3699553fd -> 261c7ee0d
[Edgent-379] upgrade to WIoTP iot-java 0.2.2
- update build.gradle files
- update eclipse .classpath files
- update LICENSE
- update binary license files
- update RELEASE_NOTES with noteworthy change in iot-java behavior
- update IotpDevice to avoid some deprecated iot-java methods
and bug in new method (see commentary in IotpDevice)
- update iotp sample run scripts
Project: http://git-wip-us.apache.org/repos/asf/incubator-edgent/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-edgent/commit/261c7ee0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-edgent/tree/261c7ee0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-edgent/diff/261c7ee0
Branch: refs/heads/master
Commit: 261c7ee0df94e3c61cbff935043f6ccaf020fde9
Parents: 3699553
Author: Dale LaBossiere <dl...@us.ibm.com>
Authored: Fri Feb 17 16:16:05 2017 -0500
Committer: Dale LaBossiere <dl...@us.ibm.com>
Committed: Fri Feb 17 16:16:05 2017 -0500
----------------------------------------------------------------------
RELEASE_NOTES | 35 ++++
binary-release/LICENSE | 6 +-
build.gradle | 4 +-
connectors/.classpath | 2 +-
connectors/iotp/build.gradle | 2 +-
.../edgent/connectors/iotp/IotpDevice.java | 29 ++-
.../binary-release/watson-iot-0.1.5.EPL-1.0 | 203 -------------------
.../binary-release/watson-iot-0.2.2.EPL-1.0 | 203 +++++++++++++++++++
samples/.classpath | 2 +-
scripts/connectors/iotp/runiotpquickstart.sh | 18 ++
scripts/connectors/iotp/runiotpquickstart2.sh | 12 +-
scripts/connectors/iotp/runiotpsensors.sh | 18 +-
12 files changed, 313 insertions(+), 221 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/261c7ee0/RELEASE_NOTES
----------------------------------------------------------------------
diff --git a/RELEASE_NOTES b/RELEASE_NOTES
index 25563a7..f325eb0 100644
--- a/RELEASE_NOTES
+++ b/RELEASE_NOTES
@@ -1,3 +1,38 @@
+Apache Edgent (incubating) 1.?.?
+==================
+This release blah blah blah...
+
+See EDGENT-379 below for important information related to the
+Edgent connector for the IBM Watson IoT Platform.
+
+New Features
+--------------------
+TODO
+
+Incompatible changes
+--------------------
+TODO
+
+Miscellaneous changes
+---------------------
+EDGENT-379 - upgrade to the WIoTP 0.2.2 Java client API
+ Upgrade the Edgent connector for the IBM Watson IoT Platform to use
+ the WIoTP 0.2.2 Java client API.
+ Note: the WIoTP API changed the way it publishes device events.
+ See the "Migration from release 0.1.5 to 0.2.1" information at
+ https://github.com/ibm-watson-iot/iot-java/tree/master#migration-from-release-015-to-021
+ for details including how to revert the behavior if needed.
+ See https://github.com/ibm-watson-iot/iot-java/releases
+ for general release information about the WIoTP Java client API.
+
+Known Issues
+--------
+None yet
+
+Bug Fixes
+---------
+TODO
+
Apache Edgent (incubating) 1.0.0
==================
The first official Apache Edgent release
http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/261c7ee0/binary-release/LICENSE
----------------------------------------------------------------------
diff --git a/binary-release/LICENSE b/binary-release/LICENSE
index 5396b21..b6c6f3d 100644
--- a/binary-release/LICENSE
+++ b/binary-release/LICENSE
@@ -245,10 +245,10 @@ connectors/http/ext
--------------------------------
connectors/iotp/ext
- watson-iot-0.1.5.jar com.ibm.messaging:watson-iot:0.1.5
- LICENSE: EPL-1.0 For details, see licenses/binary-release/watson-iot-0.1.5.EPL-1.0
+ watson-iot-0.2.2.jar com.ibm.messaging:watson-iot:0.2.2
+ LICENSE: EPL-1.0 For details, see licenses/binary-release/watson-iot-0.2.2.EPL-1.0
Only binary form content is included.
- https://mvnrepository.com/artifact/com.ibm.messaging/watson-iot/0.1.5
+ https://mvnrepository.com/artifact/com.ibm.messaging/watson-iot/0.2.2
commons-codec-1.10.jar org.apache.commons:commons-codec:1.10
LICENSE: AL-2.0 For details, see licenses/binary-release/commons-codec-1.10.AL-2.0
http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/261c7ee0/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index 78a0175..4aab605 100644
--- a/build.gradle
+++ b/build.gradle
@@ -78,7 +78,7 @@ rat {
'licenses/binary-release/javax.websocket-api-1.0.CDDL-1.1', // OK, only binary form content
'licenses/binary-release/mqttv3-1.0.2.EDL-1.0', // OK, EDL-1.0
'licenses/binary-release/mqttv3-1.1.0.EDL-1.0', // OK, EDL-1.0
- 'licenses/binary-release/watson-iot-0.1.5.EPL-1.0', // OK, only binary form content
+ 'licenses/binary-release/watson-iot-0.2.2.EPL-1.0', // OK, only binary form content
'samples/**/*.properties',
'samples/**/device.cfg',
'scripts/**/*.properties',
@@ -321,7 +321,7 @@ subprojects {
// e.g.,
// dependencies {
// addTargetDirProjectJarDependency 'compile', ':api:topology' # NOT compile project(':api:topology')
- // addProjectExtDependency 'compile', 'com.ibm.messaging:watson-iot:0.1.5' # NOT compile 'com.ibm.messaging:watson-iot:0.1.5'
+ // addProjectExtDependency 'compile', 'com.ibm.messaging:watson-iot:0.2.2' # NOT compile 'com.ibm.messaging:watson-iot:0.2.2'
// addProjectExtDependency 'compile', 'org.apache.kafka:kafka_2.10:0.8.2.2@jar'
// addTargetDirCoreExtDependencies 'compile'
// addMyTargetDirProjectJarDependency 'testCompile'
http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/261c7ee0/connectors/.classpath
----------------------------------------------------------------------
diff --git a/connectors/.classpath b/connectors/.classpath
index fa2b4e2..b8ba495 100644
--- a/connectors/.classpath
+++ b/connectors/.classpath
@@ -32,7 +32,7 @@
<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 kind="lib" path="../externalJars/java8/connectors/iotp/ext/watson-iot-0.2.2.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"/>
http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/261c7ee0/connectors/iotp/build.gradle
----------------------------------------------------------------------
diff --git a/connectors/iotp/build.gradle b/connectors/iotp/build.gradle
index e593364..c5e2390 100644
--- a/connectors/iotp/build.gradle
+++ b/connectors/iotp/build.gradle
@@ -19,7 +19,7 @@ under the License.
dependencies {
addTargetDirProjectJarDependency 'compile', ':api:topology'
addTargetDirProjectJarDependency 'compile', ':connectors:iot'
- addProjectExtDependency 'compile', 'com.ibm.messaging:watson-iot:0.1.5'
+ addProjectExtDependency 'compile', 'com.ibm.messaging:watson-iot:0.2.2'
addTargetDirCoreExtJarDependencies 'compile'
addTargetDirProjectJarDependency 'testCompile', ':providers:direct'
http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/261c7ee0/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 e0a4127..007d883 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
@@ -71,7 +71,14 @@ import com.ibm.iotf.client.device.DeviceClient;
* <BR>
* See the IBM Watson IoT Platform documentation for Developing devices at
* <a href="https://internetofthings.ibmcloud.com/">https://internetofthings.ibmcloud.com/</a>
- *
+ * <p>
+ * See <a href="https://github.com/ibm-watson-iot/iot-java/releases">WIoTP Java Client Library Releases</a>
+ * for general information.
+ * <p>
+ * See <a href="https://github.com/ibm-watson-iot/iot-java/tree/master#migration-from-release-015-to-021">WIoTP Migration from release 0.1.5 to 0.2.1</a>
+ * for details of changes that occurred to device event payloads
+ * and how to revert the behavior if needed.
+ * <p>
* @see <a href="{@docRoot}/org/apache/edgent/connectors/iot/package-summary.html">Edgent generic device model</a>
* @see org.apache.edgent.samples.connectors.iotp.IotpSensors Sample application
*/
@@ -278,21 +285,31 @@ public class IotpDevice implements IotDevice {
return all.map(cmd -> {
JsonObject full = new JsonObject();
full.addProperty("command", cmd.getCommand());
- full.addProperty("tsms", cmd.getTimestamp().getMillis());
+ full.addProperty("tsms", System.currentTimeMillis());
full.addProperty("format", cmd.getFormat());
- if ("json".equals(cmd.getFormat())) {
+ if ("json".equalsIgnoreCase(cmd.getFormat())) {
JsonParser parser = new JsonParser();
+ // iot-java 0.2.2 bug https://github.com/ibm-watson-iot/iot-java/issues/81
+ // cmd.getData() returns byte[] instead of JsonObject (or String).
+ // Must continue to use the deprecated method until that's fixed.
+ // final JsonObject jsonPayload = (JsonObject) cmd.getData();
+ // final JsonObject jsonPayload = (JsonObject) parser.parse((String)cmd.getData());
+ @SuppressWarnings("deprecation")
final JsonObject jsonPayload = (JsonObject) parser.parse(cmd.getPayload());
final JsonObject cmdData;
+ // wiotp java client API >= 0.2.1 (other clients earlier?)
+ // A json fmt command's msg payload may or may not have "d" wrapping of
+ // the actual command data.
+ // The wiotp client API doesn't mask that from clients
+ // so deal with that here.
if (jsonPayload.has("d")) {
cmdData = jsonPayload.getAsJsonObject("d");
} else {
- // No data, create an empty object.
- cmdData = new JsonObject();
+ cmdData = jsonPayload;
}
full.add("payload", cmdData);
} else {
- full.addProperty("payload", cmd.getPayload());
+ full.addProperty("payload", cmd.getData().toString());
}
return full;
http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/261c7ee0/licenses/binary-release/watson-iot-0.1.5.EPL-1.0
----------------------------------------------------------------------
diff --git a/licenses/binary-release/watson-iot-0.1.5.EPL-1.0 b/licenses/binary-release/watson-iot-0.1.5.EPL-1.0
deleted file mode 100644
index 5032843..0000000
--- a/licenses/binary-release/watson-iot-0.1.5.EPL-1.0
+++ /dev/null
@@ -1,203 +0,0 @@
-Eclipse Public License - v 1.0
-
-THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
-LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
-CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
-
-1. DEFINITIONS
-
-"Contribution" means:
-
-a) in the case of the initial Contributor, the initial code and documentation
- distributed under this Agreement, and
-b) in the case of each subsequent Contributor:
- i) changes to the Program, and
- ii) additions to the Program;
-
- where such changes and/or additions to the Program originate from and are
- distributed by that particular Contributor. A Contribution 'originates'
- from a Contributor if it was added to the Program by such Contributor
- itself or anyone acting on such Contributor's behalf. Contributions do not
- include additions to the Program which: (i) are separate modules of
- software distributed in conjunction with the Program under their own
- license agreement, and (ii) are not derivative works of the Program.
-
-"Contributor" means any person or entity that distributes the Program.
-
-"Licensed Patents" mean patent claims licensable by a Contributor which are
-necessarily infringed by the use or sale of its Contribution alone or when
-combined with the Program.
-
-"Program" means the Contributions distributed in accordance with this
-Agreement.
-
-"Recipient" means anyone who receives the Program under this Agreement,
-including all Contributors.
-
-2. GRANT OF RIGHTS
- a) Subject to the terms of this Agreement, each Contributor hereby grants
- Recipient a non-exclusive, worldwide, royalty-free copyright license to
- reproduce, prepare derivative works of, publicly display, publicly
- perform, distribute and sublicense the Contribution of such Contributor,
- if any, and such derivative works, in source code and object code form.
- b) Subject to the terms of this Agreement, each Contributor hereby grants
- Recipient a non-exclusive, worldwide, royalty-free patent license under
- Licensed Patents to make, use, sell, offer to sell, import and otherwise
- transfer the Contribution of such Contributor, if any, in source code and
- object code form. This patent license shall apply to the combination of
- the Contribution and the Program if, at the time the Contribution is
- added by the Contributor, such addition of the Contribution causes such
- combination to be covered by the Licensed Patents. The patent license
- shall not apply to any other combinations which include the Contribution.
- No hardware per se is licensed hereunder.
- c) Recipient understands that although each Contributor grants the licenses
- to its Contributions set forth herein, no assurances are provided by any
- Contributor that the Program does not infringe the patent or other
- intellectual property rights of any other entity. Each Contributor
- disclaims any liability to Recipient for claims brought by any other
- entity based on infringement of intellectual property rights or
- otherwise. As a condition to exercising the rights and licenses granted
- hereunder, each Recipient hereby assumes sole responsibility to secure
- any other intellectual property rights needed, if any. For example, if a
- third party patent license is required to allow Recipient to distribute
- the Program, it is Recipient's responsibility to acquire that license
- before distributing the Program.
- d) Each Contributor represents that to its knowledge it has sufficient
- copyright rights in its Contribution, if any, to grant the copyright
- license set forth in this Agreement.
-
-3. REQUIREMENTS
-
-A Contributor may choose to distribute the Program in object code form under
-its own license agreement, provided that:
-
- a) it complies with the terms and conditions of this Agreement; and
- b) its license agreement:
- i) effectively disclaims on behalf of all Contributors all warranties
- and conditions, express and implied, including warranties or
- conditions of title and non-infringement, and implied warranties or
- conditions of merchantability and fitness for a particular purpose;
- ii) effectively excludes on behalf of all Contributors all liability for
- damages, including direct, indirect, special, incidental and
- consequential damages, such as lost profits;
- iii) states that any provisions which differ from this Agreement are
- offered by that Contributor alone and not by any other party; and
- iv) states that source code for the Program is available from such
- Contributor, and informs licensees how to obtain it in a reasonable
- manner on or through a medium customarily used for software exchange.
-
-When the Program is made available in source code form:
-
- a) it must be made available under this Agreement; and
- b) a copy of this Agreement must be included with each copy of the Program.
- Contributors may not remove or alter any copyright notices contained
- within the Program.
-
-Each Contributor must identify itself as the originator of its Contribution,
-if
-any, in a manner that reasonably allows subsequent Recipients to identify the
-originator of the Contribution.
-
-4. COMMERCIAL DISTRIBUTION
-
-Commercial distributors of software may accept certain responsibilities with
-respect to end users, business partners and the like. While this license is
-intended to facilitate the commercial use of the Program, the Contributor who
-includes the Program in a commercial product offering should do so in a manner
-which does not create potential liability for other Contributors. Therefore,
-if a Contributor includes the Program in a commercial product offering, such
-Contributor ("Commercial Contributor") hereby agrees to defend and indemnify
-every other Contributor ("Indemnified Contributor") against any losses,
-damages and costs (collectively "Losses") arising from claims, lawsuits and
-other legal actions brought by a third party against the Indemnified
-Contributor to the extent caused by the acts or omissions of such Commercial
-Contributor in connection with its distribution of the Program in a commercial
-product offering. The obligations in this section do not apply to any claims
-or Losses relating to any actual or alleged intellectual property
-infringement. In order to qualify, an Indemnified Contributor must:
-a) promptly notify the Commercial Contributor in writing of such claim, and
-b) allow the Commercial Contributor to control, and cooperate with the
-Commercial Contributor in, the defense and any related settlement
-negotiations. The Indemnified Contributor may participate in any such claim at
-its own expense.
-
-For example, a Contributor might include the Program in a commercial product
-offering, Product X. That Contributor is then a Commercial Contributor. If
-that Commercial Contributor then makes performance claims, or offers
-warranties related to Product X, those performance claims and warranties are
-such Commercial Contributor's responsibility alone. Under this section, the
-Commercial Contributor would have to defend claims against the other
-Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.
-
-5. NO WARRANTY
-
-EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
-IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
-NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each
-Recipient is solely responsible for determining the appropriateness of using
-and distributing the Program and assumes all risks associated with its
-exercise of rights under this Agreement , including but not limited to the
-risks and costs of program errors, compliance with applicable laws, damage to
-or loss of data, programs or equipment, and unavailability or interruption of
-operations.
-
-6. DISCLAIMER OF LIABILITY
-
-EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
-CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION
-LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
-EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY
-OF SUCH DAMAGES.
-
-7. GENERAL
-
-If any provision of this Agreement is invalid or unenforceable under
-applicable law, it shall not affect the validity or enforceability of the
-remainder of the terms of this Agreement, and without further action by the
-parties hereto, such provision shall be reformed to the minimum extent
-necessary to make such provision valid and enforceable.
-
-If Recipient institutes patent litigation against any entity (including a
-cross-claim or counterclaim in a lawsuit) alleging that the Program itself
-(excluding combinations of the Program with other software or hardware)
-infringes such Recipient's patent(s), then such Recipient's rights granted
-under Section 2(b) shall terminate as of the date such litigation is filed.
-
-All Recipient's rights under this Agreement shall terminate if it fails to
-comply with any of the material terms or conditions of this Agreement and does
-not cure such failure in a reasonable period of time after becoming aware of
-such noncompliance. If all Recipient's rights under this Agreement terminate,
-Recipient agrees to cease use and distribution of the Program as soon as
-reasonably practicable. However, Recipient's obligations under this Agreement
-and any licenses granted by Recipient relating to the Program shall continue
-and survive.
-
-Everyone is permitted to copy and distribute copies of this Agreement, but in
-order to avoid inconsistency the Agreement is copyrighted and may only be
-modified in the following manner. The Agreement Steward reserves the right to
-publish new versions (including revisions) of this Agreement from time to
-time. No one other than the Agreement Steward has the right to modify this
-Agreement. The Eclipse Foundation is the initial Agreement Steward. The
-Eclipse Foundation may assign the responsibility to serve as the Agreement
-Steward to a suitable separate entity. Each new version of the Agreement will
-be given a distinguishing version number. The Program (including
-Contributions) may always be distributed subject to the version of the
-Agreement under which it was received. In addition, after a new version of the
-Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly
-stated in Sections 2(a) and 2(b) above, Recipient receives no rights or
-licenses to the intellectual property of any Contributor under this Agreement,
-whether expressly, by implication, estoppel or otherwise. All rights in the
-Program not expressly granted under this Agreement are reserved.
-
-This Agreement is governed by the laws of the State of New York and the
-intellectual property laws of the United States of America. No party to this
-Agreement will bring a legal action under this Agreement more than one year
-after the cause of action arose. Each party waives its rights to a jury trial in
-any resulting litigation.
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/261c7ee0/licenses/binary-release/watson-iot-0.2.2.EPL-1.0
----------------------------------------------------------------------
diff --git a/licenses/binary-release/watson-iot-0.2.2.EPL-1.0 b/licenses/binary-release/watson-iot-0.2.2.EPL-1.0
new file mode 100644
index 0000000..5032843
--- /dev/null
+++ b/licenses/binary-release/watson-iot-0.2.2.EPL-1.0
@@ -0,0 +1,203 @@
+Eclipse Public License - v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
+LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
+CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial code and documentation
+ distributed under this Agreement, and
+b) in the case of each subsequent Contributor:
+ i) changes to the Program, and
+ ii) additions to the Program;
+
+ where such changes and/or additions to the Program originate from and are
+ distributed by that particular Contributor. A Contribution 'originates'
+ from a Contributor if it was added to the Program by such Contributor
+ itself or anyone acting on such Contributor's behalf. Contributions do not
+ include additions to the Program which: (i) are separate modules of
+ software distributed in conjunction with the Program under their own
+ license agreement, and (ii) are not derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents" mean patent claims licensable by a Contributor which are
+necessarily infringed by the use or sale of its Contribution alone or when
+combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this
+Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement,
+including all Contributors.
+
+2. GRANT OF RIGHTS
+ a) Subject to the terms of this Agreement, each Contributor hereby grants
+ Recipient a non-exclusive, worldwide, royalty-free copyright license to
+ reproduce, prepare derivative works of, publicly display, publicly
+ perform, distribute and sublicense the Contribution of such Contributor,
+ if any, and such derivative works, in source code and object code form.
+ b) Subject to the terms of this Agreement, each Contributor hereby grants
+ Recipient a non-exclusive, worldwide, royalty-free patent license under
+ Licensed Patents to make, use, sell, offer to sell, import and otherwise
+ transfer the Contribution of such Contributor, if any, in source code and
+ object code form. This patent license shall apply to the combination of
+ the Contribution and the Program if, at the time the Contribution is
+ added by the Contributor, such addition of the Contribution causes such
+ combination to be covered by the Licensed Patents. The patent license
+ shall not apply to any other combinations which include the Contribution.
+ No hardware per se is licensed hereunder.
+ c) Recipient understands that although each Contributor grants the licenses
+ to its Contributions set forth herein, no assurances are provided by any
+ Contributor that the Program does not infringe the patent or other
+ intellectual property rights of any other entity. Each Contributor
+ disclaims any liability to Recipient for claims brought by any other
+ entity based on infringement of intellectual property rights or
+ otherwise. As a condition to exercising the rights and licenses granted
+ hereunder, each Recipient hereby assumes sole responsibility to secure
+ any other intellectual property rights needed, if any. For example, if a
+ third party patent license is required to allow Recipient to distribute
+ the Program, it is Recipient's responsibility to acquire that license
+ before distributing the Program.
+ d) Each Contributor represents that to its knowledge it has sufficient
+ copyright rights in its Contribution, if any, to grant the copyright
+ license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under
+its own license agreement, provided that:
+
+ a) it complies with the terms and conditions of this Agreement; and
+ b) its license agreement:
+ i) effectively disclaims on behalf of all Contributors all warranties
+ and conditions, express and implied, including warranties or
+ conditions of title and non-infringement, and implied warranties or
+ conditions of merchantability and fitness for a particular purpose;
+ ii) effectively excludes on behalf of all Contributors all liability for
+ damages, including direct, indirect, special, incidental and
+ consequential damages, such as lost profits;
+ iii) states that any provisions which differ from this Agreement are
+ offered by that Contributor alone and not by any other party; and
+ iv) states that source code for the Program is available from such
+ Contributor, and informs licensees how to obtain it in a reasonable
+ manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+ a) it must be made available under this Agreement; and
+ b) a copy of this Agreement must be included with each copy of the Program.
+ Contributors may not remove or alter any copyright notices contained
+ within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution,
+if
+any, in a manner that reasonably allows subsequent Recipients to identify the
+originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with
+respect to end users, business partners and the like. While this license is
+intended to facilitate the commercial use of the Program, the Contributor who
+includes the Program in a commercial product offering should do so in a manner
+which does not create potential liability for other Contributors. Therefore,
+if a Contributor includes the Program in a commercial product offering, such
+Contributor ("Commercial Contributor") hereby agrees to defend and indemnify
+every other Contributor ("Indemnified Contributor") against any losses,
+damages and costs (collectively "Losses") arising from claims, lawsuits and
+other legal actions brought by a third party against the Indemnified
+Contributor to the extent caused by the acts or omissions of such Commercial
+Contributor in connection with its distribution of the Program in a commercial
+product offering. The obligations in this section do not apply to any claims
+or Losses relating to any actual or alleged intellectual property
+infringement. In order to qualify, an Indemnified Contributor must:
+a) promptly notify the Commercial Contributor in writing of such claim, and
+b) allow the Commercial Contributor to control, and cooperate with the
+Commercial Contributor in, the defense and any related settlement
+negotiations. The Indemnified Contributor may participate in any such claim at
+its own expense.
+
+For example, a Contributor might include the Program in a commercial product
+offering, Product X. That Contributor is then a Commercial Contributor. If
+that Commercial Contributor then makes performance claims, or offers
+warranties related to Product X, those performance claims and warranties are
+such Commercial Contributor's responsibility alone. Under this section, the
+Commercial Contributor would have to defend claims against the other
+Contributors related to those performance claims and warranties, and if a
+court requires any other Contributor to pay any damages as a result, the
+Commercial Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each
+Recipient is solely responsible for determining the appropriateness of using
+and distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to the
+risks and costs of program errors, compliance with applicable laws, damage to
+or loss of data, programs or equipment, and unavailability or interruption of
+operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
+CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION
+LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
+EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY
+OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of the
+remainder of the terms of this Agreement, and without further action by the
+parties hereto, such provision shall be reformed to the minimum extent
+necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity (including a
+cross-claim or counterclaim in a lawsuit) alleging that the Program itself
+(excluding combinations of the Program with other software or hardware)
+infringes such Recipient's patent(s), then such Recipient's rights granted
+under Section 2(b) shall terminate as of the date such litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to
+comply with any of the material terms or conditions of this Agreement and does
+not cure such failure in a reasonable period of time after becoming aware of
+such noncompliance. If all Recipient's rights under this Agreement terminate,
+Recipient agrees to cease use and distribution of the Program as soon as
+reasonably practicable. However, Recipient's obligations under this Agreement
+and any licenses granted by Recipient relating to the Program shall continue
+and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in
+order to avoid inconsistency the Agreement is copyrighted and may only be
+modified in the following manner. The Agreement Steward reserves the right to
+publish new versions (including revisions) of this Agreement from time to
+time. No one other than the Agreement Steward has the right to modify this
+Agreement. The Eclipse Foundation is the initial Agreement Steward. The
+Eclipse Foundation may assign the responsibility to serve as the Agreement
+Steward to a suitable separate entity. Each new version of the Agreement will
+be given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new version of the
+Agreement is published, Contributor may elect to distribute the Program
+(including its Contributions) under the new version. Except as expressly
+stated in Sections 2(a) and 2(b) above, Recipient receives no rights or
+licenses to the intellectual property of any Contributor under this Agreement,
+whether expressly, by implication, estoppel or otherwise. All rights in the
+Program not expressly granted under this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the
+intellectual property laws of the United States of America. No party to this
+Agreement will bring a legal action under this Agreement more than one year
+after the cause of action arose. Each party waives its rights to a jury trial in
+any resulting litigation.
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/261c7ee0/samples/.classpath
----------------------------------------------------------------------
diff --git a/samples/.classpath b/samples/.classpath
index 57cac6a..2922346 100644
--- a/samples/.classpath
+++ b/samples/.classpath
@@ -19,7 +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/watson-iot-0.2.2.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>
http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/261c7ee0/scripts/connectors/iotp/runiotpquickstart.sh
----------------------------------------------------------------------
diff --git a/scripts/connectors/iotp/runiotpquickstart.sh b/scripts/connectors/iotp/runiotpquickstart.sh
index 94bcffa..f6c9814 100755
--- a/scripts/connectors/iotp/runiotpquickstart.sh
+++ b/scripts/connectors/iotp/runiotpquickstart.sh
@@ -32,3 +32,21 @@ edgent=../../..
export CLASSPATH=${edgent}/samples/lib/edgent.samples.connectors.jar
java org.apache.edgent.samples.connectors.iotp.IotpQuickstart
+
+# 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
+
+# https://github.com/ibm-watson-iot/iot-java/tree/master#migration-from-release-015-to-021
+# Uncomment the following to use the pre-0.2.1 WIoTP client behavior.
+#
+#USE_OLD_EVENT_FORMAT=-Dcom.ibm.iotf.enableCustomFormat=false
+
+VM_OPTS=${USE_OLD_EVENT_FORMAT}
+
+java ${VM_OPTS} org.apache.edgent.samples.connectors.iotp.IotpQuickstart
http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/261c7ee0/scripts/connectors/iotp/runiotpquickstart2.sh
----------------------------------------------------------------------
diff --git a/scripts/connectors/iotp/runiotpquickstart2.sh b/scripts/connectors/iotp/runiotpquickstart2.sh
index 74a3f75..fe3ace1 100755
--- a/scripts/connectors/iotp/runiotpquickstart2.sh
+++ b/scripts/connectors/iotp/runiotpquickstart2.sh
@@ -27,14 +27,22 @@ edgent=../../..
#
# 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.
+# IBM Watson IoT Platform 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 $*
+# https://github.com/ibm-watson-iot/iot-java/tree/master#migration-from-release-015-to-021
+# Uncomment the following to use the pre-0.2.1 WIoTP client behavior.
+#
+#USE_OLD_EVENT_FORMAT=-Dcom.ibm.iotf.enableCustomFormat=false
+
+VM_OPTS=${USE_OLD_EVENT_FORMAT}
+
+java ${VM_OPTS} org.apache.edgent.samples.connectors.iotp.IotpQuickstart2 $*
http://git-wip-us.apache.org/repos/asf/incubator-edgent/blob/261c7ee0/scripts/connectors/iotp/runiotpsensors.sh
----------------------------------------------------------------------
diff --git a/scripts/connectors/iotp/runiotpsensors.sh b/scripts/connectors/iotp/runiotpsensors.sh
index 42af686..cc592d5 100755
--- a/scripts/connectors/iotp/runiotpsensors.sh
+++ b/scripts/connectors/iotp/runiotpsensors.sh
@@ -30,6 +30,20 @@ edgent=../../..
# IBM Watson IoT Platform and a sample is in this directory
# (omitting values for the authorization tokens).
-export CLASSPATH=${edgent}/samples/lib/edgent.samples.connectors.jar
+# 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
+
+# https://github.com/ibm-watson-iot/iot-java/tree/master#migration-from-release-015-to-021
+# Uncomment the following to use the pre-0.2.1 WIoTP client behavior.
+#
+#USE_OLD_EVENT_FORMAT=-Dcom.ibm.iotf.enableCustomFormat=false
+
+VM_OPTS=${USE_OLD_EVENT_FORMAT}
-java org.apache.edgent.samples.connectors.iotp.IotpSensors $1
+java ${VM_OPTS} org.apache.edgent.samples.connectors.iotp.IotpSensors $1