This is an automated email from the ASF dual-hosted git repository.
jamesnetherton pushed a commit to branch 2.13.x
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/2.13.x by this push:
new 438709df02 Upgraded snmp4j to another provider to avoid flaky tests
438709df02 is described below
commit 438709df02c1b84849925909918fe2ea7f378378
Author: JiriOndrusek <[email protected]>
AuthorDate: Thu May 4 14:12:42 2023 +0200
Upgraded snmp4j to another provider to avoid flaky tests
---
.../component/snmp/deployment/SnmpProcessor.java | 10 +
extensions-jvm/snmp/runtime/pom.xml | 4 +
.../quarkus/component/snm/graal/SnmpRecorder.java | 352 +++++++++++++++++++++
.../quarkus/component/snmp/it/SnmpResource.java | 5 +-
.../camel/quarkus/component/snmp/it/SnmpTest.java | 5 +-
pom.xml | 1 +
poms/bom/pom.xml | 11 +
poms/bom/src/main/generated/flattened-full-pom.xml | 11 +
.../src/main/generated/flattened-reduced-pom.xml | 11 +
.../generated/flattened-reduced-verbose-pom.xml | 11 +
10 files changed, 418 insertions(+), 3 deletions(-)
diff --git
a/extensions-jvm/snmp/deployment/src/main/java/org/apache/camel/quarkus/component/snmp/deployment/SnmpProcessor.java
b/extensions-jvm/snmp/deployment/src/main/java/org/apache/camel/quarkus/component/snmp/deployment/SnmpProcessor.java
index 181f1a487f..22d2acf371 100644
---
a/extensions-jvm/snmp/deployment/src/main/java/org/apache/camel/quarkus/component/snmp/deployment/SnmpProcessor.java
+++
b/extensions-jvm/snmp/deployment/src/main/java/org/apache/camel/quarkus/component/snmp/deployment/SnmpProcessor.java
@@ -21,7 +21,10 @@ import io.quarkus.deployment.annotations.ExecutionTime;
import io.quarkus.deployment.annotations.Record;
import io.quarkus.deployment.builditem.FeatureBuildItem;
import io.quarkus.deployment.pkg.steps.NativeBuild;
+import org.apache.camel.component.snmp.SnmpComponent;
+import org.apache.camel.quarkus.component.snm.graal.SnmpRecorder;
import org.apache.camel.quarkus.core.JvmOnlyRecorder;
+import org.apache.camel.quarkus.core.deployment.spi.CamelBeanBuildItem;
import org.jboss.logging.Logger;
class SnmpProcessor {
@@ -43,4 +46,11 @@ class SnmpProcessor {
JvmOnlyRecorder.warnJvmInNative(LOG, FEATURE); // warn at build time
recorder.warnJvmInNative(FEATURE); // warn at runtime
}
+
+ @Record(ExecutionTime.STATIC_INIT)
+ @BuildStep
+ CamelBeanBuildItem configureSnmpComponent(SnmpRecorder recorder) {
+ return new CamelBeanBuildItem("snmp", SnmpComponent.class.getName(),
+ recorder.configureSnmpComponent());
+ }
}
diff --git a/extensions-jvm/snmp/runtime/pom.xml
b/extensions-jvm/snmp/runtime/pom.xml
index b6f3194278..003e106027 100644
--- a/extensions-jvm/snmp/runtime/pom.xml
+++ b/extensions-jvm/snmp/runtime/pom.xml
@@ -43,6 +43,10 @@
<groupId>org.apache.camel</groupId>
<artifactId>camel-snmp</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.snmp4j</groupId>
+ <artifactId>snmp4j</artifactId>
+ </dependency>
</dependencies>
<build>
diff --git
a/extensions-jvm/snmp/runtime/src/main/java/org/apache/camel/quarkus/component/snm/graal/SnmpRecorder.java
b/extensions-jvm/snmp/runtime/src/main/java/org/apache/camel/quarkus/component/snm/graal/SnmpRecorder.java
new file mode 100644
index 0000000000..468f104edb
--- /dev/null
+++
b/extensions-jvm/snmp/runtime/src/main/java/org/apache/camel/quarkus/component/snm/graal/SnmpRecorder.java
@@ -0,0 +1,352 @@
+/*
+ * 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.camel.quarkus.component.snm.graal;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Vector;
+import java.util.concurrent.TimeoutException;
+
+import io.quarkus.runtime.RuntimeValue;
+import io.quarkus.runtime.annotations.Recorder;
+import org.apache.camel.Endpoint;
+import org.apache.camel.Exchange;
+import org.apache.camel.Producer;
+import org.apache.camel.component.snmp.SnmpActionType;
+import org.apache.camel.component.snmp.SnmpComponent;
+import org.apache.camel.component.snmp.SnmpEndpoint;
+import org.apache.camel.component.snmp.SnmpMessage;
+import org.apache.camel.component.snmp.SnmpProducer;
+import org.apache.camel.component.snmp.SnmpTrapProducer;
+import org.apache.camel.support.DefaultProducer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.snmp4j.CommunityTarget;
+import org.snmp4j.PDU;
+import org.snmp4j.Snmp;
+import org.snmp4j.TransportMapping;
+import org.snmp4j.event.ResponseEvent;
+import org.snmp4j.mp.MPv3;
+import org.snmp4j.mp.SnmpConstants;
+import org.snmp4j.security.SecurityModels;
+import org.snmp4j.security.SecurityProtocols;
+import org.snmp4j.security.USM;
+import org.snmp4j.smi.Address;
+import org.snmp4j.smi.GenericAddress;
+import org.snmp4j.smi.Integer32;
+import org.snmp4j.smi.OID;
+import org.snmp4j.smi.OctetString;
+import org.snmp4j.smi.VariableBinding;
+import org.snmp4j.transport.DefaultTcpTransportMapping;
+import org.snmp4j.transport.DefaultUdpTransportMapping;
+
+@Recorder
+public class SnmpRecorder {
+
+ /**
+ * Camel 3.18.6 uses org.apache.servicemix.bundles.snmp4j which differs in
method signature of
+ * SecurityModels.getInstance().addSecurityModel(this.usm)
+ * compared to org.snmp4j.snmp4j.
+ * For that reason CQ heeds to introduce its own SnmpProducer (with the
same code as in Ca,mel 3.18.6)
+ * This recorder could be removed as soon as the Camel is upgraded to 4.x
(which brings org.snmp4j.snmp4j)
+ */
+ public RuntimeValue<SnmpComponent> configureSnmpComponent() {
+ return new RuntimeValue<>(new QuarkusSnmpComponent());
+ }
+
+ @org.apache.camel.spi.annotations.Component("snmp")
+ static class QuarkusSnmpComponent extends SnmpComponent {
+
+ @Override
+ protected Endpoint createEndpoint(String uri, String remaining,
Map<String, Object> parameters) throws Exception {
+ SnmpEndpoint endpoint = new QuarkusSnmpEndpoint(uri, this);
+ setProperties(endpoint, parameters);
+ return endpoint;
+ }
+ }
+
+ static class QuarkusSnmpEndpoint extends SnmpEndpoint {
+
+ public QuarkusSnmpEndpoint(String uri, SnmpComponent component) {
+ super(uri, component);
+ }
+
+ @Override
+ public Producer createProducer() throws Exception {
+ //code from Camel 3.18.6
+ if (getType() == SnmpActionType.TRAP) {
+ return new QuarkusSnmpTrapProducer(this);
+ } else {
+ // add the support: snmp walk (use snmp4j GET_NEXT)
+ return new QuarkusSnmpProducer(this, getType());
+ }
+ }
+ }
+
+ //code from Camel 3.18.6
+ static class QuarkusSnmpProducer extends DefaultProducer {
+
+ private static final Logger LOG =
LoggerFactory.getLogger(SnmpProducer.class);
+
+ private SnmpEndpoint endpoint;
+
+ private Address targetAddress;
+ private USM usm;
+ private CommunityTarget target;
+ private SnmpActionType actionType;
+ private PDU pdu;
+
+ public QuarkusSnmpProducer(SnmpEndpoint endpoint, SnmpActionType
actionType) {
+ super(endpoint);
+ this.endpoint = endpoint;
+ this.actionType = actionType;
+ }
+
+ @Override
+ protected void doStart() throws Exception {
+ super.doStart();
+
+ this.targetAddress =
GenericAddress.parse(this.endpoint.getAddress());
+ LOG.debug("targetAddress: {}", targetAddress);
+
+ this.usm = new USM(SecurityProtocols.getInstance(), new
OctetString(MPv3.createLocalEngineID()), 0);
+ try {
+ SecurityModels.getInstance().addSecurityModel(this.usm);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ // setting up target
+ this.target = new CommunityTarget();
+ this.target.setCommunity(new
OctetString(endpoint.getSnmpCommunity()));
+ this.target.setAddress(this.targetAddress);
+ this.target.setRetries(this.endpoint.getRetries());
+ this.target.setTimeout(this.endpoint.getTimeout());
+ this.target.setVersion(this.endpoint.getSnmpVersion());
+
+ this.pdu = new PDU();
+ // in here,only POLL do set the oids
+ if (this.actionType == SnmpActionType.POLL) {
+ for (OID oid : this.endpoint.getOids()) {
+ this.pdu.add(new VariableBinding(oid));
+ }
+ }
+ this.pdu.setErrorIndex(0);
+ this.pdu.setErrorStatus(0);
+ this.pdu.setMaxRepetitions(0);
+ // support POLL and GET_NEXT
+ if (this.actionType == SnmpActionType.GET_NEXT) {
+ this.pdu.setType(PDU.GETNEXT);
+ } else {
+ this.pdu.setType(PDU.GET);
+ }
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ super.doStop();
+
+ try {
+ SecurityModels.getInstance().removeSecurityModel(new
Integer32(this.usm.getID()));
+ } finally {
+ this.targetAddress = null;
+ this.usm = null;
+ this.target = null;
+ this.pdu = null;
+ }
+ }
+
+ @Override
+ public void process(final Exchange exchange) throws Exception {
+ // load connection data only if the endpoint is enabled
+ Snmp snmp = null;
+ TransportMapping<? extends Address> transport = null;
+
+ try {
+ LOG.debug("Starting SNMP producer on {}",
this.endpoint.getAddress());
+
+ // either tcp or udp
+ if ("tcp".equals(this.endpoint.getProtocol())) {
+ transport = new DefaultTcpTransportMapping();
+ } else if ("udp".equals(this.endpoint.getProtocol())) {
+ transport = new DefaultUdpTransportMapping();
+ } else {
+ throw new IllegalArgumentException("Unknown protocol: " +
this.endpoint.getProtocol());
+ }
+
+ snmp = new Snmp(transport);
+
+ LOG.debug("Snmp: i am sending");
+
+ snmp.listen();
+
+ if (this.actionType == SnmpActionType.GET_NEXT) {
+ // snmp walk
+ List<SnmpMessage> smLst = new ArrayList<>();
+ for (OID oid : this.endpoint.getOids()) {
+ this.pdu.clear();
+ this.pdu.add(new VariableBinding(oid));
+
+ boolean matched = true;
+ while (matched) {
+ ResponseEvent responseEvent = snmp.send(this.pdu,
this.target);
+ if (responseEvent == null ||
responseEvent.getResponse() == null) {
+ break;
+ }
+ PDU response = responseEvent.getResponse();
+ String nextOid = null;
+ Vector<? extends VariableBinding> variableBindings
= response.getVariableBindings();
+ for (int i = 0; i < variableBindings.size(); i++) {
+ VariableBinding variableBinding =
variableBindings.elementAt(i);
+ nextOid =
variableBinding.getOid().toDottedString();
+ if (!nextOid.startsWith(oid.toDottedString()))
{
+ matched = false;
+ break;
+ }
+ }
+ if (!matched) {
+ break;
+ }
+ this.pdu.clear();
+ pdu.add(new VariableBinding(new OID(nextOid)));
+ smLst.add(new
SnmpMessage(getEndpoint().getCamelContext(), response));
+ }
+ }
+ exchange.getIn().setBody(smLst);
+ } else {
+ // snmp get
+ ResponseEvent responseEvent = snmp.send(this.pdu,
this.target);
+
+ LOG.debug("Snmp: sended");
+
+ if (responseEvent.getResponse() != null) {
+ exchange.getIn().setBody(new
SnmpMessage(getEndpoint().getCamelContext(), responseEvent.getResponse()));
+ } else {
+ throw new TimeoutException("SNMP Producer Timeout");
+ }
+ }
+ } finally {
+ try {
+ transport.close();
+ } catch (Exception e) {
+ }
+ try {
+ snmp.close();
+ } catch (Exception e) {
+ }
+ }
+ } //end process
+ }
+
+ //code from Camel 3.18.6
+ static class QuarkusSnmpTrapProducer extends DefaultProducer {
+
+ private static final Logger LOG =
LoggerFactory.getLogger(SnmpTrapProducer.class);
+
+ private SnmpEndpoint endpoint;
+
+ private Address targetAddress;
+ private USM usm;
+ private CommunityTarget target;
+
+ public QuarkusSnmpTrapProducer(SnmpEndpoint endpoint) {
+ super(endpoint);
+ this.endpoint = endpoint;
+ }
+
+ @Override
+ protected void doStart() throws Exception {
+ super.doStart();
+
+ this.targetAddress =
GenericAddress.parse(this.endpoint.getAddress());
+ LOG.debug("targetAddress: {}", targetAddress);
+
+ this.usm = new USM(SecurityProtocols.getInstance(), new
OctetString(MPv3.createLocalEngineID()), 0);
+ SecurityModels.getInstance().addSecurityModel(this.usm);
+
+ // setting up target
+ this.target = new CommunityTarget();
+ this.target.setCommunity(new
OctetString(endpoint.getSnmpCommunity()));
+ this.target.setAddress(this.targetAddress);
+ this.target.setRetries(this.endpoint.getRetries());
+ this.target.setTimeout(this.endpoint.getTimeout());
+ this.target.setVersion(this.endpoint.getSnmpVersion());
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ super.doStop();
+
+ try {
+ SecurityModels.getInstance().removeSecurityModel(new
Integer32(this.usm.getID()));
+ } finally {
+ this.targetAddress = null;
+ this.usm = null;
+ this.target = null;
+ }
+ }
+
+ @Override
+ public void process(final Exchange exchange) throws Exception {
+ // load connection data only if the endpoint is enabled
+ Snmp snmp = null;
+ TransportMapping<? extends Address> transport = null;
+
+ try {
+ LOG.debug("Starting SNMP Trap producer on {}",
this.endpoint.getAddress());
+
+ // either tcp or udp
+ if ("tcp".equals(this.endpoint.getProtocol())) {
+ transport = new DefaultTcpTransportMapping();
+ } else if ("udp".equals(this.endpoint.getProtocol())) {
+ transport = new DefaultUdpTransportMapping();
+ } else {
+ throw new IllegalArgumentException("Unknown protocol: " +
this.endpoint.getProtocol());
+ }
+
+ snmp = new Snmp(transport);
+
+ LOG.debug("SnmpTrap: getting pdu from body");
+ PDU trap = exchange.getIn().getBody(PDU.class);
+
+ trap.setErrorIndex(0);
+ trap.setErrorStatus(0);
+ if (this.endpoint.getSnmpVersion() == SnmpConstants.version1) {
+ trap.setType(PDU.V1TRAP);
+ } else {
+ trap.setType(PDU.TRAP);
+ trap.setMaxRepetitions(0);
+ }
+
+ LOG.debug("SnmpTrap: sending");
+ snmp.send(trap, this.target);
+ LOG.debug("SnmpTrap: sent");
+ } finally {
+ try {
+ transport.close();
+ } catch (Exception e) {
+ }
+ try {
+ snmp.close();
+ } catch (Exception e) {
+ }
+ }
+ } //end process
+ }
+
+}
diff --git
a/integration-tests-jvm/snmp/src/main/java/org/apache/camel/quarkus/component/snmp/it/SnmpResource.java
b/integration-tests-jvm/snmp/src/main/java/org/apache/camel/quarkus/component/snmp/it/SnmpResource.java
index a98ebbb2c3..3d35fe115d 100644
---
a/integration-tests-jvm/snmp/src/main/java/org/apache/camel/quarkus/component/snmp/it/SnmpResource.java
+++
b/integration-tests-jvm/snmp/src/main/java/org/apache/camel/quarkus/component/snmp/it/SnmpResource.java
@@ -110,7 +110,10 @@ public class SnmpResource {
@POST
@Produces(MediaType.TEXT_PLAIN)
public Response results(@PathParam("from") String from, String oid) throws
Exception {
- String result = snmpResults.get(from).stream().map(m ->
m.getSnmpMessage().getVariable(new OID(oid)).toString())
+ String result = snmpResults.get(from).stream().map(m -> {
+ Variable v = m.getSnmpMessage().getVariable(new OID(oid));
+ return v != null ? v.toString() : "";
+ })
.collect(Collectors.joining(","));
return Response.ok(result).build();
diff --git
a/integration-tests-jvm/snmp/src/test/java/org/apache/camel/quarkus/component/snmp/it/SnmpTest.java
b/integration-tests-jvm/snmp/src/test/java/org/apache/camel/quarkus/component/snmp/it/SnmpTest.java
index 5155a7c85c..fac78e768c 100644
---
a/integration-tests-jvm/snmp/src/test/java/org/apache/camel/quarkus/component/snmp/it/SnmpTest.java
+++
b/integration-tests-jvm/snmp/src/test/java/org/apache/camel/quarkus/component/snmp/it/SnmpTest.java
@@ -63,7 +63,7 @@ class SnmpTest {
.then()
.statusCode(200);
- await().atMost(10L, TimeUnit.SECONDS).pollDelay(100,
TimeUnit.MILLISECONDS).until(() -> {
+ await().atMost(20L, TimeUnit.SECONDS).pollDelay(100,
TimeUnit.MILLISECONDS).until(() -> {
String result = RestAssured.given()
.body(SnmpConstants.snmpTrapOID.toString())
.post("/snmp/results/" + resultsName)
@@ -130,7 +130,8 @@ class SnmpTest {
.post("/snmp/getNext/" + version)
.then()
.statusCode(200)
- .body(Matchers.equalTo("1,2,My GET_NEXT Printer - response
#3"));
+ //if the resource is too slow, it might have missed first 2
messages with values "1" and "2"
+ .body(Matchers.endsWith("2,My GET_NEXT Printer - response
#3"));
}
@ParameterizedTest
diff --git a/pom.xml b/pom.xml
index 9b2ff25bc5..4cec327cb5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -143,6 +143,7 @@
<smallrye.reactive.messaging.camel.version>3.21.0</smallrye.reactive.messaging.camel.version><!--
@sync io.quarkus:quarkus-bom:${quarkus.version}
dep:io.smallrye.reactive:smallrye-reactive-messaging-provider -->
<spring.version>${spring5-version}</spring.version>
<snakeyaml.version>1.33</snakeyaml.version><!-- @sync
io.quarkus:quarkus-bom:${quarkus.version} dep:org.yaml:snakeyaml -->
+ <snmp4j.version>2.8.15</snmp4j.version>
<tablesaw.version>0.43.1</tablesaw.version>
<threetenbp.version>1.6.0</threetenbp.version>
<xalan.version>2.7.2</xalan.version><!-- Xalan should be removed as is
in Camel, but it is not possible.
https://github.com/apache/camel-quarkus/issues/4065-->
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index d16e62b12a..bc37378819 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -2530,6 +2530,12 @@
<groupId>org.apache.camel</groupId>
<artifactId>camel-snmp</artifactId>
<version>${camel.version}</version>
+ <exclusions>
+ <exclusion>
+
<artifactId>org.apache.servicemix.bundles.snmp4j</artifactId>
+ <groupId>org.apache.servicemix.bundles</groupId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
@@ -7016,6 +7022,11 @@
<artifactId>optaplanner-quarkus-jackson-deployment</artifactId>
<version>${optaplanner.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.snmp4j</groupId>
+ <artifactId>snmp4j</artifactId>
+ <version>${snmp4j.version}</version>
+ </dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
diff --git a/poms/bom/src/main/generated/flattened-full-pom.xml
b/poms/bom/src/main/generated/flattened-full-pom.xml
index cdfa400bad..c9d203c393 100644
--- a/poms/bom/src/main/generated/flattened-full-pom.xml
+++ b/poms/bom/src/main/generated/flattened-full-pom.xml
@@ -2471,6 +2471,12 @@
<groupId>org.apache.camel</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>camel-snmp</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>3.18.6</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.servicemix.bundles</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <artifactId>org.apache.servicemix.bundles.snmp4j</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
@@ -6951,6 +6957,11 @@
<artifactId>optaplanner-quarkus-jackson-deployment</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>8.29.0.Final</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</dependency>
+ <dependency>
+ <groupId>org.snmp4j</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <artifactId>snmp4j</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <version>2.8.15</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ </dependency>
<dependency>
<groupId>org.springframework</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>spring-aop</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
diff --git a/poms/bom/src/main/generated/flattened-reduced-pom.xml
b/poms/bom/src/main/generated/flattened-reduced-pom.xml
index f0373e2587..82fc07d1b2 100644
--- a/poms/bom/src/main/generated/flattened-reduced-pom.xml
+++ b/poms/bom/src/main/generated/flattened-reduced-pom.xml
@@ -2471,6 +2471,12 @@
<groupId>org.apache.camel</groupId>
<artifactId>camel-snmp</artifactId>
<version>3.18.6</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.servicemix.bundles</groupId>
+ <artifactId>org.apache.servicemix.bundles.snmp4j</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
@@ -6941,6 +6947,11 @@
<artifactId>optaplanner-quarkus-jackson-deployment</artifactId>
<version>8.29.0.Final</version>
</dependency>
+ <dependency>
+ <groupId>org.snmp4j</groupId>
+ <artifactId>snmp4j</artifactId>
+ <version>2.8.15</version>
+ </dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
diff --git a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
index 804ccb3b83..748822dd68 100644
--- a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
+++ b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
@@ -2471,6 +2471,12 @@
<groupId>org.apache.camel</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>camel-snmp</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>3.18.6</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.servicemix.bundles</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <artifactId>org.apache.servicemix.bundles.snmp4j</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
@@ -6941,6 +6947,11 @@
<artifactId>optaplanner-quarkus-jackson-deployment</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<version>8.29.0.Final</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
</dependency>
+ <dependency>
+ <groupId>org.snmp4j</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <artifactId>snmp4j</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ <version>2.8.15</version><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+ </dependency>
<dependency>
<groupId>org.springframework</groupId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
<artifactId>spring-aop</artifactId><!--
org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->