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 <dlab...@us.ibm.com> Authored: Fri Feb 17 16:16:05 2017 -0500 Committer: Dale LaBossiere <dlab...@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