You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2022/05/26 10:12:47 UTC
[camel] 01/02: Milo 0.6.6
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 71f4773eca00e7d25b565e3a508610efc9bb11bd
Author: Klug Andreas (CI/XDM1) <kg...@bosch.com>
AuthorDate: Wed May 25 15:54:26 2022 +0200
Milo 0.6.6
---
camel-dependencies/pom.xml | 2 +-
components/camel-milo/pom.xml | 12 +++++
.../component/milo/client/MiloClientConsumer.java | 9 +++-
.../component/milo/client/MiloClientEndpoint.java | 16 ++++++-
.../milo/client/internal/SubscriptionManager.java | 4 +-
.../component/milo/server/MiloServerComponent.java | 17 +++----
.../milo/server/internal/CamelNamespace.java | 38 ++++++++++-----
.../milo/server/internal/CamelServerItem.java | 55 +++++++++++++---------
.../component/milo/AbstractMiloServerTest.java | 2 +-
.../MiloClientCachingConnectionManagerTest.java | 11 ++++-
.../milo/MonitorItemMultiConnectionsCertTest.java | 16 ++++++-
.../milo/MonitorItemMultiConnectionsTest.java | 16 ++++++-
.../camel/component/milo/MonitorItemTest.java | 38 +++++++++++----
.../camel/component/milo/ReadValuesClientTest.java | 16 ++++++-
.../camel/component/milo/WriteClientTest.java | 18 ++++++-
.../component/milo/browse/BrowseServerTest.java | 16 ++++++-
.../camel/component/milo/call/CallClientTest.java | 33 ++++++++++++-
.../component/milo/call/MockCamelNamespace.java | 30 ++++++++----
.../camel/component/milo/client/NodeIdTest.java | 16 ++++++-
.../component/milo/converter/ConverterTest.java | 16 ++++++-
.../component/milo/server/ServerLocalTest.java | 14 +++++-
.../server/ServerSetCertificateManagerTest.java | 16 ++++++-
.../milo/server/ServerSetSecurityPoliciesTest.java | 16 ++++++-
23 files changed, 348 insertions(+), 79 deletions(-)
diff --git a/camel-dependencies/pom.xml b/camel-dependencies/pom.xml
index 78b2c318694..2674df36cc0 100644
--- a/camel-dependencies/pom.xml
+++ b/camel-dependencies/pom.xml
@@ -404,7 +404,7 @@
<microprofile-fault-tolerance-version>3.0</microprofile-fault-tolerance-version>
<microprofile-metrics-version>3.0.1</microprofile-metrics-version>
<milo-guava-version>26.0-jre</milo-guava-version>
- <milo-version>0.3.7</milo-version>
+ <milo-version>0.6.6</milo-version>
<mina-version>2.1.5</mina-version>
<minidns-version>0.3.4</minidns-version>
<minimal-json-version>0.9.5</minimal-json-version>
diff --git a/components/camel-milo/pom.xml b/components/camel-milo/pom.xml
index bc45a3c79c4..3a705ff7442 100644
--- a/components/camel-milo/pom.xml
+++ b/components/camel-milo/pom.xml
@@ -56,6 +56,18 @@
<version>${milo-version}</version>
</dependency>
+ <dependency>
+ <groupId>org.eclipse.milo</groupId>
+ <artifactId>stack-core</artifactId>
+ <version>${milo-version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.eclipse.milo</groupId>
+ <artifactId>dictionary-manager</artifactId>
+ <version>${milo-version}</version>
+ </dependency>
+
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
diff --git a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientConsumer.java b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientConsumer.java
index 60689104638..15572a0cdd2 100644
--- a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientConsumer.java
+++ b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientConsumer.java
@@ -35,11 +35,13 @@ public class MiloClientConsumer extends DefaultConsumer {
private MonitorHandle handle;
private ExpandedNodeId node;
private Double samplingInterval;
+ private boolean omitNullValues;
public MiloClientConsumer(final MiloClientEndpoint endpoint, final Processor processor) {
super(endpoint, processor);
this.node = endpoint.getNodeId();
this.samplingInterval = endpoint.getSamplingInterval();
+ this.omitNullValues = endpoint.isOmitNullValues();
}
@Override
@@ -68,7 +70,12 @@ public class MiloClientConsumer extends DefaultConsumer {
private void handleValueUpdate(final DataValue value) {
LOG.debug("Handle item update - {} = {}", node, value);
-
+
+ if(omitNullValues && (value == null || value.getValue() == null || value.getValue().getValue() == null)){
+ LOG.debug("Handle item update omitted due to null values (see omitNullValues parameter)");
+ return;
+ }
+
final Exchange exchange = createExchange(true);
try {
mapToMessage(value, exchange.getMessage());
diff --git a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientEndpoint.java b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientEndpoint.java
index a1b25db531c..e7a6de742f1 100644
--- a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientEndpoint.java
+++ b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/MiloClientEndpoint.java
@@ -77,7 +77,13 @@ public class MiloClientEndpoint extends DefaultEndpoint {
*/
@UriParam
private boolean defaultAwaitWrites;
-
+
+ /**
+ * Omit notifications in case of null values
+ */
+ @UriParam(defaultValue = "true")
+ private boolean omitNullValues = true;
+
@UriParam
private MonitorFilterConfiguration monitorFilterConfiguration;
@@ -189,4 +195,12 @@ public class MiloClientEndpoint extends DefaultEndpoint {
public void setMonitorFilterType(MonitorFilterType monitorFilterType) {
this.monitorFilterType = monitorFilterType;
}
+
+ public boolean isOmitNullValues() {
+ return omitNullValues;
+ }
+
+ public void setOmitNullValues(boolean omitNullValues) {
+ this.omitNullValues = omitNullValues;
+ }
}
diff --git a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/internal/SubscriptionManager.java b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/internal/SubscriptionManager.java
index 0627485da42..d0748eda832 100644
--- a/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/internal/SubscriptionManager.java
+++ b/components/camel-milo/src/main/java/org/apache/camel/component/milo/client/internal/SubscriptionManager.java
@@ -162,7 +162,7 @@ public class SubscriptionManager {
return null;
}
final MonitoringFilter monitorFilter = this.monitorFilterConfiguration.createMonitoringFilter();
- return ExtensionObject.encode(client.getSerializationContext(), monitorFilter);
+ return ExtensionObject.encode(client.getStaticSerializationContext(), monitorFilter);
}
}
@@ -203,7 +203,7 @@ public class SubscriptionManager {
Double samplingInterval = s.getSamplingInterval();
final MonitoringParameters parameters = new MonitoringParameters(
- entry.getKey(), samplingInterval, s.createMonitoringFilter(client), null, null);
+ entry.getKey(), samplingInterval, s.createMonitoringFilter(client), null, true);
items.add(new MonitoredItemCreateRequest(itemId, MonitoringMode.Reporting, parameters));
}
}
diff --git a/components/camel-milo/src/main/java/org/apache/camel/component/milo/server/MiloServerComponent.java b/components/camel-milo/src/main/java/org/apache/camel/component/milo/server/MiloServerComponent.java
index d8c3b072ad0..f4013d5d2a7 100644
--- a/components/camel-milo/src/main/java/org/apache/camel/component/milo/server/MiloServerComponent.java
+++ b/components/camel-milo/src/main/java/org/apache/camel/component/milo/server/MiloServerComponent.java
@@ -54,7 +54,6 @@ import org.eclipse.milo.opcua.stack.core.UaException;
import org.eclipse.milo.opcua.stack.core.security.CertificateManager;
import org.eclipse.milo.opcua.stack.core.security.CertificateValidator;
import org.eclipse.milo.opcua.stack.core.security.DefaultCertificateManager;
-import org.eclipse.milo.opcua.stack.core.security.DefaultCertificateValidator;
import org.eclipse.milo.opcua.stack.core.security.DefaultTrustListManager;
import org.eclipse.milo.opcua.stack.core.security.SecurityPolicy;
import org.eclipse.milo.opcua.stack.core.transport.TransportProfile;
@@ -64,6 +63,8 @@ import org.eclipse.milo.opcua.stack.core.types.enumerated.UserTokenType;
import org.eclipse.milo.opcua.stack.core.types.structured.BuildInfo;
import org.eclipse.milo.opcua.stack.core.types.structured.UserTokenPolicy;
import org.eclipse.milo.opcua.stack.server.EndpointConfiguration;
+import org.eclipse.milo.opcua.stack.server.security.DefaultServerCertificateValidator;
+import org.eclipse.milo.opcua.stack.server.security.ServerCertificateValidator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -119,7 +120,7 @@ public class MiloServerComponent extends DefaultComponent {
@Metadata(label = "security")
private String defaultCertificateValidator;
@Metadata(label = "security")
- private CertificateValidator certificateValidator;
+ private ServerCertificateValidator certificateValidator;
@Metadata(label = "security")
private X509Certificate certificate;
@@ -324,19 +325,19 @@ public class MiloServerComponent extends DefaultComponent {
.build();
}
- private static final class DenyAllCertificateValidator implements CertificateValidator {
- public static final CertificateValidator INSTANCE = new DenyAllCertificateValidator();
+ private static final class DenyAllCertificateValidator implements ServerCertificateValidator {
+ public static final ServerCertificateValidator INSTANCE = new DenyAllCertificateValidator();
private DenyAllCertificateValidator() {
}
@Override
- public void validate(final X509Certificate certificate) throws UaException {
+ public void validateCertificateChain(List<X509Certificate> list, String s) throws UaException {
throw new UaException(StatusCodes.Bad_CertificateUseNotAllowed);
}
@Override
- public void verifyTrustChain(List<X509Certificate> certificateChain) throws UaException {
+ public void validateCertificateChain(List<X509Certificate> list) throws UaException {
throw new UaException(StatusCodes.Bad_CertificateUseNotAllowed);
}
}
@@ -581,7 +582,7 @@ public class MiloServerComponent extends DefaultComponent {
/**
* Validator for client certificates
*/
- public void setCertificateValidator(final CertificateValidator certificateValidator) {
+ public void setCertificateValidator(final ServerCertificateValidator certificateValidator) {
this.certificateValidator = certificateValidator;
}
@@ -592,7 +593,7 @@ public class MiloServerComponent extends DefaultComponent {
this.defaultCertificateValidator = defaultCertificateValidator;
try {
DefaultTrustListManager trustListManager = new DefaultTrustListManager(new File(defaultCertificateValidator));
- this.certificateValidator = new DefaultCertificateValidator(trustListManager);
+ this.certificateValidator = new DefaultServerCertificateValidator(trustListManager);
} catch (IOException e) {
throw new RuntimeCamelException(e);
}
diff --git a/components/camel-milo/src/main/java/org/apache/camel/component/milo/server/internal/CamelNamespace.java b/components/camel-milo/src/main/java/org/apache/camel/component/milo/server/internal/CamelNamespace.java
index 924f2da7a95..2c7720501a6 100644
--- a/components/camel-milo/src/main/java/org/apache/camel/component/milo/server/internal/CamelNamespace.java
+++ b/components/camel-milo/src/main/java/org/apache/camel/component/milo/server/internal/CamelNamespace.java
@@ -23,8 +23,9 @@ import java.util.Map;
import org.eclipse.milo.opcua.sdk.core.Reference;
import org.eclipse.milo.opcua.sdk.server.OpcUaServer;
import org.eclipse.milo.opcua.sdk.server.api.DataItem;
-import org.eclipse.milo.opcua.sdk.server.api.ManagedNamespace;
+import org.eclipse.milo.opcua.sdk.server.api.ManagedNamespaceWithLifecycle;
import org.eclipse.milo.opcua.sdk.server.api.MonitoredItem;
+import org.eclipse.milo.opcua.sdk.server.dtd.DataTypeDictionaryManager;
import org.eclipse.milo.opcua.sdk.server.nodes.UaFolderNode;
import org.eclipse.milo.opcua.sdk.server.nodes.UaObjectNode;
import org.eclipse.milo.opcua.sdk.server.util.SubscriptionModel;
@@ -32,8 +33,10 @@ import org.eclipse.milo.opcua.stack.core.Identifiers;
import org.eclipse.milo.opcua.stack.core.types.builtin.LocalizedText;
import org.eclipse.milo.opcua.stack.core.types.builtin.NodeId;
import org.eclipse.milo.opcua.stack.core.types.builtin.QualifiedName;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
-public class CamelNamespace extends ManagedNamespace {
+public class CamelNamespace extends ManagedNamespaceWithLifecycle {
private final SubscriptionModel subscriptionModel;
@@ -41,16 +44,24 @@ public class CamelNamespace extends ManagedNamespace {
private UaFolderNode folder;
private final Map<String, CamelServerItem> itemMap = new HashMap<>();
-
+
+ private final DataTypeDictionaryManager dictionaryManager;
+
+ private final Logger log = LoggerFactory.getLogger(CamelNamespace.class);
+
public CamelNamespace(final String namespaceUri, final OpcUaServer server) {
super(server, namespaceUri);
-
+
this.subscriptionModel = new SubscriptionModel(server, this);
+ this.dictionaryManager = new DataTypeDictionaryManager(getNodeContext(), namespaceUri);
+
+ getLifecycleManager().addLifecycle(dictionaryManager);
+ getLifecycleManager().addLifecycle(subscriptionModel);
+
+ getLifecycleManager().addStartupTask(this::createNodes);
}
-
- @Override
- protected void onStartup() {
- super.onStartup();
+
+ protected void createNodes() {
// create structure
final NodeId nodeId = newNodeId("camel");
@@ -63,13 +74,13 @@ public class CamelNamespace extends ManagedNamespace {
final NodeId nodeId2 = newNodeId("items");
final QualifiedName name2 = newQualifiedName("items");
final LocalizedText displayName2 = LocalizedText.english("Items");
-
- this.itemsObject = UaObjectNode.builder(getNodeContext())
+
+ this.itemsObject = UaObjectNode.build(getNodeContext(), builder -> builder
.setNodeId(nodeId2)
.setBrowseName(name2)
.setDisplayName(displayName2)
.setTypeDefinition(Identifiers.FolderType)
- .build();
+ .buildAndAdd());
this.folder.addComponent(this.itemsObject);
this.getNodeManager().addNode(this.itemsObject);
@@ -90,21 +101,25 @@ public class CamelNamespace extends ManagedNamespace {
@Override
public void onDataItemsCreated(final List<DataItem> dataItems) {
+ log.trace("onDataItemsCreated");
this.subscriptionModel.onDataItemsCreated(dataItems);
}
@Override
public void onDataItemsModified(final List<DataItem> dataItems) {
+ log.trace("onDataItemsModified");
this.subscriptionModel.onDataItemsModified(dataItems);
}
@Override
public void onDataItemsDeleted(final List<DataItem> dataItems) {
+ log.trace("onDataItemsDeleted");
this.subscriptionModel.onDataItemsDeleted(dataItems);
}
@Override
public void onMonitoringModeChanged(final List<MonitoredItem> monitoredItems) {
+ log.trace("onMonitoringModeChanged");
this.subscriptionModel.onMonitoringModeChanged(monitoredItems);
}
@@ -114,5 +129,4 @@ public class CamelNamespace extends ManagedNamespace {
k -> new CamelServerItem(itemId, getNodeContext(), getNamespaceIndex(), this.itemsObject));
}
}
-
}
diff --git a/components/camel-milo/src/main/java/org/apache/camel/component/milo/server/internal/CamelServerItem.java b/components/camel-milo/src/main/java/org/apache/camel/component/milo/server/internal/CamelServerItem.java
index a19a0bcc936..b19791f3dfd 100644
--- a/components/camel-milo/src/main/java/org/apache/camel/component/milo/server/internal/CamelServerItem.java
+++ b/components/camel-milo/src/main/java/org/apache/camel/component/milo/server/internal/CamelServerItem.java
@@ -21,12 +21,16 @@ import java.util.LinkedList;
import java.util.Set;
import java.util.concurrent.CopyOnWriteArraySet;
import java.util.function.Consumer;
+import java.util.function.Predicate;
import org.apache.camel.RuntimeCamelException;
import org.eclipse.milo.opcua.sdk.core.AccessLevel;
import org.eclipse.milo.opcua.sdk.server.nodes.UaNodeContext;
import org.eclipse.milo.opcua.sdk.server.nodes.UaObjectNode;
import org.eclipse.milo.opcua.sdk.server.nodes.UaVariableNode;
+import org.eclipse.milo.opcua.sdk.server.nodes.filters.AttributeFilter;
+import org.eclipse.milo.opcua.sdk.server.nodes.filters.AttributeFilterContext;
+import org.eclipse.milo.opcua.stack.core.AttributeId;
import org.eclipse.milo.opcua.stack.core.types.builtin.DataValue;
import org.eclipse.milo.opcua.stack.core.types.builtin.DateTime;
import org.eclipse.milo.opcua.stack.core.types.builtin.LocalizedText;
@@ -38,8 +42,6 @@ import org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UShort;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import static org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.Unsigned.ubyte;
-
public class CamelServerItem {
private static final Logger LOG = LoggerFactory.getLogger(CamelServerItem.class);
@@ -59,28 +61,37 @@ public class CamelServerItem {
final NodeId nodeId = new NodeId(namespaceIndex, itemId);
final QualifiedName qname = new QualifiedName(namespaceIndex, itemId);
final LocalizedText displayName = LocalizedText.english(itemId);
-
+
// create variable node
-
- this.item = new UaVariableNode(nodeContext, nodeId, qname, displayName) {
-
- @Override
- public synchronized DataValue getValue() {
- return getDataValue();
- }
-
- @Override
- public synchronized void setValue(final DataValue value) {
- setDataValue(value);
- }
-
- };
-
- this.item.setAccessLevel(ubyte(AccessLevel.getMask(AccessLevel.READ_WRITE)));
- this.item.setUserAccessLevel(ubyte(AccessLevel.getMask(AccessLevel.READ_WRITE)));
-
+
+ final Predicate<AttributeId> filter = AttributeId.Value::equals;
+ this.item = UaVariableNode.build(nodeContext, builder->
+ builder
+ .setNodeId(nodeId)
+ .setBrowseName(qname)
+ .setDisplayName(displayName)
+ .setAccessLevel(AccessLevel.toValue(AccessLevel.READ_WRITE))
+ .setUserAccessLevel(AccessLevel.toValue(AccessLevel.READ_WRITE))
+ .addAttributeFilter(new AttributeFilter(){
+
+ @Override
+ public Object getAttribute(AttributeFilterContext.GetAttributeContext ctx, AttributeId attributeId){
+ if(filter.test(attributeId) && ctx.getSession().isPresent()) {
+ return getDataValue();
+ }
+ return ctx.getAttribute(attributeId);
+ }
+
+ @Override
+ public void setAttribute(AttributeFilterContext.SetAttributeContext ctx, AttributeId attributeId, Object value){
+ if(filter.test(attributeId) && ctx.getSession().isPresent()) {
+ setDataValue((DataValue)value);
+ }
+ ctx.setAttribute(attributeId, value);
+ }})
+ .buildAndAdd());
+
baseNode.addComponent(this.item);
- nodeContext.getNodeManager().addNode(this.item);
}
public void dispose() {
diff --git a/components/camel-milo/src/test/java/org/apache/camel/component/milo/AbstractMiloServerTest.java b/components/camel-milo/src/test/java/org/apache/camel/component/milo/AbstractMiloServerTest.java
index c4677ba8642..15629de341b 100644
--- a/components/camel-milo/src/test/java/org/apache/camel/component/milo/AbstractMiloServerTest.java
+++ b/components/camel-milo/src/test/java/org/apache/camel/component/milo/AbstractMiloServerTest.java
@@ -83,7 +83,7 @@ public abstract class AbstractMiloServerTest extends CamelTestSupport {
final AssertionClause clause, final Class<T> bodyClass,
final Consumer<T> valueConsumer) {
clause.predicate(exchange -> {
- final T body = exchange.getIn().getBody(bodyClass);
+ final T body = exchange.getMessage().getBody(bodyClass);
valueConsumer.accept(body);
return true;
});
diff --git a/components/camel-milo/src/test/java/org/apache/camel/component/milo/MiloClientCachingConnectionManagerTest.java b/components/camel-milo/src/test/java/org/apache/camel/component/milo/MiloClientCachingConnectionManagerTest.java
index 8822bd98ab4..3e11f89b733 100644
--- a/components/camel-milo/src/test/java/org/apache/camel/component/milo/MiloClientCachingConnectionManagerTest.java
+++ b/components/camel-milo/src/test/java/org/apache/camel/component/milo/MiloClientCachingConnectionManagerTest.java
@@ -23,13 +23,22 @@ import org.apache.camel.component.milo.client.MonitorFilterConfiguration;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInfo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class MiloClientCachingConnectionManagerTest {
+ private static final Logger LOG = LoggerFactory.getLogger(MiloClientCachingConnectionManagerTest.class);
+
private MiloClientCachingConnectionManager instance;
@BeforeEach
- public void setup() {
+ public void setup(TestInfo testInfo) {
+ final var displayName=testInfo.getDisplayName();
+ LOG.info("********************************************************************************");
+ LOG.info(displayName);
+ LOG.info("********************************************************************************");
instance = new MiloClientCachingConnectionManager();
}
diff --git a/components/camel-milo/src/test/java/org/apache/camel/component/milo/MonitorItemMultiConnectionsCertTest.java b/components/camel-milo/src/test/java/org/apache/camel/component/milo/MonitorItemMultiConnectionsCertTest.java
index 303a38e95c1..89d5cae692b 100644
--- a/components/camel-milo/src/test/java/org/apache/camel/component/milo/MonitorItemMultiConnectionsCertTest.java
+++ b/components/camel-milo/src/test/java/org/apache/camel/component/milo/MonitorItemMultiConnectionsCertTest.java
@@ -29,7 +29,11 @@ import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.milo.server.MiloServerComponent;
import org.apache.camel.component.mock.MockEndpoint;
import org.eclipse.milo.opcua.stack.core.security.SecurityPolicy;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInfo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
@@ -65,6 +69,8 @@ public class MonitorItemMultiConnectionsCertTest extends AbstractMiloServerTest
private static final String MOCK_TEST_2 = "mock:test2";
private static final String MOCK_TEST_3 = "mock:test3";
+ private static final Logger LOG = LoggerFactory.getLogger(MonitorItemMultiConnectionsCertTest.class);
+
@EndpointInject(MOCK_TEST_1)
protected MockEndpoint test1Endpoint;
@@ -76,7 +82,15 @@ public class MonitorItemMultiConnectionsCertTest extends AbstractMiloServerTest
@Produce(DIRECT_START_1)
protected ProducerTemplate producer1;
-
+
+ @BeforeEach
+ public void setup(TestInfo testInfo) {
+ final var displayName=testInfo.getDisplayName();
+ LOG.info("********************************************************************************");
+ LOG.info(displayName);
+ LOG.info("********************************************************************************");
+ }
+
@Override
protected void configureMiloServer(final MiloServerComponent server) throws Exception {
super.configureMiloServer(server);
diff --git a/components/camel-milo/src/test/java/org/apache/camel/component/milo/MonitorItemMultiConnectionsTest.java b/components/camel-milo/src/test/java/org/apache/camel/component/milo/MonitorItemMultiConnectionsTest.java
index 50ae33acb0c..a4a16818d54 100644
--- a/components/camel-milo/src/test/java/org/apache/camel/component/milo/MonitorItemMultiConnectionsTest.java
+++ b/components/camel-milo/src/test/java/org/apache/camel/component/milo/MonitorItemMultiConnectionsTest.java
@@ -23,7 +23,11 @@ import org.apache.camel.RoutesBuilder;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.milo.server.MiloServerComponent;
import org.apache.camel.component.mock.MockEndpoint;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInfo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Testing monitoring items over multiple connections
@@ -53,6 +57,8 @@ public class MonitorItemMultiConnectionsTest extends AbstractMiloServerTest {
private static final String MOCK_TEST_2 = "mock:test2";
private static final String MOCK_TEST_3 = "mock:test3";
+ private static final Logger LOG = LoggerFactory.getLogger(MonitorItemMultiConnectionsTest.class);
+
@EndpointInject(MOCK_TEST_1)
protected MockEndpoint test1Endpoint;
@@ -64,7 +70,15 @@ public class MonitorItemMultiConnectionsTest extends AbstractMiloServerTest {
@Produce(DIRECT_START_1)
protected ProducerTemplate producer1;
-
+
+ @BeforeEach
+ public void setup(TestInfo testInfo) {
+ final var displayName=testInfo.getDisplayName();
+ LOG.info("********************************************************************************");
+ LOG.info(displayName);
+ LOG.info("********************************************************************************");
+ }
+
@Override
protected RoutesBuilder createRouteBuilder() {
return new RouteBuilder() {
diff --git a/components/camel-milo/src/test/java/org/apache/camel/component/milo/MonitorItemTest.java b/components/camel-milo/src/test/java/org/apache/camel/component/milo/MonitorItemTest.java
index 36fe995023b..228fd9b9c0e 100644
--- a/components/camel-milo/src/test/java/org/apache/camel/component/milo/MonitorItemTest.java
+++ b/components/camel-milo/src/test/java/org/apache/camel/component/milo/MonitorItemTest.java
@@ -16,6 +16,8 @@
*/
package org.apache.camel.component.milo;
+import java.util.concurrent.TimeUnit;
+
import org.apache.camel.EndpointInject;
import org.apache.camel.Produce;
import org.apache.camel.ProducerTemplate;
@@ -23,7 +25,13 @@ import org.apache.camel.RoutesBuilder;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.milo.server.MiloServerComponent;
import org.apache.camel.component.mock.MockEndpoint;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInfo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import static org.apache.camel.LoggingLevel.INFO;
/**
* Testing the monitor functionality for item
@@ -41,6 +49,8 @@ public class MonitorItemTest extends AbstractMiloServerTest {
private static final String MOCK_TEST_1 = "mock:test1";
+ private static final Logger LOG = LoggerFactory.getLogger(MonitorItemTest.class);
+
@EndpointInject(MOCK_TEST_1)
protected MockEndpoint test1Endpoint;
@@ -58,7 +68,15 @@ public class MonitorItemTest extends AbstractMiloServerTest {
}
};
}
-
+
+ @BeforeEach
+ public void setup(TestInfo testInfo) {
+ final var displayName=testInfo.getDisplayName();
+ LOG.info("********************************************************************************");
+ LOG.info(displayName);
+ LOG.info("********************************************************************************");
+ }
+
/**
* Monitor multiple events
*/
@@ -68,17 +86,19 @@ public class MonitorItemTest extends AbstractMiloServerTest {
* we will wait 2 * 1_000 milliseconds between server updates since the
* default server update rate is 1_000 milliseconds
*/
-
+ final var time=2 * 1_000;
+
+ // item 1 ... only this one receives
+ test1Endpoint.reset();
+ test1Endpoint.setExpectedCount(3);
+
// set server values
this.producer1.sendBody("Foo");
- Thread.sleep(2_000);
+ Thread.sleep(time);
this.producer1.sendBody("Bar");
- Thread.sleep(2_000);
+ Thread.sleep(time);
this.producer1.sendBody("Baz");
- Thread.sleep(2_000);
-
- // item 1 ... only this one receives
- this.test1Endpoint.setExpectedCount(3);
+ Thread.sleep(time);
// tests
testBody(this.test1Endpoint.message(0), assertGoodValue("Foo"));
@@ -86,6 +106,6 @@ public class MonitorItemTest extends AbstractMiloServerTest {
testBody(this.test1Endpoint.message(2), assertGoodValue("Baz"));
// assert
- assertMockEndpointsSatisfied();
+ assertMockEndpointsSatisfied(time,TimeUnit.MILLISECONDS);
}
}
diff --git a/components/camel-milo/src/test/java/org/apache/camel/component/milo/ReadValuesClientTest.java b/components/camel-milo/src/test/java/org/apache/camel/component/milo/ReadValuesClientTest.java
index 63cac63e7b1..a2b277ad2e8 100644
--- a/components/camel-milo/src/test/java/org/apache/camel/component/milo/ReadValuesClientTest.java
+++ b/components/camel-milo/src/test/java/org/apache/camel/component/milo/ReadValuesClientTest.java
@@ -26,7 +26,11 @@ import org.apache.camel.ProducerTemplate;
import org.apache.camel.RoutesBuilder;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInfo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class ReadValuesClientTest extends AbstractMiloServerTest {
@@ -40,6 +44,8 @@ public class ReadValuesClientTest extends AbstractMiloServerTest {
private static final String MOCK_TEST_1 = "mock:test1";
+ private static final Logger LOG = LoggerFactory.getLogger(ReadValuesClientTest.class);
+
@EndpointInject(MOCK_TEST_1)
protected MockEndpoint test1Endpoint;
@@ -48,7 +54,15 @@ public class ReadValuesClientTest extends AbstractMiloServerTest {
@Produce(DIRECT_START_2)
protected ProducerTemplate producer2;
-
+
+ @BeforeEach
+ public void setup(TestInfo testInfo) {
+ final var displayName=testInfo.getDisplayName();
+ LOG.info("********************************************************************************");
+ LOG.info(displayName);
+ LOG.info("********************************************************************************");
+ }
+
@Override
protected RoutesBuilder createRouteBuilder() {
return new RouteBuilder() {
diff --git a/components/camel-milo/src/test/java/org/apache/camel/component/milo/WriteClientTest.java b/components/camel-milo/src/test/java/org/apache/camel/component/milo/WriteClientTest.java
index 345ccf73575..8158b032984 100644
--- a/components/camel-milo/src/test/java/org/apache/camel/component/milo/WriteClientTest.java
+++ b/components/camel-milo/src/test/java/org/apache/camel/component/milo/WriteClientTest.java
@@ -24,7 +24,11 @@ import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.milo.server.MiloServerComponent;
import org.apache.camel.component.mock.MockEndpoint;
import org.eclipse.milo.opcua.stack.core.types.builtin.Variant;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInfo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import static org.apache.camel.component.milo.NodeIds.nodeValue;
@@ -60,7 +64,9 @@ public class WriteClientTest extends AbstractMiloServerTest {
private static final String MOCK_TEST_1 = "mock:test1";
private static final String MOCK_TEST_2 = "mock:test2";
-
+
+ private static final Logger LOG = LoggerFactory.getLogger(WriteClientTest.class);
+
@EndpointInject(MOCK_TEST_1)
protected MockEndpoint test1Endpoint;
@@ -96,7 +102,15 @@ public class WriteClientTest extends AbstractMiloServerTest {
}
};
}
-
+
+ @BeforeEach
+ public void setup(TestInfo testInfo) {
+ final var displayName=testInfo.getDisplayName();
+ LOG.info("********************************************************************************");
+ LOG.info(displayName);
+ LOG.info("********************************************************************************");
+ }
+
@Test
public void testWrite1() throws Exception {
// item 1
diff --git a/components/camel-milo/src/test/java/org/apache/camel/component/milo/browse/BrowseServerTest.java b/components/camel-milo/src/test/java/org/apache/camel/component/milo/browse/BrowseServerTest.java
index 58a7093fb29..1a006c9a4a6 100644
--- a/components/camel-milo/src/test/java/org/apache/camel/component/milo/browse/BrowseServerTest.java
+++ b/components/camel-milo/src/test/java/org/apache/camel/component/milo/browse/BrowseServerTest.java
@@ -39,7 +39,11 @@ import org.eclipse.milo.opcua.stack.core.types.builtin.ExpandedNodeId;
import org.eclipse.milo.opcua.stack.core.types.builtin.LocalizedText;
import org.eclipse.milo.opcua.stack.core.types.structured.BrowseResult;
import org.eclipse.milo.opcua.stack.core.types.structured.ReferenceDescription;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInfo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import static org.apache.camel.component.mock.MockEndpoint.assertIsSatisfied;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
@@ -102,6 +106,8 @@ public class BrowseServerTest extends AbstractMiloServerTest {
private static final String MILO_BROWSE_NODE_VIA_ENDPOINT
= MILO_BROWSE_ROOT + "&node=RAW(ns=0;i=86)";
+
+ private static final Logger LOG = LoggerFactory.getLogger(BrowseServerTest.class);
@EndpointInject(MOCK_TEST_1)
protected MockEndpoint mock1;
@@ -156,7 +162,15 @@ public class BrowseServerTest extends AbstractMiloServerTest {
@Produce(DIRECT_START_9)
protected ProducerTemplate producer9;
-
+
+ @BeforeEach
+ public void setup(TestInfo testInfo) {
+ final var displayName=testInfo.getDisplayName();
+ LOG.info("********************************************************************************");
+ LOG.info(displayName);
+ LOG.info("********************************************************************************");
+ }
+
@Override
protected RoutesBuilder createRouteBuilder() {
return new RouteBuilder() {
diff --git a/components/camel-milo/src/test/java/org/apache/camel/component/milo/call/CallClientTest.java b/components/camel-milo/src/test/java/org/apache/camel/component/milo/call/CallClientTest.java
index 489987f9ef3..846f4140889 100644
--- a/components/camel-milo/src/test/java/org/apache/camel/component/milo/call/CallClientTest.java
+++ b/components/camel-milo/src/test/java/org/apache/camel/component/milo/call/CallClientTest.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.component.milo.call;
+import java.security.cert.X509Certificate;
import java.util.Arrays;
import java.util.EnumSet;
import java.util.LinkedHashSet;
@@ -32,16 +33,20 @@ import org.eclipse.milo.opcua.sdk.server.OpcUaServer;
import org.eclipse.milo.opcua.sdk.server.api.config.OpcUaServerConfig;
import org.eclipse.milo.opcua.sdk.server.api.config.OpcUaServerConfigBuilder;
import org.eclipse.milo.opcua.sdk.server.util.HostnameUtil;
+import org.eclipse.milo.opcua.stack.core.UaException;
import org.eclipse.milo.opcua.stack.core.security.DefaultCertificateManager;
-import org.eclipse.milo.opcua.stack.core.security.InsecureCertificateValidator;
import org.eclipse.milo.opcua.stack.core.security.SecurityPolicy;
import org.eclipse.milo.opcua.stack.core.transport.TransportProfile;
import org.eclipse.milo.opcua.stack.core.types.builtin.LocalizedText;
import org.eclipse.milo.opcua.stack.core.types.enumerated.MessageSecurityMode;
import org.eclipse.milo.opcua.stack.core.types.structured.UserTokenPolicy;
import org.eclipse.milo.opcua.stack.server.EndpointConfiguration;
+import org.eclipse.milo.opcua.stack.server.security.ServerCertificateValidator;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInfo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import static org.apache.camel.component.milo.NodeIds.nodeValue;
import static org.eclipse.milo.opcua.sdk.server.api.config.OpcUaServerConfig.USER_TOKEN_POLICY_ANONYMOUS;
@@ -61,12 +66,22 @@ public class CallClientTest extends AbstractMiloServerTest {
= MILO_CLIENT_BASE_C1 + "?node=" + NodeIds.nodeValue(MockCamelNamespace.URI, MockCamelNamespace.FOLDER_ID)
+ "&method=" + nodeValue(MockCamelNamespace.URI, MockCamelNamespace.CALL_ID) + "&overrideHost=true";
+ private static final Logger LOG = LoggerFactory.getLogger(CallClientTest.class);
+
private OpcUaServer server;
private MockCamelNamespace namespace;
private MockCallMethod callMethod;
@Produce(DIRECT_START_1)
private ProducerTemplate producer1;
+
+ @BeforeEach
+ public void setup(TestInfo testInfo) {
+ final var displayName=testInfo.getDisplayName();
+ LOG.info("********************************************************************************");
+ LOG.info(displayName);
+ LOG.info("********************************************************************************");
+ }
@Override
protected RoutesBuilder createRouteBuilder() {
@@ -173,4 +188,20 @@ public class CallClientTest extends AbstractMiloServerTest {
// we always write synchronously since we do need the message order
producerTemplate.sendBodyAndHeader(input, "await", true);
}
+
+ private static final class InsecureCertificateValidator implements ServerCertificateValidator{
+
+ public static final ServerCertificateValidator INSTANCE = new CallClientTest.InsecureCertificateValidator();
+
+ private InsecureCertificateValidator() {
+ }
+
+ @Override
+ public void validateCertificateChain(List<X509Certificate> list,String s) throws UaException {
+ }
+
+ @Override
+ public void validateCertificateChain(List<X509Certificate> list) throws UaException{
+ }
+ }
}
diff --git a/components/camel-milo/src/test/java/org/apache/camel/component/milo/call/MockCamelNamespace.java b/components/camel-milo/src/test/java/org/apache/camel/component/milo/call/MockCamelNamespace.java
index 70bbe26cf8d..b8240cf3b4b 100644
--- a/components/camel-milo/src/test/java/org/apache/camel/component/milo/call/MockCamelNamespace.java
+++ b/components/camel-milo/src/test/java/org/apache/camel/component/milo/call/MockCamelNamespace.java
@@ -24,9 +24,10 @@ import java.util.function.Function;
import org.apache.camel.component.milo.client.MiloClientConsumer;
import org.apache.camel.component.milo.server.internal.CamelServerItem;
import org.eclipse.milo.opcua.sdk.core.Reference;
+import org.eclipse.milo.opcua.sdk.server.Lifecycle;
import org.eclipse.milo.opcua.sdk.server.OpcUaServer;
import org.eclipse.milo.opcua.sdk.server.api.DataItem;
-import org.eclipse.milo.opcua.sdk.server.api.ManagedNamespace;
+import org.eclipse.milo.opcua.sdk.server.api.ManagedNamespaceWithLifecycle;
import org.eclipse.milo.opcua.sdk.server.api.MonitoredItem;
import org.eclipse.milo.opcua.sdk.server.api.methods.AbstractMethodInvocationHandler;
import org.eclipse.milo.opcua.sdk.server.nodes.UaFolderNode;
@@ -39,7 +40,7 @@ import org.eclipse.milo.opcua.stack.core.types.builtin.QualifiedName;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class MockCamelNamespace extends ManagedNamespace {
+public class MockCamelNamespace extends ManagedNamespaceWithLifecycle{
public static final String URI = "urn:org:apache:camel:mock";
public static final int FOLDER_ID = 1;
@@ -61,11 +62,24 @@ public class MockCamelNamespace extends ManagedNamespace {
this.subscriptionModel = new SubscriptionModel(server, this);
this.callMethodCreator = callMethodCreator;
+
+ super.getLifecycleManager().addLifecycle(new Lifecycle() {
+
+ @Override
+ public void startup() {
+ LOG.trace("CamelNamespace startup");
+ createNodes();
+ }
+
+ @Override
+ public void shutdown() {
+ LOG.trace("CamelNamespace shutdown");
+ }
+ });
}
-
- @Override
- protected void onStartup() {
- super.onStartup();
+
+ private void createNodes() {
+
// create structure
final NodeId nodeId = newNodeId(FOLDER_ID);
@@ -96,8 +110,8 @@ public class MockCamelNamespace extends ManagedNamespace {
.build();
AbstractMethodInvocationHandler callMethod = callMethodCreator.apply(methodNode);
- methodNode.setProperty(UaMethodNode.InputArguments, callMethod.getInputArguments());
- methodNode.setProperty(UaMethodNode.OutputArguments, callMethod.getOutputArguments());
+ methodNode.setInputArguments(callMethod.getInputArguments());
+ methodNode.setOutputArguments(callMethod.getOutputArguments());
methodNode.setInvocationHandler(callMethod);
getNodeManager().addNode(methodNode);
diff --git a/components/camel-milo/src/test/java/org/apache/camel/component/milo/client/NodeIdTest.java b/components/camel-milo/src/test/java/org/apache/camel/component/milo/client/NodeIdTest.java
index c98c12f344f..f5ad99980b9 100644
--- a/components/camel-milo/src/test/java/org/apache/camel/component/milo/client/NodeIdTest.java
+++ b/components/camel-milo/src/test/java/org/apache/camel/component/milo/client/NodeIdTest.java
@@ -21,7 +21,11 @@ import java.io.Serializable;
import org.apache.camel.ResolveEndpointFailedException;
import org.apache.camel.component.milo.AbstractMiloServerTest;
import org.eclipse.milo.opcua.stack.core.types.builtin.ExpandedNodeId;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInfo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import static com.google.common.net.UrlEscapers.urlFormParameterEscaper;
import static org.apache.camel.component.milo.server.MiloServerComponent.DEFAULT_NAMESPACE_URI;
@@ -35,7 +39,17 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
* Testing different ways to specify node IDs
*/
public class NodeIdTest extends AbstractMiloServerTest {
-
+
+ private static final Logger LOG = LoggerFactory.getLogger(NodeIdTest.class);
+
+ @BeforeEach
+ public void setup(TestInfo testInfo) {
+ final var displayName = testInfo.getDisplayName();
+ LOG.info("********************************************************************************");
+ LOG.info(displayName);
+ LOG.info("********************************************************************************");
+ }
+
@Test
public void testFull1() {
final String s = String.format("nsu=%s;s=%s", DEFAULT_NAMESPACE_URI, "item-1");
diff --git a/components/camel-milo/src/test/java/org/apache/camel/component/milo/converter/ConverterTest.java b/components/camel-milo/src/test/java/org/apache/camel/component/milo/converter/ConverterTest.java
index 03cdbf280ba..b771fec3043 100644
--- a/components/camel-milo/src/test/java/org/apache/camel/component/milo/converter/ConverterTest.java
+++ b/components/camel-milo/src/test/java/org/apache/camel/component/milo/converter/ConverterTest.java
@@ -19,14 +19,28 @@ package org.apache.camel.component.milo.converter;
import org.apache.camel.test.junit5.CamelTestSupport;
import org.eclipse.milo.opcua.stack.core.types.builtin.DataValue;
import org.eclipse.milo.opcua.stack.core.types.builtin.Variant;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInfo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
public class ConverterTest extends CamelTestSupport {
-
+
+ private static final Logger LOG = LoggerFactory.getLogger(ConverterTest.class);
+
+ @BeforeEach
+ public void setup(TestInfo testInfo) {
+ final var displayName = testInfo.getDisplayName();
+ LOG.info("********************************************************************************");
+ LOG.info(displayName);
+ LOG.info("********************************************************************************");
+ }
+
@Test
public void testDataValueToVariant() {
final Variant value = testConvertDataValue("Foo", Variant.class);
diff --git a/components/camel-milo/src/test/java/org/apache/camel/component/milo/server/ServerLocalTest.java b/components/camel-milo/src/test/java/org/apache/camel/component/milo/server/ServerLocalTest.java
index 2d00770477e..e757b707b96 100644
--- a/components/camel-milo/src/test/java/org/apache/camel/component/milo/server/ServerLocalTest.java
+++ b/components/camel-milo/src/test/java/org/apache/camel/component/milo/server/ServerLocalTest.java
@@ -19,6 +19,7 @@ package org.apache.camel.component.milo.server;
import org.apache.camel.EndpointInject;
import org.apache.camel.RoutesBuilder;
import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.milo.converter.ConverterTest;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.test.AvailablePortFinder;
import org.apache.camel.test.junit5.CamelTestSupport;
@@ -27,6 +28,9 @@ import org.eclipse.milo.opcua.stack.core.types.builtin.Variant;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInfo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Unit tests for milo server component without using an actual connection
@@ -36,12 +40,18 @@ public class ServerLocalTest extends CamelTestSupport {
private static final String MILO_ITEM_1 = "milo-server:myitem1";
private static final String MOCK_TEST = "mock:test";
+
+ private static final Logger LOG = LoggerFactory.getLogger(ConverterTest.class);
@EndpointInject(MOCK_TEST)
protected MockEndpoint testEndpoint;
-
+
@BeforeEach
- public void pickFreePort() {
+ public void pickFreePort(TestInfo testInfo) {
+ final var displayName = testInfo.getDisplayName();
+ LOG.info("********************************************************************************");
+ LOG.info(displayName);
+ LOG.info("********************************************************************************");
final MiloServerComponent component = context().getComponent("milo-server", MiloServerComponent.class);
component.setPort(AvailablePortFinder.getNextAvailable());
}
diff --git a/components/camel-milo/src/test/java/org/apache/camel/component/milo/server/ServerSetCertificateManagerTest.java b/components/camel-milo/src/test/java/org/apache/camel/component/milo/server/ServerSetCertificateManagerTest.java
index 7a31039ebe8..e9b0840b613 100644
--- a/components/camel-milo/src/test/java/org/apache/camel/component/milo/server/ServerSetCertificateManagerTest.java
+++ b/components/camel-milo/src/test/java/org/apache/camel/component/milo/server/ServerSetCertificateManagerTest.java
@@ -21,7 +21,11 @@ import java.nio.file.Path;
import java.nio.file.Paths;
import org.apache.camel.component.milo.AbstractMiloServerTest;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInfo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
@@ -29,7 +33,17 @@ import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
* Test setting the certificate manager
*/
public class ServerSetCertificateManagerTest extends AbstractMiloServerTest {
-
+
+ private static final Logger LOG = LoggerFactory.getLogger(ServerSetCertificateManagerTest.class);
+
+ @BeforeEach
+ public void setup(TestInfo testInfo) {
+ final var displayName = testInfo.getDisplayName();
+ LOG.info("********************************************************************************");
+ LOG.info(displayName);
+ LOG.info("********************************************************************************");
+ }
+
@Override
protected void configureMiloServer(final MiloServerComponent server) throws Exception {
super.configureMiloServer(server);
diff --git a/components/camel-milo/src/test/java/org/apache/camel/component/milo/server/ServerSetSecurityPoliciesTest.java b/components/camel-milo/src/test/java/org/apache/camel/component/milo/server/ServerSetSecurityPoliciesTest.java
index c28ca63ae25..3156a7d4806 100644
--- a/components/camel-milo/src/test/java/org/apache/camel/component/milo/server/ServerSetSecurityPoliciesTest.java
+++ b/components/camel-milo/src/test/java/org/apache/camel/component/milo/server/ServerSetSecurityPoliciesTest.java
@@ -18,13 +18,27 @@ package org.apache.camel.component.milo.server;
import org.apache.camel.test.junit5.CamelTestSupport;
import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInfo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Test setting security policies
*/
public class ServerSetSecurityPoliciesTest extends CamelTestSupport {
-
+
+ private static final Logger LOG = LoggerFactory.getLogger(ServerSetSecurityPoliciesTest.class);
+
+ @BeforeEach
+ public void setup(TestInfo testInfo) {
+ final var displayName = testInfo.getDisplayName();
+ LOG.info("********************************************************************************");
+ LOG.info(displayName);
+ LOG.info("********************************************************************************");
+ }
+
@Test
public void testSetSecurityPolicies1() {
final MiloServerComponent component = new MiloServerComponent();