You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2019/10/29 12:49:24 UTC

svn commit: r36532 - in /dev/plc4x/0.5.0/rc3: ./ README.md RELEASE_NOTES apache-plc4x-0.5.0-source-release.zip apache-plc4x-0.5.0-source-release.zip.asc apache-plc4x-0.5.0-source-release.zip.sha512

Author: cdutz
Date: Tue Oct 29 12:49:23 2019
New Revision: 36532

Log:
Staging of RC3 of PLC4X 0.5.0

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

Added: dev/plc4x/0.5.0/rc3/README.md
==============================================================================
--- dev/plc4x/0.5.0/rc3/README.md (added)
+++ dev/plc4x/0.5.0/rc3/README.md Tue Oct 29 12:49:23 2019
@@ -0,0 +1,276 @@
+<!--
+
+  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. Scala
+3. C/C++
+4. C# (.Net)
+5. Python
+
+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
+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
+
+If you're building a source-distribution and haven't installed git yet, be sure to do so:
+
+    sudo get 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.
+
+#### 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)
+
+He have tested WinBuilds with the bundle of: http://win-builds.org/doku.php/download_and_installation_from_windows
+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.
+
+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/
+
+Make sure the `bin` directories of containing the executables `mingw32-make.exe`, `bison.exe` and `flex.exe` are all on your systems `PATH`.
+
+If you're building a source-distribution and haven't installed git yet, be sure to do so.
+
+
+### 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 -P with-java  # 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.
+
+If you want to also build the C++ libraries, this has to be enabled by activating
+
+the `with-cpp` profile
+
+```
+./mvnw -P with-cpp install  # add -DskipTests to omit running the tests
+```
+
+Same applies for the C# .Net implementation with `with-dotnet` profiles.
+
+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 both the:
+`with-python` and `with-proxies` profiles.
+
+However both of these are in a pretty experimental state.
+
+In order to build everything the following command should work:
+
+```
+./mvnw -P with-boost,with-cpp,with-dotnet,with-java,with-logstash,with-proxies,with-python,with-sandbox install
+```
+
+### Installing libpcap/WinPcap
+
+Some parts of PLC4X, especially the raw socket support, require installed versions
+of libpcap/WinPcap.
+
+You can download the Mac/Linux version from: http://www.tcpdump.org/
+The windows version 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 is a patched version based on libpcap 1.7.4)
+
+Same applies for Python with the `with-python` and the C# .Net imeplemtation with `with-dotnet` profiles.
+However both of these are in a pretty experimental state.
+
+
+### Building the C++ libraries
+
+When building the C++ libraries we require an installed `gcc` compiler.
+On Mac and Linux this is usually the case.
+On a minimal Ubuntu Linux system the following modules needed to be installed
+manually:
+
+* gcc
+* g++
+* make
+
+On Windows the required compiler is generally not available per default.
+The build is optimized for using a gcc-port called MinGW, available from
+http://win-builds.org/doku.php/download_and_installation_from_windows
+Make sure the `bin` directory containing the executable `mingw32-make.exe`
+is on your systems `PATH`.
+
+### Building with Docker
+
+```
+   docker build -t plc4x .
+
+   docker run -p 9200:9200 -p 9300:9300 --name plc4x plc4x
+```
+
+## 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.5.0/rc3/RELEASE_NOTES
==============================================================================
--- dev/plc4x/0.5.0/rc3/RELEASE_NOTES (added)
+++ dev/plc4x/0.5.0/rc3/RELEASE_NOTES Tue Oct 29 12:49:23 2019
@@ -0,0 +1,221 @@
+==============================================================
+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.5.0/rc3/apache-plc4x-0.5.0-source-release.zip
==============================================================================
Binary file - no diff available.

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

Added: dev/plc4x/0.5.0/rc3/apache-plc4x-0.5.0-source-release.zip.asc
==============================================================================
--- dev/plc4x/0.5.0/rc3/apache-plc4x-0.5.0-source-release.zip.asc (added)
+++ dev/plc4x/0.5.0/rc3/apache-plc4x-0.5.0-source-release.zip.asc Tue Oct 29 12:49:23 2019
@@ -0,0 +1,16 @@
+-----BEGIN PGP SIGNATURE-----
+
+iQIzBAABCgAdFiEE8VaBP/MVAH42umwTCJEnwVxg1rkFAl23+YAACgkQCJEnwVxg
+1rnTAw//d2l5sx7yGZEqnQ5txIVVVjMkLmO/DLpex7bByhGAVPDhhN4qFHad8tyW
++eVgPjHHJUGnQpQQOuw+eu7tX25EsYJ77KrPJb1d4kmxJnR4kgJdas5pvb/BL6JY
+TPGPwWhJ86Sj6cr5Vm+tTa4XoXDvudGOWp+ta7tiKQDkI77vBytRxz2RgvNczGb1
+l4pQ5BFRR2MrkzQKLcMgyQ352Uhk4L6ZcY1cFU+/zvMw/vWTkVm/hewe6XrNbHDo
+5MX8Zh0saZq8Of0n+1/PRWOyRCjY8o+XhqyROFHLNiIFQHtDcpXIzpRZjzSVH6LT
+18L1MyDpXQ4nUGIBmShb46xGTEt3KTxd9B0dQDzBezmcZmFfnZazStfIBqMjAQ5c
+AJCG7sveDnnOGtT4Rd8Qf2rk2/FLGQDdbusgbYd18V1Da8OXP54TGXW6u090dpMQ
+9Ilgxdxr2MXv5UV6+Aw9oZRzuTZpOlsUqLYiEGltEMurm3YOkvnSOUlF8ihTcr6s
+9LT4bAmc5EvpbOFoQLvhAFJY2p76qyQ08Rj7fVwUMoh9IlqyLETQL0vL9UG1d1wK
+SIYJ8Q5Yl1Pj03VgKPVVba6oNmnr9t4jwzUI1yHI0UBtSLKJSdnnNYkJxYcDKjY2
+tk0eAa/ctDNXaY2GeSFQ67KA2CkL222q4XvxMO6u6XLHyzQ4jm0=
+=ilWK
+-----END PGP SIGNATURE-----

Added: dev/plc4x/0.5.0/rc3/apache-plc4x-0.5.0-source-release.zip.sha512
==============================================================================
--- dev/plc4x/0.5.0/rc3/apache-plc4x-0.5.0-source-release.zip.sha512 (added)
+++ dev/plc4x/0.5.0/rc3/apache-plc4x-0.5.0-source-release.zip.sha512 Tue Oct 29 12:49:23 2019
@@ -0,0 +1 @@
+8e3f1149a65a95da2579767c05d831c144ea02b1599d8a89c48228ba25b9c0d9969ea1b8159f330fb1083d9a8ac67484b3606d48957d2270848a76ad04d18737
\ No newline at end of file