You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2018/01/05 14:55:34 UTC
[incubator-plc4x] branch refactoring/java_generify updated (fd66d1d
-> 99fb948)
This is an automated email from the ASF dual-hosted git repository.
sruehl pushed a change to branch refactoring/java_generify
in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git.
from fd66d1d added request build for convenient request creation.
add 8ebeeef PLC4X-21 - Code coverage doesn't seem to work
add ef6084a no need for abstract method as it's in base class and class is abstract
add 641c99f refactor and clean up switches
add 63bba4d clean up switch statements a little
add f9d3fa1 no need for local variable
add 02b8f57 unnneeded import
add c4c9ac2 statics come first
add 8917742 prefer parseInt to valueOf
add c0c3bb1 local var had some name as field
add 4166952 local var had some name as field
add 4612ae3 if you don't return null to here's no need to check for it
add 4619484 exception can't be throw
add 125e630 no need for nested ifs
add 708f563 Merge remote-tracking branch 'origin/master'
add 4eadf74 PLC4X-21 - Code coverage doesn't seem to work
add 08fc594 PLC4X-21 - Code coverage doesn't seem to work
add d0adfde PLC4X-21 - Code coverage doesn't seem to work
add 0a22610 PLC4X-22: temporary disable camel BOM due to long build-time on site:site
new 99fb948 Merge branch 'master' into refactoring/java_generify
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
Jenkinsfile | 4 +-
.../plc4x/java/applications/iotree/IoTree.java | 2 +-
.../java/applications/plclogger/PlcLogger.java | 2 +-
integrations/apache-camel/pom.xml | 23 +-
.../apache/plc4x/edgent/PlcConnectionAdapter.java | 6 +-
.../java/api/connection/AbstractPlcConnection.java | 4 -
.../PlcUsernamePasswordAuthenticationTest.java | 0
.../plc4x/java/api/messages/APIMessageTests.java | 0
.../plc4x/java/api/messages/mock/MockAddress.java | 0
.../plc4x/java/isotp/netty/IsoTPProtocol.java | 251 ++++++++++++---------
.../java/isotp/netty/model/types/DeviceGroup.java | 4 +-
.../isotp/netty/model/types/DisconnectReason.java | 4 +-
.../isotp/netty/model/types/ParameterCode.java | 4 +-
.../isotp/netty/model/types/ProtocolClass.java | 4 +-
.../java/isotp/netty/model/types/RejectCause.java | 4 +-
.../java/isotp/netty/model/types/TpduCode.java | 4 +-
.../java/isotp/netty/model/types/TpduSize.java | 4 +-
.../plc4x/java/s7/connection/S7PlcConnection.java | 6 +-
.../plc4x/java/s7/netty/Plc4XS7Protocol.java | 11 +-
.../org/apache/plc4x/java/s7/netty/S7Protocol.java | 165 +++++++-------
.../netty/model/types/DataTransportErrorCode.java | 4 +-
.../s7/netty/model/types/DataTransportSize.java | 4 +-
.../java/s7/netty/model/types/MemoryArea.java | 4 +-
.../java/s7/netty/model/types/MessageType.java | 4 +-
.../java/s7/netty/model/types/ParameterType.java | 4 +-
.../s7/netty/model/types/SpecificationType.java | 4 +-
.../java/s7/netty/model/types/TransportSize.java | 4 +-
.../netty/model/types/VariableAddressingMode.java | 4 +-
pom.xml | 227 +++++++++++--------
...ject.properties => sonar-project.properties.sav | 0
30 files changed, 410 insertions(+), 351 deletions(-)
rename plc4j/api/src/test/{ => java}/org/apache/plc4x/java/api/authentication/PlcUsernamePasswordAuthenticationTest.java (100%)
rename plc4j/api/src/test/{ => java}/org/apache/plc4x/java/api/messages/APIMessageTests.java (100%)
rename plc4j/api/src/test/{ => java}/org/apache/plc4x/java/api/messages/mock/MockAddress.java (100%)
rename sonar-project.properties => sonar-project.properties.sav (100%)
--
To stop receiving notification emails like this one, please contact
['"commits@plc4x.apache.org" <co...@plc4x.apache.org>'].
[incubator-plc4x] 01/01: Merge branch 'master' into
refactoring/java_generify
Posted by sr...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
sruehl pushed a commit to branch refactoring/java_generify
in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git
commit 99fb948b8fdfdeed791728a78f0d677dd884dbb4
Merge: fd66d1d 0a22610
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Fri Jan 5 15:55:09 2018 +0100
Merge branch 'master' into refactoring/java_generify
# Conflicts:
# integrations/apache-edgent/src/main/java/org/apache/plc4x/edgent/PlcConnectionAdapter.java
# plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/Plc4XS7Protocol.java
Jenkinsfile | 4 +-
.../plc4x/java/applications/iotree/IoTree.java | 2 +-
.../java/applications/plclogger/PlcLogger.java | 2 +-
integrations/apache-camel/pom.xml | 23 +-
.../apache/plc4x/edgent/PlcConnectionAdapter.java | 6 +-
.../java/api/connection/AbstractPlcConnection.java | 4 -
.../PlcUsernamePasswordAuthenticationTest.java | 0
.../plc4x/java/api/messages/APIMessageTests.java | 0
.../plc4x/java/api/messages/mock/MockAddress.java | 0
.../plc4x/java/isotp/netty/IsoTPProtocol.java | 251 ++++++++++++---------
.../java/isotp/netty/model/types/DeviceGroup.java | 4 +-
.../isotp/netty/model/types/DisconnectReason.java | 4 +-
.../isotp/netty/model/types/ParameterCode.java | 4 +-
.../isotp/netty/model/types/ProtocolClass.java | 4 +-
.../java/isotp/netty/model/types/RejectCause.java | 4 +-
.../java/isotp/netty/model/types/TpduCode.java | 4 +-
.../java/isotp/netty/model/types/TpduSize.java | 4 +-
.../plc4x/java/s7/connection/S7PlcConnection.java | 6 +-
.../plc4x/java/s7/netty/Plc4XS7Protocol.java | 11 +-
.../org/apache/plc4x/java/s7/netty/S7Protocol.java | 165 +++++++-------
.../netty/model/types/DataTransportErrorCode.java | 4 +-
.../s7/netty/model/types/DataTransportSize.java | 4 +-
.../java/s7/netty/model/types/MemoryArea.java | 4 +-
.../java/s7/netty/model/types/MessageType.java | 4 +-
.../java/s7/netty/model/types/ParameterType.java | 4 +-
.../s7/netty/model/types/SpecificationType.java | 4 +-
.../java/s7/netty/model/types/TransportSize.java | 4 +-
.../netty/model/types/VariableAddressingMode.java | 4 +-
pom.xml | 227 +++++++++++--------
...ject.properties => sonar-project.properties.sav | 0
30 files changed, 410 insertions(+), 351 deletions(-)
diff --cc integrations/apache-edgent/src/main/java/org/apache/plc4x/edgent/PlcConnectionAdapter.java
index 3021ed6,75bc9de..4dc14fe
--- a/integrations/apache-edgent/src/main/java/org/apache/plc4x/edgent/PlcConnectionAdapter.java
+++ b/integrations/apache-edgent/src/main/java/org/apache/plc4x/edgent/PlcConnectionAdapter.java
@@@ -72,125 -71,128 +72,123 @@@ public class PlcConnectionAdapter imple
* of read or write errors, my thinking is to enhance the PlcConnectionAdapter
* to enable the app to register an error callback handler or such.
*/
-
- public PlcConnectionAdapter(PlcConnection plcConnection) {
- this.plcConnection = plcConnection;
- }
-
- public PlcConnectionAdapter(String plcConnectionUrl) {
- this.plcConnectionUrl = plcConnectionUrl;
- }
-
- PlcConnection getConnection() throws PlcException {
- synchronized(this) {
- if (plcConnection == null) {
- plcConnection = new PlcDriverManager().getConnection(plcConnectionUrl);
- }
- return plcConnection;
+
+ public PlcConnectionAdapter(PlcConnection plcConnection) {
+ this.plcConnection = plcConnection;
}
- }
- @Override
- public void close() throws Exception {
- // only close a connection this instance created/connected
- if (plcConnectionUrl != null && plcConnection != null) {
- plcConnection.close();
+ public PlcConnectionAdapter(String plcConnectionUrl) {
+ this.plcConnectionUrl = plcConnectionUrl;
}
- }
-
- <T> Supplier<T> newSupplier(Class<T> datatype, String addressStr) {
- PlcConnectionAdapter.checkDatatype(datatype);
- return new Supplier<T>() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public T get() {
- PlcConnection connection = null;
- Address address = null;
- try {
- connection = getConnection();
- address = connection.parseAddress(addressStr);
- PlcReader reader = connection.getReader().get();
- PlcReadRequest readRequest = PlcConnectionAdapter.newPlcReadRequest(datatype, address);
- return (T) reader.read(readRequest).get().getResponseItems().get(0).getValues().get(0);
- }
- catch (Exception e) {
- logger.error("reading from plc device {} {} failed", connection, address, e);
- return null;
- }
- }
-
- };
- }
-
- <T> Consumer<T> newConsumer(Class<T> datatype, String addressStr) {
- PlcConnectionAdapter.checkDatatype(datatype);
- return new Consumer<T>() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void accept(T arg0) {
- PlcConnection connection = null;
- Address address = null;
- try {
- connection = getConnection();
- address = connection.parseAddress(addressStr);
- PlcWriter writer = connection.getWriter().get();
- PlcWriteRequest writeReq = PlcConnectionAdapter.newPlcWriteRequest(address, arg0);
- writer.write(writeReq).get();
- }
- catch (Exception e) {
- logger.error("writing to plc device {} {} failed", connection, address, e);
- }
- }
-
- };
- }
-
- <T> Consumer<JsonObject> newConsumer(Class<T> datatype, Function<JsonObject,String> addressFn, Function<JsonObject,T> valueFn) {
- PlcConnectionAdapter.checkDatatype(datatype);
- return new Consumer<JsonObject>() {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void accept(JsonObject jo) {
- PlcConnection connection = null;
- Address address = null;
- try {
- connection = getConnection();
- String addressStr = addressFn.apply(jo);
- address = connection.parseAddress(addressStr);
- T value = valueFn.apply(jo);
- PlcWriter writer = connection.getWriter().get();
- PlcWriteRequest writeReq = newPlcWriteRequest(address, value);
- writer.write(writeReq).get();
+
+ PlcConnection getConnection() throws PlcException {
+ synchronized (this) {
+ if (plcConnection == null) {
+ plcConnection = new PlcDriverManager().getConnection(plcConnectionUrl);
+ }
+ return plcConnection;
}
- catch (Exception e) {
- logger.error("writing to plc device {} {} failed", connection, address, e);
+ }
+
+ @Override
+ public void close() throws Exception {
+ // only close a connection this instance created/connected
- if (plcConnectionUrl != null) {
- if (plcConnection != null)
- plcConnection.close();
++ if (plcConnectionUrl != null && plcConnection != null) {
++ plcConnection.close();
}
- }
-
- };
- }
-
- static void checkDatatype(Class<?> cls) {
- if (cls == Boolean.class
- || cls == Byte.class
- || cls == Short.class
- || cls == Integer.class
- || cls == Float.class
- || cls == String.class
- || cls == Calendar.class)
- return;
- throw new IllegalArgumentException("Not a legal plc data type: "+cls.getSimpleName());
- }
-
- @SuppressWarnings("unchecked")
- static <T> PlcWriteRequest newPlcWriteRequest(Address address, T value) {
- Class<?> cls = value.getClass();
- return new PlcWriteRequest(cls, address, value);
- }
-
- @SuppressWarnings("unchecked")
- static <T> PlcReadRequest newPlcReadRequest(Class<T> datatype, Address address) {
- return new PlcReadRequest(datatype, address);
- }
+ }
+
+ <T> Supplier<T> newSupplier(Class<T> datatype, String addressStr) {
+ PlcConnectionAdapter.checkDatatype(datatype);
+ return new Supplier<T>() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public T get() {
+ PlcConnection connection = null;
+ Address address = null;
+ try {
+ connection = getConnection();
+ address = connection.parseAddress(addressStr);
+ PlcReader reader = connection.getReader().get();
+ SinglePlcReadRequest<T> readRequest = PlcConnectionAdapter.newPlcReadRequest(datatype, address);
+ return reader.read(readRequest).get().getResponseItems().get(0).getValues().get(0);
+ } catch (Exception e) {
+ logger.error("reading from plc device {} {} failed", connection, address, e);
+ return null;
+ }
+ }
-
+ };
+ }
+
+ <T> Consumer<T> newConsumer(Class<T> datatype, String addressStr) {
+ PlcConnectionAdapter.checkDatatype(datatype);
+ return new Consumer<T>() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void accept(T arg0) {
+ PlcConnection connection = null;
+ Address address = null;
+ try {
+ connection = getConnection();
+ address = connection.parseAddress(addressStr);
+ PlcWriter writer = connection.getWriter().get();
+ PlcWriteRequest writeReq = PlcConnectionAdapter.newPlcWriteRequest(address, arg0);
+ writer.write(writeReq).get();
+ } catch (Exception e) {
+ logger.error("writing to plc device {} {} failed", connection, address, e);
+ }
+ }
+
+ };
+ }
+
+ <T> Consumer<JsonObject> newConsumer(Class<T> datatype, Function<JsonObject, String> addressFn, Function<JsonObject, T> valueFn) {
+ PlcConnectionAdapter.checkDatatype(datatype);
+ return new Consumer<JsonObject>() {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public void accept(JsonObject jo) {
+ PlcConnection connection = null;
+ Address address = null;
+ try {
+ connection = getConnection();
+ String addressStr = addressFn.apply(jo);
+ address = connection.parseAddress(addressStr);
+ T value = valueFn.apply(jo);
+ PlcWriter writer = connection.getWriter().get();
+ PlcWriteRequest writeReq = newPlcWriteRequest(address, value);
+ writer.write(writeReq).get();
+ } catch (Exception e) {
+ logger.error("writing to plc device {} {} failed", connection, address, e);
+ }
+ }
+
+ };
+ }
+
+ static void checkDatatype(Class<?> cls) {
+ if (cls == Boolean.class
+ || cls == Byte.class
+ || cls == Short.class
+ || cls == Integer.class
+ || cls == Float.class
+ || cls == String.class
+ || cls == Calendar.class)
+ return;
+ throw new IllegalArgumentException("Not a legal plc data type: " + cls.getSimpleName());
+ }
+
+ static <T> SinglePlcWriteRequest<T> newPlcWriteRequest(Address address, T value) {
+ @SuppressWarnings("unchecked")
+ Class<T> cls = (Class<T>) value.getClass();
+ return new SinglePlcWriteRequest<>(cls, address, value);
+ }
+
+ static <T> SinglePlcReadRequest<T> newPlcReadRequest(Class<T> datatype, Address address) {
+ return new SinglePlcReadRequest<>(datatype, address);
+ }
}
diff --cc plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/Plc4XS7Protocol.java
index ab7bd37,6a75419..0118cc0
--- a/plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/Plc4XS7Protocol.java
+++ b/plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/Plc4XS7Protocol.java
@@@ -294,8 -286,8 +294,8 @@@ public class Plc4XS7Protocol extends Me
}
private byte[] encodeData(Object[] values) {
- if(values.length == 0) {
+ if (values.length == 0) {
- return null;
+ return new byte[]{};
}
byte[] result = null;
Class valueType = values[0].getClass();
@@@ -362,22 -354,18 +362,19 @@@
return ResponseCode.INTERNAL_ERROR;
}
- @SuppressWarnings("unchecked")
- private <T> List<T> decodeData(Class<T> datatype, byte[] s7Data) throws PlcProtocolException {
- if (s7Data.length == 0) {
- return null;
- }
- private List<Object> decodeData(Class<?> datatype, byte[] s7Data) throws PlcProtocolException {
++ @SuppressWarnings("unchecked")private <T>List<T> decodeData(Class<T> datatype, byte[] s7Data) throws PlcProtocolException {
++
List<Object> result = new LinkedList<>();
- for(int i = 0; i < s7Data.length;) {
+ for (int i = 0; i < s7Data.length; ) {
if (datatype == Boolean.class) {
result.add((s7Data[i] & 0x01) == 0x01);
- i+=1;
+ i += 1;
} else if (datatype == Byte.class) {
result.add(s7Data[i]);
- i+=1;
+ i += 1;
} else if (datatype == Short.class) {
- result.add((short) (((s7Data[i] & 0xff) << 8) | (s7Data[i+1] & 0xff)));
- i+=2;
+ result.add((short) (((s7Data[i] & 0xff) << 8) | (s7Data[i + 1] & 0xff)));
+ i += 2;
} else if (datatype == Integer.class) {
result.add((((s7Data[i] & 0xff) << 24) | ((s7Data[i + 1] & 0xff) << 16) |
((s7Data[i + 2] & 0xff) << 8) | (s7Data[i + 3] & 0xff)));
--
To stop receiving notification emails like this one, please contact
"commits@plc4x.apache.org" <co...@plc4x.apache.org>.