[ANNOUNCE] Apache PLC4X 0.12.0 released

2024-02-20 Thread Christofer Dutz
The Apache PLC4X team is pleased to announce the release of Apache PLC4X 0.12.0

PLC4X is a set of libraries for communicating with industrial programmable
logic controllers (PLCs) using a variety of protocols but with a shared API.

This release was mainly a release containing many bugfixes. We
literally halved the number of open issues. A second major topic would
have been another API streamlining in preparation for the big 1.0.0
release.

The API was extended by additional features, that now allow tools to
automatically provide support for tool assist when connecting to
devices. Now additional information such as:
 - Which transports does a given driver support?
 - Which is the default transport for a given driver?
 - Which configuration-options does a driver have?
 - What types are these configuration options?
 - What are the default-values these configuration options have?
 - Which of these configuration options are required?
 - The same set of information is also available for the transports a
driver is using.

Especially the S7, Modbus and OPC-UA drivers received the most
bugfixes and improvements.
S7 now supports all supported S7 datatypes. Modbus should now also
work in Serial modes. OPC-UA now supports certificate based
communication.

Visit the Apache PLC4X website [1] for general information or
the downloads page [2] for release notes and download information.

Regards,
The Apache PLC4X team

[1] http://plc4x.apache.org
[2] http://plc4x.apache.org/users/download.html


[ANNOUNCE] Apache PLC4X 0.10.0 released

2022-11-06 Thread Christofer Dutz
The Apache PLC4X team is pleased to announce the release of Apache PLC4X 0.11.0

PLC4X is a set of libraries for communicating with industrial programmable
logic controllers (PLCs) using a variety of protocols but with a shared API.

A lot of the work in this version went into refactoring and
cleaning up our code generation. The code generation itself is
now a lot cleaner and simpler as well as the code generated
for Java. We also added a number of new field-types to allow
implementing more sophisticated protocols. PLC4C now should
also support all of the constructs mspec has to offer.

New Features


- Implemented a `PLC4X-Server` and `PLC4X-Driver` that allows
  using the server as a proxy for communicating with PLCs.

- The Modbus driver is now also available in the variants:
  "modbus-rtu" and "modbus-ascii" (Both using Serial
  communication, which however can be tunneled through a
  "tcp" and "udp" transport)

- The KNX driver in Java now supports reading "knxproj" files
  exported from the new ETS version 6.

Incompatible changes


- The name of the Modbus TCP driver was changed from "modbus"
  to "modbus-tcp".

- Removed the Apache Edgent (incubating) integration and
  examples related, as Edgent is abandoned and there were
  CVEs reported, which will not be fixed.

- We have replaced the BitString types with BYTE, WORD, DWORD,
  and LWORD which generally match their unsigned integer
  counterparts. So we are no longer returning lists of boolean
  values for any of these types.

Visit the Apache PLC4X website [1] for general information or
the downloads page [2] for release notes and download information.

Regards,
The Apache PLC4X team

[1] http://plc4x.apache.org
[2] http://plc4x.apache.org/users/download.html


CVE-2021-43083: Apache PLC4X 0.9.0 Buffer overflow in PLC4C via crafted server response

2021-12-20 Thread Christofer Dutz
Description:

Apache PLC4X - PLC4C (Only the C language implementation was effected) was 
vulnerable to an unsigned integer underflow flaw inside the tcp transport. 
Users should update to 0.9.1, which addresses this issue.

However, in order to exploit this vulnerability, a user would have to actively 
connect to a mallicious device which could send a response with invalid 
content. Currently we consider the probability of this being exploited as quite 
minimal, however this could change in the future, especially with the 
industrial networks growing more and more together.

Credit:

Apache PLC4X would like to thank Eugene Lim for reporting this issue.

References:

https://lists.apache.org/thread/jxx6qc84z60xbbhn6vp2s5qf09psrtc7



[ANNOUNCE] Apache PLC4X 0.9.1 released

2021-12-18 Thread Christofer Dutz
The Apache PLC4X team is pleased to announce the release of Apache PLC4X 0.9.1

This is a bugfix release aiming at directly fixing CVE-2021-43083 as
well as updating the dependency to Log4J 2.14.0 which was affected by
CVE-2021-44228

Please note that CVE-2021-43083 only affects the PLC4C part of PLC4X.

PLC4X is a set of libraries for communicating with industrial programmable
logic controllers (PLCs) using a variety of protocols but with a shared API.

