You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by jf...@apache.org on 2020/02/11 12:40:49 UTC

svn commit: r37992 - in /dev/plc4x/0.6.0: ./ rc1/ rc1/README.md rc1/RELEASE_NOTES rc1/apache-plc4x-0.6.0-source-release.zip rc1/apache-plc4x-0.6.0-source-release.zip.asc rc1/apache-plc4x-0.6.0-source-release.zip.sha512

Author: jfeinauer
Date: Tue Feb 11 12:40:49 2020
New Revision: 37992

Log:
Staging of RC1 for PLC4X Release 0.6.0

Added:
    dev/plc4x/0.6.0/
    dev/plc4x/0.6.0/rc1/
    dev/plc4x/0.6.0/rc1/README.md
    dev/plc4x/0.6.0/rc1/RELEASE_NOTES
    dev/plc4x/0.6.0/rc1/apache-plc4x-0.6.0-source-release.zip   (with props)
    dev/plc4x/0.6.0/rc1/apache-plc4x-0.6.0-source-release.zip.asc
    dev/plc4x/0.6.0/rc1/apache-plc4x-0.6.0-source-release.zip.sha512

Added: dev/plc4x/0.6.0/rc1/README.md
==============================================================================
--- dev/plc4x/0.6.0/rc1/README.md (added)
+++ dev/plc4x/0.6.0/rc1/README.md Tue Feb 11 12:40:49 2020
@@ -0,0 +1,280 @@
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+[![Maven central](https://img.shields.io/maven-central/v/org.apache.plc4x/plc4j-api.svg)](https://img.shields.io/maven-central/v/org.apache.plc4x/plc4j-api.svg)
+[![License](https://img.shields.io/github/license/apache/plc4x.svg)](http://www.apache.org/licenses/LICENSE-2.0)
+[![Last commit](https://img.shields.io/github/last-commit/apache/plc4x.svg)]()
+[![Twitter](https://img.shields.io/twitter/follow/ApachePLC4X.svg?label=Follow&style=social)](https://twitter.com/ApachePLC4X)
+
+
+<h1 align="center">
+  <br>
+   <img src="https://plc4x.apache.org/images/apache_plc4x_logo.png" 
+   alt="Apache PLC4X Logo" title="Apache PLC4X Logo"/>
+  <br>
+</h1>
+<h3 align="center">The Industrial IoT adapter</h3>
+<h4 align="center">The ultimate goal of PLC4X is to create a set of libraries, that allow unified access to any type of
+ PLC</h4>
+
+***
+
+# Table of contents
+
+  * [About PLC4X](#about-apache-plc4x)
+  * [Getting Started](#getting-started)
+  * [Developers](#developers)
+  * [Community](#community)
+  * [Contributing](#contributing)
+  * [Licensing](#licensing)
+
+***
+
+## About Apache PLC4X
+
+Apache PLC4X is an effort to create a set of libraries for communicating with industrial grade programmable logic controllers (PLCs) in a uniform way.
+We are planning on shipping libraries for usage in:
+
+1. Java
+2. C/C++ (not ready for usage)
+3. C# (.Net) (not ready for usage)
+4. Python (not ready for usage)
+
+PLC4X also integrates with other Apache projects, such as:
+
+* [Apache Calcite](https://calcite.apache.org/)
+* [Apache Camel](https://camel.apache.org/)
+* [Apache Edgent](https://edgent.apache.org/)
+* [Apache Kafka-Connect](https://kafka.apache.org)
+* [Apache Karaf](https://karaf.apache.org/)
+* [Apache NiFi](https://nifi.apache.org/)
+
+## Getting started
+
+Depending on the programming language, the usage will differ, therefore please go to the 
+[Getting Started](https://plc4x.apache.org/users/gettingstarted.html) on the PLC4X website to look up 
+the language of choice.
+
+### Java
+
+See the PLC4J user guide on the website to start using PLC4X in your Java application:
+[https://plc4x.apache.org/plc4j/users/gettingstarted.html](https://plc4x.apache.org/plc4j/users/gettingstarted.html)
+
+## Developers
+
+### Environment
+
+Currently the project is configured to require the following software:
+
+1. Java 8 JDK: For running Maven in general as well as compiling the Java and Scala modules `JAVA_HOME` configured to
+ point to that.
+2. libpcap/WinPcap for raw socket tests in Java or use of `passive-mode` drivers
+3. (Optional) Graphwiz: For generating the graphs in the documentation (http://www.graphviz.org/)
+4. Git (even when working on the source distribution)
+
+With this setup you will be able to build the Java part of PLC4X excluding the "proxy" drivers and servers.
+For a full build of PLC4X with all options the following has to be provided:
+
+#### Linux
+
+On a clean Ubuntu 18.04 the following software needs to be installed:
+
+```
+    sudo apt install python-setuptools gcc g++ make libpcap-dev
+```
+
+If you're building a source-distribution and haven't installed git yet, be sure to do so:
+
+```
+    sudo apt install git
+```
+
+In order to build the .Net version, please install the .Net package according to this guide:
+
+https://dev.to/carlos487/installing-dotnet-core-in-ubuntu-1804-7lp
+
+#### Mac
+
+Make sure `Homebrew` ist installed in order to update `Bison` to a newer version (the version 2.3 installed per default is too old)
+
+```
+    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
+```
+
+Then update `Bison`:
+
+```
+    brew install bison
+    brew link bison --force
+    echo 'export PATH="/usr/local/opt/bison/bin:$PATH"' >> ~/.bash_profile
+```
+
+Install `Python 2.7`:
+
+```
+    brew install python@2
+```
+
+Be sure to re-open the command window or the changes will not apply.
+
+If you're going to build the `with-dotnet` profile you also need to install DotNet.
+Please download it from: https://dotnet.microsoft.com/download and run the installer.
+
+LibPCAP is also installed via Homebrew:
+
+```
+    brew install libpcap
+```
+
+#### Windows
+
+Some tools need to be installed before being able to build on Windows:
+
+* WinBuilds (for `with-cpp`, `with-proxies` profiles)
+* Bison (for `with-cpp` profiles)
+* Flex (for `with-cpp` profiles)
+* Python 2.7 (for `with-python`, `with-proxies` profiles)
+* Dotnet (for `with-dotnet` profiles)
+* WinPCAP
+* OpenSSL
+
+He have tested `WinBuilds` with the bundle of: http://win-builds.org/doku.php/download_and_installation_from_windows
+Run the installer as "Administrator" or you won't be able to install it to "C:\Program Files" or the 32 Bit counterpart.
+When running the installer, make sure to select the options:
+* Native Windows
+* x86_64
+Not quite sure which elements are really needed, better just install all of them.
+If the installer fails to do something complaining about having to use a different mirror, enter "http://win-builds.org/1.5.0" as mirror address.
+
+WARNING: If you don't use the installer version of the distribution. The build will probably fail and it will be pretty
+impossible to see the problem. When manually executing the command, a popup will appear complaining about not being able
+to find some DLL. So if you are having these problems, please try using the installer instead of manually unpacking
+the archive.
+
+For `Bison`, please download the Setup installer version from here: http://gnuwin32.sourceforge.net/packages/bison.htm (When using the zip version the bison.exe couldn't find some DLL files)
+It seems the official 2.4.1 version has issues when installed in a directory which's path contains spaces. Please make sure you replace the exe with a patched version form here: http://marin.jb.free.fr/bison/bison-2.4.1-modified.zip
+(More infos on this issue here: https://sourceforge.net/p/gnuwin32/bugs/473/)
+
+Please download the `Flex` compiler from here: http://gnuwin32.sourceforge.net/packages/flex.htm (Ideally download the binary zip distribution)
+
+You can get `Python` from here: https://www.python.org/downloads/release/python-2716/
+
+For `.Net`, you need the `Developer Pack` in order to build .Net applications. So be sure to get a reasonably fresh installation from https://dotnet.microsoft.com
+
+If you're building a source-distribution and haven't installed git yet, be sure to do so.
+
+The windows version of the PCAP library can be found here: https://sourceforge.net/projects/winpcap413-176/
+(In order to read PCAPNG files we require a libpcap version 1.1.0 or greater. The default
+Windows version is 1.0. At this location there is a patched version based on libpcap 1.7.4)
+
+Last not least we need to install OpenSSL, which is available from here: https://indy.fulgan.com/SSL/
+The letter at the end of the version is sort of a "sub-minor" version, so I usually just take the version with the highest letter.
+
+Make sure the `bin` directories of containing the executables `mingw32-make.exe`, `bison.exe` and `flex.exe` are all on your systems `PATH` as well as the directory containing the `openssl.exe`.
+
+### Building with Docker
+
+If you don't want to bother setting up the environment on your normal system and you have Docker installed, you can also build everything in a Docker container:
+
+```
+   docker build -t plc4x .
+
+   docker run -p 9200:9200 -p 9300:9300 --name plc4x plc4x
+```
+
+### Getting Started
+
+You must have Java 8 installed on your system and connectivity to Maven Central
+(for downloading external third party dependencies). Maven will be automatically
+downloaded and installed by the maven wrapper `mvnw`.
+
+Build PLC4X Java jars and install them in your local maven repository
+
+```
+./mvnw install # add -DskipTests to omit running the tests
+```
+
+You can now construct Java applications that use PLC4X. The PLC4X examples
+are a good place to start and are available inside the `plc4j/examples`
+directory.
+
+The `C++` drivers are still under development and still not really usable. 
+Therefore they are located in the so-called `sandbox`. 
+If you want to build them, this has to be enabled by activating the `with-sandbox` and `with-cpp` maven profiles:
+
+```
+./mvnw -P with-sandbox,with-cpp install  # add -DskipTests to omit running the tests
+```
+
+Same applies for the `C# / .Net` implementation with `with-dotnet` profiles.
+
+```
+./mvnw -P with-sandbox,with-dotnet install  # add -DskipTests to omit running the tests
+```
+
+The Python implementation is currently in a somewhat unclean state and still needs refactoring.
+In order to be able to build the Python module, you currently need to activate the:
+`with-sandbox`, `with-python` and `with-proxies` profiles.
+
+```
+./mvnw -P with-sandbox,with-python,with-proxies install  # add -DskipTests to omit running the tests
+```
+
+In order to build everything the following command should work:
+
+```
+./mvnw -P with-boost,with-cpp,with-dotnet,with-logstash,with-proxies,with-python,with-sandbox install
+```
+
+## Community
+
+Join the PLC4X community by using one of the following channels. We'll be glad to help!
+
+### Mailing Lists
+
+Subscribe to the following mailing lists: 
+* Apache PLC4X Developer List: [dev-subscribe@plc4x.apache.org](mailto:dev-subscribe@plc4x.apache.org)
+* Apache PLC4X Commits List: [commit-subscribe@plc4x.apache.org](mailto:commit-subscribe@plc4x.apache.org)
+* Apache PLC4X Jira Notification List: [issues-subscribe@plc4x.apache.org](mailto:issues-subscribe@plc4x.apache.org)
+
+See also: [https://plc4x.apache.org/mailing-lists.html](https://plc4x.apache.org/mailing-lists.html)
+
+### Twitter
+
+Get the latest PLC4X news on Twitter: [https://twitter.com/ApachePlc4x](https://twitter.com/ApachePlc4x)
+
+## Contributing
+
+There are multiple forms in which you can become involved with the PLC4X project.
+
+These usually are, but are not limited to:
+
+* Submitting Pull Requests
+* Filing Bug-Reports
+* Active communication on our mailing lists
+* Promoting the project (articles, blog posts, talks at conferences)
+* Documentation
+
+We are a very friendly bunch and don’t be afraid to step forward.
+If you'd like to contribute to PLC4X, have a look at our 
+[contribution guide](https://plc4x.apache.org/developers/contributing.html)!
+
+
+## Licensing
+
+Apache PLC4X is released under the Apache License Version 2.0.

Added: dev/plc4x/0.6.0/rc1/RELEASE_NOTES
==============================================================================
--- dev/plc4x/0.6.0/rc1/RELEASE_NOTES (added)
+++ dev/plc4x/0.6.0/rc1/RELEASE_NOTES Tue Feb 11 12:40:49 2020
@@ -0,0 +1,246 @@
+==============================================================
+Apache PLC4X 0.6.0
+==============================================================
+
+This is the last release of PLC4X with the "handwritten" drivers.
+This Minor release will thus receive updates and fixes until
+most users have switched to 0.7 and above (with generated drivers).
+
+If you are using the S7 Driver you should update to this Version
+as the critical (memory leak) bug PLC4X-163 is fixed.
+
+New Features
+------------
+- PLC4X-168 A shorter S7 Field Syntax is Introduced.
+This release contains no furter features and mostly stabilization.
+
+Incompatible changes
+--------------------
+- Moved the C++, C# and Python drivers into the `sandbox`
+
+Bug Fixes
+---------
+- Fixed Promise Chain for InternalPlcWriteRequest
+- PLC4X-45 Add float support to Modbus Protocol
+- PLC4X-164 Fix wrong NOT FOUND exception in OPC UA Driver
+- PLC4X-166 Fixed Download Page
+- PLC4X-163 Fixed Netty ByteBuf Leaks for S7 Driver
+- PLC4X-158 Added Warning if no Pooled Driver is used for Scraper
+
+==============================================================
+Apache PLC4X 0.5.0
+==============================================================
+
+This is the first release containing our new generaed drivers (AB-ETH)
+
+New Features
+------------
+
+- Implemented a new Apache Kafka Connect integration module
+- Implemented a new Apache NiFi integration module
+- Implemented a new Logstash integration module
+- Implemented a driver for the AB-ETH protocol
+- Implemented Apache Karaf features for S7 OSGI drivers
+- PLC4X-121	Develop Code Generation to allow Generated Drivers in multiple Languages
+
+Sandbox (Beta-Features)
+- Implemented a new BACnet/IP passive mode driver
+- Implemented a new Serial DF1 driver
+
+Incompatible changes
+--------------------
+
+Bug Fixes
+---------
+
+- PLC4X-104	S7 Driver Datatype TIME_OF_DAY causes ArrayOutOfBoundException
+- PLC4X-134	S7 is terminating the connection during handshake
+- PLC4X-139	PLC4X leaks sockets in case of connection problems
+- PLC4X-141	String with real length of greater 127 throw an exception
+- PLC4X-144	When requesting invalid addresses, the DefaultS7MessageProcessor produces errors
+
+==============================================================
+Apache PLC4X 0.4.0
+==============================================================
+
+This is the first release of Apache PLC4X as top-level project.
+
+New Features
+------------
+
+- The PlcConnection now supports a `ping` method to allow checking if an existing connection is still alive.
+- Support of the OPC-UA protocol with the `opc-ua-driver`.
+- Other Languages Support:
+-- Added first versions of a C# .Net PLC4X API (`plc4net`)
+-- Added first versions of a Python PLC4X API (`plc4py`)
+- Added an Interop server which allows to relay requests from other languages to a Java Server
+
+Incompatible changes
+--------------------
+
+- ElasticSearch example was updated to use ElasticSearch 7.0.1, this might cause problems with older Kibana versions.
+
+Bug Fixes
+---------
+
+
+==============================================================
+Apache PLC4X (incubating) 0.3.1
+==============================================================
+
+This is a bugfix-release, that fixes some problems with S7 driver.
+
+Bug Fixes
+---------
+
+- The S7 driver didn't correctly handle "fill-bytes" in multi-item read-responses and multi-item write-requests
+- PLC4X-83: fixed NPE when reading odd-length array of one-byte base types
+- PLC4X-82: renamed flags "F" to Siemens Standard "M" (Marker)
+- PLC4X-84: Fixed a bug in the DefaultS7MessageProcessor which didn't correctly merge together split up items
+
+
+==============================================================
+Apache PLC4X (incubating) 0.3.0
+==============================================================
+
+This is the third official release of Apache PLC4X.
+
+Some new features have been added (e.g. plc-scraper) multiple
+new integrations are included (apache-karaf, apache-calcite)
+and a lot of (technical) refactoring has been done to prepare
+future work on adapters in different languages.
+
+New Features
+------------
+
+- Object PLC Mapping (OPM) now has a Alias Registry to allow
+  variable substitution at runtime and write support
+- New module `plc-scraper` for applications that have to
+  scrape a lot of sps fields with high frequency
+- New integration `apache-karaf` to enable plc4j in a karaf
+  runtime environment
+
+Incompatible changes
+--------------------
+- The 'plc4j-core' module has been merged into 'plc4j-api'.
+  So there is no 'plc4j-core' module anymore. Just remove that
+  dependency.
+- The driver artifact names have changed so if you were using
+  a `plc4j-protocol-{name}` you now need to change this to
+  `plc4j-driver-{name}`
+
+Bug Fixes
+---------
+
+PLC4X-75    Fixing dependency to the wrap url-handler
+PLC4X-76    When receiving responses with more than 512 byte,
+            the IsoOnTcp protocol doesn't work
+PLC4X-77    When the last item in a request is a DINT, the
+            DefaultS7MessageProcessor dies
+PLC4X-78    Write operations seem to fail
+-           Fixed a Bug where S7 was not able to read arrays.
+
+
+==============================================================
+Apache PLC4X (incubating) 0.2.0
+==============================================================
+
+This is the second official release of Apache PLC4X.
+
+Especially have we addressed all issues reported during
+our first release, that were of non-technical nature.
+These were tracked in:
+
+PLC4X-60	Fix findings by the last release
+
+New Features
+------------
+A new connection-pool was added, which allows automatic
+pooling and reuse of PLC connections.
+
+A new OPM module was added, which allows JPA like read-
+communication using POJOs, very similar to JPA.
+
+A stub of a new driver for the Emerson DeltaV protocol
+has been added, but is not yet a fully functional PLC4X
+driver. This is also a first test of our new `passive-
+mode-driver` concept.
+
+Incompatible changes
+--------------------
+
+We have refactored the API in order to eliminate the
+need of passing `x-requests` to `x-methods` and added
+an `execute` method to each request type. This greatly
+simplifies the client code. However this requires
+refactoring of applications using the direct PLC4X API.
+
+Miscellaneous changes
+---------------------
+
+We have increased the test coverage greatly and fixed
+a lot of little errors we found on the way.
+
+Known Issues
+------------
+
+Bug Fixes
+---------
+
+PLC4X-56	[S7] S7Field does not recognize addresses
+            with numElements present
+PLC4X-57	[S7] Response for address with numElements
+            contains only first item
+PLC4X-61	Installation fails plc4j-protocoll-ethernetip
+            needs license
+PLC4X-62	Modbus results deliver null-Value due to missing
+            implementation of getShort, getLong ...
+
+
+
+==============================================================
+Apache PLC4X (incubating) 0.1.0
+==============================================================
+
+This is the first official release of Apache PLC4X.
+It contains drivers for the following protocols:
+- Siemens S7comm (0x32)
+- Beckhoff ADS
+- Modbus
+- EtherNet/IP
+
+However the Siemens driver definitely is the most
+mature driver, the rest should be treated experimental.
+
+New Features
+------------
+
+PLC4X-29	[S7] Implement PDU Fragmentation
+PLC4X-39	Extend the Edgent integration with the new Subscription features of PLC4X
+
+Incompatible changes
+--------------------
+
+- NONE -
+
+Miscellaneous changes
+---------------------
+
+- NONE -
+
+Known Issues
+------------
+
+- NONE -
+
+Most drivers should be treated experimental and are not near production ready.
+The S7 driver is probably the furthest implemented and tested driver and hereby can be
+considered to be the most mature.
+
+Bug Fixes
+---------
+
+PLC4X-20	Jacoco doesn't seem to be working at all
+PLC4X-21	Code coverage doesn't seem to work
+PLC4X-47	S7 driver silently ignores surplus ReadRequestItems
+PLC4X-48	S7 driver failes to parse response with multiple items

Added: dev/plc4x/0.6.0/rc1/apache-plc4x-0.6.0-source-release.zip
==============================================================================
Binary file - no diff available.

Propchange: dev/plc4x/0.6.0/rc1/apache-plc4x-0.6.0-source-release.zip
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: dev/plc4x/0.6.0/rc1/apache-plc4x-0.6.0-source-release.zip.asc
==============================================================================
--- dev/plc4x/0.6.0/rc1/apache-plc4x-0.6.0-source-release.zip.asc (added)
+++ dev/plc4x/0.6.0/rc1/apache-plc4x-0.6.0-source-release.zip.asc Tue Feb 11 12:40:49 2020
@@ -0,0 +1,16 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAABCgAdFiEErb1CjLW/bJ/8d7kHwzbgFDpVO4kFAl5Cmg8ACgkQwzbgFDpV
+O4nxZhAAhYwjgZq/tVCsZPpffOInf70YHaKbXaylg6YthvVb78LiG0+Vvg8EsPe2
+7+L171SOUS50J5hpVaYZOETmnA4VjUQzXbWhk1bRdgGWAgzVVLDX89mT8SNTxQOm
+9djVQOBtsqV0OBxVMMkl8gN1/1uag+NL9JV5KM6QNfJVwusqlurO3bCLzCj+XFEP
+LihuPHfDMS6EqXWJC3H+EOjYiNCVRHXHZlzJgDug0U28cb45DId+SJsr7bxU+Glb
+kL38x/yJNL0w8I6pUa3TA2e6VQcvYz75IEz5QJss1E1HzNJD3l9pt+orgQs7YzRp
+ywKopX82Z0xcgIdWqeXD2qAF0HVOXi1UshKf0S4uYhOtYj0GS7tC/Y0kL9xP6gfM
++AAi4RmFhvBVCFcWFixV8+AAj5EJwbkRo7kAZABnISkTw6xC6EqPVOdb8FmGJ5qC
+CPzrhWShJLCjdyVOpNF+lA6dpPiBtUhgoAxL09bZmwukjueB6lGOTn+r06D/Gq0e
+Z9mIiuh7WA9qvjPCKWbOqTYDQTXs45P8XXt4G18SjjJjjNH3DwZgYtF9QxRKNH49
+ydtMvMgZQ+9C2cbvsJVMqh2Sk9H71b9Nzsg2KO0OyyJ8q0GITt1UAyJXfA5PGxdR
+S8JZvppkB+tn4SFQDf1uamE1Fs7hX3HuAsoOW3dLdiE0rpGeTX4=
+=Ji8b
+-----END PGP SIGNATURE-----

Added: dev/plc4x/0.6.0/rc1/apache-plc4x-0.6.0-source-release.zip.sha512
==============================================================================
--- dev/plc4x/0.6.0/rc1/apache-plc4x-0.6.0-source-release.zip.sha512 (added)
+++ dev/plc4x/0.6.0/rc1/apache-plc4x-0.6.0-source-release.zip.sha512 Tue Feb 11 12:40:49 2020
@@ -0,0 +1 @@
+b831c1313dd48191219153e0af7dd2a432657fcd988381e2594493e830eff2de8e18bcc101f87f546b1755907cfe4b45e4086a1662f8224d0b1d93e23d610b4d
\ No newline at end of file