Eclipse Kura 3.0.0 Release Review

Type
Release
State
Successful
End Date of the Review Period

Reviews run for a minimum of one week. The outcome of the review is decided on this date. This is the last day to make comments or ask questions about this review.

Project
Release

3.0.0

Description

This release of Eclipse Kura introduces several new features and improvements to usability. The release is targeted as a major release for Kura due to these changes, though there is no API incompatibility to previous versions. Below are a brief description of the new features

  • Kura Wires: A visual data flow programming tool to reduce the complexities of interacting with devices downstream of the Kura gateway. Wires also provides helper components to build pipelines for moving and processing data from these downstream devices to the Cloud. Components such as stores, filters, FIFOs, etc. will allow users to create complex data flows without writing any Java code. More information on Kura Wires can be found here.
  • Asset Model: A new API for Assets is introduced. This model is intended to further reduce the complexities of communicating with and between devices. As examples of this model, Kura will contribute assets to the Eclipse Marketplace in the form of drivers for OPC-UA (based on Eclipse Milo) and Modbus.
  • Improved CloudService Abstraction: This release of Kura has improved its abstraction to be more agnostic of Cloud platforms. Changes such as allowing simple JSON format allows for easier integration with popular platforms such as AWS, Azure, etc. 
  • Java 8: The move to Java 8 allows Kura to also move several internal dependencies to newer versions. This includes moving to Equinox 3.11 and Jetty 9. 
  • Updated UI: An updated web UI design is intended to make usability easier and to provide a better experience on mobile platforms. 
  • Websockets: With this release, Kura will support MQTT over Websockets leveraging the Eclipse Paho library.
  • Bundle Versioning: Eclipse Kura will now follow the Eclipse method for bundle versioning as outlined here.
  • Developer Experience: In an effort to improve Developer experience, Kura is now integrated with the Oomph installer. This allows Developers to setup Kura using the Eclipse installer.
  • Test and Validation: Kura has expanded its code coverage and functional testing through unit tests and OSGi test fragment bundles. This will continue to be a major part of Kura releases to improve code quality.
Architectural Issues

This release of Eclipse Kura does not introduce breaking changes within the API, so it remains compatible with previous releases. The development team has begun deprecating certain methods with the aim of removing these methods in future major releases. Any method slated for removal has been annotaded accordingly as deprecated. 

Kura has improved its method of tracking configurable components. With this release, only components that provide the ConfigurableComponent Interface will be tracked. The previous behavior of tracking configurable components can be enabled by setting the system property "org.eclipse.kura.core.configuration.legacyServiceTracking" to true.

Security Issues

Starting with this release of Kura, the installers will now attempt to disable IPv6 on the targeted system. Eclipse Kura does not yet have support for IPv6, so this was a potential vulnerability. Once support for IPv6 is added to Kura, this disabling functionality will be removed.

The Apache file upload library has been updated to avoid these potential issues:

https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-0050

https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2013-0248

 

The implementation of the CryptoService performs encryption using a password that is hard coded and published.

Non-Code Aspects

Detailed information about Kura Wires, including links to external blogs and video postings can be found here

Information on Kura moving to a new Git work flow can be found here