The current release contains drivers able to communicate with
industrial PLCs using one of the following protocols:

  *   AB-ETH
  *   Beckhoff ADS
  *   CanOpen
  *   EtherNet/IP / EIP
  *   Firmata
  *   KNXNet/IP
  *   Modbus
  *   OPC UA
  *   Siemens S7 (0x32)

Beyond that we also provide integration modules for the following
Apache projects and frameworks:

  *   Apache Calcite
  *   Apache Camel
  *   Apache Edgent (Incubating / Retired)
  *   Apache Kafka (Kafka Connect)
  *   Apache NiFi
  *   Logstash

It also provides an `OPC UA Server` which can act as a bridge between
legacy systems and OPC UA.

Visit the Apache PLC4X website [1] for general information or
the downloads page [2] for release notes and download information.

Regards,
The Apache PLC4X team

[1] http://plc4x.apache.org
[2] http://plc4x.apache.org/users/download.html


[ANNOUNCE] Apache PLC4X 0.9.0 released

2021-10-23 Thread Christofer Dutz
The Apache PLC4X team is pleased to announce the release of Apache PLC4X 0.9.0

PLC4X is a set of libraries for communicating with industrial
programmable logic controllers (PLCs) using a variety of protocols but
with a shared API.

The current release contains drivers able to communicate with
industrial PLCs using one of the following protocols:

  *   AB-ETH
  *   Beckhoff ADS
  *   CanOpen
  *   GenericCan
  *   EtherNet/IP / EIP
  *   Firmata
  *   KNXNet/IP
  *   Modbus
  *   OPC UA
  *   Siemens S7 (0x32)

Beyond that we also provide integration modules for the following
Apache projects and frameworks:

  *   Apache Calcite
  *   Apache Camel
  *   Apache Edgent (Incubating / Retired)
  *   Apache Kafka (Kafka Connect)
  *   Apache NiFi

Incubating elements:

  *   CAN transport (Hardware Abstraction Layer)
  *   Initial POC of a Profinet Master driver (With Discovery support)

It also provides an `OPC UA Server` which can act as a bridge between
legacy systems and OPC UA.

Visit the Apache PLC4X website [1] for general information or the
downloads page [2] for release notes and download information.

NOTICE: In contrast to the content of the README, please be sure to
build PLC4X at least with Java 11

Regards,
The Apache PLC4X team

[1] http://plc4x.apache.org
[2] http://plc4x.apache.org/users/download.html


[ANNOUNCE] Apache PLC4X 0.8.0 released

2021-02-05 Thread Christofer Dutz
The Apache PLC4X team is pleased to announce the release of Apache PLC4X 0.8.0

PLC4X is a set of libraries for communicating with industrial
programmable logic controllers (PLCs) using a variety of protocols but
with a shared API.

The current release contains drivers able to communicate with
industrial PLCs using one of the following protocols:

  *   AB-ETH
  *   Beckhoff ADS
  *   CanOpen
  *   EtherNet/IP / EIP
  *   Firmata
  *   KNXNet/IP
  *   Modbus
  *   OPC UA
  *   Siemens S7 (0x32)

This is the first version of PLC4X to provide working drivers for: KNX
and Modbus in the programming language: go

Beyond that we also provide integration modules for the following
Apache projects and frameworks:

  *   Apache Calcite
  *   Apache Camel
  *   Apache Edgent (Incubating / Retired)
  *   Apache Kafka (Kafka Connect)
  *   Apache NiFi
  *   Logstash

It also provides an `OPC UA Server` which can act as a bridge between
legacy systems and OPC UA.

Visit the Apache PLC4X website [1] for general information or the
downloads page [2] for release notes and download information.

Regards,

The Apache PLC4X team


[1] http://plc4x.apache.org
[2] http://plc4x.apache.org/users/download.html


[ANNOUNCE] Apache PLC4X 0.7.0 released

2020-05-25 Thread Christofer Dutz
The Apache PLC4X team is pleased to announce the release of Apache PLC4X 0.7.0

PLC4X is a set of libraries for communicating with industrial programmable
logic controllers (PLCs) using a variety of protocols but with a shared API.

Find more information on the project on our website
https://plc4x.apache.org

This release can be downloaded from here:
https://plc4x.apache.org/users/download.html

