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 2021/03/03 13:39:15 UTC
[camel] branch master updated: CAMEL-16296: camel-as2 - Should stop
server connections when shutdown.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push:
new 5bd247b CAMEL-16296: camel-as2 - Should stop server connections when shutdown.
5bd247b is described below
commit 5bd247b6d34c0fe3b1a77f7aef27d9f72f39e863
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Mar 3 14:37:39 2021 +0100
CAMEL-16296: camel-as2 - Should stop server connections when shutdown.
---
.../apache/camel/component/as2/AS2Component.java | 8 ++++++++
.../as2/internal/AS2ConnectionHelper.java | 23 ++++++++++++++++++++++
2 files changed, 31 insertions(+)
diff --git a/components/camel-as2/camel-as2-component/src/main/java/org/apache/camel/component/as2/AS2Component.java b/components/camel-as2/camel-as2-component/src/main/java/org/apache/camel/component/as2/AS2Component.java
index 7d21869..d3adc38 100644
--- a/components/camel-as2/camel-as2-component/src/main/java/org/apache/camel/component/as2/AS2Component.java
+++ b/components/camel-as2/camel-as2-component/src/main/java/org/apache/camel/component/as2/AS2Component.java
@@ -22,6 +22,7 @@ import org.apache.camel.CamelContext;
import org.apache.camel.Endpoint;
import org.apache.camel.component.as2.internal.AS2ApiCollection;
import org.apache.camel.component.as2.internal.AS2ApiName;
+import org.apache.camel.component.as2.internal.AS2ConnectionHelper;
import org.apache.camel.spi.annotations.Component;
import org.apache.camel.support.component.AbstractApiComponent;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
@@ -64,4 +65,11 @@ public class AS2Component extends AbstractApiComponent<AS2ApiName, AS2Configurat
}
}
+ @Override
+ protected void doShutdown() throws Exception {
+ super.doShutdown();
+
+ // stop all server connectors as they would no longer be in use
+ AS2ConnectionHelper.closeAllServerConnections();
+ }
}
diff --git a/components/camel-as2/camel-as2-component/src/main/java/org/apache/camel/component/as2/internal/AS2ConnectionHelper.java b/components/camel-as2/camel-as2-component/src/main/java/org/apache/camel/component/as2/internal/AS2ConnectionHelper.java
index 31a956a..153a12a 100644
--- a/components/camel-as2/camel-as2-component/src/main/java/org/apache/camel/component/as2/internal/AS2ConnectionHelper.java
+++ b/components/camel-as2/camel-as2-component/src/main/java/org/apache/camel/component/as2/internal/AS2ConnectionHelper.java
@@ -24,12 +24,16 @@ import java.util.Map;
import org.apache.camel.component.as2.AS2Configuration;
import org.apache.camel.component.as2.api.AS2ClientConnection;
import org.apache.camel.component.as2.api.AS2ServerConnection;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Utility class for creating AS2 connections.
*/
public final class AS2ConnectionHelper {
+ private static final Logger LOG = LoggerFactory.getLogger(AS2ConnectionHelper.class);
+
private static Map<Integer, AS2ServerConnection> serverConnections = new HashMap<>();
/**
@@ -74,4 +78,23 @@ public final class AS2ConnectionHelper {
return serverConnection;
}
}
+
+ public static void closeAllServerConnections() {
+ synchronized (serverConnections) {
+ for (Map.Entry<Integer, AS2ServerConnection> entry : serverConnections.entrySet()) {
+ try {
+ int port = entry.getKey();
+ LOG.debug("Stopping and closing AS2ServerConnection on port: {}", port);
+ AS2ServerConnection conn = entry.getValue();
+ conn.close();
+ } catch (Exception e) {
+ // ignore
+ LOG.debug("Error stopping and closing AS2ServerConnection due to " + e.getMessage()
+ + ". This exception is ignored",
+ e);
+ }
+ }
+ }
+ serverConnections.clear();
+ }
}