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 <[email protected]>
Authored: Fri Feb 17 16:16:05 2017 -0500
Committer: Dale LaBossiere <[email protected]>
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


Reply via email to