This is probably the biggest release we had so far. It marks a
milestone in providing
Driver implementations for multiple target languages, as with this release all
existing drivers have been deleted and replaced by new generated drivers.
We also took the opportunity to fix some of the problems we noticed on the
old drivers. Please note that starting with this version the
connection string syntax
has changed significantly and for some drivers also the address
syntax. So please
be sure to double check our driver documentation here:
https://plc4x.apache.org/users/protocols/index.html

However we suggest to update with caution and not instantly go into production
without previously testing. As with all new things, even if we did a
serious amount
of testing, there might be issues hidden in the details. If you should find any
regression issues, please report them as we are planning on speeding
up the release-
train significantly with this release. For the time being the 0.6.0
branch will continue
to be maintained until feedback from the community makes us feel safe with
focusing solely on the new drivers.

Regards,
The Apache PLC4X team


[ANNOUNCE] Apache PLC4X 0.5.0 released

2019-11-25 Thread Christofer Dutz
The Apache PLC4X team is pleased to announce the release of Apache PLC4X
0.5.0

PLC4X is a set of libraries for communicating with industrial programmable
logic controllers (PLCs) using a variety of protocols but with a shared API.

The current release contains drivers able to communicate with
industrial PLCs using one of the following protocols:

  *   Siemens S7-STEP7
  *   Beckhoff ADS
  *   Modbus
  *   EtherNet/IP
  *   OPC-UA
  *   AB-ETH

Beyond that we also provide integration modules for the following
Apache projects and frameworks:

  *   Apache Calcite
  *   Apache Camel
  *   Apache Edgent (Incubating)
  *   Apache Kafka (Kafka Connect)
  *   Apache Karaf
  *   Apache NiFi
  *   Elastic LogStash

Starting with this release, we are proud to announce the availability
of all PLC4J modules as valid OSGi Bundles.

The API version generally supports:

  *   Java

We are also working on versions in:

  *   C++
  *   C#/.NET
  *   Python

However there are currently no driver implementations for any language
other than Java yet.
So please consider these technology previews.

Visit the Apache PLC4X website [1] for general information or
the downloads page [2] for release notes and download information.

RELEASE NOTES

This is the first release containing our new generated 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-121Develop 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-104S7 Driver Datatype TIME_OF_DAY causes
ArrayOutOfBoundException
- PLC4X-134S7 is terminating the connection during handshake
- PLC4X-139PLC4X leaks sockets in case of connection problems
- PLC4X-141String with real length of greater 127 throw an exception
- PLC4X-144When requesting invalid addresses, the
DefaultS7MessageProcessor produces errors

Regards,
The Apache PLC4X team

[1] http://plc4x.apache.org
[2] http://plc4x.apache.org/users/download.html


New Apache mailing-list for inter-project communication with a focus on IoT related topics

2019-08-06 Thread Christofer Dutz
There's a lot of magic happening in the IoT sector at the moment.

A lot of new projects are appearing and older projects are growing and
extending their functionality.
We have noticed that it's currently quite difficult to keep track who the
players in this field are and what they're up to.

So we decided to create a new mailing-list to help improve the
communication:

