You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by er...@apache.org on 2020/05/15 10:40:22 UTC
[plc4x] 07/08: Reading with Scraper or Writing using Map>
This is an automated email from the ASF dual-hosted git repository.
erobinet pushed a commit to branch feature/scraper
in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit f8b13037427db0e042ee9163ed1a88db0dbfdb19
Author: Etienne Robinet <et...@gmail.com>
AuthorDate: Fri May 15 12:36:25 2020 +0200
Reading with Scraper or Writing using Map<String,Map<String,Object>>
---
.../src/main/java/org/apache/plc4x/camel/Plc4XConsumer.java | 1 +
.../src/main/java/org/apache/plc4x/camel/Plc4XProducer.java | 13 +++++++------
2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/plc4j/integrations/apache-camel/src/main/java/org/apache/plc4x/camel/Plc4XConsumer.java b/plc4j/integrations/apache-camel/src/main/java/org/apache/plc4x/camel/Plc4XConsumer.java
index c67f288..c81fe66 100644
--- a/plc4j/integrations/apache-camel/src/main/java/org/apache/plc4x/camel/Plc4XConsumer.java
+++ b/plc4j/integrations/apache-camel/src/main/java/org/apache/plc4x/camel/Plc4XConsumer.java
@@ -119,6 +119,7 @@ public class Plc4XConsumer extends DefaultConsumer {
try {
ScraperConfiguration configuration = getScraperConfig(validateTags());
TriggerCollector collector = new TriggerCollectorImpl(plc4XEndpoint.getPlcDriverManager());
+
TriggeredScraperImpl scraper = new TriggeredScraperImpl(configuration, (job, alias, response) -> {
try {
Exchange exchange = plc4XEndpoint.createExchange();
diff --git a/plc4j/integrations/apache-camel/src/main/java/org/apache/plc4x/camel/Plc4XProducer.java b/plc4j/integrations/apache-camel/src/main/java/org/apache/plc4x/camel/Plc4XProducer.java
index 151d83b..2325d3a 100644
--- a/plc4j/integrations/apache-camel/src/main/java/org/apache/plc4x/camel/Plc4XProducer.java
+++ b/plc4j/integrations/apache-camel/src/main/java/org/apache/plc4x/camel/Plc4XProducer.java
@@ -31,6 +31,7 @@ import org.apache.plc4x.java.api.messages.PlcWriteResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.util.Iterator;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.atomic.AtomicInteger;
@@ -56,16 +57,16 @@ public class Plc4XProducer extends DefaultAsyncProducer {
Object body = in.getBody();
PlcWriteRequest.Builder builder = plcConnection.writeRequestBuilder();
if (body instanceof Map) { //Check if we have a Map
- Map<String, Map.Entry<String, Object>> tags = (Map<String, Map.Entry<String, Object>>) body;
- for (Map.Entry<String, Map.Entry<String, Object>> entry : tags.entrySet()) {
- //Tags are stored like this --> Map<Tagname,Entry<Query,Value>> for writing
+ Map<String, Map<String, Object>> tags = (Map<String, Map<String, Object>>) body;
+ for (Map.Entry<String, Map<String, Object>> entry : tags.entrySet()) {
+ //Tags are stored like this --> Map<Tagname,Map<Query,Value>> for writing
String name = entry.getKey();
- String query = entry.getValue().getKey();
- Object value = entry.getValue().getValue();
+ String query = entry.getValue().keySet().iterator().next();
+ Object value = entry.getValue().get(query);
builder.addItem(name,query,value);
}
} else {
- throw new PlcInvalidFieldException("Parameter 'tags' has to be a List of TagData");
+ throw new PlcInvalidFieldException("The body must contain a Map<String,Map<String,Object>");
}
CompletableFuture<? extends PlcWriteResponse> completableFuture = builder.build().execute();