This is an automated email from the ASF dual-hosted git repository.
glcj pushed a commit to branch feature/merlot
in repository https://gitbox.apache.org/repos/asf/plc4x-extras.git
The following commit(s) were added to refs/heads/feature/merlot by this push:
new f1f9f1b Kafka servince is not working in BP.
f1f9f1b is described below
commit f1f9f1b0c7f7374a02f69308c226af9dafa8ced2
Author: César García <[email protected]>
AuthorDate: Sun Apr 26 17:20:50 2026 -0400
Kafka servince is not working in BP.
---
plc4j/tools/merlot/anahata.md | 3 +
.../src/main/feature/feature.xml | 16 ++-
.../nb-configuration.xml | 18 ++++
.../merlot/org.apache.plc4x.merlot.kafka/pom.xml | 55 ++++++++++-
...=> org.apache.plc4x.merlot.kafka.collector.cfg} | 0
...MyService.java => MerlotDecanterCollector.java} | 7 +-
.../plc4x/merlot/kafka/api/MyServiceImpl.java | 25 -----
.../core/MerlotKafkaManagedServiceFactory.java | 45 ++++++++-
....java => MerlotKafkaDecanterCollectorImpl.java} | 107 +++++++++++++++++++--
.../resources/OSGI-INF/blueprint/kafka-service.xml | 23 ++++-
plc4j/tools/merlot/org.apache.plc4x.merlot/pom.xml | 2 +-
plc4j/tools/merlot/pom.xml | 11 ++-
12 files changed, 261 insertions(+), 51 deletions(-)
diff --git a/plc4j/tools/merlot/anahata.md b/plc4j/tools/merlot/anahata.md
new file mode 100644
index 0000000..7a959db
--- /dev/null
+++ b/plc4j/tools/merlot/anahata.md
@@ -0,0 +1,3 @@
+# Anahata Project Notes
+
+This file is for Anahata AI Assistant's notes regarding the 'merlot' project.
diff --git
a/plc4j/tools/merlot/org.apache.plc4x.merlot.features/src/main/feature/feature.xml
b/plc4j/tools/merlot/org.apache.plc4x.merlot.features/src/main/feature/feature.xml
index 120b6d0..a1e38e1 100755
---
a/plc4j/tools/merlot/org.apache.plc4x.merlot.features/src/main/feature/feature.xml
+++
b/plc4j/tools/merlot/org.apache.plc4x.merlot.features/src/main/feature/feature.xml
@@ -20,7 +20,8 @@
<!-- Repositories of complementary projects are indicated -->
<repository>mvn:org.apache.activemq/artemis-features/2.38.0/xml/features</repository>
-
+
<!--<repository>mvn:org.apache.karaf.decanter/apache-karaf-decanter/2.12.0/xml/features</repository>-->
+
<feature name='${project.artifactId}' description='${project.name}'
version='${project.version}'>
<details>${project.description}</details>
@@ -79,7 +80,7 @@
<bundle
start-level="30">wrap:mvn:org.json/json/20250517/$Export-Package=*;version="20250517",!*</bundle>
<bundle
start-level="30">wrap:mvn:com.fasterxml.jackson.core/jackson-core/${jackson.version}/$Export-Package=*;version="${jackson.version}",!*</bundle>
<bundle
start-level="30">wrap:mvn:com.fasterxml.jackson.core/jackson-databind/${jackson.version}/$Export-Package=*;version="${jackson.version}",!*</bundle>
- <bundle
start-level="30">wrap:mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson.version}/$Export-Package=*;version="${jackson.version}",!*</bundle>
+ <bundle
start-level="30">wrap:mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson-annotations.version}/$Export-Package=*;version="${jackson-annotations.version}",!*</bundle>
<bundle
start-level="28">mvn:org.ops4j.pax.logging/pax-logging-api/2.2.3</bundle>
@@ -715,6 +716,17 @@ dataSourceName=rtdb
<bundle
start-level="30">mvn:org.apache.activemq/artemis-features/2.30.0</bundle>
</feature>
+ <feature name='plc4x-kafka' description='${project.name}'
version='${project.version}'>
+ <feature>decanter-common</feature>
+ <bundle
start-level="30">wrap:mvn:org.apache.kafka/kafka-clients/${kafka.version}/$Bundle-SymbolicName=kafka-clients&Bundle-Version=${kafka.version}&Bundle-ManifestVersion="2"&Export-Package=*;version="${kafka.version}",!*</bundle>
+ <!--<bundle
start-level="30">mvn:org.apache.kafka/kafka-clients/${kafka.version}</bundle>-->
+ <bundle
start-level="30">wrap:mvn:org.apache.karaf.decanter.collector/org.apache.karaf.decanter.collector.utils/${decanter.version}/$Bundle-SymbolicName=org.apache.karaf.decanter.collector.utils&Bundle-Version=${decanter.version}&Bundle-ManifestVersion="2"&Export-Package=*;version="${decanter.version}",!*</bundle>
+ <!--<bundle
start-level="30">mvn:org.apache.karaf.decanter.collector/org.apache.karaf.decanter.collector.utils/${decanter.version}</bundle>-->
+
+ <bundle
start-level="80">mvn:org.apache.plc4x.merlot.kafka/org.apache.plc4x.merlot.kafka/${project.version}</bundle>
+ <configfile
finalname="/etc/org.apache.plc4x.merlot.kafka.collector.cfg">mvn:org.apache.plc4x.merlot.kafka/org.apache.plc4x.merlot.kafka/${project.version}/cfg</configfile>
+ </feature>
+
<feature name="plc4x-iotdb" version="${project.version}">
<!--<bundle
start-level="60">mvn:org.apache.iotdb/iotdb-session/${iotdb.session.version}</bundle>-->
<bundle
start-level="60">wrap:mvn:org.apache.iotdb/iotdb-session/${iotdb.session.version}/$Bundle-SymbolicName=iotdb-session&Bundle-Version=${iotdb.session.version}&Bundle-ManifestVersion="2"&Export-Package=*;version="${iotdb.session.version}",!*</bundle>
diff --git
a/plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/nb-configuration.xml
b/plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/nb-configuration.xml
new file mode 100644
index 0000000..5b0f1f8
--- /dev/null
+++ b/plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/nb-configuration.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project-shared-configuration>
+ <!--
+This file contains additional configuration written by modules in the NetBeans
IDE.
+The configuration is intended to be shared among all the users of project and
+therefore it is assumed to be part of version control checkout.
+Without this configuration present, some functionality in the IDE may be
limited or fail altogether.
+-->
+ <properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">
+ <!--
+Properties that influence various parts of the IDE, especially code formatting
and the like.
+You can copy and paste the single properties, into the pom.xml file and the
IDE will pick them up.
+That way multiple projects can share the same settings (useful for formatting
rules for example).
+Any value defined here will override the pom.xml file value but is only
applicable to the current project.
+-->
+
<org-netbeans-modules-javascript2-requirejs.enabled>true</org-netbeans-modules-javascript2-requirejs.enabled>
+ </properties>
+</project-shared-configuration>
diff --git a/plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/pom.xml
b/plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/pom.xml
index d65ee83..c42666e 100644
--- a/plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/pom.xml
+++ b/plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/pom.xml
@@ -65,8 +65,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>3.13.0</version>
<configuration>
- <source>1.8</source>
- <target>1.8</target>
+ <source>21</source>
+ <target>21</target>
<maxmem>256M</maxmem>
</configuration>
</plugin>
@@ -85,7 +85,26 @@
<artifactId>maven-deploy-plugin</artifactId>
<version>3.1.3</version>
</plugin>
-
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ <configuration>
+ <artifacts>
+ <artifact>
+
<file>src/main/cfg/org.apache.plc4x.merlot.kafka.collector.cfg</file>
+ <type>cfg</type>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
<dependencies>
@@ -104,5 +123,35 @@
<artifactId>osgi.annotation</artifactId>
<version>8.1.0</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.karaf.decanter</groupId>
+ <artifactId>org.apache.karaf.decanter.api</artifactId>
+ <version>2.12.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.karaf.decanter.collector</groupId>
+ <artifactId>org.apache.karaf.decanter.collector.utils</artifactId>
+ <version>2.12.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.service.event</artifactId>
+ <version>1.4.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.kafka</groupId>
+ <artifactId>kafka-clients</artifactId>
+ <version>${kafka.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ <version>${jackson.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>2.0.17</version>
+ </dependency>
</dependencies>
</project>
diff --git
a/plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/src/main/cfg/org.apache.karaf.decanter.collector.kafka.cfg
b/plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/src/main/cfg/org.apache.plc4x.merlot.kafka.collector.cfg
similarity index 100%
rename from
plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/src/main/cfg/org.apache.karaf.decanter.collector.kafka.cfg
rename to
plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/src/main/cfg/org.apache.plc4x.merlot.kafka.collector.cfg
diff --git
a/plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/src/main/java/org/apache/plc4x/merlot/kafka/api/MyService.java
b/plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/src/main/java/org/apache/plc4x/merlot/kafka/api/MerlotDecanterCollector.java
similarity index 89%
rename from
plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/src/main/java/org/apache/plc4x/merlot/kafka/api/MyService.java
rename to
plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/src/main/java/org/apache/plc4x/merlot/kafka/api/MerlotDecanterCollector.java
index 1dd42ce..6b6dcd2 100644
---
a/plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/src/main/java/org/apache/plc4x/merlot/kafka/api/MyService.java
+++
b/plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/src/main/java/org/apache/plc4x/merlot/kafka/api/MerlotDecanterCollector.java
@@ -16,8 +16,9 @@
*/
package org.apache.plc4x.merlot.kafka.api;
-public interface MyService {
+public interface MerlotDecanterCollector {
- public String echo(String message);
+ public void init();
-}
\ No newline at end of file
+ public void destroy();
+}
diff --git
a/plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/src/main/java/org/apache/plc4x/merlot/kafka/api/MyServiceImpl.java
b/plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/src/main/java/org/apache/plc4x/merlot/kafka/api/MyServiceImpl.java
deleted file mode 100644
index f840714..0000000
---
a/plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/src/main/java/org/apache/plc4x/merlot/kafka/api/MyServiceImpl.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * 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.
- */
-package org.apache.plc4x.merlot.kafka.api;
-
-public class MyServiceImpl implements MyService {
-
- public String echo(String message) {
- return "Echo processed: " + message;
- }
-
-}
\ No newline at end of file
diff --git
a/plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/src/main/java/org/apache/plc4x/merlot/kafka/core/MerlotKafkaManagedServiceFactory.java
b/plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/src/main/java/org/apache/plc4x/merlot/kafka/core/MerlotKafkaManagedServiceFactory.java
index 361e283..5a41e00 100644
---
a/plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/src/main/java/org/apache/plc4x/merlot/kafka/core/MerlotKafkaManagedServiceFactory.java
+++
b/plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/src/main/java/org/apache/plc4x/merlot/kafka/core/MerlotKafkaManagedServiceFactory.java
@@ -17,12 +17,40 @@
package org.apache.plc4x.merlot.kafka.core;
import java.util.Dictionary;
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.Map;
+import org.apache.karaf.decanter.api.marshaller.Unmarshaller;
+import org.apache.plc4x.merlot.kafka.api.MerlotDecanterCollector;
+import org.apache.plc4x.merlot.kafka.impl.MerlotKafkaDecanterCollectorImpl;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.Constants;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceReference;
+import org.osgi.framework.ServiceRegistration;
import org.osgi.service.cm.ConfigurationException;
import org.osgi.service.cm.ManagedServiceFactory;
+import org.osgi.service.event.EventAdmin;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class MerlotKafkaManagedServiceFactory implements ManagedServiceFactory
{
+ private static final Logger LOGGER =
LoggerFactory.getLogger(MerlotKafkaManagedServiceFactory.class);
+ private static String FILTER_COLLECTOR = "(&(" + Constants.OBJECTCLASS +
"=" + MerlotDecanterCollector.class.getName() + ")" +
+ "(" + Constants.SERVICE_PID + "=*))";
+
+ private final BundleContext ctx;
+ private final EventAdmin dispatcher;
+ private final Unmarshaller unmarshaller;
+ private Map<String,ServiceRegistration> services = new HashMap<>();
+ public MerlotKafkaManagedServiceFactory(BundleContext ctx, EventAdmin
dispatcher, Unmarshaller unmarshaller) {
+ this.ctx = ctx;
+ this.dispatcher = dispatcher;
+ this.unmarshaller = unmarshaller;
+ }
+
@Override
public String getName() {
return "Prueba";
@@ -30,12 +58,25 @@ public class MerlotKafkaManagedServiceFactory implements
ManagedServiceFactory {
@Override
public void updated(String pid, Dictionary<String, ?> properties) throws
ConfigurationException {
- System.out.println("pid: " + pid);
+ System.out.println("Registering service: " + pid);
+ deleted(pid);
+ MerlotKafkaDecanterCollectorImpl bundle = new
MerlotKafkaDecanterCollectorImpl(dispatcher, unmarshaller);
+ Hashtable<String, String> serviceProperties = new Hashtable<>();
+ serviceProperties.put(Constants.SERVICE_PID, pid);
+ ServiceRegistration registration =
ctx.registerService(MerlotDecanterCollector.class, bundle, serviceProperties);
+ services.put(pid, registration);
}
@Override
public void deleted(String pid) {
- System.out.println("pid: " + pid);
+ LOGGER.info("Removing service: " + pid);
+ if (services.containsKey(pid)) {
+ MerlotDecanterCollector bundle = (MerlotDecanterCollector)
ctx.getService(services.get(pid).getReference());
+ bundle.destroy();
+ services.get(pid).unregister();
+ }
}
+
+
}
diff --git
a/plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/src/main/java/org/apache/plc4x/merlot/kafka/impl/MerlotKafkaDecanterCollector.java
b/plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/src/main/java/org/apache/plc4x/merlot/kafka/impl/MerlotKafkaDecanterCollectorImpl.java
similarity index 57%
rename from
plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/src/main/java/org/apache/plc4x/merlot/kafka/impl/MerlotKafkaDecanterCollector.java
rename to
plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/src/main/java/org/apache/plc4x/merlot/kafka/impl/MerlotKafkaDecanterCollectorImpl.java
index 774c6a4..3075260 100644
---
a/plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/src/main/java/org/apache/plc4x/merlot/kafka/impl/MerlotKafkaDecanterCollector.java
+++
b/plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/src/main/java/org/apache/plc4x/merlot/kafka/impl/MerlotKafkaDecanterCollectorImpl.java
@@ -16,19 +16,60 @@
*/
package org.apache.plc4x.merlot.kafka.impl;
+import java.io.ByteArrayInputStream;
+import java.io.UnsupportedEncodingException;
+import java.time.Duration;
+import java.util.Arrays;
import java.util.Dictionary;
+import java.util.HashMap;
+import java.util.Map;
import java.util.Properties;
-
-
-public class MerlotKafkaDecanterCollector {
+import java.util.concurrent.Executors;
+import org.apache.kafka.clients.consumer.ConsumerRecord;
+import org.apache.kafka.clients.consumer.ConsumerRecords;
+import org.apache.kafka.clients.consumer.KafkaConsumer;
+import org.apache.karaf.decanter.api.marshaller.Unmarshaller;
+import org.apache.karaf.decanter.collector.utils.PropertiesPreparator;
+import org.apache.plc4x.merlot.kafka.api.MerlotDecanterCollector;
+import org.osgi.service.event.Event;
+import org.osgi.service.event.EventAdmin;
+import org.osgi.service.event.EventConstants;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+public class MerlotKafkaDecanterCollectorImpl implements
MerlotDecanterCollector, Runnable {
+ private static final Logger LOGGER =
LoggerFactory.getLogger(MerlotKafkaDecanterCollectorImpl.class);
private String topic;
private String eventAdminTopic;
private boolean consuming = false;
private String messageType;
- public void activate(String pid, Dictionary<String, Object> properties) {
+ private Dictionary<String, Object> properties;
+ private KafkaConsumer<String, String> consumer;
+
+ private final EventAdmin dispatcher;
+ private final Unmarshaller unmarshaller;
+ public MerlotKafkaDecanterCollectorImpl(EventAdmin dispatcher,
Unmarshaller unmarshaller) {
+ this.dispatcher = dispatcher;
+ this.unmarshaller = unmarshaller;
+ }
+
+ @Override
+ public void init() {
+ consuming = true;
+ Executors.newSingleThreadExecutor().execute(this);
+ }
+
+ @Override
+ public void destroy() {
+ consuming = false;
+ }
+
+ public void activate(String pid, Dictionary<String, Object> properties) {
+ this.properties = properties;
topic = getValue(properties, "topic", "decanter");
eventAdminTopic = getValue(properties, EventConstants.EVENT_TOPIC,
"decanter/collect/kafka/decanter");
messageType = getValue(properties, "message.type", "text");
@@ -98,12 +139,64 @@ public class MerlotKafkaDecanterCollector {
String sslKeystoreType = getValue(properties, "ssl.keystore.type",
null);
if (sslKeystoreType != null)
- config.put("ssl.keystore.type", sslKeystoreType);
- }
+ config.put("ssl.keystore.type", sslKeystoreType);
+
+ ClassLoader originClassLoader =
Thread.currentThread().getContextClassLoader();
+ try {
+ Thread.currentThread().setContextClassLoader(null);
+ consumer = new KafkaConsumer<String, String>(config);
+ String[] topics = topic.split(",");
+ for (String t:topics){
+ t = t.replaceAll("\\s+","");
+ }
+ consumer.subscribe(Arrays.asList(topics));
+ } finally {
+ Thread.currentThread().setContextClassLoader(originClassLoader);
+ }
+ }
+
+ @Override
+ public void run() {
+ while (consuming) {
+ try {
+ consume();
+ } catch (Exception e) {
+ LOGGER.warn(e.getMessage(), e);
+ }
+ }
+ }
+
+ private void consume() throws UnsupportedEncodingException {
+ ConsumerRecords<String, String> records =
consumer.poll(Duration.ofSeconds(1));
+ if (records.isEmpty()) {
+ return;
+ }
+ Map<String, Object> data = new HashMap<>();
+ data.put("type", "kafka");
+
+ for (ConsumerRecord<String, String> record : records) {
+ String value = record.value();
+ if (messageType.equalsIgnoreCase("text")) {
+ ByteArrayInputStream is = new
ByteArrayInputStream(value.getBytes("utf-8"));
+ data.putAll(unmarshaller.unmarshal(is));
+ } else {
+ data.put("payload", value);
+ }
+ }
+
+ try {
+ PropertiesPreparator.prepare(data, properties);
+ } catch (Exception e) {
+ LOGGER.warn("Can't prepare data for the dispatcher", e);
+ }
+
+ Event event = new Event(eventAdminTopic, data);
+ dispatcher.postEvent(event);
+ }
private String getValue(Dictionary<String, Object> config, String key,
String defaultValue) {
String value = (String)config.get(key);
return (value != null) ? value : defaultValue;
}
-
+
}
diff --git
a/plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/src/main/resources/OSGI-INF/blueprint/kafka-service.xml
b/plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/src/main/resources/OSGI-INF/blueprint/kafka-service.xml
index e4e9ac7..cb42b6b 100644
---
a/plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/src/main/resources/OSGI-INF/blueprint/kafka-service.xml
+++
b/plc4j/tools/merlot/org.apache.plc4x.merlot.kafka/src/main/resources/OSGI-INF/blueprint/kafka-service.xml
@@ -16,15 +16,32 @@
limitations under the License.
-->
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
default-activation="eager">
-
+
+ <reference id="servEventAdmin"
+ interface="org.osgi.service.event.EventAdmin"
+ timeout="10000"
+ availability="mandatory">
+ </reference>
+
+ <reference id="servMarshaller"
+ interface="org.apache.karaf.decanter.api.marshaller.Marshaller"
+ filter="(component.name=org.apache.karaf.decanter.marshaller.json)"
+ timeout="10000"
+ availability="mandatory">
+ </reference>
+
<bean id="serviceBean"
class="org.apache.plc4x.merlot.kafka.core.MerlotKafkaManagedServiceFactory"
- scope="singleton"/>
+ scope="singleton">
+ <argument ref="blueprintBundleContext"/>
+ <argument ref="servEventAdmin"/>
+ <argument ref="servMarshaller"/>
+ </bean>
<service ref="serviceBean"
interface="org.osgi.service.cm.ManagedServiceFactory">
<service-properties>
- <entry key="service.pid"
value="org.apache.karaf.decanter.collector.kafka"/>
+ <entry key="service.pid"
value="org.apache.plc4x.merlot.kafka.collector"/>
</service-properties>
</service>
diff --git a/plc4j/tools/merlot/org.apache.plc4x.merlot/pom.xml
b/plc4j/tools/merlot/org.apache.plc4x.merlot/pom.xml
index 16cdc9a..f8e267a 100644
--- a/plc4j/tools/merlot/org.apache.plc4x.merlot/pom.xml
+++ b/plc4j/tools/merlot/org.apache.plc4x.merlot/pom.xml
@@ -124,7 +124,7 @@
<dependency>
<groupId>org.apache.karaf.decanter</groupId>
<artifactId>apache-karaf-decanter</artifactId>
- <version>2.10.0</version>
+ <version>${decanter.version}</version>
<type>xml</type>
<classifier>features</classifier>
</dependency>
diff --git a/plc4j/tools/merlot/pom.xml b/plc4j/tools/merlot/pom.xml
index 74a9a78..9e8d426 100644
--- a/plc4j/tools/merlot/pom.xml
+++ b/plc4j/tools/merlot/pom.xml
@@ -100,7 +100,8 @@ under the License.
<spifly.version>1.3.6</spifly.version>
- <jackson.version>2.19.0</jackson.version>
+ <jackson.version>2.21.2</jackson.version>
+ <jackson-annotations.version>2.21</jackson-annotations.version>
<jakarta.xml.bind.version>2.3.3</jakarta.xml.bind.version>
@@ -119,7 +120,7 @@ under the License.
<awaitility.version>3.1.6</awaitility.version>
- <decanter.version>2.10.0</decanter.version>
+ <decanter.version>2.12.0</decanter.version>
<hawtbuf.version>1.11</hawtbuf.version>
@@ -146,7 +147,7 @@ under the License.
<karaf.version>4.4.10</karaf.version>
- <decanter.version>2.10.0</decanter.version>
+ <decanter.version>2.12.0</decanter.version>
<org.osgi.core.version>6.0.0</org.osgi.core.version>
@@ -162,7 +163,7 @@ under the License.
<maven-failsafe-plugin.version>3.5.3</maven-failsafe-plugin.version>
-
+ <kafka.version>3.9.2</kafka.version>
<!-- EPICS -->
@@ -279,7 +280,7 @@ under the License.
<module>org.apache.plc4x.merlot.grpc</module>
- <!-- <module>org.apache.plc4x.merlot.ui</module> -->
+ <module>org.apache.plc4x.merlot.ui</module>
<module>org.apache.plc4x.merlot.drv.s7</module>