i...@apache.org (Archive at:
https://lists.apache.org/list.html?i...@apache.org)

We hope this communication-channel will help reduce unnecessary double-work
and improve streamlining the projects to work together as good a possible.

So if you're involved in projects in the IoT sector, if you want to be
involved and haven't found the right project to contribute yet, or if you
just want to know what's up, it would be great to see you on this list
(Subscribe by sending an email to: iot-subscr...@apache.org)

Corresponding Blog-Post:
https://blogs.apache.org/comdev/entry/new-apache-mailing-list-for

Chris


[ANNOUNCE] Apache PLC4X 0.4.0 released

2019-05-27 Thread Christofer Dutz
The Apache PLC4X team is pleased to announce the release of Apache PLC4X 0.4.0

PLC4X is a set of libraries for communicating with industrial programmable
logic controllers (PLCs) using a variety of protocols but with a shared API.

The current release contains drivers able to communicate with
industrial PLCs using one of the following protocols:

  *   Siemens S7 (0x32)
  *   Beckhoff ADS
  *   Modbus
  *   EtherNet/IP
  *   OPC-UA

Beyond that we also provide integration modules for the following
Apache projects and frameworks:

  *   Apache Calcite
  *   Apache Camel
  *   Apache Edgent (Incubating)
  *   Apache Kafka (Kafka Connect)
  *   Apache Karaf
  *   Apache NiFi

Starting with this release, we are proud to announce the availability
of first API versions in:

  *   C++
  *   C#/.NET
  *   Java
  *   Python

However there are currently no driver implementations for any language
other than Java yet.
So please consider these technology previews.

Visit the Apache PLC4X website [1] for general information or
the downloads page [2] for release notes and download information.

Regards,
The Apache PLC4X team

[1] http://plc4x.apache.org
[2] http://plc4x.apache.org/users/download.html


[ANNOUNCE] Apache PLC4X (incubating) 0.2.0 released

2018-12-02 Thread Christofer Dutz
The Apache PLC4X (Incubating) team is pleased to announce the release of
Apache PLC4X (incubating) 0.2.0

PLC4X is a set of libraries for communicating with industrial programmable
logic controllers (PLCs) using a variety of protocols but with a shared API.

The current release contains drivers able to communicate with industrial
PLCs using one of the following protocols:

  *   Siemens S7 (0x32)
  *   Beckhoff ADS
  *   Modbus
  *   EtherNet/IP

Beyond that we also provide integration modules for the following Apache
projects and frameworks:

  *   Apache Edgent (Incubating)
  *   Apache Camel
  *   Apache Kafka (Kafka Connect)
  *   Apache NiFi

>From version 0.1.0 the most notable new features are a new PLC connection
pool as well as an OPM component Object PLC Mapping (Similar to JPA) for
mapping POJOs to PLC resources.

Visit the Apache PLC4X website [1] for general information or
the downloads page [2] for release notes and download information.

Regards,
The Apache PLC4X team

[1] http://plc4x.apache.org
[2] http://plc4x.apache.org/users/download.html

=

*Disclaimer*

Apache Edgent is an effort undergoing incubation at The Apache Software
Foundation (ASF), sponsored by the name of Apache Incubator PMC. Incubation
is required of all newly accepted projects until a further review indicates
that the infrastructure, communications, and decision making process have
stabilized in a manner consistent with other successful ASF projects. While
incubation status is not necessarily a reflection of the completeness or
stability of the code, it does indicate that the project has yet to be
fully endorsed by the ASF.


[ANNOUNCE] Apache PLC4X (incubating) 0.1.0 released

2018-10-05 Thread Christofer Dutz
The Apache PLC4X (Incubating) team is pleased to announce the release of
Apache PLC4X (incubating) 0.1.0


This is the first official release of PLC4X.


PLC4X is a set of libraries for communicating with industrial programmable

logic controllers (PLCs) using a variety of protocols but with a shared API.


The current release contains drivers able to communicate with industrial
PLCs using one of the following protocols:


  *   Siemens S7 (0x32)

  *   Beckhoff ADS

  *   Modbus

  *   EtherNet/IP


Beyond that we also provide integration modules for the following Apache
projects and frameworks:


  *   Apache Edgent (Incubating)

  *   Apache Camel

  *   Apache Kafka (Kafka Connect)


Visit the Apache PLC4X website [1] for general information or

the downloads page [2] for release notes and download information.


Regards,

The Apache PLC4X team


[1] http://plc4x.apache.org

[2] http://plc4x.apache.org/users/download.html


=


*Disclaimer*


Apache PLC4X is an effort undergoing incubation at The Apache Software

Foundation (ASF), sponsored by the name of Apache Incubator PMC. Incubation

is required of all newly accepted projects until a further review indicates

that the infrastructure, communications, and decision making process have

stabilized in a manner consistent with other successful ASF projects. While

incubation status is not necessarily a reflection of the completeness or

stability of the code, it does indicate that the project has yet to be

fully endorsed by the ASF.


[ANNOUNCE] Apache Edgent 1.2.0-incubating release

2018-01-03 Thread Christofer Dutz
The Apache Edgent project is pleased to announce release 1.2.0-incubating!

Apache Edgent is a stream processing programming model and lightweight
micro-kernel style runtime to execute analytics at devices on the edge or
at the
gateway.

Since the release of Apache Edgent 1.1.0 we have worked greatly on improving
the build. Not only in order to make it easier to release Edgent it also
simplifies
onboarding of new committers as well as using Apache Edgent. As an
additional
result of this effort now almost all artifacts are available as Java 8 but
also as
Java 7 and Android versions.

This is the first release of Apache Edgent to be built with Maven and hereby
provide all Edgent artifacts via the usual Maven distribution mechanisms.

Besides the build system changes, we have added a number of bug fixes and
enhancements.

Starting with Apache Edgent 1.2.0 the samples have also been moved to a
separate GIT repository [1]

Visit the Apache Edgent website [2] for general information or
the downloads page [3] for release notes and download information.

Regards,
The Apache Edgent team

[1] https://github.com/apache/incubator-edgent-samples.git
[2] https://edgent.apache.org/
[3] https://edgent.apache.org/docs/downloads.html

=

*Disclaimer*

Apache Edgent is an effort undergoing incubation at The Apache Software
Foundation (ASF), sponsored by the name of Apache Incubator PMC. Incubation
is required of all newly accepted projects until a further review indicates
that the infrastructure, communications, and decision making process have
stabilized in a manner consistent with other successful ASF projects. While
incubation status is not necessarily a reflection of the completeness or
stability of the code, it does indicate that the project has yet to be
fully endorsed by the ASF.


[ANNOUNCE] Apache Flex BlazeDS 4.7.3

2017-03-31 Thread Christofer Dutz
Hi all,

 

I am pleased to announce the release of Apache Flex BlazeDS 4.7.3. 

 

Apache Flex BlazeDS 4.7.3 is an update to 4.7.2 which adds a new

blazeds-spring-boot-starter module for easily setting up a BlazeDS server with

Spring Boot. 

 

It also provides Maven archetypes for easily creating new spring-boot project 
that 

make use of BlazeDS. 

 

We also did quite a lot of fine-tuning of the security default settings to make 
BlazeDS 

more secure.

 

Starting with 4.7.3 BlazeDS Deserialization of XML is disabled completely per 
default

but can easily be enabled in your services-config.xml:

 





http://{server.name}:{server.port}/{context.root}/messagebroker/amf "

  class="flex.messaging.endpoints.AMFEndpoint"/>





true









 

Also, we now enable the ClassDeserializationValidator per default to only allow

deserialization of whitelisted classes. BlazeDS internally comes with the 
following

whitelist:

 

flex.messaging.io.amf.ASObject

flex.messaging.io.amf.SerializedObject

flex.messaging.io.ArrayCollection

flex.messaging.io.ArrayList

flex.messaging.messages.AcknowledgeMessage

flex.messaging.messages.AcknowledgeMessageExt

flex.messaging.messages.AsyncMessage

flex.messaging.messages.AsyncMessageExt

flex.messaging.messages.CommandMessage

flex.messaging.messages.CommandMessageExt

flex.messaging.messages.ErrorMessage

flex.messaging.messages.HTTPMessage

flex.messaging.messages.RemotingMessage

flex.messaging.messages.SOAPMessage

java.lang.Boolean

java.lang.Byte

java.lang.Character

java.lang.Double

java.lang.Float

java.lang.Integer

java.lang.Long

java.lang.Object

java.lang.Short

java.lang.String

java.util.ArrayList

java.util.Date

java.util.HashMap

org.w3c.dom.Document

 

If you need to deserialize any other classes, be sure to register them in your

services-config.xml:

 























 

(Beware, by manually providing a whitelist the default whitelist is disabled)

 

Known Issues

_

FLEX-34648 Memory Leak occurred in AsyncMessage when sending a lot of messages

 

Chris



[Anounce] Apache Flex BlazeDS 4.7.0 released

2015-03-17 Thread Christofer Dutz
The Apache Flex team is pleased to annonce the release of Apache Flex
BlazeDS 4.7.0.

 

Apache Flex BlazeDS is the server-based Java remoting and web messaging
technology that enables developers to easily connect to back-end distributed
data and push data in real-time to Adobe(r) Flex(r) and Adobe AIR(tm)
applications for more responsive rich Internet application (RIA)
experiences..

 

Apache Flex BlazeDS 4.7 is the initial release of BlazeDS from the Apache
Software Foundation.  Prior to this, releases were provided by Adobe Systems
Inc. It is compatible with most code written to target Adobe Flex 4.6.

 

The source packages can be downloaded from
http://www.us.apache.org/dist/flex/BlazeDS/4.7.0/

or one of Apache's mirror sites. Maven artifacts have been published to
Apaches Maven Repository

(https://repository.apache.org/content/repositories/releases/org/apache/flex
/blazeds/) and are available from Maven Central.

 

For detailed information about Apache Flex please visit
http://flex.apache.org/