This is an automated email from the ASF dual-hosted git repository. cdutz pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git
commit b455aded8c4134656035e576796d2f76ab843757 Author: Andrey Skorikov <andrey.skori...@codecentric.de> AuthorDate: Thu Oct 4 11:26:34 2018 +0200 implemented new api for ads protocol --- .../java/ads/connection/AdsAbstractPlcConnection.java | 18 +++++++++--------- .../java/ads/connection/AdsSerialPlcConnection.java | 2 +- .../plc4x/java/ads/connection/AdsTcpPlcConnection.java | 14 +++++++------- .../org/apache/plc4x/java/ads/ManualPlc4XAdsTest.java | 4 ++-- .../org/apache/plc4x/java/ads/adslib/AmsRouter.java | 12 ++++++------ .../ads/connection/AdsAbstractPlcConnectionTest.java | 4 ++-- .../ads/connection/AdsSerialPlcConnectionTest.java | 2 +- .../plc4x/java/ads/protocol/Plc4x2AdsProtocolTest.java | 4 ++-- 8 files changed, 30 insertions(+), 30 deletions(-) diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsAbstractPlcConnection.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsAbstractPlcConnection.java index a80e5e7..5795a6f 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsAbstractPlcConnection.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsAbstractPlcConnection.java @@ -92,7 +92,7 @@ public abstract class AdsAbstractPlcConnection extends AbstractPlcConnection imp } @Override - public CompletableFuture<PlcReadResponse<?>> read(PlcReadRequest readRequest) { + public CompletableFuture<PlcReadResponse> read(PlcReadRequest readRequest) { mapFields(readRequest); CompletableFuture<InternalPlcReadResponse> readFuture = new CompletableFuture<>(); ChannelFuture channelFuture = channel.writeAndFlush(new PlcRequestContainer<>((InternalPlcReadRequest) readRequest, readFuture)); @@ -107,11 +107,11 @@ public abstract class AdsAbstractPlcConnection extends AbstractPlcConnection imp @Override public PlcReadRequest.Builder readRequestBuilder() { - return new DefaultPlcReadRequest.Builder(new AdsPlcFieldHandler()); + return new DefaultPlcReadRequest.Builder(this, new AdsPlcFieldHandler()); } @Override - public CompletableFuture<PlcWriteResponse<?>> write(PlcWriteRequest writeRequest) { + public CompletableFuture<PlcWriteResponse> write(PlcWriteRequest writeRequest) { mapFields(writeRequest); CompletableFuture<InternalPlcWriteResponse> writeFuture = new CompletableFuture<>(); ChannelFuture channelFuture = channel.writeAndFlush(new PlcRequestContainer<>((InternalPlcWriteRequest) writeRequest, writeFuture)); @@ -126,13 +126,13 @@ public abstract class AdsAbstractPlcConnection extends AbstractPlcConnection imp @Override public PlcWriteRequest.Builder writeRequestBuilder() { - return new DefaultPlcWriteRequest.Builder(new AdsPlcFieldHandler()); + return new DefaultPlcWriteRequest.Builder(this, new AdsPlcFieldHandler()); } @Override - public <PROP_REQUEST, PROP_RESPONSE> CompletableFuture<PlcProprietaryResponse<PlcProprietaryRequest<PROP_REQUEST>, PROP_RESPONSE>> send(PlcProprietaryRequest<PROP_REQUEST> proprietaryRequest) { - CompletableFuture<InternalPlcProprietaryResponse<PROP_REQUEST, PROP_RESPONSE>> sendFuture = new CompletableFuture<>(); - ChannelFuture channelFuture = channel.writeAndFlush(new PlcRequestContainer<>((InternalPlcProprietaryRequest<PROP_REQUEST>) proprietaryRequest, sendFuture)); + public <PROP_RESPONSE> CompletableFuture<PlcProprietaryResponse<PROP_RESPONSE>> send(PlcProprietaryRequest proprietaryRequest) { + CompletableFuture<InternalPlcProprietaryResponse<PROP_RESPONSE>> sendFuture = new CompletableFuture<>(); + ChannelFuture channelFuture = channel.writeAndFlush(new PlcRequestContainer<>((InternalPlcProprietaryRequest) proprietaryRequest, sendFuture)); channelFuture.addListener(future -> { if (!future.isSuccess()) { sendFuture.completeExceptionally(future.cause()); @@ -168,9 +168,9 @@ public abstract class AdsAbstractPlcConnection extends AbstractPlcConnection imp ); // TODO: This is blocking, should be changed to be async. - CompletableFuture<InternalPlcProprietaryResponse<InternalPlcProprietaryRequest<AdsWriteRequest>, AdsReadWriteResponse>> getHandelFuture = new CompletableFuture<>(); + CompletableFuture<InternalPlcProprietaryResponse<AdsReadWriteResponse>> getHandelFuture = new CompletableFuture<>(); channel.writeAndFlush(new PlcRequestContainer<>(new DefaultPlcProprietaryRequest<>(adsReadWriteRequest), getHandelFuture)); - InternalPlcProprietaryResponse<InternalPlcProprietaryRequest<AdsWriteRequest>, AdsReadWriteResponse> getHandleResponse = getFromFuture(getHandelFuture, SYMBOL_RESOLVE_TIMEOUT); + InternalPlcProprietaryResponse<AdsReadWriteResponse> getHandleResponse = getFromFuture(getHandelFuture, SYMBOL_RESOLVE_TIMEOUT); AdsReadWriteResponse response = getHandleResponse.getResponse(); if (response.getResult().toAdsReturnCode() != AdsReturnCode.ADS_CODE_0) { diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsSerialPlcConnection.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsSerialPlcConnection.java index 06d52ca..cb2d00a 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsSerialPlcConnection.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsSerialPlcConnection.java @@ -62,7 +62,7 @@ public class AdsSerialPlcConnection extends AdsAbstractPlcConnection { pipeline.addLast(new SingleMessageRateLimiter()); pipeline.addLast(new Ads2PayloadProtocol()); pipeline.addLast(new Plc4x2AdsProtocol(targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, fieldMapping)); - pipeline.addLast(new SingleItemToSingleRequestProtocol(timer)); + pipeline.addLast(new SingleItemToSingleRequestProtocol(AdsSerialPlcConnection.this, AdsSerialPlcConnection.this, timer)); } }; } diff --git a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsTcpPlcConnection.java b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsTcpPlcConnection.java index 80fb5bb..8433526 100644 --- a/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsTcpPlcConnection.java +++ b/plc4j/protocols/ads/src/main/java/org/apache/plc4x/java/ads/connection/AdsTcpPlcConnection.java @@ -114,7 +114,7 @@ public class AdsTcpPlcConnection extends AdsAbstractPlcConnection implements Plc pipeline.addLast(new Payload2TcpProtocol()); pipeline.addLast(new Ads2PayloadProtocol()); pipeline.addLast(new Plc4x2AdsProtocol(targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, fieldMapping)); - pipeline.addLast(new SingleItemToSingleRequestProtocol(timer)); + pipeline.addLast(new SingleItemToSingleRequestProtocol(AdsTcpPlcConnection.this, AdsTcpPlcConnection.this, timer)); // TODO: remove nulls; implement correctly } }; } @@ -204,9 +204,9 @@ public class AdsTcpPlcConnection extends AdsAbstractPlcConnection implements Plc // Send the request to the plc and wait for a response // TODO: This is blocking, should be changed to be async. - CompletableFuture<InternalPlcProprietaryResponse<InternalPlcProprietaryRequest<AdsAddDeviceNotificationRequest>, AdsAddDeviceNotificationResponse>> addDeviceFuture = new CompletableFuture<>(); + CompletableFuture<InternalPlcProprietaryResponse<AdsAddDeviceNotificationResponse>> addDeviceFuture = new CompletableFuture<>(); channel.writeAndFlush(new PlcRequestContainer<>(new DefaultPlcProprietaryRequest<>(adsAddDeviceNotificationRequest), addDeviceFuture)); - InternalPlcProprietaryResponse<InternalPlcProprietaryRequest<AdsAddDeviceNotificationRequest>, AdsAddDeviceNotificationResponse> addDeviceResponse = getFromFuture(addDeviceFuture, ADD_DEVICE_TIMEOUT); + InternalPlcProprietaryResponse<AdsAddDeviceNotificationResponse> addDeviceResponse = getFromFuture(addDeviceFuture, ADD_DEVICE_TIMEOUT); AdsAddDeviceNotificationResponse response = addDeviceResponse.getResponse(); // Abort if we got anything but a successful response. @@ -241,11 +241,11 @@ public class AdsTcpPlcConnection extends AdsAbstractPlcConnection implements Plc Invoke.NONE, adsSubscriptionHandle.getNotificationHandle() ); - CompletableFuture<InternalPlcProprietaryResponse<DefaultPlcProprietaryRequest<AdsDeleteDeviceNotificationRequest>, AdsDeleteDeviceNotificationResponse>> deleteDeviceFuture = + CompletableFuture<InternalPlcProprietaryResponse<AdsDeleteDeviceNotificationResponse>> deleteDeviceFuture = new CompletableFuture<>(); channel.writeAndFlush(new PlcRequestContainer<>(new DefaultPlcProprietaryRequest<>(adsDeleteDeviceNotificationRequest), deleteDeviceFuture)); - InternalPlcProprietaryResponse<DefaultPlcProprietaryRequest<AdsDeleteDeviceNotificationRequest>, AdsDeleteDeviceNotificationResponse> deleteDeviceResponse = + InternalPlcProprietaryResponse<AdsDeleteDeviceNotificationResponse> deleteDeviceResponse = getFromFuture(deleteDeviceFuture, DEL_DEVICE_TIMEOUT); AdsDeleteDeviceNotificationResponse response = deleteDeviceResponse.getResponse(); if (response.getResult().toAdsReturnCode() != AdsReturnCode.ADS_CODE_0) { @@ -311,12 +311,12 @@ public class AdsTcpPlcConnection extends AdsAbstractPlcConnection implements Plc @Override public PlcSubscriptionRequest.Builder subscriptionRequestBuilder() { - return new DefaultPlcSubscriptionRequest.Builder(new AdsPlcFieldHandler()); + return new DefaultPlcSubscriptionRequest.Builder(this, new AdsPlcFieldHandler()); } @Override public PlcUnsubscriptionRequest.Builder unsubscriptionRequestBuilder() { - return new DefaultPlcUnsubscriptionRequest.Builder(); + return new DefaultPlcUnsubscriptionRequest.Builder(this); } @Override diff --git a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/ManualPlc4XAdsTest.java b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/ManualPlc4XAdsTest.java index b4da510..bca72a5 100644 --- a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/ManualPlc4XAdsTest.java +++ b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/ManualPlc4XAdsTest.java @@ -47,8 +47,8 @@ public class ManualPlc4XAdsTest { PlcReader reader = plcConnection.getReader().orElseThrow(() -> new RuntimeException("No Reader found")); - CompletableFuture<PlcReadResponse<?>> response = reader.read(builder -> builder.addItem("station", "Allgemein_S2.Station:BYTE")); - PlcReadResponse<?> readResponse = response.get(); + CompletableFuture<PlcReadResponse> response = reader.read(builder -> builder.addItem("station", "Allgemein_S2.Station:BYTE")); + PlcReadResponse readResponse = response.get(); System.out.println("Response " + readResponse); Collection<Integer> stations = readResponse.getAllIntegers("station"); stations.forEach(System.out::println); diff --git a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/adslib/AmsRouter.java b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/adslib/AmsRouter.java index 935fc87..ed1ccc4 100644 --- a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/adslib/AmsRouter.java +++ b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/adslib/AmsRouter.java @@ -202,9 +202,9 @@ public class AmsRouter { if (ads == null) { return AmsError.of(AdsReturnCode.ADS_CODE_7); } - CompletableFuture<PlcProprietaryResponse<PlcProprietaryRequest<T>, R>> completableFuture = ads.send(plcProprietaryRequest); + CompletableFuture<PlcProprietaryResponse<R>> completableFuture = ads.send(plcProprietaryRequest); try { - PlcProprietaryResponse<PlcProprietaryRequest<T>, R> response = completableFuture.get(3, TimeUnit.SECONDS); + PlcProprietaryResponse<R> response = completableFuture.get(3, TimeUnit.SECONDS); request.getResponseFuture().complete(response.getResponse()); return response.getResponse().getAmsHeader().getCode(); } catch (ExecutionException | TimeoutException e) { @@ -229,9 +229,9 @@ public class AmsRouter { } AdsLibPort port = ports.get(plcProprietaryRequest.getProprietaryRequest().getAmsHeader().getSourceAmsPort().getAsInt()); - CompletableFuture<PlcProprietaryResponse<PlcProprietaryRequest<AdsAddDeviceNotificationRequest>, AdsAddDeviceNotificationResponse>> send = ads.send(plcProprietaryRequest); + CompletableFuture<PlcProprietaryResponse<AdsAddDeviceNotificationResponse>> send = ads.send(plcProprietaryRequest); try { - PlcProprietaryResponse<PlcProprietaryRequest<AdsAddDeviceNotificationRequest>, AdsAddDeviceNotificationResponse> response = send.get(3, TimeUnit.SECONDS); + PlcProprietaryResponse<AdsAddDeviceNotificationResponse> response = send.get(3, TimeUnit.SECONDS); if (response.getResponse().getResult().toAdsReturnCode() != AdsReturnCode.ADS_CODE_0) { return AmsError.of(response.getResponse().getResult().getAsLong()); } @@ -258,9 +258,9 @@ public class AmsRouter { } AdsLibPort adsLibPort = ports.get(port); - CompletableFuture<PlcProprietaryResponse<PlcProprietaryRequest<AdsDeleteDeviceNotificationRequest>, AdsDeleteDeviceNotificationResponse>> send = ads.send(plcProprietaryRequest); + CompletableFuture<PlcProprietaryResponse<AdsDeleteDeviceNotificationResponse>> send = ads.send(plcProprietaryRequest); try { - PlcProprietaryResponse<PlcProprietaryRequest<AdsDeleteDeviceNotificationRequest>, AdsDeleteDeviceNotificationResponse> response = send.get(3, TimeUnit.SECONDS); + PlcProprietaryResponse<AdsDeleteDeviceNotificationResponse> response = send.get(3, TimeUnit.SECONDS); adsLibPort.DelNotification(pAddr, plcProprietaryRequest.getProprietaryRequest().getNotificationHandle()); request.getResponseFuture().complete(response.getResponse()); diff --git a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/connection/AdsAbstractPlcConnectionTest.java b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/connection/AdsAbstractPlcConnectionTest.java index 69ca500..8052624 100644 --- a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/connection/AdsAbstractPlcConnectionTest.java +++ b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/connection/AdsAbstractPlcConnectionTest.java @@ -123,7 +123,7 @@ public class AdsAbstractPlcConnectionTest { @Test public void read() { - CompletableFuture<PlcReadResponse<?>> read = SUT.read(mock(InternalPlcReadRequest.class)); + CompletableFuture<PlcReadResponse> read = SUT.read(mock(InternalPlcReadRequest.class)); assertNotNull(read); simulatePipelineError(() -> SUT.read(mock(InternalPlcReadRequest.class))); @@ -131,7 +131,7 @@ public class AdsAbstractPlcConnectionTest { @Test public void write() { - CompletableFuture<PlcWriteResponse<?>> write = SUT.write(mock(InternalPlcWriteRequest.class)); + CompletableFuture<PlcWriteResponse> write = SUT.write(mock(InternalPlcWriteRequest.class)); assertNotNull(write); simulatePipelineError(() -> SUT.write(mock(InternalPlcWriteRequest.class))); diff --git a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/connection/AdsSerialPlcConnectionTest.java b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/connection/AdsSerialPlcConnectionTest.java index a4a8825..9988da3 100644 --- a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/connection/AdsSerialPlcConnectionTest.java +++ b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/connection/AdsSerialPlcConnectionTest.java @@ -75,7 +75,7 @@ public class AdsSerialPlcConnectionTest { @Test public void testRead() throws Exception { prepareSerialSimulator(); - CompletableFuture<PlcReadResponse<?>> read = SUT.read(builder -> builder.addItem("test", "0/0:BYTE")); + CompletableFuture<PlcReadResponse> read = SUT.read(builder -> builder.addItem("test", "0/0:BYTE")); PlcReadResponse plcReadResponse = read.get(30, TimeUnit.SECONDS); assertNotNull(plcReadResponse); } diff --git a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/protocol/Plc4x2AdsProtocolTest.java b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/protocol/Plc4x2AdsProtocolTest.java index 95c6628..2cdd449 100644 --- a/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/protocol/Plc4x2AdsProtocolTest.java +++ b/plc4j/protocols/ads/src/test/java/org/apache/plc4x/java/ads/protocol/Plc4x2AdsProtocolTest.java @@ -110,14 +110,14 @@ public class Plc4x2AdsProtocolTest { .map(pair -> Stream.of( ImmutablePair.of( new PlcRequestContainer<>( - (InternalPlcRequest) new DefaultPlcWriteRequest.Builder(new AdsPlcFieldHandler()) + (InternalPlcRequest) new DefaultPlcWriteRequest.Builder(null, new AdsPlcFieldHandler()) // TODO: remove null .addItem(RandomStringUtils.randomAscii(10), "1/1:" + pair.adsDataType, pair.getValue()) .build(), new CompletableFuture<>()), AdsWriteResponse.of(targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId, Result.of(0)) ), ImmutablePair.of( new PlcRequestContainer<>( - (InternalPlcRequest) new DefaultPlcReadRequest.Builder(new AdsPlcFieldHandler()) + (InternalPlcRequest) new DefaultPlcReadRequest.Builder(null, new AdsPlcFieldHandler()) // TODO: remove null .addItem(RandomStringUtils.randomAscii(10), "1/1:" + pair.adsDataType) .build(), new CompletableFuture<>()), AdsReadResponse.of(targetAmsNetId, targetAmsPort, sourceAmsNetId, sourceAmsPort, invokeId, Result.of(0), Data.of(pair.getByteRepresentation()))