From 5ffa884f6e67743b5ecdf4ef3323f45f0c2a4b55 Mon Sep 17 00:00:00 2001 From: assimbly Date: Mon, 9 May 2022 16:24:08 +0200 Subject: [PATCH 01/42] set version to 3.7.0 --- baseComponentsModule/pom.xml | 2 +- baseModule/pom.xml | 4 ++-- brokerModule/pom.xml | 4 ++-- brokerRestModule/pom.xml | 4 ++-- extraModule/pom.xml | 2 +- integrationModule/pom.xml | 4 ++-- integrationRestModule/pom.xml | 4 ++-- pom.xml | 8 ++++---- 8 files changed, 16 insertions(+), 16 deletions(-) diff --git a/baseComponentsModule/pom.xml b/baseComponentsModule/pom.xml index 0acc0bc4..1d8c55a8 100644 --- a/baseComponentsModule/pom.xml +++ b/baseComponentsModule/pom.xml @@ -5,7 +5,7 @@ modules org.assimbly - 3.6.0 + 3.7.0 4.0.0 diff --git a/baseModule/pom.xml b/baseModule/pom.xml index ac7ed417..1dadc176 100644 --- a/baseModule/pom.xml +++ b/baseModule/pom.xml @@ -4,13 +4,13 @@ modules org.assimbly - 3.6.0 + 3.7.0 jar org.assimbly baseModule - 3.6.0 + 3.7.0 baseModule diff --git a/brokerModule/pom.xml b/brokerModule/pom.xml index d2a76633..13d52bd4 100644 --- a/brokerModule/pom.xml +++ b/brokerModule/pom.xml @@ -4,13 +4,13 @@ modules org.assimbly - 3.6.0 + 3.7.0 jar org.assimbly brokerModule - 3.6.0 + 3.7.0 brokerModule diff --git a/brokerRestModule/pom.xml b/brokerRestModule/pom.xml index 6f587035..de3da78a 100644 --- a/brokerRestModule/pom.xml +++ b/brokerRestModule/pom.xml @@ -4,13 +4,13 @@ modules org.assimbly - 3.6.0 + 3.7.0 jar org.assimbly brokerRestModule - 3.6.0 + 3.7.0 brokerRestModule diff --git a/extraModule/pom.xml b/extraModule/pom.xml index 0cbde128..ea86fd2d 100644 --- a/extraModule/pom.xml +++ b/extraModule/pom.xml @@ -5,7 +5,7 @@ modules org.assimbly - 3.6.0 + 3.7.0 4.0.0 diff --git a/integrationModule/pom.xml b/integrationModule/pom.xml index c171abc7..29d7b919 100644 --- a/integrationModule/pom.xml +++ b/integrationModule/pom.xml @@ -4,13 +4,13 @@ modules org.assimbly - 3.6.0 + 3.7.0 jar org.assimbly integrationModule - 3.6.0 + 3.7.0 integrationModule diff --git a/integrationRestModule/pom.xml b/integrationRestModule/pom.xml index c3514f5a..e32e3fde 100644 --- a/integrationRestModule/pom.xml +++ b/integrationRestModule/pom.xml @@ -4,13 +4,13 @@ modules org.assimbly - 3.6.0 + 3.7.0 jar org.assimbly integrationRestModule - 3.6.0 + 3.7.0 connectorRestModule diff --git a/pom.xml b/pom.xml index 7196f054..c6c1d562 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,7 @@ org.assimbly.camelconnector http://maven.apache.org - 3.6.0 + 3.7.0 baseModule baseComponentsModule @@ -22,7 +22,7 @@ UTF-8 5.17.1 - 2.21.0 + 2.22.0 5.3.19 1.7.1 file:///${project.basedir}/baseModule/src/main/resources/rules.xml @@ -33,7 +33,7 @@ org.apache.camel camel-bom - 3.14.2 + 3.14.3 pom import @@ -224,7 +224,7 @@ io.netty netty-all - 4.1.76.Final + 4.1.77.Final From efb74e18a85f1c58a24233cf5b486ef632ffe655 Mon Sep 17 00:00:00 2001 From: assimbly Date: Mon, 16 May 2022 15:25:51 +0200 Subject: [PATCH 02/42] setversion to 3.7.0 --- brokerModule/pom.xml | 2 +- brokerRestModule/pom.xml | 4 ++-- integrationModule/pom.xml | 6 +++--- .../java/org/assimbly/integration/service/Connection.java | 5 +++++ integrationRestModule/pom.xml | 4 ++-- 5 files changed, 13 insertions(+), 8 deletions(-) diff --git a/brokerModule/pom.xml b/brokerModule/pom.xml index 13d52bd4..d8624108 100644 --- a/brokerModule/pom.xml +++ b/brokerModule/pom.xml @@ -24,7 +24,7 @@ org.assimbly baseModule - 3.6.0 + 3.7.0 compile diff --git a/brokerRestModule/pom.xml b/brokerRestModule/pom.xml index de3da78a..1cade169 100644 --- a/brokerRestModule/pom.xml +++ b/brokerRestModule/pom.xml @@ -25,13 +25,13 @@ org.assimbly baseModule - 3.6.0 + 3.7.0 compile org.assimbly brokerModule - 3.6.0 + 3.7.0 compile diff --git a/integrationModule/pom.xml b/integrationModule/pom.xml index 29d7b919..446d0493 100644 --- a/integrationModule/pom.xml +++ b/integrationModule/pom.xml @@ -24,19 +24,19 @@ org.assimbly baseModule - 3.6.0 + 3.7.0 compile org.assimbly baseComponentsModule - 3.6.0 + 3.7.0 compile org.assimbly extraModule - 3.6.0 + 3.7.0 compile diff --git a/integrationModule/src/main/java/org/assimbly/integration/service/Connection.java b/integrationModule/src/main/java/org/assimbly/integration/service/Connection.java index 1ea3121c..32c294b9 100644 --- a/integrationModule/src/main/java/org/assimbly/integration/service/Connection.java +++ b/integrationModule/src/main/java/org/assimbly/integration/service/Connection.java @@ -72,6 +72,11 @@ public TreeMap start() throws Exception{ uri = properties.get("error." + endpointId + ".uri"); startConnection(uri, "error"); } + if(key.startsWith("route")){ + endpointId = StringUtils.substringBetween(key, "route.", ".service.id"); + uri = properties.get("route." + endpointId + ".uri"); + startConnection(uri, "route"); + } return properties; diff --git a/integrationRestModule/pom.xml b/integrationRestModule/pom.xml index e32e3fde..764995fd 100644 --- a/integrationRestModule/pom.xml +++ b/integrationRestModule/pom.xml @@ -25,13 +25,13 @@ org.assimbly baseModule - 3.6.0 + 3.7.0 compile org.assimbly integrationModule - 3.6.0 + 3.7.0 compile From 2b61ceed6fce3769c3905ca5212a4f6d3c8143bb Mon Sep 17 00:00:00 2001 From: assimbly Date: Tue, 17 May 2022 09:28:23 +0200 Subject: [PATCH 03/42] fixes on connector for routes --- .../integration/service/Connection.java | 45 +++++++++---------- 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/integrationModule/src/main/java/org/assimbly/integration/service/Connection.java b/integrationModule/src/main/java/org/assimbly/integration/service/Connection.java index 32c294b9..f3caccc1 100644 --- a/integrationModule/src/main/java/org/assimbly/integration/service/Connection.java +++ b/integrationModule/src/main/java/org/assimbly/integration/service/Connection.java @@ -52,31 +52,28 @@ public TreeMap start() throws Exception{ serviceId = properties.get(key); - if(key.startsWith("from")){ - endpointId = StringUtils.substringBetween(key, "from.", ".service.id"); - uri = properties.get("from." + endpointId + ".uri"); - startConnection(uri,"from"); - } - if(key.startsWith("to")){ - endpointId = StringUtils.substringBetween(key, "to.", ".service.id"); - uri = properties.get("to." + endpointId + ".uri"); - startConnection(uri,"to"); - } - if(key.startsWith("response")){ - endpointId = StringUtils.substringBetween(key, "response.", ".service.id"); - uri = properties.get("response." + endpointId + ".uri"); - startConnection(uri, "response"); - } - if(key.startsWith("error")){ - endpointId = StringUtils.substringBetween(key, "error.", ".service.id"); - uri = properties.get("error." + endpointId + ".uri"); - startConnection(uri, "error"); - } - if(key.startsWith("route")){ - endpointId = StringUtils.substringBetween(key, "route.", ".service.id"); - uri = properties.get("route." + endpointId + ".uri"); + System.out.println("key: " + key); + System.out.println("serviceId: " + serviceId); + + endpointId = key.split("\\.")[1]; + if(key.startsWith("route")){ + System.out.println("endpointId: " + endpointId); + String route = properties.get("route." + endpointId + ".route"); + String options[] = {"activemq", "amazonmq", "sonicmq", "sjms", "amqps", "amqp", "ibmmq", "sql"}; + System.out.println("route: " + route); + int i; + for (i = 0; i < options.length; i++) { + if (route!= null && route.contains(options[i])) { + uri = options[i]; + } + } + startConnection(uri, "route"); - } + }else{ + uri = properties.get(key + "." + endpointId + ".uri"); + } + + startConnection(uri,key); return properties; From ffa51d4c46c49c8809f0a14e9f0f4c449e83a81a Mon Sep 17 00:00:00 2001 From: assimbly Date: Tue, 17 May 2022 15:16:43 +0200 Subject: [PATCH 04/42] fix bug with connections --- .../integration/service/Connection.java | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/integrationModule/src/main/java/org/assimbly/integration/service/Connection.java b/integrationModule/src/main/java/org/assimbly/integration/service/Connection.java index f3caccc1..43b34eeb 100644 --- a/integrationModule/src/main/java/org/assimbly/integration/service/Connection.java +++ b/integrationModule/src/main/java/org/assimbly/integration/service/Connection.java @@ -35,7 +35,8 @@ public class Connection { private CamelContext context; private String connectId; private boolean faultTolerant; - private Object endpointId; + private String endpointType; + private Object endpointId; private String serviceId; private ActiveMQConnectionFactory activeMQConnectionFactory; private SjmsComponent sjmsComponent; @@ -51,29 +52,25 @@ public Connection(CamelContext context, TreeMap properties, Stri public TreeMap start() throws Exception{ serviceId = properties.get(key); - - System.out.println("key: " + key); - System.out.println("serviceId: " + serviceId); - + endpointType = key.split("\\.")[0]; endpointId = key.split("\\.")[1]; + if(key.startsWith("route")){ - System.out.println("endpointId: " + endpointId); - String route = properties.get("route." + endpointId + ".route"); + + String route = properties.get("route." + endpointId + ".route"); String options[] = {"activemq", "amazonmq", "sonicmq", "sjms", "amqps", "amqp", "ibmmq", "sql"}; - System.out.println("route: " + route); + int i; for (i = 0; i < options.length; i++) { if (route!= null && route.contains(options[i])) { uri = options[i]; } } - - startConnection(uri, "route"); }else{ - uri = properties.get(key + "." + endpointId + ".uri"); + uri = properties.get(endpointType + "." + endpointId + ".uri"); } - startConnection(uri,key); + startConnection(uri, endpointType); return properties; From e15f4409e3521e5b257e4a74877bff4681a8b57d Mon Sep 17 00:00:00 2001 From: assimbly Date: Wed, 18 May 2022 15:20:03 +0200 Subject: [PATCH 05/42] fixes --- baseModule/src/main/resources/activemq.xsd | 10572 +++++++++++++++- .../configuration/marshalling/Unmarshall.java | 19 +- .../integration/impl/BaseIntegration.java | 2 +- .../integration/service/Connection.java | 187 +- 4 files changed, 10427 insertions(+), 353 deletions(-) diff --git a/baseModule/src/main/resources/activemq.xsd b/baseModule/src/main/resources/activemq.xsd index c3932926..62b40cde 100644 --- a/baseModule/src/main/resources/activemq.xsd +++ b/baseModule/src/main/resources/activemq.xsd @@ -1,219 +1,10377 @@ - - + + - + - + + + + +default is that a consumer that has not Ack'd a message for 30 seconds is slow. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +When configured to not ignore idle consumers this strategy acts not only on consumers +that are actually slow but also on any consumer that has not received any messages for +the maxTimeSinceLastAck. This allows for a way to evict idle consumers while also +aborting slow consumers however for a network subscription this can create a lot of +unnecessary churn and if the abort connection option is also enabled this can result +in the entire network connection being torn down and rebuilt for no reason. + ]]> + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +When configured to not ignore idle consumers this strategy acts not only on consumers +that are actually slow but also on any consumer that has not received any messages for +the maxTimeSinceLastAck. This allows for a way to evict idle consumers while also +aborting slow consumers however for a network subscription this can create a lot of +unnecessary churn and if the abort connection option is also enabled this can result +in the entire network connection being torn down and rebuilt for no reason. + ]]> + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • + + ]]>
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Mirrored +Queues should be supported by default if they have not been +explicitly configured. + ]]> + + + + + + + + + + + + + Virtual +Topics should be supported by default if they have not been +explicitly configured. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Mirrored +Queues should be supported by default if they have not been +explicitly configured. + ]]> + + + + + + + + + + + + + Virtual +Topics should be supported by default if they have not been +explicitly configured. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Message Groups functionality. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DOT file creator plugin which +creates a DOT file showing the current connections + ]]> + + + + + + + + + + + + + + + + + Spring enhanced connection +factory which will automatically use the Spring bean name as the clientIDPrefix property +so that connections created have client IDs related to your Spring.xml file for +easier comprehension from JMX. + ]]> + + + + + + + + + + + + + + + + + + + Note: access to this clientInternalExceptionListener will not be serialized if it is associated with more than +on connection (as it will be if more than one connection is subsequently created by this connection factory) + ]]> + + + + + + + + + + + + + Note: access to this exceptionLinstener will not be serialized if it is associated with more than +on connection (as it will be if more than one connection is subsequently created by this connection factory) + ]]> + + + + + + + + prefetch +policy for consumers created by this connection. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + connection +URL used to connect to the ActiveMQ broker. + ]]> + + + + + + + + + + + + + + + + + Note: access to this clientInternalExceptionListener will not be serialized if it is associated with more than +on connection (as it will be if more than one connection is subsequently created by this connection factory) + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + dispatched +synchronously or asynchronously by the broker. For non-durable +topics for example we typically dispatch synchronously by default to +minimize context switches which boost performance. However sometimes its +better to go slower to ensure that a single blocked consumer socket does +not block delivery to other consumers. + ]]> + + + + + Note: access to this exceptionLinstener will not be serialized if it is associated with more than +on connection (as it will be if more than one connection is subsequently created by this connection factory) + ]]> + + + + + Message Groups + ]]> + + + + + + + Nested +Structures of Map and List objects + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + prefetch +policy for consumers created by this connection. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Async Sends which +adds a massive performance boost; but means that the send() method will +return immediately whether the message has been sent or not which could +lead to message loss. + ]]> + + + + + + + + + + + + + + + + + + + + + + start +the connection so this option makes the default case to create a +warning if the user forgets. To disable the warning just set the value to < +0 (say -1). + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + sub-classing is +encouraged to override the default implementation of methods to account for differences in JDBC Driver +implementations.

    The JDBCAdapter inserts and extracts BLOB data using the getBytes()/setBytes() operations.

    +The databases/JDBC drivers that use this adapter are: +

      +
    • +
    + ]]>
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DOT +file creator plugin which creates a DOT file showing the current topic & queue hierarchies. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • Sybase
  • +
  • MS SQL
  • + + ]]>
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + container name field and subscription id field must be reduced to 150 characters. +Therefore be sure not to use longer names for container name and subscription id than 150 characters. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + java.security.auth.login.config system property +is not defined then it is set to the location of the login.config file on the classpath. + ]]> + + + + + + + + + + + + + + + + + + + + + + java.security.auth.login.config system property +is not defined then it is set to the location of the login.config file on the classpath. + ]]> + + + + + + + + + + + + + + + + + + + + + + java.security.auth.login.config system property +is not defined then it is set to the location of the login.config file on the classpath. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +A value of -1 will disable this feature. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + null +if the broker name was not set. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Message +Groups functionality. + ]]> + + + + + + + + + + + + + + + + + + Mirrored +Queue using a prefix and postfix to define the topic name on which to mirror the queue to. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + multicast://address:port + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Subclassing is encouraged to override the default +implementation of methods to account for differences +in JDBC Driver implementations. +

    +The JDBCAdapter inserts and extracts BLOB data using the +getBytes()/setBytes() operations. +

    +The databases/JDBC drivers that use this adapter are: +

      +
    • +
    + ]]>
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + +Subclassing is encouraged to override the default +implementation of methods to account for differences +in JDBC Driver implementations. +

    + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Message Groups +functionality. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Message Groups +functionality. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +The resourceName property should be used along with the {@link org.apache.activemq.jms.pool.GenericResourceManager} and have +the same value than its resourceName property. This will make sure the transaction manager +maps correctly the connection factory to the recovery process. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Subclassing is encouraged to override the default +implementation of methods to account for differences +in JDBC Driver implementations. +

    +The JDBCAdapter inserts and extracts BLOB data using the +getBytes()/setBytes() operations. +

    +The databases/JDBC drivers that use this adapter are: +

      +
    • +
    + ]]>
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Message Groups functionality. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • Axion
  • + + ]]>
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Virtual +Topics. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + +This stops the build-up of unwanted messages, especially when consumers may +disconnect from time to time when using virtual destinations. +

    +This is influenced by code snippets developed by Maciej Rakowicz + ]]> + + + + + + + + + + + + + + + + + + + + Virtual +Topics using a prefix and postfix. The virtual destination creates a +wildcard that is then used to look up all active queue subscriptions which +match. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Spring enhanced XA connection +factory which will automatically use the Spring bean name as the clientIDPrefix property +so that connections created have client IDs related to your Spring.xml file for +easier comprehension from JMX. + ]]> + + + + + + + + + + + + + + + + + + + Note: access to this clientInternalExceptionListener will not be serialized if it is associated with more than +on connection (as it will be if more than one connection is subsequently created by this connection factory) + ]]> + + + + + + + + + + + + + Note: access to this exceptionLinstener will not be serialized if it is associated with more than +on connection (as it will be if more than one connection is subsequently created by this connection factory) + ]]> + + + + + + + + prefetch +policy for consumers created by this connection. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + connection +URL used to connect to the ActiveMQ broker. + ]]> + + + + + + + + + + + + + + + + + Note: access to this clientInternalExceptionListener will not be serialized if it is associated with more than +on connection (as it will be if more than one connection is subsequently created by this connection factory) + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + dispatched +synchronously or asynchronously by the broker. For non-durable +topics for example we typically dispatch synchronously by default to +minimize context switches which boost performance. However sometimes its +better to go slower to ensure that a single blocked consumer socket does +not block delivery to other consumers. + ]]> + + + + + Note: access to this exceptionLinstener will not be serialized if it is associated with more than +on connection (as it will be if more than one connection is subsequently created by this connection factory) + ]]> + + + + + Message Groups + ]]> + + + + + + + Nested +Structures of Map and List objects + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + prefetch +policy for consumers created by this connection. + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Async Sends which +adds a massive performance boost; but means that the send() method will +return immediately whether the message has been sent or not which could +lead to message loss. + ]]> + + + + + + + + + + + + + + + + + + + + + + start +the connection so this option makes the default case to create a +warning if the user forgets. To disable the warning just set the value to < +0 (say -1). + ]]> + + + + + + + + + + + \ No newline at end of file diff --git a/integrationModule/src/main/java/org/assimbly/integration/configuration/marshalling/Unmarshall.java b/integrationModule/src/main/java/org/assimbly/integration/configuration/marshalling/Unmarshall.java index 62cccebb..71365686 100644 --- a/integrationModule/src/main/java/org/assimbly/integration/configuration/marshalling/Unmarshall.java +++ b/integrationModule/src/main/java/org/assimbly/integration/configuration/marshalling/Unmarshall.java @@ -344,22 +344,33 @@ private void getEndpointsFromXMLFile() throws Exception { private void getServiceFromXMLFile(String type, String endpointId, String serviceId) throws ConfigurationException { - String serviceXPath = "integration/services/service[id='" + serviceId + "']/keys"; - List serviceProporties = IntegrationUtil.getXMLParameters(conf, serviceXPath); + String serviceXPath = "integration/services/service[id='" + serviceId + "']/"; + List serviceProporties = IntegrationUtil.getXMLParameters(conf, serviceXPath + "keys"); if(!serviceProporties.isEmpty()){ for(String serviceProperty : serviceProporties){ - properties.put("service." + serviceId + "." + serviceProperty.substring(serviceXPath.length() + 1).toLowerCase(), conf.getString(serviceProperty)); + properties.put("service." + serviceId + "." + serviceProperty.substring(serviceXPath.length() + 5).toLowerCase(), conf.getString(serviceProperty)); } properties.put(type + "." + endpointId + ".service.id", serviceId); - String serviceName = conf.getString("integration/services/service[id='" + serviceId + "']/name"); + String serviceName = conf.getString(serviceXPath + "name"); + if(!serviceName.isEmpty()) { properties.put(type + "." + endpointId + ".service.name", serviceName); + properties.put("service." + serviceId + ".name", serviceName); + } + + String serviceType = conf.getString(serviceXPath + "type"); + + if(!serviceType.isEmpty()) { + properties.put("service." + serviceId + ".type", serviceType); + }else{ + properties.put("service." + serviceId + ".type", "unknown"); } + } } diff --git a/integrationModule/src/main/java/org/assimbly/integration/impl/BaseIntegration.java b/integrationModule/src/main/java/org/assimbly/integration/impl/BaseIntegration.java index 9176ca86..ebe14fc7 100644 --- a/integrationModule/src/main/java/org/assimbly/integration/impl/BaseIntegration.java +++ b/integrationModule/src/main/java/org/assimbly/integration/impl/BaseIntegration.java @@ -132,7 +132,7 @@ public void setFlowConfiguration(String flowId, String mediaType, String configu flowProperties = convertYAMLToFlowConfiguration(flowId, configuration); } - IntegrationUtil.printTreemap(flowProperties); + //IntegrationUtil.printTreemap(flowProperties); setFlowConfiguration(flowProperties); diff --git a/integrationModule/src/main/java/org/assimbly/integration/service/Connection.java b/integrationModule/src/main/java/org/assimbly/integration/service/Connection.java index 43b34eeb..82496508 100644 --- a/integrationModule/src/main/java/org/assimbly/integration/service/Connection.java +++ b/integrationModule/src/main/java/org/assimbly/integration/service/Connection.java @@ -43,6 +43,8 @@ public class Connection { private final String baseDir = BaseDirectory.getInstance().getBaseDirectory(); + private String serviceType; + public Connection(CamelContext context, TreeMap properties, String key) { this.context = context; this.properties = properties; @@ -52,160 +54,63 @@ public Connection(CamelContext context, TreeMap properties, Stri public TreeMap start() throws Exception{ serviceId = properties.get(key); + serviceType = properties.get("service." + serviceId + ".type" ); + + System.out.println("serviceId=" + serviceId); + System.out.println("serviceType=" + serviceType); + endpointType = key.split("\\.")[0]; endpointId = key.split("\\.")[1]; - if(key.startsWith("route")){ - - String route = properties.get("route." + endpointId + ".route"); - String options[] = {"activemq", "amazonmq", "sonicmq", "sjms", "amqps", "amqp", "ibmmq", "sql"}; + connectionId = properties.get(endpointType + "." + endpointId + ".service.id"); + flowId = properties.get("id"); - int i; - for (i = 0; i < options.length; i++) { - if (route!= null && route.contains(options[i])) { - uri = options[i]; - } - } - }else{ - uri = properties.get(endpointType + "." + endpointId + ".uri"); + if(connectionId!=null) { + startConnection(); } - - startConnection(uri, endpointType); - - return properties; - - } - - //unused (future purposes) - public TreeMap stop() throws Exception{ - if(properties.get("from.service.id")!=null){ - uri = properties.get("from.uri"); - //stopConnection(uri,"from"); - } - if(properties.get("to.service.id")!=null){ - String toUris = properties.get("to.uri"); - for(@SuppressWarnings("unused") String toUri : toUris.split(",")) { - //stopConnection(toUri,"to"); - } - } - if(properties.get("response.service.id")!=null){ - uri = properties.get("response.uri"); - //stopConnection(toUri,"to"); - } - if(properties.get("error.service.id")!=null){ - uri = properties.get("error.uri"); - //stopConnection(uri, "error"); - } return properties; } + private void startConnection() throws Exception{ + + switch (serviceType) { + case "ActiveMQ": + setupActiveMQConnection(properties, "activemq"); + break; + case "AmazonMQ": + setupActiveMQConnection(properties, "amazonmq"); + break; + case "SonicMQ": + connectId = endpointType + connectionId + new Random().nextInt(1000000); + setupSonicMQConnection(properties, endpointType, connectId); + uri = uri.replace("sonicmq:", "sonicmq." + flowId + connectId + ":"); + properties.put(endpointType + "." + endpointId + ".uri", uri); + break; + case "MQ": + setupSJMSConnection(properties, "sjms", endpointType); + break; + case "AMQPS": + setupAMQPConnection(properties, "amqps", true); + break; + case "AMQP": + setupAMQPConnection(properties, "amqp", false); + break; + case "IBMMQ": + setupIBMMQConnection(properties, "ibmmq", endpointType); + break; + case "JDBC": + setupJDBCConnection(properties, endpointType); + break; + default: + log.error("Connection parameters for connection " + serviceType + " are not implemented"); + throw new Exception("Connection parameters for connection " + serviceType + " are not implemented"); + } + - private void startConnection(String uri, String type) throws Exception{ - - connectionId = properties.get(type + "." + endpointId + ".service.id"); - - flowId = properties.get("id"); - - if(uri!=null){ - - if(connectionId!=null) { - - String[] uriSplitted = uri.split(":", 2); - String component = uriSplitted[0]; - - String options[] = {"activemq", "amazonmq", "sonicmq", "sjms", "amqps", "amqp", "ibmmq", "sql"}; - int i; - for (i = 0; i < options.length; i++) { - if (component != null && component.contains(options[i])) { - break; - } - } - - switch (i) { - case 0: - setupActiveMQConnection(properties, "activemq"); - break; - case 1: - setupActiveMQConnection(properties, "amazonmq"); - break; - case 2: - connectId = type + connectionId + new Random().nextInt(1000000); - setupSonicMQConnection(properties, type, connectId); - uri = uri.replace("sonicmq:", "sonicmq." + flowId + connectId + ":"); - properties.put(type + "." + endpointId + ".uri", uri); - break; - case 3: - setupSJMSConnection(properties, "sjms", type); - break; - case 4: - setupAMQPConnection(properties, "amqps", true); - break; - case 5: - setupAMQPConnection(properties, "amqp", false); - break; - case 6: - setupIBMMQConnection(properties, "ibmmq", type); - break; - case 7: - setupJDBCConnection(properties, type); - break; - default: - log.error("Connection parameters for component " + component + " are not implemented"); - throw new Exception("Connection parameters for component " + component + " are not implemented"); - } - } - } - } - - - @SuppressWarnings("unused") - private void stopConnection(String uri, String type) throws Exception{ - - if(type.equals("error")) { - connectionId = properties.get(type + ".service.id"); - }else { - connectionId = properties.get("to." + endpointId + ".service.id"); - } - - flowId = properties.get("id"); - - if(uri!=null && connectionId!=null){ - - String[] uriSplitted = uri.split(":",2); - String component = uriSplitted[0]; - String endpoint = uriSplitted[1]; - - String options[] = {"activemq", "sonicmq", "sjms","jdbc"}; - int i; - for (i = 0; i < options.length; i++) { - if (component != null && component.contains(options[i])) { - break; - } - } - - switch (i) { - case 0: - //removeActiveMQConnection(properties, type); - break; - case 1: - //String connectId = type + connectionId + flowId; - //removeSonicMQConnection(properties, type, connectId); - //properties.remove(type + ".uri", "sonicmq." + connectionId + flowId + ":" + endpoint); - break; - case 2: - //removeJDBCConnection(properties, type); - break; - default: - log.error("Connection parameters for component " + component + " are not implemented"); - throw new Exception("Connection parameters for component " + component + " are not implemented"); - } - } } - - private void setupActiveMQConnection(TreeMap properties, String componentName) throws Exception{ log.info("Setting up jms client connection for ActiveMQ."); From 0abadbc594fc39d2f5feec8ef63e7d46dee0cbbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Gon=C3=A7alves?= Date: Wed, 18 May 2022 15:17:06 +0100 Subject: [PATCH 06/42] use proper index to disable more than X from types in one route --- .../integration/configuration/marshalling/Unmarshall.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/integrationModule/src/main/java/org/assimbly/integration/configuration/marshalling/Unmarshall.java b/integrationModule/src/main/java/org/assimbly/integration/configuration/marshalling/Unmarshall.java index 71365686..549eda52 100644 --- a/integrationModule/src/main/java/org/assimbly/integration/configuration/marshalling/Unmarshall.java +++ b/integrationModule/src/main/java/org/assimbly/integration/configuration/marshalling/Unmarshall.java @@ -267,6 +267,7 @@ private void getEndpointsFromXMLFile() throws Exception { //A maximum of 3 from components per route is allowed int maxFromTypes = 3; + int numFromType = 0; for(String endpoint : endpoints){ @@ -317,9 +318,12 @@ private void getEndpointsFromXMLFile() throws Exception { properties.put(type + "." + endpointId + ".response.id", responseId); } } else if(type.equals("from")) { - if(index >= maxFromTypes){ - break; + if(numFromType >= maxFromTypes){ + // maximum from endpoints reached on a route + // jump to the next iteration + continue; } + numFromType++; } else if(type.equals("to")) { if(endpointId != null){ From 2a62e04425f780d5e2f6190c9d57e1ccb70b8322 Mon Sep 17 00:00:00 2001 From: assimbly Date: Sat, 21 May 2022 16:16:37 +0200 Subject: [PATCH 07/42] dependencies --- brokerRestModule/pom.xml | 16 +--------------- integrationModule/pom.xml | 2 +- integrationRestModule/pom.xml | 16 +--------------- pom.xml | 8 ++++---- 4 files changed, 7 insertions(+), 35 deletions(-) diff --git a/brokerRestModule/pom.xml b/brokerRestModule/pom.xml index 1cade169..9b544d0d 100644 --- a/brokerRestModule/pom.xml +++ b/brokerRestModule/pom.xml @@ -39,23 +39,9 @@ org.springdoc springdoc-openapi-ui - 1.6.6 + 1.6.8 - - diff --git a/integrationModule/pom.xml b/integrationModule/pom.xml index 446d0493..ff773b7c 100644 --- a/integrationModule/pom.xml +++ b/integrationModule/pom.xml @@ -187,7 +187,7 @@ org.postgresql postgresql - 42.3.4 + 42.3.5 com.microsoft.sqlserver diff --git a/integrationRestModule/pom.xml b/integrationRestModule/pom.xml index 764995fd..bf9d81d7 100644 --- a/integrationRestModule/pom.xml +++ b/integrationRestModule/pom.xml @@ -38,23 +38,9 @@ org.springdoc springdoc-openapi-ui - 1.6.6 + 1.6.8 - - diff --git a/pom.xml b/pom.xml index c6c1d562..fd4ff8b2 100644 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ UTF-8 5.17.1 2.22.0 - 5.3.19 + 5.3.20 1.7.1 file:///${project.basedir}/baseModule/src/main/resources/rules.xml @@ -187,7 +187,7 @@ jakarta.xml.bind jakarta.xml.bind-api - 3.0.1 + 4.0.0 com.sun.xml.bind @@ -204,7 +204,7 @@ dev.jeka jeka-core - 0.9.20.RC5 + 0.9.20.RC26 @@ -256,7 +256,7 @@ org.springframework.data spring-data-commons - 2.6.4 + 2.7.0 From 6727d594c973b211d5c31c37f63139d91bce4a00 Mon Sep 17 00:00:00 2001 From: assimbly Date: Wed, 1 Jun 2022 17:19:16 +0200 Subject: [PATCH 08/42] Improve Camel2 to Camel3 converter --- baseComponentsModule/pom.xml | 9 +++- .../org/assimbly/util/DependencyUtil.java | 3 ++ .../java/org/assimbly/util/TransformUtil.java | 5 +++ extraModule/pom.xml | 10 +++++ .../beans/UuidExtensionFunction.java | 42 +++++++++++++++++++ .../configuration/marshalling/Unmarshall.java | 2 +- .../integration/impl/CamelIntegration.java | 38 ++++++++++++++--- 7 files changed, 101 insertions(+), 8 deletions(-) create mode 100644 integrationModule/src/main/java/org/assimbly/integration/beans/UuidExtensionFunction.java diff --git a/baseComponentsModule/pom.xml b/baseComponentsModule/pom.xml index 1d8c55a8..1ed39556 100644 --- a/baseComponentsModule/pom.xml +++ b/baseComponentsModule/pom.xml @@ -162,7 +162,14 @@ org.apache.camel camel-websocket - + + org.apache.camel + camel-xslt + + + org.apache.camel + camel-xslt-saxon + \ No newline at end of file diff --git a/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java b/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java index 25f60ca8..4b748b2a 100644 --- a/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java +++ b/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java @@ -127,9 +127,12 @@ public enum CompiledDependency { STUB("stub"), TIMER("timer"), UNDERTOW("undertow"), + VELOCITY("velocity"), VERTXHTTP("vertx-http"), VM("vm"), WEBSOCKET("websocket"), + XSLT("xslt"), + XSLTSAXON("xslt-saxon"), ; private static Map BY_LABEL = new HashMap<>(); diff --git a/baseModule/src/main/java/org/assimbly/util/TransformUtil.java b/baseModule/src/main/java/org/assimbly/util/TransformUtil.java index 54105502..9861b46d 100644 --- a/baseModule/src/main/java/org/assimbly/util/TransformUtil.java +++ b/baseModule/src/main/java/org/assimbly/util/TransformUtil.java @@ -45,6 +45,11 @@ private static String camel2ToCamel3(String input){ map.put("xmlns=\"http://camel.apache.org/schema/blueprint\"",""); map.put("consumer.bridgeErrorHandler","bridgeErrorHandler"); map.put("headerName","name"); + map.put("\"velocity:generate\"","\"velocity:generate?allowTemplateFromHeader=true\""); + map.put("xslt:","xslt-saxon:"); + map.put("&saxon=true",""); + map.put("?saxon=true\"",""); + map.put("?saxon=true&","?"); String output = replaceMultipleStrings(input, map, true); diff --git a/extraModule/pom.xml b/extraModule/pom.xml index ea86fd2d..327907d8 100644 --- a/extraModule/pom.xml +++ b/extraModule/pom.xml @@ -24,6 +24,8 @@ + + com.aurea.sonic.mq sonic_Client @@ -39,6 +41,14 @@ sonic_XMessage 10.0.18 + + + + world.dovetail + xmltojson + 3.7.0 + + \ No newline at end of file diff --git a/integrationModule/src/main/java/org/assimbly/integration/beans/UuidExtensionFunction.java b/integrationModule/src/main/java/org/assimbly/integration/beans/UuidExtensionFunction.java new file mode 100644 index 00000000..58dda0f4 --- /dev/null +++ b/integrationModule/src/main/java/org/assimbly/integration/beans/UuidExtensionFunction.java @@ -0,0 +1,42 @@ +package org.assimbly.integration.beans; + +import net.sf.saxon.expr.XPathContext; +import net.sf.saxon.lib.ExtensionFunctionCall; +import net.sf.saxon.lib.ExtensionFunctionDefinition; +import net.sf.saxon.om.Sequence; +import net.sf.saxon.om.StructuredQName; +import net.sf.saxon.trans.XPathException; +import net.sf.saxon.value.SequenceType; +import net.sf.saxon.value.StringValue; + +import java.util.UUID; + +public class UuidExtensionFunction extends ExtensionFunctionDefinition { + + @Override + public StructuredQName getFunctionQName() { + return new StructuredQName("uuid", "http://assimbly.org/uuid-saxon-extension", "uuid"); + } + + @Override + public SequenceType[] getArgumentTypes() { + return new SequenceType[0]; + } + + @Override + public SequenceType getResultType(SequenceType[] sequenceTypes) { + return SequenceType.SINGLE_STRING; + } + + @Override + public ExtensionFunctionCall makeCallExpression() { + return new ExtensionFunctionCall() { + @Override + public Sequence call(XPathContext context, Sequence[] arguments) throws XPathException { + UUID uuid = UUID.randomUUID(); + + return StringValue.makeStringValue(uuid.toString()); + } + }; + } +} \ No newline at end of file diff --git a/integrationModule/src/main/java/org/assimbly/integration/configuration/marshalling/Unmarshall.java b/integrationModule/src/main/java/org/assimbly/integration/configuration/marshalling/Unmarshall.java index 549eda52..0f7b6bd9 100644 --- a/integrationModule/src/main/java/org/assimbly/integration/configuration/marshalling/Unmarshall.java +++ b/integrationModule/src/main/java/org/assimbly/integration/configuration/marshalling/Unmarshall.java @@ -452,7 +452,7 @@ private void getRouteFromXMLFile(String type, String endpointId, String routeId) } properties.put(type + "." + endpointId + ".route", routeAsString); - properties.put(type + "." + endpointId + ".route.id", routeId); + properties.put(type + "." + endpointId + ".route.id", updatedRouteId); } diff --git a/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java b/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java index aec8f18b..4b3e97ac 100644 --- a/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java +++ b/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java @@ -21,7 +21,6 @@ import org.apache.camel.spi.RoutesLoader; import org.apache.camel.spi.Tracer; import org.apache.camel.ExtendedCamelContext; -import org.apache.camel.support.RouteWatcherReloadStrategy; import org.apache.camel.support.DefaultExchange; import org.apache.camel.support.jsse.SSLContextParameters; import org.apache.commons.io.FileUtils; @@ -35,6 +34,7 @@ import org.assimbly.integration.service.Connection; import org.assimbly.docconverter.DocConverter; import org.assimbly.integration.beans.CustomHttpBinding; +import org.assimbly.integration.beans.UuidExtensionFunction; import org.assimbly.util.*; import org.assimbly.util.file.DirectoryWatcher; import org.jasypt.properties.EncryptableProperties; @@ -42,6 +42,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import world.dovetail.xmltojson.CustomXmlJsonDataFormat; + import javax.xml.xpath.XPathFactory; import java.io.File; import java.net.URI; @@ -81,6 +83,8 @@ public class CamelIntegration extends BaseIntegration { private Properties encryptionProperties; + private boolean watchDeployDirectoryInitialized = false; + public CamelIntegration() { try { @@ -153,6 +157,9 @@ public void setDefaultSettings() throws Exception { //Start Dovetail specific beans CustomHttpBinding customHttpBinding = new CustomHttpBinding(); registry.bind("customHttpBinding", customHttpBinding); + registry.bind("uuid-function", new UuidExtensionFunction()); + context.addService(new CustomXmlJsonDataFormat()); + //context.addComponent("my", new MyComponent(camelContext)); //End Dovetail specific beans } @@ -253,6 +260,13 @@ private void checkDeployDirectory(Path path) throws Exception { private void watchDeployDirectory(Path path) throws Exception { + if(watchDeployDirectoryInitialized){ + return; + } + + log.info("Deploy folder | Init watching for changes: " + path); + watchDeployDirectoryInitialized = true; + DirectoryWatcher watcher = new DirectoryWatcher.Builder() .addDirectories(path) .setPreExistingAsCreated(false) @@ -553,7 +567,12 @@ public String stopAllFlows() throws Exception { } public String configureAndStartFlow(String flowId, String mediaType, String configuration) throws Exception { - super.setFlowConfiguration(flowId, mediaType, configuration); + super.setFlowConfiguration(flowId, mediaType, configuration); + + //if() + //props.get("flow.type"); + + String status = startFlow(flowId); return status; } @@ -595,7 +614,7 @@ public String routesFlow(String flowId, String mediaType, String configuration) props.put("id",flowId); props.put("flow.name",flowId); props.put("flow.type","esb"); - props.put("esb.1.route", configuration); + props.put("route.1.route", configuration); addESBFlow(props); @@ -618,8 +637,14 @@ public String startFlow(String id) { for(int i = 0; i < allProps.size(); i++){ TreeMap props = allProps.get(i); - if (props.get("id").equals(id)) { - + String configureId = props.get("id"); + + if (configureId.equals(id)) { + log.info("Load flow configuration | id=" + id); + addFlow(props); + flowAdded = true; + }else if(configureId!=null){ + id = configureId; log.info("Load flow configuration | id=" + id); addFlow(props); flowAdded = true; @@ -1501,12 +1526,13 @@ private void setSSLContext() throws Exception { SSLContextParameters sslContextParametersTruststoreOnly = sslConfiguration.createSSLContextParameters(null, null, trustStorePath, "supersecret"); registry.bind("default", sslContextParameters); + registry.bind("sslContext", sslContextParameters); registry.bind("keystore", sslContextParametersKeystoreOnly); registry.bind("truststore", sslContextParametersTruststoreOnly); context.setSSLContextParameters(sslContextParameters); - String[] sslComponents = {"ftps", "https", "imaps", "kafka", "netty", "netty-http", "smtps", "vertx-http"}; + String[] sslComponents = {"ftps", "https", "imaps", "kafka", "jetty", "netty", "netty-http", "smtps", "vertx-http"}; for (String sslComponent : sslComponents) { sslConfiguration.setUseGlobalSslContextParameters(context, sslComponent); From 99916568ec07c34c3cf3d182e31688dcdfb01b11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Gon=C3=A7alves?= Date: Mon, 6 Jun 2022 09:54:45 +0100 Subject: [PATCH 09/42] Aggregate component migration --- .../src/main/java/org/assimbly/util/TransformUtil.java | 1 + extraModule/pom.xml | 5 +++++ .../java/org/assimbly/integration/impl/CamelIntegration.java | 2 ++ 3 files changed, 8 insertions(+) diff --git a/baseModule/src/main/java/org/assimbly/util/TransformUtil.java b/baseModule/src/main/java/org/assimbly/util/TransformUtil.java index 9861b46d..259c4123 100644 --- a/baseModule/src/main/java/org/assimbly/util/TransformUtil.java +++ b/baseModule/src/main/java/org/assimbly/util/TransformUtil.java @@ -45,6 +45,7 @@ private static String camel2ToCamel3(String input){ map.put("xmlns=\"http://camel.apache.org/schema/blueprint\"",""); map.put("consumer.bridgeErrorHandler","bridgeErrorHandler"); map.put("headerName","name"); + map.put("propertyName","name"); map.put("\"velocity:generate\"","\"velocity:generate?allowTemplateFromHeader=true\""); map.put("xslt:","xslt-saxon:"); map.put("&saxon=true",""); diff --git a/extraModule/pom.xml b/extraModule/pom.xml index 327907d8..8b90c030 100644 --- a/extraModule/pom.xml +++ b/extraModule/pom.xml @@ -43,6 +43,11 @@ + + world.dovetail + aggregate + 3.7.0 + world.dovetail xmltojson diff --git a/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java b/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java index 4b3e97ac..334a24cb 100644 --- a/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java +++ b/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java @@ -42,6 +42,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import world.dovetail.aggregate.AggregateStrategy; import world.dovetail.xmltojson.CustomXmlJsonDataFormat; import javax.xml.xpath.XPathFactory; @@ -158,6 +159,7 @@ public void setDefaultSettings() throws Exception { CustomHttpBinding customHttpBinding = new CustomHttpBinding(); registry.bind("customHttpBinding", customHttpBinding); registry.bind("uuid-function", new UuidExtensionFunction()); + registry.bind("CurrentAggregateStrategy", new AggregateStrategy()); context.addService(new CustomXmlJsonDataFormat()); //context.addComponent("my", new MyComponent(camelContext)); //End Dovetail specific beans From 30dccf401635809286bb9c5e073d9767324c079b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Catala=CC=83o?= Date: Tue, 14 Jun 2022 09:36:07 +0100 Subject: [PATCH 10/42] Added simple replace componenent --- .idea/compiler.xml | 37 ------------------------------------- .idea/misc.xml | 14 -------------- .idea/modules.xml | 14 -------------- .idea/vcs.xml | 6 ------ extraModule/pom.xml | 5 +++++ 5 files changed, 5 insertions(+), 71 deletions(-) delete mode 100644 .idea/compiler.xml delete mode 100644 .idea/misc.xml delete mode 100644 .idea/modules.xml delete mode 100644 .idea/vcs.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml deleted file mode 100644 index 601a94c0..00000000 --- a/.idea/compiler.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 585a993e..00000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 5eb2ccc1..00000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 35eb1ddf..00000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/extraModule/pom.xml b/extraModule/pom.xml index 8b90c030..0a112f8c 100644 --- a/extraModule/pom.xml +++ b/extraModule/pom.xml @@ -48,6 +48,11 @@ aggregate 3.7.0 + + world.dovetail + simplereplace + 3.7.0 + world.dovetail xmltojson From 2cad2caec68fec656831af02f3c9b2bf80ad5d13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Gon=C3=A7alves?= Date: Wed, 15 Jun 2022 10:15:04 +0100 Subject: [PATCH 11/42] aleris component --- .../src/main/java/org/assimbly/util/DependencyUtil.java | 1 + extraModule/pom.xml | 5 +++++ .../java/org/assimbly/integration/impl/CamelIntegration.java | 4 ++++ 3 files changed, 10 insertions(+) diff --git a/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java b/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java index 4b748b2a..dedaaf6f 100644 --- a/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java +++ b/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java @@ -90,6 +90,7 @@ private ArrayList getClassNamesFromJar(String jarPath) throws Exception public enum CompiledDependency { ACTIVEMQ("activemq"), + ALERIS("aleris"), AMQP("amqp"), AS2("as2"), AWS2S3("aws2-s3"), diff --git a/extraModule/pom.xml b/extraModule/pom.xml index 0a112f8c..2a036808 100644 --- a/extraModule/pom.xml +++ b/extraModule/pom.xml @@ -48,6 +48,11 @@ aggregate 3.7.0 + + world.dovetail + aleris + 3.7.0 + world.dovetail simplereplace diff --git a/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java b/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java index 334a24cb..b92a0e45 100644 --- a/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java +++ b/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java @@ -164,6 +164,10 @@ public void setDefaultSettings() throws Exception { //context.addComponent("my", new MyComponent(camelContext)); //End Dovetail specific beans + // Start Dovetail components + context.addComponent("aleris", new world.dovetail.aleris.AlerisComponent()); + // End Dovetail components + } public void setTracing(boolean tracing, String traceType) { From d9ac2dc7b8b9d68d195dba762af93d67a7aa0755 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Catala=CC=83o?= Date: Wed, 15 Jun 2022 12:14:34 +0100 Subject: [PATCH 12/42] Added simple replace component to compiled dep list --- baseModule/src/main/java/org/assimbly/util/DependencyUtil.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java b/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java index dedaaf6f..92f988e2 100644 --- a/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java +++ b/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java @@ -96,7 +96,7 @@ public enum CompiledDependency { AWS2S3("aws2-s3"), DIRECT("direct"), ELASTICSEARCHREST("elasticsearch-rest"), - FILE("file"), + FILE("file"), FTP("ftp"), FTPS("ftps"), HTTP("http"), @@ -117,6 +117,7 @@ public enum CompiledDependency { SFTP("sftp"), SEDA("seda"), SERVLET("servlet"), + SIMPLEREPLACE("simplereplace"), SJMS("sjms"), SJMS2("sjms2"), SMTP("smtp"), From a89e5bd85fee57e7b530d2fc6399edbed5617de4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Gon=C3=A7alves?= Date: Wed, 15 Jun 2022 12:57:52 +0100 Subject: [PATCH 13/42] Amazon component --- .../src/main/java/org/assimbly/util/DependencyUtil.java | 1 + extraModule/pom.xml | 5 +++++ .../java/org/assimbly/integration/impl/CamelIntegration.java | 1 + 3 files changed, 7 insertions(+) diff --git a/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java b/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java index dedaaf6f..8028d07c 100644 --- a/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java +++ b/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java @@ -91,6 +91,7 @@ public enum CompiledDependency { ACTIVEMQ("activemq"), ALERIS("aleris"), + AMAZON("amazon"), AMQP("amqp"), AS2("as2"), AWS2S3("aws2-s3"), diff --git a/extraModule/pom.xml b/extraModule/pom.xml index 2a036808..644d0973 100644 --- a/extraModule/pom.xml +++ b/extraModule/pom.xml @@ -53,6 +53,11 @@ aleris 3.7.0 + + world.dovetail + amazon + 3.7.0 + world.dovetail simplereplace diff --git a/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java b/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java index b92a0e45..10442775 100644 --- a/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java +++ b/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java @@ -166,6 +166,7 @@ public void setDefaultSettings() throws Exception { // Start Dovetail components context.addComponent("aleris", new world.dovetail.aleris.AlerisComponent()); + context.addComponent("amazon", new world.dovetail.amazon.AmazonComponent()); // End Dovetail components } From 386b02dd6612df8114a540bc01fbd4ce39d19ba6 Mon Sep 17 00:00:00 2001 From: skin27 Date: Thu, 16 Jun 2022 13:32:50 +0200 Subject: [PATCH 14/42] update dependencies --- .../java/org/assimbly/integration/impl/CamelIntegration.java | 1 + 1 file changed, 1 insertion(+) diff --git a/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java b/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java index 4b3e97ac..a6b60cc6 100644 --- a/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java +++ b/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java @@ -1530,6 +1530,7 @@ private void setSSLContext() throws Exception { registry.bind("keystore", sslContextParametersKeystoreOnly); registry.bind("truststore", sslContextParametersTruststoreOnly); + context.setSSLContextParameters(sslContextParameters); String[] sslComponents = {"ftps", "https", "imaps", "kafka", "jetty", "netty", "netty-http", "smtps", "vertx-http"}; From b5103002b65b759eff52a9bec9bc79e2dea1fad6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Gon=C3=A7alves?= Date: Tue, 21 Jun 2022 15:09:13 +0100 Subject: [PATCH 15/42] archive component --- .../src/main/java/org/assimbly/util/DependencyUtil.java | 1 + extraModule/pom.xml | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java b/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java index 6c5c98a6..35a9f723 100644 --- a/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java +++ b/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java @@ -93,6 +93,7 @@ public enum CompiledDependency { ALERIS("aleris"), AMAZON("amazon"), AMQP("amqp"), + ARCHIVE("archive"), AS2("as2"), AWS2S3("aws2-s3"), DIRECT("direct"), diff --git a/extraModule/pom.xml b/extraModule/pom.xml index 644d0973..3c662204 100644 --- a/extraModule/pom.xml +++ b/extraModule/pom.xml @@ -58,6 +58,11 @@ amazon 3.7.0 + + world.dovetail + archive + 3.7.0 + world.dovetail simplereplace From ff4bdbfd3f5294e4ddda7cd2fceb101449952bef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Gon=C3=A7alves?= Date: Fri, 24 Jun 2022 16:39:18 +0100 Subject: [PATCH 16/42] email component --- .../java/org/assimbly/integration/impl/CamelIntegration.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java b/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java index 10442775..02b6a165 100644 --- a/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java +++ b/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java @@ -43,6 +43,7 @@ import org.slf4j.LoggerFactory; import world.dovetail.aggregate.AggregateStrategy; +import world.dovetail.common.mail.ExtendedHeaderFilterStrategy; import world.dovetail.xmltojson.CustomXmlJsonDataFormat; import javax.xml.xpath.XPathFactory; @@ -160,6 +161,7 @@ public void setDefaultSettings() throws Exception { registry.bind("customHttpBinding", customHttpBinding); registry.bind("uuid-function", new UuidExtensionFunction()); registry.bind("CurrentAggregateStrategy", new AggregateStrategy()); + registry.bind("ExtendedHeaderFilterStrategy", new ExtendedHeaderFilterStrategy()); context.addService(new CustomXmlJsonDataFormat()); //context.addComponent("my", new MyComponent(camelContext)); //End Dovetail specific beans From 89a8687ed38d3c3d7a8d15d3944ce8efaf4a54c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Gon=C3=A7alves?= Date: Fri, 24 Jun 2022 17:50:22 +0100 Subject: [PATCH 17/42] encoder component --- .../src/main/java/org/assimbly/util/DependencyUtil.java | 1 + extraModule/pom.xml | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java b/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java index 6c5c98a6..9145507b 100644 --- a/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java +++ b/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java @@ -97,6 +97,7 @@ public enum CompiledDependency { AWS2S3("aws2-s3"), DIRECT("direct"), ELASTICSEARCHREST("elasticsearch-rest"), + ENCODER("encoder"), FILE("file"), FTP("ftp"), FTPS("ftps"), diff --git a/extraModule/pom.xml b/extraModule/pom.xml index 644d0973..8596bf90 100644 --- a/extraModule/pom.xml +++ b/extraModule/pom.xml @@ -58,6 +58,11 @@ amazon 3.7.0 + + world.dovetail + encoder + 3.7.0 + world.dovetail simplereplace From 280032dfbcde863778dbf8ff6ba3f9d04cb624f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Gon=C3=A7alves?= Date: Tue, 28 Jun 2022 16:11:44 +0100 Subject: [PATCH 18/42] flv component migration --- .../src/main/java/org/assimbly/util/DependencyUtil.java | 1 + extraModule/pom.xml | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java b/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java index 6c5c98a6..df876dee 100644 --- a/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java +++ b/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java @@ -98,6 +98,7 @@ public enum CompiledDependency { DIRECT("direct"), ELASTICSEARCHREST("elasticsearch-rest"), FILE("file"), + FLV("flv"), FTP("ftp"), FTPS("ftps"), HTTP("http"), diff --git a/extraModule/pom.xml b/extraModule/pom.xml index 644d0973..d2e2c90c 100644 --- a/extraModule/pom.xml +++ b/extraModule/pom.xml @@ -58,6 +58,11 @@ amazon 3.7.0 + + world.dovetail + flv + 3.7.0 + world.dovetail simplereplace From f1f91d2012c7d2e0fe544fc5ce4b76b8c3cf03b3 Mon Sep 17 00:00:00 2001 From: skin27 Date: Wed, 29 Jun 2022 09:01:16 +0200 Subject: [PATCH 19/42] updated transformation --- .vscode/settings.json | 3 +- baseComponentsModule/pom.xml | 4 ++ .../org/assimbly/util/DependencyUtil.java | 10 +++- .../java/org/assimbly/util/TransformUtil.java | 5 ++ .../main/resources/transform-to-assimbly.xsl | 3 +- .../assimbly/broker/impl/ActiveMQClassic.java | 1 + extraModule/pom.xml | 50 +++++++++++++++++++ integrationModule/pom.xml | 4 ++ .../configuration/marshalling/Unmarshall.java | 14 ++++++ .../integration/impl/CamelIntegration.java | 47 ++++++++++++----- 10 files changed, 125 insertions(+), 16 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 0e14d8e2..b02f4d17 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,4 @@ { - "java.configuration.updateBuildConfiguration": "disabled" + "java.configuration.updateBuildConfiguration": "disabled", + "java.jdt.ls.vmargs": "-XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx2G -Xms100m" } \ No newline at end of file diff --git a/baseComponentsModule/pom.xml b/baseComponentsModule/pom.xml index 1ed39556..d16d18e0 100644 --- a/baseComponentsModule/pom.xml +++ b/baseComponentsModule/pom.xml @@ -82,6 +82,10 @@ org.apache.camel camel-netty-http + + org.apache.camel + camel-quartz + org.apache.camel camel-rest diff --git a/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java b/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java index 6c5c98a6..3d5f7342 100644 --- a/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java +++ b/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java @@ -90,13 +90,17 @@ private ArrayList getClassNamesFromJar(String jarPath) throws Exception public enum CompiledDependency { ACTIVEMQ("activemq"), - ALERIS("aleris"), + ALERIS("aleris"), AMAZON("amazon"), AMQP("amqp"), AS2("as2"), AWS2S3("aws2-s3"), + CSVTOXML("csvtoxml"), DIRECT("direct"), + EDIFACTDOTWEB("edifact-dotweb"), + EDIFACTSTANDARDS("edifact-standards"), ELASTICSEARCHREST("elasticsearch-rest"), + EXCELTOXML("exceltoxml"), FILE("file"), FTP("ftp"), FTPS("ftps"), @@ -109,6 +113,7 @@ public enum CompiledDependency { LOG("log"), NETTY("netty"), NETTYHTTP("netty-http"), + QUARTZ("quartz"), POP3("pop3"), RABBITMQ("rabbitmq"), REST("rest"), @@ -124,6 +129,7 @@ public enum CompiledDependency { SMTP("smtp"), SONICMQ("sonicmq"), SQL("sql"), + SOAP("soap"), SLACK("slack"), SPRING("spring"), STREAM("stream"), @@ -134,6 +140,8 @@ public enum CompiledDependency { VERTXHTTP("vertx-http"), VM("vm"), WEBSOCKET("websocket"), + XMLTOCSV("xmltocsv"), + XMLTOEXCEL("xmltoexcel"), XSLT("xslt"), XSLTSAXON("xslt-saxon"), ; diff --git a/baseModule/src/main/java/org/assimbly/util/TransformUtil.java b/baseModule/src/main/java/org/assimbly/util/TransformUtil.java index 259c4123..b0ee52fc 100644 --- a/baseModule/src/main/java/org/assimbly/util/TransformUtil.java +++ b/baseModule/src/main/java/org/assimbly/util/TransformUtil.java @@ -51,6 +51,11 @@ private static String camel2ToCamel3(String input){ map.put("&saxon=true",""); map.put("?saxon=true\"",""); map.put("?saxon=true&","?"); + map.put("xml2excel","xmltoexcel"); + map.put("excel2xml","exceltoxml"); + map.put("csv2xml","csvtoxml"); + map.put(" - + @@ -126,6 +126,7 @@ + diff --git a/brokerModule/src/main/java/org/assimbly/broker/impl/ActiveMQClassic.java b/brokerModule/src/main/java/org/assimbly/broker/impl/ActiveMQClassic.java index 768a9eb9..1ca5f908 100644 --- a/brokerModule/src/main/java/org/assimbly/broker/impl/ActiveMQClassic.java +++ b/brokerModule/src/main/java/org/assimbly/broker/impl/ActiveMQClassic.java @@ -56,6 +56,7 @@ public String start() { try{ broker = new BrokerService(); + if(brokerFile.exists()) { log.info("Using config file 'activemq.xml'. Loaded from " + brokerFile.getCanonicalPath()); diff --git a/extraModule/pom.xml b/extraModule/pom.xml index 644d0973..0d0d5b83 100644 --- a/extraModule/pom.xml +++ b/extraModule/pom.xml @@ -58,11 +58,61 @@ amazon 3.7.0 + + world.dovetail + csvtoxml + 3.7.0 + + + world.dovetail + docconverter + 3.7.0 + + + world.dovetail + edi + 3.7.0 + + + world.dovetail + edifact + 3.7.0 + + + world.dovetail + edifactstandards + 3.7.0 + + + world.dovetail + enrich + 3.7.0 + + + world.dovetail + exceltoxml + 3.7.0 + world.dovetail simplereplace 3.7.0 + + world.dovetail + throttling + 3.7.0 + + + world.dovetail + xmltocsv + 3.7.0 + + + world.dovetail + xmltoexcel + 3.7.0 + world.dovetail xmltojson diff --git a/integrationModule/pom.xml b/integrationModule/pom.xml index ff773b7c..6c15419a 100644 --- a/integrationModule/pom.xml +++ b/integrationModule/pom.xml @@ -89,6 +89,10 @@ org.apache.camel camel-csimple-joor + + org.apache.camel + camel-csv + org.apache.camel camel-dataformat diff --git a/integrationModule/src/main/java/org/assimbly/integration/configuration/marshalling/Unmarshall.java b/integrationModule/src/main/java/org/assimbly/integration/configuration/marshalling/Unmarshall.java index 0f7b6bd9..fd9c1ca2 100644 --- a/integrationModule/src/main/java/org/assimbly/integration/configuration/marshalling/Unmarshall.java +++ b/integrationModule/src/main/java/org/assimbly/integration/configuration/marshalling/Unmarshall.java @@ -451,6 +451,20 @@ private void getRouteFromXMLFile(String type, String endpointId, String routeId) } } + + if(routeAsString.contains("", " Date: Wed, 29 Jun 2022 11:33:56 +0200 Subject: [PATCH 20/42] fix extraModule pom.xml --- .../org/assimbly/util/DependencyUtil.java | 2 ++ extraModule/pom.xml | 35 +++++++++++-------- .../integration/impl/CamelIntegration.java | 3 +- 3 files changed, 24 insertions(+), 16 deletions(-) diff --git a/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java b/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java index e5e37edd..53b06f71 100644 --- a/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java +++ b/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java @@ -96,7 +96,9 @@ public enum CompiledDependency { ARCHIVE("archive"), AS2("as2"), AWS2S3("aws2-s3"), + BEAN("bean"), CSVTOXML("csvtoxml"), + DATAFORMAT("dataformat"), DIRECT("direct"), EDIFACTDOTWEB("edifact-dotweb"), EDIFACTSTANDARDS("edifact-standards"), diff --git a/extraModule/pom.xml b/extraModule/pom.xml index 81a8cc82..412799d4 100644 --- a/extraModule/pom.xml +++ b/extraModule/pom.xml @@ -60,7 +60,16 @@ world.dovetail -<<<<<<< HEAD + archive + 3.7.0 + + + world.dovetail + cookies + 3.7.0 + + + world.dovetail csvtoxml 3.7.0 @@ -72,32 +81,25 @@ world.dovetail edi -======= - archive ->>>>>>> 168ae5cf3dfb14d90ab2f380927605858ff18b37 3.7.0 world.dovetail -<<<<<<< HEAD edifact -======= - encoder ->>>>>>> 168ae5cf3dfb14d90ab2f380927605858ff18b37 3.7.0 world.dovetail -<<<<<<< HEAD edifactstandards -======= - flv ->>>>>>> 168ae5cf3dfb14d90ab2f380927605858ff18b37 3.7.0 world.dovetail -<<<<<<< HEAD + encoder + 3.7.0 + + + world.dovetail enrich 3.7.0 @@ -108,8 +110,11 @@ world.dovetail -======= ->>>>>>> 168ae5cf3dfb14d90ab2f380927605858ff18b37 + flv + 3.7.0 + + + world.dovetail simplereplace 3.7.0 diff --git a/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java b/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java index bcbba54c..7a83a349 100644 --- a/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java +++ b/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java @@ -46,6 +46,7 @@ import world.dovetail.aggregate.AggregateStrategy; +import world.dovetail.cookies.CookieStore; import world.dovetail.enrich.EnrichStrategy; import world.dovetail.throttling.QueueMessageChecker; import world.dovetail.common.mail.ExtendedHeaderFilterStrategy; @@ -213,8 +214,8 @@ public void setDovetail(boolean enable) throws Exception { registry.bind("customHttpBinding", new CustomHttpBinding()); registry.bind("CurrentAggregateStrategy", new AggregateStrategy()); registry.bind("CurrentEnrichStrategy", new EnrichStrategy()); - registry.bind("ExtendedHeaderFilterStrategy", new ExtendedHeaderFilterStrategy()); + registry.bind("flowCookieStore", new CookieStore()); registry.bind("QueueMessageChecker", new QueueMessageChecker()); registry.bind("uuid-function", new UuidExtensionFunction()); //End Dovetail specific beans From 7ac48f9a11c499f99d4e2eb61ccb94428335683b Mon Sep 17 00:00:00 2001 From: skin27 Date: Wed, 29 Jun 2022 17:30:35 +0200 Subject: [PATCH 21/42] add globalvariables --- .../src/main/java/org/assimbly/util/TransformUtil.java | 1 + extraModule/pom.xml | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/baseModule/src/main/java/org/assimbly/util/TransformUtil.java b/baseModule/src/main/java/org/assimbly/util/TransformUtil.java index b0ee52fc..9742b4df 100644 --- a/baseModule/src/main/java/org/assimbly/util/TransformUtil.java +++ b/baseModule/src/main/java/org/assimbly/util/TransformUtil.java @@ -54,6 +54,7 @@ private static String camel2ToCamel3(String input){ map.put("xml2excel","xmltoexcel"); map.put("excel2xml","exceltoxml"); map.put("csv2xml","csvtoxml"); + map.put("global-variables","globalvariables"); map.put("world.dovetail flv 3.7.0 - + + + world.dovetail + globalvariables + 3.7.0 + world.dovetail simplereplace From 1025b1532c0e57261f05872b47c5a02c3f38dc56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Gon=C3=A7alves?= Date: Thu, 30 Jun 2022 11:51:16 +0100 Subject: [PATCH 22/42] fmuta migration component --- .../src/main/java/org/assimbly/util/DependencyUtil.java | 1 + extraModule/pom.xml | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java b/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java index 53b06f71..fc8d93b7 100644 --- a/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java +++ b/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java @@ -107,6 +107,7 @@ public enum CompiledDependency { EXCELTOXML("exceltoxml"), FILE("file"), FLV("flv"), + FMUTA("fmuta"), FTP("ftp"), FTPS("ftps"), HTTP("http"), diff --git a/extraModule/pom.xml b/extraModule/pom.xml index f1deb4f5..a97309e4 100644 --- a/extraModule/pom.xml +++ b/extraModule/pom.xml @@ -113,6 +113,11 @@ flv 3.7.0 + + world.dovetail + fmuta + 3.7.0 + world.dovetail globalvariables From 7e033e9d7cc758eeaf3dee8b540d4dcad3888e13 Mon Sep 17 00:00:00 2001 From: skin27 Date: Thu, 30 Jun 2022 14:34:15 +0200 Subject: [PATCH 23/42] replace module --- .../src/main/java/org/assimbly/util/TransformUtil.java | 1 + extraModule/pom.xml | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/baseModule/src/main/java/org/assimbly/util/TransformUtil.java b/baseModule/src/main/java/org/assimbly/util/TransformUtil.java index 9742b4df..fe28455d 100644 --- a/baseModule/src/main/java/org/assimbly/util/TransformUtil.java +++ b/baseModule/src/main/java/org/assimbly/util/TransformUtil.java @@ -56,6 +56,7 @@ private static String camel2ToCamel3(String input){ map.put("csv2xml","csvtoxml"); map.put("global-variables","globalvariables"); map.put("globalvariables 3.7.0 + + world.dovetail + replace + 3.7.0 + world.dovetail simplereplace From 539574c71480d0eac7e83d90169b8ff74ac5c601 Mon Sep 17 00:00:00 2001 From: skin27 Date: Thu, 30 Jun 2022 15:08:41 +0200 Subject: [PATCH 24/42] dependencies --- baseComponentsModule/pom.xml | 4 ++++ .../src/main/java/org/assimbly/util/DependencyUtil.java | 2 ++ 2 files changed, 6 insertions(+) diff --git a/baseComponentsModule/pom.xml b/baseComponentsModule/pom.xml index d16d18e0..da1bd871 100644 --- a/baseComponentsModule/pom.xml +++ b/baseComponentsModule/pom.xml @@ -38,6 +38,10 @@ org.apache.camel camel-direct + + org.apache.camel + camel-directvm + org.apache.camel camel-elasticsearch-rest diff --git a/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java b/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java index 53b06f71..cbc29a93 100644 --- a/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java +++ b/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java @@ -97,9 +97,11 @@ public enum CompiledDependency { AS2("as2"), AWS2S3("aws2-s3"), BEAN("bean"), + CONTROLBUS("controlbus"), CSVTOXML("csvtoxml"), DATAFORMAT("dataformat"), DIRECT("direct"), + DIRECTVM("direct-vm"), EDIFACTDOTWEB("edifact-dotweb"), EDIFACTSTANDARDS("edifact-standards"), ELASTICSEARCHREST("elasticsearch-rest"), From c5aa63f50eab61db6382173d69845a25a3490779 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Gon=C3=A7alves?= Date: Thu, 30 Jun 2022 15:03:06 +0100 Subject: [PATCH 25/42] formtoxml migration component --- .../src/main/java/org/assimbly/util/DependencyUtil.java | 1 + extraModule/pom.xml | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java b/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java index 53b06f71..d049bec9 100644 --- a/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java +++ b/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java @@ -107,6 +107,7 @@ public enum CompiledDependency { EXCELTOXML("exceltoxml"), FILE("file"), FLV("flv"), + FORMTOXML("form2xml"), FTP("ftp"), FTPS("ftps"), HTTP("http"), diff --git a/extraModule/pom.xml b/extraModule/pom.xml index f1deb4f5..cef351bc 100644 --- a/extraModule/pom.xml +++ b/extraModule/pom.xml @@ -115,9 +115,9 @@ world.dovetail - globalvariables + formtoxml 3.7.0 - + world.dovetail simplereplace From 67dd7ff285985010b5c24f6bc7f56816416f6266 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bruno=20Gon=C3=A7alves?= Date: Thu, 30 Jun 2022 15:05:10 +0100 Subject: [PATCH 26/42] undelete globalvariables dependency --- extraModule/pom.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/extraModule/pom.xml b/extraModule/pom.xml index cef351bc..f129a80b 100644 --- a/extraModule/pom.xml +++ b/extraModule/pom.xml @@ -118,6 +118,11 @@ formtoxml 3.7.0 + + world.dovetail + globalvariables + 3.7.0 + world.dovetail simplereplace From 65107bf38377f1c224bf816486f94e2c94afcf3a Mon Sep 17 00:00:00 2001 From: skin27 Date: Thu, 30 Jun 2022 18:31:27 +0200 Subject: [PATCH 27/42] multipart processor --- extraModule/pom.xml | 5 +++++ .../java/org/assimbly/integration/impl/CamelIntegration.java | 3 +++ 2 files changed, 8 insertions(+) diff --git a/extraModule/pom.xml b/extraModule/pom.xml index 89763d54..cefd0871 100644 --- a/extraModule/pom.xml +++ b/extraModule/pom.xml @@ -118,6 +118,11 @@ globalvariables 3.7.0 + + world.dovetail + multipart + 3.7.0 + world.dovetail replace diff --git a/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java b/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java index 7a83a349..ba138dfe 100644 --- a/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java +++ b/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java @@ -48,6 +48,7 @@ import world.dovetail.aggregate.AggregateStrategy; import world.dovetail.cookies.CookieStore; import world.dovetail.enrich.EnrichStrategy; +import world.dovetail.multipart.processor.MultipartProcessor; import world.dovetail.throttling.QueueMessageChecker; import world.dovetail.common.mail.ExtendedHeaderFilterStrategy; import world.dovetail.xmltojson.CustomXmlJsonDataFormat; @@ -210,12 +211,14 @@ public void setHistoryMetrics(boolean setHistoryMetrics){ public void setDovetail(boolean enable) throws Exception { if(enable){ + //Start Dovetail specific beans registry.bind("customHttpBinding", new CustomHttpBinding()); registry.bind("CurrentAggregateStrategy", new AggregateStrategy()); registry.bind("CurrentEnrichStrategy", new EnrichStrategy()); registry.bind("ExtendedHeaderFilterStrategy", new ExtendedHeaderFilterStrategy()); registry.bind("flowCookieStore", new CookieStore()); + registry.bind("multipartProcessor", new MultipartProcessor()); registry.bind("QueueMessageChecker", new QueueMessageChecker()); registry.bind("uuid-function", new UuidExtensionFunction()); //End Dovetail specific beans From b96f437f004343d274f2ddb8f98a8bf423b18f0b Mon Sep 17 00:00:00 2001 From: skin27 Date: Thu, 30 Jun 2022 19:23:19 +0200 Subject: [PATCH 28/42] sandbox module --- extraModule/pom.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/extraModule/pom.xml b/extraModule/pom.xml index cefd0871..14524eb8 100644 --- a/extraModule/pom.xml +++ b/extraModule/pom.xml @@ -128,6 +128,11 @@ replace 3.7.0 + + world.dovetail + sandbox + 3.7.0 + world.dovetail simplereplace From f70a40425a8dc886e17e32c2115b41e87b67bfa4 Mon Sep 17 00:00:00 2001 From: skin27 Date: Thu, 30 Jun 2022 19:53:07 +0200 Subject: [PATCH 29/42] update dependency list --- baseModule/src/main/java/org/assimbly/util/DependencyUtil.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java b/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java index cbc29a93..be4ffd41 100644 --- a/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java +++ b/baseModule/src/main/java/org/assimbly/util/DependencyUtil.java @@ -126,7 +126,8 @@ public enum CompiledDependency { REST("rest"), RESTSOPENAPI("rest-openapi"), RESTSWAGGER("rest-swagger"), - //SCHEDULER("scheduler"), + SANDBOX("sandbox"), + SCHEDULER("scheduler"), SFTP("sftp"), SEDA("seda"), SERVLET("servlet"), From 7eeeab19eb12acc656493b4e9e2c6190e3e6711d Mon Sep 17 00:00:00 2001 From: skin27 Date: Thu, 30 Jun 2022 21:39:22 +0200 Subject: [PATCH 30/42] dependencies: update Camel --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index fd4ff8b2..9bb8aede 100644 --- a/pom.xml +++ b/pom.xml @@ -33,7 +33,7 @@ org.apache.camel camel-bom - 3.14.3 + 3.14.4 pom import From d7cbd2e8389dd4e3e77243d994cafa6436521392 Mon Sep 17 00:00:00 2001 From: skin27 Date: Sun, 3 Jul 2022 19:16:31 +0200 Subject: [PATCH 31/42] update dependencies --- brokerRestModule/pom.xml | 2 +- integrationModule/pom.xml | 2 +- integrationRestModule/pom.xml | 2 +- pom.xml | 10 +++++----- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/brokerRestModule/pom.xml b/brokerRestModule/pom.xml index 9b544d0d..90b0559f 100644 --- a/brokerRestModule/pom.xml +++ b/brokerRestModule/pom.xml @@ -39,7 +39,7 @@ org.springdoc springdoc-openapi-ui - 1.6.8 + 1.6.9 diff --git a/integrationModule/pom.xml b/integrationModule/pom.xml index 6c15419a..e2e80a74 100644 --- a/integrationModule/pom.xml +++ b/integrationModule/pom.xml @@ -191,7 +191,7 @@ org.postgresql postgresql - 42.3.5 + 42.4.0 com.microsoft.sqlserver diff --git a/integrationRestModule/pom.xml b/integrationRestModule/pom.xml index bf9d81d7..f7ee334a 100644 --- a/integrationRestModule/pom.xml +++ b/integrationRestModule/pom.xml @@ -38,7 +38,7 @@ org.springdoc springdoc-openapi-ui - 1.6.8 + 1.6.9 diff --git a/pom.xml b/pom.xml index 9bb8aede..b5e9464b 100644 --- a/pom.xml +++ b/pom.xml @@ -22,8 +22,8 @@ UTF-8 5.17.1 - 2.22.0 - 5.3.20 + 2.23.1 + 5.3.21 1.7.1 file:///${project.basedir}/baseModule/src/main/resources/rules.xml @@ -210,7 +210,7 @@ io.dropwizard.metrics metrics-core - 4.2.9 + 4.2.10 @@ -256,7 +256,7 @@ org.springframework.data spring-data-commons - 2.7.0 + 2.7.1 From 75f3bdd4ee37f0879043d4f6814f5593903bee21 Mon Sep 17 00:00:00 2001 From: skin27 Date: Tue, 5 Jul 2022 15:18:42 +0200 Subject: [PATCH 32/42] using base modules --- baseComponentsModule/pom.xml | 183 - baseModule/pom.xml | 56 - .../java/org/assimbly/util/BaseDirectory.java | 33 - .../org/assimbly/util/CertificatesUtil.java | 579 - .../org/assimbly/util/DependencyUtil.java | 178 - .../org/assimbly/util/EncryptionUtil.java | 35 - .../main/java/org/assimbly/util/INetUtil.java | 30 - .../org/assimbly/util/IntegrationUtil.java | 330 - .../main/java/org/assimbly/util/OSUtil.java | 26 - .../java/org/assimbly/util/TransformUtil.java | 159 - .../assimbly/util/file/DirectoryWatcher.java | 204 - .../assimbly/util/helper/Base64Helper.java | 40 - .../assimbly/util/helper/CalendarHelper.java | 18 - .../assimbly/util/helper/ContextHelper.java | 12 - .../util/helper/EnvironmentHelper.java | 8 - .../assimbly/util/helper/ExchangeHelper.java | 61 - .../java/org/assimbly/util/helper/Filter.java | 12 - .../util/helper/PropertiesHelper.java | 52 - .../org/assimbly/util/helper/Service.java | 15 - .../org/assimbly/util/helper/XmlHelper.java | 150 - .../java/org/assimbly/util/rest/BodyUtil.java | 82 - .../org/assimbly/util/rest/HeaderUtil.java | 74 - .../java/org/assimbly/util/rest/LogUtil.java | 53 - .../assimbly/util/rest/PaginationUtil.java | 45 - .../org/assimbly/util/rest/ResponseUtil.java | 141 - baseModule/src/main/resources/activemq.xml | 145 - baseModule/src/main/resources/activemq.xsd | 10377 ---------------- .../main/resources/artemis-configuration.xsd | 4549 ------- baseModule/src/main/resources/artemis-jms.xsd | 59 - .../src/main/resources/artemis-server.xsd | 50 - baseModule/src/main/resources/broker.xml | 117 - baseModule/src/main/resources/broker.xsd | 48 - baseModule/src/main/resources/integration.xsd | 150 - baseModule/src/main/resources/keystore.jks | Bin 5452 -> 0 bytes baseModule/src/main/resources/log4j2.xml | 19 - .../src/main/resources/spring-beans.xsd | 1202 -- .../main/resources/test-jgroups-file_ping.xml | 70 - .../main/resources/transform-to-assimbly.xsl | 150 - baseModule/src/main/resources/truststore.jks | Bin 32 -> 0 bytes baseModule/src/main/resources/xml.xsd | 146 - build_modules.bat => bin/build_modules.bat | 0 broker/pom.xml | 71 + .../main/java/org/assimbly/broker/Broker.java | 0 .../converter/CompositeDataConverter.java | 0 .../broker/decoder/AssimblyCodec.java | 0 .../assimbly/broker/impl/ActiveMQArtemis.java | 0 .../assimbly/broker/impl/ActiveMQClassic.java | 0 brokerModule/pom.xml | 167 - {integrationRestModule => brokerRest}/pom.xml | 26 +- .../brokerrest/BrokerConfigurerResource.java | 0 .../brokerrest/BrokerManagerResource.java | 0 .../assimbly/brokerrest/ManagedBroker.java | 0 .../brokerrest/MessageBrokerResource.java | 0 .../brokerrest/QueueManagerResource.java | 0 .../brokerrest/TopicManagerResource.java | 0 extraModule/pom.xml | 174 - integration/pom.xml | 128 + .../org/assimbly/integration/Integration.java | 0 .../integration/beans/CustomHttpBinding.java | 0 .../beans/UuidExtensionFunction.java | 0 .../configuration/JSONFileConfiguration.java | 0 .../configuration/XMLFileConfiguration.java | 0 .../configuration/YAMLFileConfiguration.java | 0 .../configuration/marshalling/Marshall.java | 0 .../configuration/marshalling/Unmarshall.java | 0 .../configuration/ssl/SSLConfiguration.java | 0 .../integration/event/EventCollector.java | 0 .../assimbly/integration/event/FlowEvent.java | 0 .../integration/impl/BaseIntegration.java | 0 .../integration/impl/CamelIntegration.java | 0 .../processors/ConvertProcessor.java | 0 .../processors/FailureProcessor.java | 0 .../processors/HeadersProcessor.java | 0 .../integration/routes/ConnectorRoute.java | 0 .../assimbly/integration/routes/ESBRoute.java | 0 .../integration/routes/SimpleRoute.java | 0 .../routes/errorhandler/ErrorHandler.java | 0 .../routes/templates/FromRouteTemplates.java | 0 .../integration/service/Connection.java | 0 .../src/test/java/org/assimbly/AppTest.java | 0 integrationModule/pom.xml | 234 - .../src/test/java/org/assimbly/AppTest.java | 20 - {brokerRestModule => integrationRest}/pom.xml | 27 +- .../FlowConfigurerResource.java | 0 .../integrationrest/FlowManagerResource.java | 0 .../integrationrest/IntegrationResource.java | 0 .../MessageManagerResource.java | 0 .../event/FailureListener.java | 0 pom.xml | 295 +- .../src/main/resources/rules.xml => rules.xml | 0 90 files changed, 234 insertions(+), 20566 deletions(-) delete mode 100644 baseComponentsModule/pom.xml delete mode 100644 baseModule/pom.xml delete mode 100644 baseModule/src/main/java/org/assimbly/util/BaseDirectory.java delete mode 100644 baseModule/src/main/java/org/assimbly/util/CertificatesUtil.java delete mode 100644 baseModule/src/main/java/org/assimbly/util/DependencyUtil.java delete mode 100644 baseModule/src/main/java/org/assimbly/util/EncryptionUtil.java delete mode 100644 baseModule/src/main/java/org/assimbly/util/INetUtil.java delete mode 100644 baseModule/src/main/java/org/assimbly/util/IntegrationUtil.java delete mode 100644 baseModule/src/main/java/org/assimbly/util/OSUtil.java delete mode 100644 baseModule/src/main/java/org/assimbly/util/TransformUtil.java delete mode 100644 baseModule/src/main/java/org/assimbly/util/file/DirectoryWatcher.java delete mode 100644 baseModule/src/main/java/org/assimbly/util/helper/Base64Helper.java delete mode 100644 baseModule/src/main/java/org/assimbly/util/helper/CalendarHelper.java delete mode 100644 baseModule/src/main/java/org/assimbly/util/helper/ContextHelper.java delete mode 100644 baseModule/src/main/java/org/assimbly/util/helper/EnvironmentHelper.java delete mode 100644 baseModule/src/main/java/org/assimbly/util/helper/ExchangeHelper.java delete mode 100644 baseModule/src/main/java/org/assimbly/util/helper/Filter.java delete mode 100644 baseModule/src/main/java/org/assimbly/util/helper/PropertiesHelper.java delete mode 100644 baseModule/src/main/java/org/assimbly/util/helper/Service.java delete mode 100644 baseModule/src/main/java/org/assimbly/util/helper/XmlHelper.java delete mode 100644 baseModule/src/main/java/org/assimbly/util/rest/BodyUtil.java delete mode 100644 baseModule/src/main/java/org/assimbly/util/rest/HeaderUtil.java delete mode 100644 baseModule/src/main/java/org/assimbly/util/rest/LogUtil.java delete mode 100644 baseModule/src/main/java/org/assimbly/util/rest/PaginationUtil.java delete mode 100644 baseModule/src/main/java/org/assimbly/util/rest/ResponseUtil.java delete mode 100644 baseModule/src/main/resources/activemq.xml delete mode 100644 baseModule/src/main/resources/activemq.xsd delete mode 100644 baseModule/src/main/resources/artemis-configuration.xsd delete mode 100644 baseModule/src/main/resources/artemis-jms.xsd delete mode 100644 baseModule/src/main/resources/artemis-server.xsd delete mode 100644 baseModule/src/main/resources/broker.xml delete mode 100644 baseModule/src/main/resources/broker.xsd delete mode 100644 baseModule/src/main/resources/integration.xsd delete mode 100644 baseModule/src/main/resources/keystore.jks delete mode 100644 baseModule/src/main/resources/log4j2.xml delete mode 100644 baseModule/src/main/resources/spring-beans.xsd delete mode 100644 baseModule/src/main/resources/test-jgroups-file_ping.xml delete mode 100644 baseModule/src/main/resources/transform-to-assimbly.xsl delete mode 100644 baseModule/src/main/resources/truststore.jks delete mode 100644 baseModule/src/main/resources/xml.xsd rename build_modules.bat => bin/build_modules.bat (100%) create mode 100644 broker/pom.xml rename {brokerModule => broker}/src/main/java/org/assimbly/broker/Broker.java (100%) rename {brokerModule => broker}/src/main/java/org/assimbly/broker/converter/CompositeDataConverter.java (100%) rename {brokerModule => broker}/src/main/java/org/assimbly/broker/decoder/AssimblyCodec.java (100%) rename {brokerModule => broker}/src/main/java/org/assimbly/broker/impl/ActiveMQArtemis.java (100%) rename {brokerModule => broker}/src/main/java/org/assimbly/broker/impl/ActiveMQClassic.java (100%) delete mode 100644 brokerModule/pom.xml rename {integrationRestModule => brokerRest}/pom.xml (72%) rename {brokerRestModule => brokerRest}/src/main/java/org/assimbly/brokerrest/BrokerConfigurerResource.java (100%) rename {brokerRestModule => brokerRest}/src/main/java/org/assimbly/brokerrest/BrokerManagerResource.java (100%) rename {brokerRestModule => brokerRest}/src/main/java/org/assimbly/brokerrest/ManagedBroker.java (100%) rename {brokerRestModule => brokerRest}/src/main/java/org/assimbly/brokerrest/MessageBrokerResource.java (100%) rename {brokerRestModule => brokerRest}/src/main/java/org/assimbly/brokerrest/QueueManagerResource.java (100%) rename {brokerRestModule => brokerRest}/src/main/java/org/assimbly/brokerrest/TopicManagerResource.java (100%) delete mode 100644 extraModule/pom.xml create mode 100644 integration/pom.xml rename {integrationModule => integration}/src/main/java/org/assimbly/integration/Integration.java (100%) rename {integrationModule => integration}/src/main/java/org/assimbly/integration/beans/CustomHttpBinding.java (100%) rename {integrationModule => integration}/src/main/java/org/assimbly/integration/beans/UuidExtensionFunction.java (100%) rename {integrationModule => integration}/src/main/java/org/assimbly/integration/configuration/JSONFileConfiguration.java (100%) rename {integrationModule => integration}/src/main/java/org/assimbly/integration/configuration/XMLFileConfiguration.java (100%) rename {integrationModule => integration}/src/main/java/org/assimbly/integration/configuration/YAMLFileConfiguration.java (100%) rename {integrationModule => integration}/src/main/java/org/assimbly/integration/configuration/marshalling/Marshall.java (100%) rename {integrationModule => integration}/src/main/java/org/assimbly/integration/configuration/marshalling/Unmarshall.java (100%) rename {integrationModule => integration}/src/main/java/org/assimbly/integration/configuration/ssl/SSLConfiguration.java (100%) rename {integrationModule => integration}/src/main/java/org/assimbly/integration/event/EventCollector.java (100%) rename {integrationModule => integration}/src/main/java/org/assimbly/integration/event/FlowEvent.java (100%) rename {integrationModule => integration}/src/main/java/org/assimbly/integration/impl/BaseIntegration.java (100%) rename {integrationModule => integration}/src/main/java/org/assimbly/integration/impl/CamelIntegration.java (100%) rename {integrationModule => integration}/src/main/java/org/assimbly/integration/processors/ConvertProcessor.java (100%) rename {integrationModule => integration}/src/main/java/org/assimbly/integration/processors/FailureProcessor.java (100%) rename {integrationModule => integration}/src/main/java/org/assimbly/integration/processors/HeadersProcessor.java (100%) rename {integrationModule => integration}/src/main/java/org/assimbly/integration/routes/ConnectorRoute.java (100%) rename {integrationModule => integration}/src/main/java/org/assimbly/integration/routes/ESBRoute.java (100%) rename {integrationModule => integration}/src/main/java/org/assimbly/integration/routes/SimpleRoute.java (100%) rename {integrationModule => integration}/src/main/java/org/assimbly/integration/routes/errorhandler/ErrorHandler.java (100%) rename {integrationModule => integration}/src/main/java/org/assimbly/integration/routes/templates/FromRouteTemplates.java (100%) rename {integrationModule => integration}/src/main/java/org/assimbly/integration/service/Connection.java (100%) rename {baseModule => integration}/src/test/java/org/assimbly/AppTest.java (100%) delete mode 100644 integrationModule/pom.xml delete mode 100644 integrationModule/src/test/java/org/assimbly/AppTest.java rename {brokerRestModule => integrationRest}/pom.xml (73%) rename {integrationRestModule => integrationRest}/src/main/java/org/assimbly/integrationrest/FlowConfigurerResource.java (100%) rename {integrationRestModule => integrationRest}/src/main/java/org/assimbly/integrationrest/FlowManagerResource.java (100%) rename {integrationRestModule => integrationRest}/src/main/java/org/assimbly/integrationrest/IntegrationResource.java (100%) rename {integrationRestModule => integrationRest}/src/main/java/org/assimbly/integrationrest/MessageManagerResource.java (100%) rename {integrationRestModule => integrationRest}/src/main/java/org/assimbly/integrationrest/event/FailureListener.java (100%) rename baseModule/src/main/resources/rules.xml => rules.xml (100%) diff --git a/baseComponentsModule/pom.xml b/baseComponentsModule/pom.xml deleted file mode 100644 index da1bd871..00000000 --- a/baseComponentsModule/pom.xml +++ /dev/null @@ -1,183 +0,0 @@ - - - - modules - org.assimbly - 3.7.0 - - 4.0.0 - - baseComponentsModule - - - UTF-8 - 11 - file:///${project.basedir}/../baseModule/src/main/resources/rules.xml - - - - - org.apache.camel - camel-activemq - - - org.apache.camel - camel-amqp - - - org.apache.camel - camel-as2 - - - org.apache.camel - camel-aws2-s3 - - - org.apache.camel - camel-direct - - - org.apache.camel - camel-directvm - - - org.apache.camel - camel-elasticsearch-rest - - - org.apache.camel - camel-file - - - org.apache.camel - camel-ftp - - - org.apache.camel - camel-http - - - org.apache.camel - camel-jetty - - - org.apache.camel - camel-jms - - - org.apache.camel - camel-kafka - - - org.apache.camel - camel-log - - - org.apache.camel - camel-mail - - - org.apache.camel - camel-netty - - - org.apache.camel - camel-netty-http - - - org.apache.camel - camel-quartz - - - org.apache.camel - camel-rest - - - org.apache.camel - camel-rabbitmq - - - org.apache.camel - camel-rest-openapi - - - org.apache.camel - camel-rest-swagger - - - org.apache.camel - camel-scheduler - - - org.apache.camel - camel-seda - - - org.apache.camel - camel-servlet - - - org.apache.camel - camel-sjms - - - org.apache.camel - camel-sjms2 - - - org.apache.camel - camel-sql - - - org.apache.camel - camel-slack - - - org.apache.camel - camel-spring - - - org.apache.camel - camel-stream - - - org.apache.camel - camel-stub - - - org.apache.camel - camel-timer - - - org.apache.camel - camel-undertow - - - org.apache.camel - camel-velocity - - - org.apache.camel - camel-vertx-http - - - org.apache.camel - camel-vm - - - org.apache.camel - camel-websocket - - - org.apache.camel - camel-xslt - - - org.apache.camel - camel-xslt-saxon - - - - \ No newline at end of file diff --git a/baseModule/pom.xml b/baseModule/pom.xml deleted file mode 100644 index 1dadc176..00000000 --- a/baseModule/pom.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - 4.0.0 - - modules - org.assimbly - 3.7.0 - - - jar - org.assimbly - baseModule - 3.7.0 - - baseModule - - http://www.example.com - - - UTF-8 - 11 - file:///${project.basedir}/../baseModule/src/main/resources/rules.xml - - - - - org.apache.camel - camel-base - - - - - - - - org.apache.maven.plugins - maven-toolchains-plugin - - - - toolchain - - - - - 11 - - - - - - - - - - diff --git a/baseModule/src/main/java/org/assimbly/util/BaseDirectory.java b/baseModule/src/main/java/org/assimbly/util/BaseDirectory.java deleted file mode 100644 index eefc04fa..00000000 --- a/baseModule/src/main/java/org/assimbly/util/BaseDirectory.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.assimbly.util; - -import java.io.File; - -public class BaseDirectory { - - private static final BaseDirectory INSTANCE = new BaseDirectory(); - - private volatile String baseDirectory = System.getProperty("user.home") + "/.assimbly"; - - public static BaseDirectory getInstance() { - return INSTANCE; - } - - public String getBaseDirectory() { - return baseDirectory; - } - - public void setBaseDirectory(String baseDirectory) { - File directory = new File(baseDirectory); - if (! directory.exists()){ - directory.mkdirs(); - } - this.baseDirectory = baseDirectory; - } - - //example usage - //BaseDirectory.getInstance().setBaseDirectory(10); - //System.out.println(BaseDirectory.getInstance().getBaseDirectory()); - -} - - diff --git a/baseModule/src/main/java/org/assimbly/util/CertificatesUtil.java b/baseModule/src/main/java/org/assimbly/util/CertificatesUtil.java deleted file mode 100644 index d553b44e..00000000 --- a/baseModule/src/main/java/org/assimbly/util/CertificatesUtil.java +++ /dev/null @@ -1,579 +0,0 @@ -package org.assimbly.util; - -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.math.BigInteger; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.StandardCopyOption; -import java.security.Key; -import java.security.KeyPair; -import java.security.KeyStore; -import java.security.KeyStoreException; -import java.security.NoSuchAlgorithmException; -import java.security.Provider; -import java.security.PublicKey; -import java.security.Security; -import java.security.cert.Certificate; -import java.security.cert.CertificateEncodingException; -import java.security.cert.CertificateException; -import java.security.cert.CertificateFactory; -import java.security.cert.X509Certificate; -import java.time.Duration; -import java.time.Instant; -import java.util.Base64; -import java.util.Calendar; -import java.util.Date; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; -import java.util.regex.Pattern; - -import javax.net.ssl.SSLSession; - -import org.apache.http.HttpResponseInterceptor; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.utils.DateUtils; -import org.apache.http.conn.ManagedHttpClientConnection; -import org.apache.http.conn.ssl.NoopHostnameVerifier; -import org.apache.http.conn.ssl.TrustAllStrategy; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; -import org.apache.http.protocol.BasicHttpContext; -import org.apache.http.protocol.HttpContext; -import org.apache.http.protocol.HttpCoreContext; -import org.apache.http.ssl.SSLContextBuilder; -import org.bouncycastle.asn1.ASN1ObjectIdentifier; -import org.bouncycastle.asn1.oiw.OIWObjectIdentifiers; -import org.bouncycastle.asn1.x500.X500Name; -import org.bouncycastle.asn1.x509.AlgorithmIdentifier; -import org.bouncycastle.asn1.x509.AuthorityKeyIdentifier; -import org.bouncycastle.asn1.x509.BasicConstraints; -import org.bouncycastle.asn1.x509.Extension; -import org.bouncycastle.asn1.x509.SubjectKeyIdentifier; -import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo; -import org.bouncycastle.cert.CertIOException; -import org.bouncycastle.cert.X509ExtensionUtils; -import org.bouncycastle.cert.X509v3CertificateBuilder; -import org.bouncycastle.cert.jcajce.JcaX509CertificateConverter; -import org.bouncycastle.cert.jcajce.JcaX509v3CertificateBuilder; -import org.bouncycastle.jce.provider.BouncyCastleProvider; -import org.bouncycastle.operator.ContentSigner; -import org.bouncycastle.operator.DigestCalculator; -import org.bouncycastle.operator.OperatorCreationException; -import org.bouncycastle.operator.bc.BcDigestCalculatorProvider; -import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public final class CertificatesUtil { - - protected static Logger log = LoggerFactory.getLogger("org.assimbly.connector.util.CertificatesUtil"); - - public static final String PEER_CERTIFICATES = "PEER_CERTIFICATES"; - - public Certificate[] downloadCertificates(String url) throws Exception { - - System.out.println("Start downloading certificates (url=" + url + ")"); - - Certificate[] peercertificates = null; - - // create http response certificate interceptor - HttpResponseInterceptor certificateInterceptor = (httpResponse, context) -> { - ManagedHttpClientConnection routedConnection = (ManagedHttpClientConnection)context.getAttribute(HttpCoreContext.HTTP_CONNECTION); - SSLSession sslSession = routedConnection.getSSLSession(); - if (sslSession != null) { - - // get the server certificates from the {@Link SSLSession} - java.security.cert.Certificate[] certificates = sslSession.getPeerCertificates(); - - // add the certificates to the context, where we can later grab it from - context.setAttribute(PEER_CERTIFICATES, certificates); - } - }; - - CloseableHttpClient httpClient = HttpClients - .custom() - .setSSLContext(new SSLContextBuilder().loadTrustMaterial(null, TrustAllStrategy.INSTANCE).build()) - .setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE) - .addInterceptorLast(certificateInterceptor) - .build(); - - try { - - // make HTTP GET request to resource server - HttpGet httpget = new HttpGet(url); - - System.out.println("Executing request " + httpget.getRequestLine()); - - // create http context where the certificate will be added - HttpContext context = new BasicHttpContext(); - httpClient.execute(httpget, context); - - // obtain the server certificates from the context - peercertificates = (Certificate[])context.getAttribute(PEER_CERTIFICATES); - - if(peercertificates!=null){ - // loop over certificates and print meta-data - for (Certificate certificate : peercertificates){ - X509Certificate real = (X509Certificate) certificate; - System.out.println("----------------------------------------"); - System.out.println("Type: " + real.getType()); - System.out.println("Signing Algorithm: " + real.getSigAlgName()); - System.out.println("IssuerDN Principal: " + real.getIssuerX500Principal()); - System.out.println("SubjectDN Principal: " + real.getSubjectX500Principal()); - System.out.println("Not After: " + DateUtils.formatDate(real.getNotAfter(), "dd-MM-yyyy")); - System.out.println("Not Before: " + DateUtils.formatDate(real.getNotBefore(), "dd-MM-yyyy")); - } - - }else{ - log.error("No certificates found url=" + url + ")"); - } - - } finally { - // close httpclient - httpClient.close(); - } - - return peercertificates; - - } - - - public Certificate getCertificate(String keyStorePath, String keystorePassword, String certificateName) { - - try { - //load keystore - KeyStore keystore = loadKeyStore(keyStorePath, keystorePassword, null); - - Certificate certificate = keystore.getCertificate(certificateName); - - storeKeystore(keyStorePath,keystorePassword,keystore); - - return certificate; - - }catch (KeyStoreException e) { - e.printStackTrace(); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } catch (NoSuchAlgorithmException e) { - e.printStackTrace(); - } catch (CertificateException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } - return null; - - } - - - public String importCertificate(String keyStorePath, String keystorePassword, String certificateName, Certificate certificate) { - - try { - - //load keystore - KeyStore keystore = loadKeyStore(keyStorePath, keystorePassword, null); - - // Add the certificate to the store - X509Certificate real = (X509Certificate) certificate; - System.out.println("----------------------------------------"); - System.out.println("Type: " + real.getType()); - System.out.println("Signing Algorithm: " + real.getSigAlgName()); - System.out.println("IssuerDN Principal: " + real.getIssuerX500Principal()); - System.out.println("SubjectDN Principal: " + real.getSubjectX500Principal()); - System.out.println("Not After: " + DateUtils.formatDate(real.getNotAfter(), "dd-MM-yyyy")); - System.out.println("Not Before: " + DateUtils.formatDate(real.getNotBefore(), "dd-MM-yyyy")); - - keystore.setCertificateEntry(certificateName, certificate); - System.out.println("original alias:" + certificateName); - System.out.println("cert alias" + keystore.getCertificateAlias(certificate)); - - // Save the new keystore contents - storeKeystore(keyStorePath,keystorePassword,keystore); - - }catch (KeyStoreException e) { - e.printStackTrace(); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } catch (NoSuchAlgorithmException e) { - e.printStackTrace(); - } catch (CertificateException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } - - return certificateName; - - } - - public Map importCertificates(String keyStorePath, String keystorePassword, Certificate[] certificates) { - - System.out.println("Importing certificates"); - Map certificateMap = new HashMap(); - - try { - //load keystore - KeyStore keystore = loadKeyStore(keyStorePath, keystorePassword, null); - - // Add the certificate to the store - for (Certificate certificate : certificates){ - X509Certificate real = (X509Certificate) certificate; - System.out.println("----------------------------------------"); - System.out.println("Type: " + real.getType()); - System.out.println("Signing Algorithm: " + real.getSigAlgName()); - System.out.println("IssuerDN Principal: " + real.getIssuerX500Principal()); - System.out.println("SubjectDN Principal: " + real.getSubjectX500Principal()); - System.out.println("Not After: " + DateUtils.formatDate(real.getNotAfter(), "dd-MM-yyyy")); - System.out.println("Not Before: " + DateUtils.formatDate(real.getNotBefore(), "dd-MM-yyyy")); - String alias = UUID.randomUUID().toString(); - certificateMap.put(alias, certificate); - keystore.setCertificateEntry(alias, certificate); - System.out.println("original alias:" + alias); - System.out.println("cert alias" + keystore.getCertificateAlias(certificate)); - - } - - // Save the new keystore contents - storeKeystore(keyStorePath,keystorePassword,keystore); - - }catch (KeyStoreException e) { - e.printStackTrace(); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } catch (NoSuchAlgorithmException e) { - e.printStackTrace(); - } catch (CertificateException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } - - return certificateMap; - } - - public Map importP12Certificate(String keyStorePath, String keystorePassword, String p12Certificate, String p12Password) throws Exception { - - KeyStore jksStore = loadKeyStore(keyStorePath, keystorePassword, null); - - KeyStore p12Store = loadKeystoreFromString(p12Certificate, p12Password, "pkcs12"); - - Enumeration aliases = p12Store.aliases(); - - Map certificateMap = new HashMap(); - - - while (aliases.hasMoreElements()) { - - String alias = (String)aliases.nextElement(); - - if (p12Store.isKeyEntry(alias)) { - System.out.println("Adding key for alias " + alias); - Key key = p12Store.getKey(alias, p12Password.toCharArray()); - - Certificate[] chain = p12Store.getCertificateChain(alias); - - jksStore.setKeyEntry(alias, key, p12Password.toCharArray(), chain); - - for (Certificate certificate : chain){ - certificateMap.put(alias, certificate); - } - - } - } - - storeKeystore(keyStorePath,keystorePassword,jksStore); - - return certificateMap; - - } - - public void deleteCertificate(String keyStorePath, String keystorePassword, String certificateName) { - - try { - //load keystore - KeyStore keystore = loadKeyStore(keyStorePath, keystorePassword,null); - - // Save the new keystore contents - storeKeystore(keyStorePath,keystorePassword,keystore); - - }catch (KeyStoreException e) { - e.printStackTrace(); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } catch (NoSuchAlgorithmException e) { - e.printStackTrace(); - } catch (CertificateException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } catch (Exception e) { - e.printStackTrace(); - } - - } - - - - public static String convertStringToBinary(String input) { - - String bString=""; - String temp=""; - for(int i=0;i resolveDependency(String groupId, String artifactId, String version) throws Exception { - - String dependency = groupId + ":" + artifactId + ":" + version; - - JkDependencySet deps = JkDependencySet.of() - .and(dependency); - - JkDependencyResolver resolver = JkDependencyResolver.of().addRepos(JkRepo.ofMavenCentral()); - List paths = resolver.resolve(deps).getFiles().getEntries(); - - return paths; - - } - - public List loadDependency(List paths) throws Exception { - - List classes = new ArrayList<>(); - - for(Path path: paths){ - - URL url = path.toUri().toURL(); - URLClassLoader child = new URLClassLoader(new URL[] {url}, this.getClass().getClassLoader()); - - ArrayList classNames = getClassNamesFromJar(path.toString()); - - for (String className : classNames) { - Class classToLoad = Class.forName(className, true, child); - classes.add(classToLoad); - } - } - - return classes; - - } - - - // Returns an arraylist of class names in a JarInputStream - private ArrayList getClassNamesFromJar(JarInputStream jarFile) throws Exception { - ArrayList classNames = new ArrayList<>(); - try { - //JarInputStream jarFile = new JarInputStream(jarFileStream); - JarEntry jar; - - //Iterate through the contents of the jar file - while (true) { - jar = jarFile.getNextJarEntry(); - if (jar == null) { - break; - } - //Pick file that has the extension of .class - if ((jar.getName().endsWith(".class"))) { - String className = jar.getName().replaceAll("/", "\\."); - String myClass = className.substring(0, className.lastIndexOf('.')); - classNames.add(myClass); - } - } - } catch (Exception e) { - throw new Exception("Error while getting class names from jar", e); - } - return classNames; - } - - // Returns an arraylist of class names in a JarInputStream - // Calls the above function by converting the jar path to a stream - private ArrayList getClassNamesFromJar(String jarPath) throws Exception { - return getClassNamesFromJar(new JarInputStream(new FileInputStream(jarPath))); - } - - //These component are part of baseComponentsModule - public enum CompiledDependency { - - ACTIVEMQ("activemq"), - ALERIS("aleris"), - AMAZON("amazon"), - AMQP("amqp"), - ARCHIVE("archive"), - AS2("as2"), - AWS2S3("aws2-s3"), - BEAN("bean"), - CONTROLBUS("controlbus"), - CSVTOXML("csvtoxml"), - DATAFORMAT("dataformat"), - DIRECT("direct"), - DIRECTVM("direct-vm"), - EDIFACTDOTWEB("edifact-dotweb"), - EDIFACTSTANDARDS("edifact-standards"), - ELASTICSEARCHREST("elasticsearch-rest"), - ENCODER("encoder"), - EXCELTOXML("exceltoxml"), - FILE("file"), - FLV("flv"), - FMUTA("fmuta"), - FORMTOXML("form2xml"), - FTP("ftp"), - FTPS("ftps"), - HTTP("http"), - HTTPS("https"), - IMAP("imap"), - JMS("jms"), - JETTY("jetty"), - KAFKA("kafka"), - LOG("log"), - NETTY("netty"), - NETTYHTTP("netty-http"), - QUARTZ("quartz"), - POP3("pop3"), - RABBITMQ("rabbitmq"), - REST("rest"), - RESTSOPENAPI("rest-openapi"), - RESTSWAGGER("rest-swagger"), - SANDBOX("sandbox"), - SCHEDULER("scheduler"), - SFTP("sftp"), - SEDA("seda"), - SERVLET("servlet"), - SIMPLEREPLACE("simplereplace"), - SJMS("sjms"), - SJMS2("sjms2"), - SMTP("smtp"), - SONICMQ("sonicmq"), - SQL("sql"), - SOAP("soap"), - SLACK("slack"), - SPRING("spring"), - STREAM("stream"), - STUB("stub"), - TIMER("timer"), - UNDERTOW("undertow"), - VELOCITY("velocity"), - VERTXHTTP("vertx-http"), - VM("vm"), - WEBSOCKET("websocket"), - XMLTOCSV("xmltocsv"), - XMLTOEXCEL("xmltoexcel"), - XSLT("xslt"), - XSLTSAXON("xslt-saxon"), - ; - - private static Map BY_LABEL = new HashMap<>(); - - static { - for (CompiledDependency cd : values()) { - BY_LABEL.put(cd.label, cd); - } - } - - public final String label; - - CompiledDependency(final String label) { - this.label = label; - } - - public static boolean hasCompiledDependency(String label){ - return BY_LABEL.containsKey(label); - } - } - -} \ No newline at end of file diff --git a/baseModule/src/main/java/org/assimbly/util/EncryptionUtil.java b/baseModule/src/main/java/org/assimbly/util/EncryptionUtil.java deleted file mode 100644 index d11abe03..00000000 --- a/baseModule/src/main/java/org/assimbly/util/EncryptionUtil.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.assimbly.util; - -import org.jasypt.encryption.pbe.StandardPBEStringEncryptor; -import org.jasypt.iv.RandomIvGenerator; - -public final class EncryptionUtil { - - private final StandardPBEStringEncryptor textEncryptor = new StandardPBEStringEncryptor(); - public static String key; - public static String algorithm; - - public EncryptionUtil(String password, String algorithm) { - this.textEncryptor.setPassword(password); - this.textEncryptor.setAlgorithm(algorithm); - this.textEncryptor.setIvGenerator(new RandomIvGenerator()); - } - - public StandardPBEStringEncryptor getTextEncryptor() { - return textEncryptor; - } - - public String encrypt(String plainText) { - //if value already encrypted do not encrypt and return - if (plainText.startsWith("ENC(") && plainText.endsWith(")")) { - return plainText; - } - return "ENC(" + this.textEncryptor.encrypt(plainText) + ")"; - } - - public String decrypt(String encryptedText){ - return this.textEncryptor.decrypt(encryptedText); - } - -} - diff --git a/baseModule/src/main/java/org/assimbly/util/INetUtil.java b/baseModule/src/main/java/org/assimbly/util/INetUtil.java deleted file mode 100644 index 69121337..00000000 --- a/baseModule/src/main/java/org/assimbly/util/INetUtil.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.assimbly.util; - -import java.io.IOException; -import java.net.*; - -public class INetUtil { - - public static boolean isInternetAvailable() throws IOException - { - return isHostAvailable("google.com") || isHostAvailable("amazon.com") - || isHostAvailable("facebook.com")|| isHostAvailable("apple.com"); - } - - public static boolean isHostAvailable(String hostName) throws IOException - { - try(Socket socket = new Socket()) - { - int port = 80; - InetSocketAddress socketAddress = new InetSocketAddress(hostName, port); - socket.connect(socketAddress, 3000); - - return true; - } - catch(UnknownHostException unknownHost) - { - return false; - } - } - -} diff --git a/baseModule/src/main/java/org/assimbly/util/IntegrationUtil.java b/baseModule/src/main/java/org/assimbly/util/IntegrationUtil.java deleted file mode 100644 index a737cb27..00000000 --- a/baseModule/src/main/java/org/assimbly/util/IntegrationUtil.java +++ /dev/null @@ -1,330 +0,0 @@ -package org.assimbly.util; - -import java.io.IOException; -import java.io.StringReader; -import java.net.InetSocketAddress; -import java.net.Socket; -import java.net.SocketAddress; -import java.net.SocketTimeoutException; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.TreeMap; -import java.util.Optional; -import java.util.stream.Collectors; - -import org.apache.camel.spi.Resource; -import org.apache.camel.support.ResourceHelper; -import org.apache.commons.configuration2.XMLConfiguration; -import org.apache.commons.configuration2.ex.ConfigurationException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.net.URL; - -import org.xml.sax.SAXException; -import org.xml.sax.InputSource; - -import javax.xml.XMLConstants; -import javax.xml.transform.Source; -import javax.xml.transform.stream.StreamSource; -import javax.xml.validation.*; - -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; - -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParserFactory; - - -public final class IntegrationUtil { - - protected static Logger log = LoggerFactory.getLogger("org.assimbly.util.IntegrationUtil"); - - public static boolean isValidUri(String name) throws Exception { - try { - URI uri = new URI(name); - - if(uri.getScheme() == null){ - return false; - }else{ - return true; - } - - } catch (URISyntaxException e) { - return false; - } - - } - - public static boolean isYaml(String yaml){ - try { - final ObjectMapper mapper = new ObjectMapper(new YAMLFactory()); - mapper.readTree(yaml); - return true; - } catch (IOException e) { - return false; - } - } - - public static boolean isJson(String json){ - try { - final ObjectMapper mapper = new ObjectMapper(); - mapper.readTree(json); - return true; - } catch (IOException e) { - return false; - } - } - - public static boolean isXML(String xml) { - try { - SAXParserFactory.newInstance().newSAXParser().getXMLReader().parse(new InputSource(new StringReader(xml))); - return true; - } catch (ParserConfigurationException | SAXException | IOException ex) { - return false; - } - } - - public static String isValidXML(URL schemaFile, String xml) { - - String result = null; - - Source xmlFile = new StreamSource(new StringReader(xml)); - SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); - try { - Schema schema = schemaFactory.newSchema(schemaFile); - Validator validator = schema.newValidator(); - validator.validate(xmlFile); - result = "xml is valid"; - } catch (SAXException e) { - result = "xml is NOT valid. Reason:" + e; - } catch (IOException e) {} - - return result; - - } - - public static Resource setResource(String route){ - if(IntegrationUtil.isXML(route)){ - return ResourceHelper.fromString("route.xml", route); - }else if(IntegrationUtil.isYaml(route)){ - return ResourceHelper.fromString("route.yaml", route); - }else{ - log.warn("unknown route format"); - return ResourceHelper.fromString("route.xml", route); - } - } - - - @SuppressWarnings("resource") - public static String testConnection(String host, int port, int timeOut) { - - SocketAddress socketAddress = new InetSocketAddress(host, port); - Socket socket = new Socket(); - timeOut = timeOut * 1000; - - try { - socket.connect(socketAddress, timeOut); - } catch (SocketTimeoutException stex) { - return "Connection error: Timed out"; - } catch (IOException ioException) { - return "Connection error: IOException"; - } finally { - try { - socket.close(); - } catch (IOException ioException2) { - return "Connection error: Can't close connection." + ioException2.getMessage(); - } - } - - return "Connection succesful"; - } - - - public static List getXMLParameters(XMLConfiguration conf, String prefix) throws ConfigurationException { - - Iterator keys; - - if(prefix == null || prefix.isEmpty()){ - keys = conf.getKeys(); - }else{ - keys = conf.getKeys(prefix); - } - - List keyList = new ArrayList(); - - while(keys.hasNext()){ - keyList.add(keys.next()); - } - - return keyList; - } - - - - - public static void printTreemap(TreeMap treeMap) throws Exception { - - Map id = treeMap.entrySet() - .stream() - .filter(map -> map.getKey().equals("id")) - .collect(Collectors.toMap(map -> map.getKey(), map -> Optional.ofNullable(map.getValue()).orElse(""))); - - Map flow = treeMap.entrySet() - .stream() - .filter(map -> map.getKey().startsWith("flow")) - .collect(Collectors.toMap(map -> map.getKey(), map -> Optional.ofNullable(map.getValue()).orElse(""))); - - Map from = treeMap.entrySet() - .stream() - .filter(map -> map.getKey().startsWith("from")) - .collect(Collectors.toMap(map -> map.getKey(), map -> Optional.ofNullable(map.getValue()).orElse(""))); - - Map to = treeMap.entrySet() - .stream() - .filter(map -> map.getKey().startsWith("to")) - .collect(Collectors.toMap(map -> map.getKey(), map -> Optional.ofNullable(map.getValue()).orElse(""))); - - Map response = treeMap.entrySet() - .stream() - .filter(map -> map.getKey().startsWith("response")) - .collect(Collectors.toMap(map -> map.getKey(), map -> Optional.ofNullable(map.getValue()).orElse(""))); - - Map error = treeMap.entrySet() - .stream() - .filter(map -> map.getKey().startsWith("error")) - .collect(Collectors.toMap(map -> map.getKey(), map -> Optional.ofNullable(map.getValue()).orElse(""))); - - Map header = treeMap.entrySet() - .stream() - .filter(map -> map.getKey().startsWith("header")) - .collect(Collectors.toMap(map -> map.getKey(), map -> Optional.ofNullable(map.getValue()).orElse(""))); - - Map service = treeMap.entrySet() - .stream() - .filter(map -> map.getKey().startsWith("service")) - .collect(Collectors.toMap(map -> map.getKey(), map -> Optional.ofNullable(map.getValue()).orElse(""))); - - Map route = treeMap.entrySet() - .stream() - .filter(map -> map.getKey().startsWith("route")) - .collect(Collectors.toMap(map -> map.getKey(), map -> Optional.ofNullable(map.getValue()).orElse(""))); - - System.out.println(""); - System.out.println("FLOW CONFIGURATION"); - System.out.println("-----------------------------------------------------------\n"); - - for(Map.Entry entry : id.entrySet()) { - - String key = entry.getKey(); - String value = entry.getValue(); - System.out.printf("%-30s %s\n", key + ":", value); - - } - - for(Map.Entry entry : flow.entrySet()) { - - String key = entry.getKey(); - String value = entry.getValue(); - System.out.printf("%-30s %s\n", key + ":", value); - - } - - if(!from.isEmpty()) { - - System.out.println("\nENDPOINTS\n"); - - for(Map.Entry entry : from.entrySet()) { - - String key = entry.getKey(); - String value = entry.getValue(); - System.out.printf("%-30s %s\n", key + ":", value); - - } - - } - - for(Map.Entry entry : to.entrySet()) { - - String key = entry.getKey(); - String value = entry.getValue(); - System.out.printf("%-30s %s\n", key + ":", value); - - } - - if(!response.isEmpty()) { - for (Map.Entry entry : response.entrySet()) { - - String key = entry.getKey(); - String value = entry.getValue(); - System.out.printf("%-30s %s\n", key + ":", value); - - } - } - - for(Map.Entry entry : error.entrySet()) { - - String key = entry.getKey(); - String value = entry.getValue(); - System.out.printf("%-30s %s\n", key + ":", value); - - } - - if(!header.isEmpty()) { - - System.out.println("\nHEADERS\n"); - - for(Map.Entry entry : header.entrySet()) { - - String key = entry.getKey(); - String value = entry.getValue(); - if(key.contains("password")) - System.out.printf("%-30s %s\n", key + ":", "***********"); - else { - System.out.printf("%-30s %s\n", key + ":", value); - } - - } - } - - if(!service.isEmpty()) { - - System.out.println("\nSERVICES\n"); - - for(Map.Entry entry : service.entrySet()) { - - String key = entry.getKey(); - String value = entry.getValue(); - if(key.contains("password")) - System.out.printf("%-30s %s\n", key + ":", "***********"); - else { - System.out.printf("%-30s %s\n", key + ":", value); - } - - } - } - - if(!route.isEmpty()) { - - System.out.println("\nROUTES\n"); - - for(Map.Entry entry : route.entrySet()) { - String key = entry.getKey(); - String value = entry.getValue(); - if(key.endsWith("route")) - System.out.printf("%-30s \n\n%s\n", key + ":", value); - else { - System.out.printf("%-30s %s\n", key + ":", value); - } - } - } - - System.out.println("-----------------------------------------------------------\n"); - - } - -} diff --git a/baseModule/src/main/java/org/assimbly/util/OSUtil.java b/baseModule/src/main/java/org/assimbly/util/OSUtil.java deleted file mode 100644 index 109fe92c..00000000 --- a/baseModule/src/main/java/org/assimbly/util/OSUtil.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.assimbly.util; - -public class OSUtil { - public enum OS { - WINDOWS, LINUX, MAC, SOLARIS - };// Operating systems. - - private static OS os = null; - - public static OS getOS() { - if (os == null) { - String operSys = System.getProperty("os.name").toLowerCase(); - if (operSys.contains("win")) { - os = OS.WINDOWS; - } else if (operSys.contains("nix") || operSys.contains("nux") - || operSys.contains("aix")) { - os = OS.LINUX; - } else if (operSys.contains("mac")) { - os = OS.MAC; - } else if (operSys.contains("sunos")) { - os = OS.SOLARIS; - } - } - return os; - } -} \ No newline at end of file diff --git a/baseModule/src/main/java/org/assimbly/util/TransformUtil.java b/baseModule/src/main/java/org/assimbly/util/TransformUtil.java deleted file mode 100644 index fe28455d..00000000 --- a/baseModule/src/main/java/org/assimbly/util/TransformUtil.java +++ /dev/null @@ -1,159 +0,0 @@ -package org.assimbly.util; - -import java.io.InputStream; -import java.io.StringReader; -import java.io.StringWriter; - -import java.util.HashMap; -import java.util.Map; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import org.w3c.dom.Node; - -import javax.xml.transform.*; -import javax.xml.transform.stream.StreamResult; -import javax.xml.transform.stream.StreamSource; -import javax.xml.transform.dom.DOMSource; - - -public final class TransformUtil { - - protected static Logger log = LoggerFactory.getLogger("org.assimbly.util.TransformUtil"); - - public static String convertCamelToAssimblyFormat(String xml){ - - //convert camel2 to camel3 - xml = camel2ToCamel3(xml); - - ClassLoader classloader = Thread.currentThread().getContextClassLoader(); - InputStream is = classloader.getResourceAsStream("transform-to-assimbly.xsl"); - - //transform to Assimbly format - xml = transformXML(xml,is); - - return xml; - } - - private static String camel2ToCamel3(String input){ - - Map map = new HashMap<>(); - - map.put("xmlns=\"http://camel.apache.org/schema/blueprint\"",""); - map.put("consumer.bridgeErrorHandler","bridgeErrorHandler"); - map.put("headerName","name"); - map.put("propertyName","name"); - map.put("\"velocity:generate\"","\"velocity:generate?allowTemplateFromHeader=true\""); - map.put("xslt:","xslt-saxon:"); - map.put("&saxon=true",""); - map.put("?saxon=true\"",""); - map.put("?saxon=true&","?"); - map.put("xml2excel","xmltoexcel"); - map.put("excel2xml","exceltoxml"); - map.put("csv2xml","csvtoxml"); - map.put("global-variables","globalvariables"); - map.put(" replacements, boolean caseSensitive) { - if(target == null || "".equals(target) || replacements == null || replacements.size() == 0) - return target; - - //if we are doing case-insensitive replacements, we need to make the map case-insensitive--make a new map with all-lower-case keys - if(!caseSensitive) { - Map altReplacements = new HashMap(replacements.size()); - for(String key : replacements.keySet()) - altReplacements.put(key.toLowerCase(), replacements.get(key)); - - replacements = altReplacements; - } - - StringBuilder patternString = new StringBuilder(); - if(!caseSensitive) - patternString.append("(?i)"); - - patternString.append('('); - boolean first = true; - for(String key : replacements.keySet()) { - if(first) - first = false; - else - patternString.append('|'); - - patternString.append(Pattern.quote(key)); - } - patternString.append(')'); - - Pattern pattern = Pattern.compile(patternString.toString()); - Matcher matcher = pattern.matcher(target); - - StringBuffer res = new StringBuffer(); - while(matcher.find()) { - String match = matcher.group(1); - if(!caseSensitive) - match = match.toLowerCase(); - matcher.appendReplacement(res, replacements.get(match)); - } - matcher.appendTail(res); - - return res.toString(); - } - - public static String nodeToString(Node node) { - - StringWriter sw = new StringWriter(); - - try { - Transformer t = TransformerFactory.newInstance().newTransformer(); - t.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); - t.setOutputProperty(OutputKeys.INDENT, "yes"); - t.transform(new DOMSource(node), new StreamResult(sw)); - } catch (TransformerException te) { - log.error("NodeToString Transformer Exception: " + te); - } - - return sw.toString(); - - } -} \ No newline at end of file diff --git a/baseModule/src/main/java/org/assimbly/util/file/DirectoryWatcher.java b/baseModule/src/main/java/org/assimbly/util/file/DirectoryWatcher.java deleted file mode 100644 index e76838aa..00000000 --- a/baseModule/src/main/java/org/assimbly/util/file/DirectoryWatcher.java +++ /dev/null @@ -1,204 +0,0 @@ -package org.assimbly.util.file; - -import org.assimbly.util.helper.Filter; -import org.assimbly.util.helper.Service; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.IOException; -import java.nio.file.*; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.Future; - -import static java.nio.file.StandardWatchEventKinds.*; - -public class DirectoryWatcher implements Runnable, Service { - - protected Logger log = LoggerFactory.getLogger(getClass()); - - public enum Event { - ENTRY_CREATE, - ENTRY_MODIFY, - ENTRY_DELETE - } - - private static final Map, Event> EVENT_MAP = - new HashMap, Event>() {{ - put(ENTRY_CREATE, Event.ENTRY_CREATE); - put(ENTRY_MODIFY, Event.ENTRY_MODIFY); - put(ENTRY_DELETE, Event.ENTRY_DELETE); - }}; - - private ExecutorService mExecutor; - private Future mWatcherTask; - - private final Set mWatched; - private final boolean mPreExistingAsCreated; - private final Listener mListener; - private final Filter mFilter; - - public DirectoryWatcher(Builder builder) { - mWatched = builder.mWatched; - mPreExistingAsCreated = builder.mPreExistingAsCreated; - mListener = builder.mListener; - mFilter = builder.mFilter; - } - - @SuppressWarnings("unchecked") - private static WatchEvent cast(WatchEvent event) { - return (WatchEvent) event; - } - - @Override - public void start() throws Exception { - mExecutor = Executors.newSingleThreadExecutor(); - mWatcherTask = mExecutor.submit(this); - } - - @Override - public void stop() { - mWatcherTask.cancel(true); - mWatcherTask = null; - mExecutor.shutdown(); - mExecutor = null; - } - - @Override - public void run() { - WatchService watchService; - try { - watchService = FileSystems.getDefault().newWatchService(); - } catch (IOException ioe) { - throw new RuntimeException("Exception while creating watch service.", ioe); - } - Map watchKeyToDirectory = new HashMap<>(); - - for (Path dir : mWatched) { - try { - if (mPreExistingAsCreated) { - try (DirectoryStream stream = Files.newDirectoryStream(dir)) { - for (Path path : stream) { - if (mFilter.accept(path)) { - mListener.onEvent(Event.ENTRY_CREATE, dir.resolve(path)); - } - } - } - } - - WatchKey key = dir.register(watchService, ENTRY_CREATE, ENTRY_MODIFY, ENTRY_DELETE); - watchKeyToDirectory.put(key, dir); - } catch (IOException ioe) { - log.error("Not watching '{}'.", dir, ioe); - } - } - - while (true) { - if (Thread.interrupted()) { - log.info("Directory watcher thread interrupted."); - break; - } - - WatchKey key; - try { - key = watchService.take(); - } catch (InterruptedException ie) { - Thread.currentThread().interrupt(); - continue; - } - - Path dir = watchKeyToDirectory.get(key); - if (dir == null) { - log.warn("Watch key not recognized."); - continue; - } - - for (WatchEvent event : key.pollEvents()) { - if (event.kind().equals(OVERFLOW)) { - break; - } - - WatchEvent pathEvent = cast(event); - WatchEvent.Kind kind = pathEvent.kind(); - - Path path = dir.resolve(pathEvent.context()); - try { - if (mFilter.accept(path) && EVENT_MAP.containsKey(kind)) { - if (event.kind().equals(ENTRY_DELETE)) { - mListener.onEvent(EVENT_MAP.get(kind), path); - }else if(Files.exists(path) && Files.size(path)> 0 && path.toString().toLowerCase().endsWith(".xml")){ - mListener.onEvent(EVENT_MAP.get(kind), path); - } - } - } catch (IOException ie) { - log.error("Not watching '{}'.", dir, ie); - } - } - - boolean valid = key.reset(); - if (!valid) { - watchKeyToDirectory.remove(key); - log.warn("'{}' is inaccessible. Stopping watch.", dir); - if (watchKeyToDirectory.isEmpty()) { - break; - } - } - } - } - - public interface Listener { - void onEvent(Event event, Path path); - } - - public static class Builder { - - private static final Filter NO_FILTER = path -> true; - - private Set mWatched = new HashSet<>(); - private boolean mPreExistingAsCreated = false; - private Filter mFilter = NO_FILTER; - private Listener mListener; - - public Builder addDirectories(String dirPath) { - return addDirectories(Paths.get(dirPath)); - } - - public Builder addDirectories(Path dirPath) { - mWatched.add(dirPath); - return this; - } - - public Builder addDirectories(Path... dirPaths) { - for (Path dirPath : dirPaths) { - mWatched.add(dirPath); - } - return this; - } - - public Builder addDirectories(Iterable dirPaths) { - for (Path dirPath : dirPaths) { - mWatched.add(dirPath); - } - return this; - } - - public Builder setPreExistingAsCreated(boolean value) { - mPreExistingAsCreated = value; - return this; - } - - public Builder setFilter(Filter filter) { - mFilter = filter; - return this; - } - - public DirectoryWatcher build(Listener listener) { - mListener = listener; - return new DirectoryWatcher(this); - } - } -} \ No newline at end of file diff --git a/baseModule/src/main/java/org/assimbly/util/helper/Base64Helper.java b/baseModule/src/main/java/org/assimbly/util/helper/Base64Helper.java deleted file mode 100644 index 28ecfa4d..00000000 --- a/baseModule/src/main/java/org/assimbly/util/helper/Base64Helper.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.assimbly.util.helper; - -import org.apache.commons.codec.binary.Base64; - -import java.nio.charset.Charset; - -public final class Base64Helper { - - private Base64Helper() {} - - public static String unmarshal(String base64, Charset charset) { - byte[] decoded = Base64.decodeBase64(base64); - - return new String(decoded, charset); - } - - public static byte[] unmarshal(String base64) { - return Base64.decodeBase64(base64); - } - - public static String marshal(String string){ - byte[] encoded = Base64.encodeBase64(string.getBytes()); - return new String(encoded); - } - - public static String marshal(byte[] bytes){ - byte[] encoded = Base64.encodeBase64(bytes); - return new String(encoded); - } - - public static String marshal(byte[] bytes, Charset charset){ - byte[] encoded = Base64.encodeBase64(bytes); - return new String(encoded, charset); - } - - public static String marshal(char[] bytes){ - byte[] encoded = Base64.encodeBase64(new String(bytes).getBytes()); - return new String(encoded); - } -} diff --git a/baseModule/src/main/java/org/assimbly/util/helper/CalendarHelper.java b/baseModule/src/main/java/org/assimbly/util/helper/CalendarHelper.java deleted file mode 100644 index 1fce196a..00000000 --- a/baseModule/src/main/java/org/assimbly/util/helper/CalendarHelper.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.assimbly.util.helper; - -import java.util.Calendar; - -public class CalendarHelper { - - private static String[] months = { "January", "February", "March", "April", "May", "June", "July", - "August", "September", "October", "November", "December" }; - - public static String getCurrentMonth(){ - int currentIndex = Calendar.getInstance().get(Calendar.MONTH); - return getMonthString(currentIndex); - } - - public static String getMonthString(int monthIndex){ - return months[monthIndex]; - } -} diff --git a/baseModule/src/main/java/org/assimbly/util/helper/ContextHelper.java b/baseModule/src/main/java/org/assimbly/util/helper/ContextHelper.java deleted file mode 100644 index 6e49aba0..00000000 --- a/baseModule/src/main/java/org/assimbly/util/helper/ContextHelper.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.assimbly.util.helper; - -public final class ContextHelper { - - private static final String FLOW_ID_PREFIX = "ID_"; - - public ContextHelper() {} - - public static String getFlowId(String contextName){ - return contextName.split(FLOW_ID_PREFIX)[1]; - } -} diff --git a/baseModule/src/main/java/org/assimbly/util/helper/EnvironmentHelper.java b/baseModule/src/main/java/org/assimbly/util/helper/EnvironmentHelper.java deleted file mode 100644 index 89b51ca0..00000000 --- a/baseModule/src/main/java/org/assimbly/util/helper/EnvironmentHelper.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.assimbly.util.helper; - -public class EnvironmentHelper { - - public static boolean isTest() { - return "true".equals(System.getProperty("isTest?")); - } -} diff --git a/baseModule/src/main/java/org/assimbly/util/helper/ExchangeHelper.java b/baseModule/src/main/java/org/assimbly/util/helper/ExchangeHelper.java deleted file mode 100644 index 238ce186..00000000 --- a/baseModule/src/main/java/org/assimbly/util/helper/ExchangeHelper.java +++ /dev/null @@ -1,61 +0,0 @@ -package org.assimbly.util.helper; - -import org.apache.camel.Exchange; - -import java.util.Arrays; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public final class ExchangeHelper { - - private static final String HEADER_VARIABLE_REGEX = "\\$\\{header(?:s)?\\.(.+?)}"; - private static final String BODY_VARIABLE_REGEX = "\\$\\{body}"; - - public static boolean hasVariables(String string){ - return (Pattern.compile(HEADER_VARIABLE_REGEX).matcher(string).find() || Pattern.compile(BODY_VARIABLE_REGEX).matcher(string).find()); - } - private ExchangeHelper() {} - - public static String interpolate(String text, Exchange exchange){ - if(text == null) - return null; - - for(String regex : Arrays.asList(HEADER_VARIABLE_REGEX, BODY_VARIABLE_REGEX)){ - text = replaceVariables(text, exchange, regex); - } - - return text; - } - - private static String replaceVariables(String text, Exchange exchange, String regex) { - StringBuffer stringBuffer = new StringBuffer(); - Matcher m = Pattern.compile(regex).matcher(text); - while(m.find()) { - String value = null; - switch (regex) { - case HEADER_VARIABLE_REGEX: - value = exchange.getIn().getHeader(m.group(1), String.class); - break; - case BODY_VARIABLE_REGEX: - value = exchange.getIn().getBody(String.class); - break; - } - if(value != null) { - value = escapeDollarSign(value); - m.appendReplacement(stringBuffer, unescapeExceptionalCharacters(value)); - } - } - m.appendTail(stringBuffer); - return stringBuffer.toString(); - } - - public static String unescapeExceptionalCharacters(String str) { - return str.replaceAll("\\\\n", "\n") - .replaceAll("\\\\t", "\t") - .replaceAll("\\\\r", "\r"); - } - - static String escapeDollarSign(String str) { - return str.replace("$", "\\$"); - } -} diff --git a/baseModule/src/main/java/org/assimbly/util/helper/Filter.java b/baseModule/src/main/java/org/assimbly/util/helper/Filter.java deleted file mode 100644 index d267a1da..00000000 --- a/baseModule/src/main/java/org/assimbly/util/helper/Filter.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.assimbly.util.helper; - -@FunctionalInterface -public interface Filter { - - /** - * Returns true if element e is accepted by this filter, else false. - * @param e The element. - * @return true if element e is accepted by this filter, else false. - */ - boolean accept(E e); -} \ No newline at end of file diff --git a/baseModule/src/main/java/org/assimbly/util/helper/PropertiesHelper.java b/baseModule/src/main/java/org/assimbly/util/helper/PropertiesHelper.java deleted file mode 100644 index 1fe094eb..00000000 --- a/baseModule/src/main/java/org/assimbly/util/helper/PropertiesHelper.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.assimbly.util.helper; - -import java.io.IOException; -import java.io.InputStream; -import java.util.Properties; -import java.util.logging.Level; -import java.util.logging.Logger; - -public final class PropertiesHelper { - - private static final String FILE_NAME = "config.properties"; - - private PropertiesHelper() { - //Static class cannot be instantiated. - } - - /** - * Get a property by its key from the module's config file. - * - * @param key to get the property by. - * @return the found property. - */ - public static String getProperty(String key) { - try { - Properties props = loadProperties(FILE_NAME); - return props.getProperty(key); - } catch (IOException e) { - Logger.getLogger(PropertiesHelper.class.getName()).log(Level.SEVERE, null, e); - } - - return ""; - } - - /** - * Load the contents of the module's config file into a properties object. - * - * @param fileName to get the config file by. - * @return a Properties object representing all the properties. - * @throws IOException when something went wrong while loading the file. - */ - private static Properties loadProperties(String fileName) throws IOException { - ClassLoader loader = PropertiesHelper.class.getClassLoader(); - - InputStream resourceStream = loader.getResourceAsStream(fileName); - - Properties props = new Properties(); - props.load(resourceStream); - - return props; - } - -} \ No newline at end of file diff --git a/baseModule/src/main/java/org/assimbly/util/helper/Service.java b/baseModule/src/main/java/org/assimbly/util/helper/Service.java deleted file mode 100644 index d1d2893e..00000000 --- a/baseModule/src/main/java/org/assimbly/util/helper/Service.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.assimbly.util.helper; -/** - * Interface definition for services. - */ -public interface Service { - /** - * Starts the service. This method blocks until the service has completely started. - */ - void start() throws Exception; - - /** - * Stops the service. This method blocks until the service has completely shut down. - */ - void stop(); -} \ No newline at end of file diff --git a/baseModule/src/main/java/org/assimbly/util/helper/XmlHelper.java b/baseModule/src/main/java/org/assimbly/util/helper/XmlHelper.java deleted file mode 100644 index 3ca9314f..00000000 --- a/baseModule/src/main/java/org/assimbly/util/helper/XmlHelper.java +++ /dev/null @@ -1,150 +0,0 @@ -package org.assimbly.util.helper; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.transform.OutputKeys; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerException; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.stream.StreamResult; -import java.io.IOException; -import java.io.StringReader; -import java.io.StringWriter; -import java.util.ArrayList; -import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public final class XmlHelper { - - protected static final Logger log = LoggerFactory.getLogger(XmlHelper.class); - - public static final String validXmlRegex = "[^A-z0-9_.\\-]|^(xml|[\\-0-9\\.])+"; - - public static Document newDocument(){ - DocumentBuilderFactory icFactory; - DocumentBuilder icBuilder; - - try { - icFactory = DocumentBuilderFactory.newInstance(); - icBuilder = icFactory.newDocumentBuilder(); - - return icBuilder.newDocument(); - } catch (ParserConfigurationException e) { - log.error(e.getMessage(), e); - } - - return null; - } - - public static Document newDocument(String xml){ - if(xml == null) { - return null; - } - - DocumentBuilderFactory icFactory; - DocumentBuilder icBuilder; - - try { - icFactory = DocumentBuilderFactory.newInstance(); - icBuilder = icFactory.newDocumentBuilder(); - - return icBuilder.parse( - new InputSource(new StringReader(xml)) - ); - } catch (SAXException | IOException | ParserConfigurationException e) { - log.error(e.getMessage(), e); - } - - return null; - } - - public static List getChildrenByTagName(Element parent, String name) { - List nodeList = new ArrayList(); - for (Node child = parent.getFirstChild(); child != null; child = child.getNextSibling()) { - if (child.getNodeType() == Node.ELEMENT_NODE && - name.equals(child.getNodeName())) { - nodeList.add((Element) child); - } - } - - return nodeList; - } - - - public static Document mergeIn(Document original, Document addition) { - Node copy = original.importNode(addition.getFirstChild(), true); - - original.getFirstChild().appendChild(copy); - - return original; - } - - public static String prettyPrint(Node doc) { - Transformer transformer; - StreamResult result = new StreamResult(new StringWriter()); - - try { - transformer = TransformerFactory.newInstance().newTransformer(); - transformer.setOutputProperty(OutputKeys.INDENT, "yes"); - transformer.setOutputProperty(OutputKeys.METHOD, "xml"); - transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2"); - - transformer.transform(new DOMSource(doc), result); - } catch (TransformerException e) { - log.error(e.getMessage(), e); - } - - return result.getWriter().toString(); - } - - public static String prettyPrint(String xml){ - Document doc = null; - - try { - DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); - doc = db.parse(new InputSource(new StringReader(xml))); - } catch (ParserConfigurationException | SAXException | IOException e) { - log.error(e.getMessage(), e); - } - - return prettyPrint(doc); - } - - public static String prettyPrintWithPossibleException(String xml) throws Exception { - Document doc = null; - DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); - doc = db.parse(new InputSource(new StringReader(xml))); - - return prettyPrint(doc); - } - - public static boolean hasInvalidXml(String input) { - Pattern pattern = Pattern.compile(validXmlRegex); - Matcher matcher = pattern.matcher(input); - return matcher.find(); - } - - public static String fixInvalidXml(String input) { - String result = input; - - while (hasInvalidXml(result)) { - result = result.replaceAll(validXmlRegex, ""); - - if (result.isEmpty()) - result = "element-" + input; - } - - return result; - } -} diff --git a/baseModule/src/main/java/org/assimbly/util/rest/BodyUtil.java b/baseModule/src/main/java/org/assimbly/util/rest/BodyUtil.java deleted file mode 100644 index 7f1bb823..00000000 --- a/baseModule/src/main/java/org/assimbly/util/rest/BodyUtil.java +++ /dev/null @@ -1,82 +0,0 @@ -package org.assimbly.util.rest; - -import org.json.JSONObject; -import org.json.XML; - -import java.sql.Timestamp; - -/** - * Utility class for HTTP body creation. - */ -public final class BodyUtil { - - private BodyUtil() { - } - - public static String createSuccessJSONResponse(Long id, String path, String message) throws Exception { - - JSONObject responseBody = new JSONObject(); - responseBody.put("id", id.toString()); - responseBody.put("timestamp", new Timestamp(System.currentTimeMillis())); - responseBody.put("status", 200); - responseBody.put("details", "succesful"); - responseBody.put("path", path); - responseBody.put("message", message); - - return responseBody.toString(); - - } - - public static String createFailureJSONResponse(Long id, String path, String message) throws Exception { - - JSONObject responseBody = new JSONObject(); - responseBody.put("id", id.toString()); - responseBody.put("timestamp", new Timestamp(System.currentTimeMillis())); - responseBody.put("status", 400); - responseBody.put("details", "failed. See the log for a complete stack trace"); - responseBody.put("path", path); - responseBody.put("message", message); - - return responseBody.toString(); - - } - - public static String createSuccessXMLResponse(Long id, String path, String message) throws Exception { - - JSONObject responseBody = new JSONObject(); - responseBody.put("id", id.toString()); - responseBody.put("timestamp", new Timestamp(System.currentTimeMillis())); - responseBody.put("status", 200); - responseBody.put("details", "succesful"); - responseBody.put("path", path); - responseBody.put("message", message); - - String responseBodyXml = ""+ System.lineSeparator() + XML.toString(responseBody) + System.lineSeparator() + ""; - - return responseBodyXml; - } - - public static String createFailureXMLResponse(Long id, String path, String message) throws Exception { - - JSONObject responseBody = new JSONObject(); - responseBody.put("id", id.toString()); - responseBody.put("timestamp", new Timestamp(System.currentTimeMillis())); - responseBody.put("status", 400); - responseBody.put("details", "failed. See the log for a complete stack trace"); - responseBody.put("path", path); - responseBody.put("message", message); - - String responseBodyXml = "" + System.lineSeparator() + XML.toString(responseBody) + System.lineSeparator() + ""; - - return responseBodyXml; - } - - public static String createSuccessTEXTResponse(String message) throws Exception { - return message; - } - - public static String createFailureTEXTResponse(String message) throws Exception { - return message; - } - -} diff --git a/baseModule/src/main/java/org/assimbly/util/rest/HeaderUtil.java b/baseModule/src/main/java/org/assimbly/util/rest/HeaderUtil.java deleted file mode 100644 index 33709a59..00000000 --- a/baseModule/src/main/java/org/assimbly/util/rest/HeaderUtil.java +++ /dev/null @@ -1,74 +0,0 @@ -package org.assimbly.util.rest; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.http.HttpHeaders; - -/** - * Utility class for HTTP headers creation. - */ -public final class HeaderUtil { - - private static final Logger log = LoggerFactory.getLogger(HeaderUtil.class); - - private static final String APPLICATION_NAME = "gatewayApp"; - - private HeaderUtil() { - } - - public static HttpHeaders createAlert(String message, String param) { - HttpHeaders headers = new HttpHeaders(); - headers.add("X-" + APPLICATION_NAME + "-alert", message); - headers.add("X-" + APPLICATION_NAME + "-params", param); - return headers; - } - - public static HttpHeaders createEntityCreationAlert(String entityName, String param) { - return createAlert("A new " + entityName + " is created with identifier " + param, param); - } - - public static HttpHeaders createEntityUpdateAlert(String entityName, String param) { - return createAlert("A " + entityName + " is updated with identifier " + param, param); - } - - public static HttpHeaders createEntityDeletionAlert(String entityName, String param) { - return createAlert("A " + entityName + " is deleted with identifier " + param, param); - } - - public static HttpHeaders createStartAlert(String param) { - return createAlert("Started flow " + param, param); - } - - public static HttpHeaders createRestartAlert(String param) { - return createAlert("Restarted " + param, param); - } - - public static HttpHeaders createStopAlert(String param) { - return createAlert("Stopped flow " + param, param); - } - - public static HttpHeaders createPauseAlert(String param) { - return createAlert("Paused flow " + param, param); - } - - public static HttpHeaders createResumeAlert(String param) { - return createAlert("Route " + param + " resumes", param); - } - - public static HttpHeaders flowFailureAlert(String flowName, String errorKey, String defaultMessage) { - log.error("Entity processing failed, {}", defaultMessage); - HttpHeaders headers = new HttpHeaders(); - headers.add("X-gatewayApp-error", defaultMessage); - headers.add("X-gatewayApp-params", flowName); - return headers; - } - - public static HttpHeaders createFailureAlert(String entityName, String errorKey, String defaultMessage) { - log.error("Entity processing failed, {}", defaultMessage); - HttpHeaders headers = new HttpHeaders(); - headers.add("X-" + APPLICATION_NAME + "-error", defaultMessage); - headers.add("X-" + APPLICATION_NAME + "-params", entityName); - return headers; - } - -} diff --git a/baseModule/src/main/java/org/assimbly/util/rest/LogUtil.java b/baseModule/src/main/java/org/assimbly/util/rest/LogUtil.java deleted file mode 100644 index 639eb72b..00000000 --- a/baseModule/src/main/java/org/assimbly/util/rest/LogUtil.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.assimbly.util.rest; - -import java.io.File; -import java.io.IOException; - -public class LogUtil { - - public static String tail(File file, int lines) { - java.io.RandomAccessFile fileHandler = null; - try { - fileHandler = - new java.io.RandomAccessFile( file, "r" ); - long fileLength = fileHandler.length() - 1; - StringBuilder sb = new StringBuilder(); - int line = 0; - - for(long filePointer = fileLength; filePointer != -1; filePointer--){ - fileHandler.seek( filePointer ); - int readByte = fileHandler.readByte(); - - if( readByte == 0xA ) { - if (filePointer < fileLength) { - line = line + 1; - } - } else if( readByte == 0xD ) { - if (filePointer < fileLength-1) { - line = line + 1; - } - } - if (line >= lines) { - break; - } - sb.append( ( char ) readByte ); - } - - String lastLine = sb.reverse().toString(); - return lastLine; - } catch( java.io.FileNotFoundException e ) { - e.printStackTrace(); - return null; - } catch( IOException e ) { - e.printStackTrace(); - return null; - } - finally { - if (fileHandler != null ) - try { - fileHandler.close(); - } catch (IOException e) { - } - } - } -} \ No newline at end of file diff --git a/baseModule/src/main/java/org/assimbly/util/rest/PaginationUtil.java b/baseModule/src/main/java/org/assimbly/util/rest/PaginationUtil.java deleted file mode 100644 index 9453ba09..00000000 --- a/baseModule/src/main/java/org/assimbly/util/rest/PaginationUtil.java +++ /dev/null @@ -1,45 +0,0 @@ -package org.assimbly.util.rest; - -import org.springframework.data.domain.Page; -import org.springframework.http.HttpHeaders; -import org.springframework.web.util.UriComponentsBuilder; - -/** - * Utility class for handling pagination. - * - *

    - * Pagination uses the same principles as the GitHub API, - * and follow RFC 5988 (Link header). - */ -public final class PaginationUtil { - - private PaginationUtil() { - } - - public static HttpHeaders generatePaginationHttpHeaders(Page page, String baseUrl) { - - HttpHeaders headers = new HttpHeaders(); - headers.add("X-Total-Count", Long.toString(page.getTotalElements())); - String link = ""; - if ((page.getNumber() + 1) < page.getTotalPages()) { - link = "<" + generateUri(baseUrl, page.getNumber() + 1, page.getSize()) + ">; rel=\"next\","; - } - // prev link - if ((page.getNumber()) > 0) { - link += "<" + generateUri(baseUrl, page.getNumber() - 1, page.getSize()) + ">; rel=\"prev\","; - } - // last and first link - int lastPage = 0; - if (page.getTotalPages() > 0) { - lastPage = page.getTotalPages() - 1; - } - link += "<" + generateUri(baseUrl, lastPage, page.getSize()) + ">; rel=\"last\","; - link += "<" + generateUri(baseUrl, 0, page.getSize()) + ">; rel=\"first\""; - headers.add(HttpHeaders.LINK, link); - return headers; - } - - private static String generateUri(String baseUrl, int page, int size) { - return UriComponentsBuilder.fromUriString(baseUrl).queryParam("page", page).queryParam("size", size).toUriString(); - } -} diff --git a/baseModule/src/main/java/org/assimbly/util/rest/ResponseUtil.java b/baseModule/src/main/java/org/assimbly/util/rest/ResponseUtil.java deleted file mode 100644 index f0e94098..00000000 --- a/baseModule/src/main/java/org/assimbly/util/rest/ResponseUtil.java +++ /dev/null @@ -1,141 +0,0 @@ -package org.assimbly.util.rest; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.http.ResponseEntity; - -/** - * Utility class for HTTP body creation. - */ -public final class ResponseUtil { - - protected static Logger log = LoggerFactory.getLogger("org.assimbly.util.rest.ResponseUtil"); - - private static ResponseEntity response; - - - private ResponseUtil() { - } - - - public static ResponseEntity createSuccessResponse(long connectorId, String mediaType, String path, String message) throws Exception{ - - log.debug("REST request with path " + path + " for gateway with id " + connectorId); - - switch (mediaType.toLowerCase()) { - case "application/json": - response = ResponseEntity.ok() - .body(BodyUtil.createSuccessJSONResponse(connectorId, path, message)); - break; - case "application/xml": - response = ResponseEntity.ok() - .body(BodyUtil.createSuccessXMLResponse(connectorId, path, message)); - break; - default: - response = ResponseEntity.ok() - .body(BodyUtil.createSuccessTEXTResponse(message)); - break; - } - - return response; - } - - public static ResponseEntity createSuccessResponse(long connectorId, String mediaType, String path, String message, boolean plainResponse) throws Exception{ - - log.debug("REST request with path " + path + " for gateway with id " + connectorId); - - if(plainResponse) { - response = ResponseEntity.ok() - .body(message); - }else { - - switch (mediaType.toLowerCase()) { - case "application/json": - response = ResponseEntity.ok() - .body(BodyUtil.createSuccessJSONResponse(connectorId, path, message)); - break; - case "application/xml": - response = ResponseEntity.ok() - .body(BodyUtil.createSuccessXMLResponse(connectorId, path, message)); - break; - default: - response = ResponseEntity.ok() - .body(BodyUtil.createSuccessTEXTResponse(message)); - break; - } - } - - return response; - } - - - public static ResponseEntity createSuccessResponseWithHeaders(long connectorId, String mediaType, String path, String message, String headerMessage, String headerParam) throws Exception{ - - log.debug("REST request with path " + path + " for gateway with id " + connectorId); - - switch (mediaType.toLowerCase()) { - case "application/json": - response = ResponseEntity.ok().headers(HeaderUtil.createAlert(headerMessage,headerParam)) - .body(BodyUtil.createSuccessJSONResponse(connectorId, path, message)); - break; - case "application/xml": - response = ResponseEntity.ok().headers(HeaderUtil.createAlert(headerMessage,headerParam)) - .body(BodyUtil.createSuccessXMLResponse(connectorId, path, message)); - break; - default: - response = ResponseEntity.ok().headers(HeaderUtil.createAlert(headerMessage,headerParam)) - .body(BodyUtil.createSuccessTEXTResponse(message)); - break; - } - - return response; - } - - public static ResponseEntity createFailureResponse(long connectorId, String mediaType, String path, String message) throws Exception{ - - log.error("REST request with path " + path + " for gateway with id " + connectorId + " failed."); - - switch (mediaType.toLowerCase()) { - case "application/json": - response = ResponseEntity.badRequest() - .body(BodyUtil.createFailureJSONResponse(connectorId, path, message)); - break; - case "application/xml": - response = ResponseEntity.badRequest() - .body(BodyUtil.createFailureXMLResponse(connectorId, path, message)); - - break; - default: - response = ResponseEntity.badRequest() - .body(BodyUtil.createFailureTEXTResponse(message)); - break; - } - - return response; - } - - - public static ResponseEntity createFailureResponseWithHeaders(long connectorId, String mediaType, String path, String message, String headerMessage, String headerParam) throws Exception{ - - log.error("REST request with path " + path + " for gateway with id " + connectorId + " failed."); - - switch (mediaType.toLowerCase()) { - case "application/json": - response = ResponseEntity.status(400).headers(HeaderUtil.createAlert(headerMessage,headerParam)) - .body(BodyUtil.createFailureJSONResponse(connectorId, path, message)); - break; - case "application/xml": - response = ResponseEntity.badRequest().headers(HeaderUtil.createAlert(headerMessage,headerParam)) - .body(BodyUtil.createFailureXMLResponse(connectorId, path, message)); - - break; - default: - response = ResponseEntity.badRequest().headers(HeaderUtil.createAlert(headerMessage,headerParam)) - .body(BodyUtil.createFailureTEXTResponse(message)); - break; - } - - return response; - } - -} diff --git a/baseModule/src/main/resources/activemq.xml b/baseModule/src/main/resources/activemq.xml deleted file mode 100644 index 476166fe..00000000 --- a/baseModule/src/main/resources/activemq.xml +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/baseModule/src/main/resources/activemq.xsd b/baseModule/src/main/resources/activemq.xsd deleted file mode 100644 index 62b40cde..00000000 --- a/baseModule/src/main/resources/activemq.xsd +++ /dev/null @@ -1,10377 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

  • - - ]]>
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Mirrored -Queues should be supported by default if they have not been -explicitly configured. - ]]> - - - - - - - - - - - - - Virtual -Topics should be supported by default if they have not been -explicitly configured. - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Mirrored -Queues should be supported by default if they have not been -explicitly configured. - ]]> - - - - - - - - - - - - - Virtual -Topics should be supported by default if they have not been -explicitly configured. - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Message Groups functionality. - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DOT file creator plugin which -creates a DOT file showing the current connections - ]]> - - - - - - - - - - - - - - - - - Spring enhanced connection -factory which will automatically use the Spring bean name as the clientIDPrefix property -so that connections created have client IDs related to your Spring.xml file for -easier comprehension from JMX. - ]]> - - - - - - - - - - - - - - - - - - - Note: access to this clientInternalExceptionListener will not be serialized if it is associated with more than -on connection (as it will be if more than one connection is subsequently created by this connection factory) - ]]> - - - - - - - - - - - - - Note: access to this exceptionLinstener will not be serialized if it is associated with more than -on connection (as it will be if more than one connection is subsequently created by this connection factory) - ]]> - - - - - - - - prefetch -policy for consumers created by this connection. - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - connection -URL used to connect to the ActiveMQ broker. - ]]> - - - - - - - - - - - - - - - - - Note: access to this clientInternalExceptionListener will not be serialized if it is associated with more than -on connection (as it will be if more than one connection is subsequently created by this connection factory) - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - dispatched -synchronously or asynchronously by the broker. For non-durable -topics for example we typically dispatch synchronously by default to -minimize context switches which boost performance. However sometimes its -better to go slower to ensure that a single blocked consumer socket does -not block delivery to other consumers. - ]]> - - - - - Note: access to this exceptionLinstener will not be serialized if it is associated with more than -on connection (as it will be if more than one connection is subsequently created by this connection factory) - ]]> - - - - - Message Groups - ]]> - - - - - - - Nested -Structures of Map and List objects - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - prefetch -policy for consumers created by this connection. - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Async Sends which -adds a massive performance boost; but means that the send() method will -return immediately whether the message has been sent or not which could -lead to message loss. - ]]> - - - - - - - - - - - - - - - - - - - - - - start -the connection so this option makes the default case to create a -warning if the user forgets. To disable the warning just set the value to < -0 (say -1). - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - sub-classing is -encouraged to override the default implementation of methods to account for differences in JDBC Driver -implementations.

    The JDBCAdapter inserts and extracts BLOB data using the getBytes()/setBytes() operations.

    -The databases/JDBC drivers that use this adapter are: -

      -
    • -
    - ]]>
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DOT -file creator plugin which creates a DOT file showing the current topic & queue hierarchies. - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  • Sybase
  • -
  • MS SQL
  • - - ]]>
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - container name field and subscription id field must be reduced to 150 characters. -Therefore be sure not to use longer names for container name and subscription id than 150 characters. - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - java.security.auth.login.config system property -is not defined then it is set to the location of the login.config file on the classpath. - ]]> - - - - - - - - - - - - - - - - - - - - - - java.security.auth.login.config system property -is not defined then it is set to the location of the login.config file on the classpath. - ]]> - - - - - - - - - - - - - - - - - - - - - - java.security.auth.login.config system property -is not defined then it is set to the location of the login.config file on the classpath. - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -A value of -1 will disable this feature. - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - null -if the broker name was not set. - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Message -Groups functionality. - ]]> - - - - - - - - - - - - - - - - - - Mirrored -Queue using a prefix and postfix to define the topic name on which to mirror the queue to. - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - multicast://address:port - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Subclassing is encouraged to override the default -implementation of methods to account for differences -in JDBC Driver implementations. -

    -The JDBCAdapter inserts and extracts BLOB data using the -getBytes()/setBytes() operations. -

    -The databases/JDBC drivers that use this adapter are: -

      -
    • -
    - ]]>
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - -Subclassing is encouraged to override the default -implementation of methods to account for differences -in JDBC Driver implementations. -

    - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Message Groups -functionality. - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Message Groups -functionality. - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -The resourceName property should be used along with the {@link org.apache.activemq.jms.pool.GenericResourceManager} and have -the same value than its resourceName property. This will make sure the transaction manager -maps correctly the connection factory to the recovery process. - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Subclassing is encouraged to override the default -implementation of methods to account for differences -in JDBC Driver implementations. -

    -The JDBCAdapter inserts and extracts BLOB data using the -getBytes()/setBytes() operations. -

    -The databases/JDBC drivers that use this adapter are: -

      -
    • -
    - ]]>
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Message Groups functionality. - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  • Axion
  • - - ]]>
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Virtual -Topics. - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - -This stops the build-up of unwanted messages, especially when consumers may -disconnect from time to time when using virtual destinations. -

    -This is influenced by code snippets developed by Maciej Rakowicz - ]]> - - - - - - - - - - - - - - - - - - - - Virtual -Topics using a prefix and postfix. The virtual destination creates a -wildcard that is then used to look up all active queue subscriptions which -match. - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Spring enhanced XA connection -factory which will automatically use the Spring bean name as the clientIDPrefix property -so that connections created have client IDs related to your Spring.xml file for -easier comprehension from JMX. - ]]> - - - - - - - - - - - - - - - - - - - Note: access to this clientInternalExceptionListener will not be serialized if it is associated with more than -on connection (as it will be if more than one connection is subsequently created by this connection factory) - ]]> - - - - - - - - - - - - - Note: access to this exceptionLinstener will not be serialized if it is associated with more than -on connection (as it will be if more than one connection is subsequently created by this connection factory) - ]]> - - - - - - - - prefetch -policy for consumers created by this connection. - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - connection -URL used to connect to the ActiveMQ broker. - ]]> - - - - - - - - - - - - - - - - - Note: access to this clientInternalExceptionListener will not be serialized if it is associated with more than -on connection (as it will be if more than one connection is subsequently created by this connection factory) - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - dispatched -synchronously or asynchronously by the broker. For non-durable -topics for example we typically dispatch synchronously by default to -minimize context switches which boost performance. However sometimes its -better to go slower to ensure that a single blocked consumer socket does -not block delivery to other consumers. - ]]> - - - - - Note: access to this exceptionLinstener will not be serialized if it is associated with more than -on connection (as it will be if more than one connection is subsequently created by this connection factory) - ]]> - - - - - Message Groups - ]]> - - - - - - - Nested -Structures of Map and List objects - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - prefetch -policy for consumers created by this connection. - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Async Sends which -adds a massive performance boost; but means that the send() method will -return immediately whether the message has been sent or not which could -lead to message loss. - ]]> - - - - - - - - - - - - - - - - - - - - - - start -the connection so this option makes the default case to create a -warning if the user forgets. To disable the warning just set the value to < -0 (say -1). - ]]> - - - - - - - - - - - \ No newline at end of file diff --git a/baseModule/src/main/resources/artemis-configuration.xsd b/baseModule/src/main/resources/artemis-configuration.xsd deleted file mode 100644 index e35e1f33..00000000 --- a/baseModule/src/main/resources/artemis-configuration.xsd +++ /dev/null @@ -1,4549 +0,0 @@ - - - - - - - - - - - - - - Node name. If set, it will be used in topology notifications. - - - - - - - - This defines the prefix which we will use to parse System properties for the configuration. Default= - - - - - - - - Artemis uses internal queues and addresses for implementing certain behaviours. These queues and addresses - will be prefixed by default with "$.activemq.internal" to avoid naming clashes with user namespacing. - This can be overridden by setting this value to a valid Artemis address. - - - - - - - - This enables making AMQP subscription queue names, match core queue names, for better interoperability between protocols. - Note: Enabling this to an existing broker if pre-existing amqp durable subscriptions already existed will require - clients to re-subscribe and to clean up old subscription names. - - - - - - - - If true then the ActiveMQ Artemis Server will make use of any Protocol Managers that are in available - on the classpath. If false then only the core protocol will be available, unless in Embedded mode - where users can inject their own Protocol Managers. - - - - - - - - that means the server will use fdatasync to confirm writes on the disk. - - - - - - - - true means that the server will use the file based journal for persistence. - - - - - - - - Maximum number of threads to use for the scheduled thread pool - - - - - - - - Maximum number of threads to use for the thread pool. -1 means 'no limits'. - - - - - - - - true means that graceful shutdown is enabled - - - - - - - - how long (in ms) to wait for clients to disconnect before shutting down the server - - - - - - - - true means that security is enabled - - - - - - - - how long (in ms) to wait before invalidating an entry in the authentication or authorization cache - - - - - - - - how large to make the authentication cache - - - - - - - - how large to make the authorization cache - - - - - - - - how long (in ms) to wait to acquire a file lock on the journal - - - - - - - - true means that the server supports wild card routing - - - - - - - - the name of the management address to send management messages to. It is prefixed with "jms.queue" so - that JMS clients can send messages to it. - - - - - - - - the name of the address that consumers bind to receive management notifications - - - - - - - - Cluster username. It applies to all cluster configurations. - - - - - - - - Cluster password. It applies to all cluster configurations. - - - - - - - - Class name and its parameters for the Decoder used to decode the masked password. Ignored if - mask-password is false. The format of this property is a full qualified class name optionally followed - by key/value pairs. - - - - - - - - This option controls whether passwords in server configuration need be masked. If set to "true" the - passwords are masked. - - - - - - - - DEPRECATED: the name of the factory class to use for log delegation - - - - - - - - true means that the management API is available via JMX - - - - - - - - the JMX domain used to registered ActiveMQ Artemis MBeans in the MBeanServer - - - - - - - - Whether or not to use the broker name in the JMX properties - - - - - - - - true means that message counters are enabled - - - - - - - - the sample period (in ms) to use for message counters - - - - - - - - how many days to keep message counter history - - - - - - - - if set, this will override how long (in ms) to keep a connection alive without receiving a ping. -1 - disables this setting. - - - - - - - - how often (in ms) to check connections for ttl violation - - - - - - - - how often (in ms) to check the configuration file for modifications - - - - - - - - the namespace to use for looking up address settings for temporary queues - - - - - - - - should certain incoming packets on the server be handed off to a thread from the thread pool for - processing or should they be handled on the remoting thread? - - - - - - - - how long (in ms) before a transaction can be removed from the resource manager after create time - - - - - - - - how often (in ms) to scan for timeout transactions - - - - - - - - how often (in ms) to scan for expired messages - - - - - - - - DEPRECATED: the priority of the thread expiring messages - - - - - - - - how often (in ms) to scan for addresses and queues that need to be deleted - - - - - - - - the size of the cache for pre-creating message ID's - - - - - - - - true means that ID's are persisted to the journal - - - - - - - - a list of <class-name/> elements with the names of classes to use for intercepting incoming - remoting packets - - - - - - - - a list of <class-name/> elements with the names of classes to use for intercepting outgoing - remoting packets - - - - - - - - True means that the delivery count is persisted before delivery. False means that this only happens - after a message has been cancelled. - - - - - - - - true means that the server will add the name of the validated user to messages it sends - - - - - - - - true means that the server will not allow any message that doesn't have a validated user, in JMS this is JMSXUserID - - - - - - - - a list of remoting connectors configurations to create - - - - - - - - - - - - - - a list of remoting acceptors to create - - - - - - - - - - - - - - a list of broadcast groups to create - - - - - - - - - - - - - - a list of discovery groups to create - - - - - - - - a discovery group specification element - - - - - - - - - - - - a list of diverts to use - - - - - - - - - - - - - - - a list of pre configured queues to create - - - - - - - - - - - address for the queue - - - - - - - user to associate for creating the queue - - - - - - - - whether the queue is durable (persistent) - - - - - - - - unique name of this queue - - - - - - - - - - - - - - - - - - - - - - - - - - - a list of bridges to create - - - - - - - - - - - - - - a list of federations to create - - - - - - - - - - - - - - The HA policy of this server - - - - - - - - a list of cluster connections - - - - - - - - A list of connections the broker will make towards other servers. - Currently the only connection type supported is amqpConnection - - - - - - - - A list of balancers - - - - - - - - - - - - - - Message Group configuration - - - - - - - - the directory to store paged messages in - - - - - - - - the directory to store the persisted bindings to - - - - - - - - true means that the server will create the bindings directory on start up - - - - - - - - The max number of concurrent reads allowed on paging - - - - - - - - Whether the whole page is read while getting message after page cache is evicted. - - - - - - - - the directory to store the journal files in - - - - - - - - the directory to store journal-retention message in and rention configuraion. - - - - - - - - - This configures the period type to use on limit. By default it is DAYS. - - - - - - - - - - - - - - - The amount of time used to keep files. - - - - - - - Size (in bytes) before we starting removing files from the retention area. - this is an extra protection on top of the period. - Notice we first remove files based on period and if you're using more storage then you - configured we start removing older files. - By default this is unlimited (not filled). - Supports byte notation like "K", "Mb", "GB", etc. - - - - - - - - - - - the directory to store the node manager lock file - - - - - - - - true means that the journal directory will be created - - - - - - - - the type of journal to use - - - - - - - - - - - - - - - The timeout (in nanoseconds) used to flush internal buffers on the journal. The exact default value - depend on whether the journal is ASYNCIO or NIO. - - - - - - - - - The size in bytes used by the device. This is usually translated as fstat/st_blksize - And this is a way to bypass the value returned as st_blksize. - - - - - - - - The size (in bytes) of the internal buffer on the journal. Supports byte notation like "K", "Mb", - "GB", etc. - - - - - - - - if true wait for transaction data to be synchronized to the journal before returning response to - client - - - - - - - - if true wait for non transaction data to be synced to the journal before returning response to client. - - - - - - - - Whether to log messages about the journal write rate - - - - - - - - The size (in bytes) of each journal file. Supports byte notation like "K", "Mb", "GB", etc. - - - - - - - - how many journal files to pre-create - - - - - - - - how many journal files to pre-create - - - - - - - - The percentage of live data on which we consider compacting the journal - - - - - - - - The minimal number of data files before we can start compacting - - - - - - - - the maximum number of write requests that can be in the AIO queue at any one time. Default is 500 for - AIO and 1 for NIO. - - - - - - - - the length of time in seconds to wait when opening a new Journal file before timing out and failing - - - - - - - - Interval to log server specific information (e.g. memory usage etc) - - - - - - - - Size (in bytes) before all addresses will enter into their Full Policy configured upon messages being - produced. Supports byte notation like "K", "Mb", "GB", etc. - - - - - - - - Max percentage of disk usage before the system blocks or fails clients. - - - - - - - - how often (in ms) to scan the disks for full disks. - - - - - - - - Percentage of available memory which will trigger a warning log - - - - - - - - frequency to sample JVM memory in ms (or -1 to disable memory sampling) - - - - - - - - the directory to store large messages - - - - - - - - The Store Type used by the server - - - - - - - - should analyze response time on critical paths and decide for broker log, shutdown or halt. - - - - - - - - The default timeout used on analyzing timeouts on the critical path. - - - - - - - - The timeout here will be defaulted to half critical-analyzer-timeout, calculation happening at runtime - - - - - - - - Should the server log, be shutdown or halted upon critical analysis failure. - - - - - - - - - - - - - - - The timeout (in nanoseconds) used to sync pages. The exact default value - depend on whether the journal is ASYNCIO or NIO. - - - - - - - - a list of security settings - - - - - - - - - - - a permission to add to the matched addresses - - - - - - - - - the type of permission - - - - - - - a comma-separated list of roles to apply the permission to - - - - - - - - - - - pattern for matching security roles against addresses; can use wildcards - - - - - - - - - - - a plugin - - - - - - - - - the name of the setting - - - - - - - the value for the setting - - - - - - - - - - - the name of the plugin class to instantiate - - - - - - - - - - - - - the name of the external role - - - - - - - the comma delimited name of the internal role(s) - - - - - - - - - - - - - - - a list of broker-plugins - - - - - - - - - a broker plugin - - - - - - - properties to configure a plugin - - - - - - - - the name of the broker plugin class to instantiate - - - - - - - - - - - - - - - - DEPRECATED: use metrics instead. A metrics plugin - - - - - - - properties to configure a plugin - - - - - - - - the name of the metrics plugin class to instantiate - - - - - - - - - - - - metrics configuration - - - - - - - whether or not to report JVM memory metrics - - - - - - - - whether or not to report JVM thread metrics - - - - - - - - whether or not to report JVM GC metrics - - - - - - - - whether or not to report Netty pool metrics - - - - - - - - - a metrics plugin - - - - - - - properties to configure a plugin - - - - - - - - the name of the metrics plugin class to instantiate - - - - - - - - - - - - - - - a list of address settings - - - - - - - - - - - - - - a list of resource limit settings - - - - - - - - - - - - - - - - - - - - - - - - - A comma separated list of IPs to be used to validate if the broker should be kept up - - - - - - - - A comma separated list of URLs to be used to validate if the broker should be kept up - - - - - - - - A frequency in milliseconds to how often we should check if the network is still up - - - - - - - - A timeout used in milliseconds to be used on the ping. - - - - - - - - The network interface card name to be used to validate the address. - - - - - - - - The ping command used to ping IPV4 addresses. - - - - - - - - The ping command used to ping IPV6 addresses. - - - - - - - - parameters to configure wildcard address matching format - - - - - - - - - - - local bind address that the datagram socket is bound to - - - - - - - - local port to which the datagram socket is bound to - - - - - - - - - - - - a local address to which the datagram socket is bound - - - - - - - a local port to which the datagram socket is bound - - - - - - - multicast address to which the data will be broadcast - - - - - - - - UDP port number used for broadcasting - - - - - - - - period in milliseconds between consecutive broadcasts - - - - - - - - Name of JGroups configuration file. If specified, the server uses JGroups for broadcasting. - - - - - - - - Name of JGroups Channel. If specified, the server uses the named channel for broadcasting. - - - - - - - - - - - a unique name for the broadcast group - - - - - - - - - - - - - - Multicast IP address of the group to listen on - - - - - - - UDP port number of the multi cast group - - - - - - - - Name of a JGroups configuration file. If specified, the server uses JGroups for discovery. - - - - - - - - Name of a JGroups Channel. If specified, the server uses the named channel for discovery. - - - - - - - - Period the discovery group waits after receiving the last broadcast from a particular server before - removing that servers connector pair entry from its list. - - - - - - - - - - time to wait for an initial broadcast to give us at least one node in the cluster - - - - - - - - - a unique name for the discovery group - - - - - - - - - - - - - - - - - - unlimited sequence of <class-name/> - - - - - - - the fully qualified name of the interceptor class - - - - - - - - - - - - Key of a configuration parameter - - - - - - - Value of a configuration parameter - - - - - - - - - - - - - name of queue that this bridge consumes from - - - - - - - - address to forward to. If omitted original address is used - - - - - - - - whether this bridge supports fail-over - - - - - - - - - - optional name of transformer class - - - - - - - - optional transformer configuration - - - - - - - - Any message larger than this size (in bytes) is considered a large message (to be sent in - chunks). Supports byte notation like "K", "Mb", "GB", etc. - - - - - - - - The period (in milliseconds) a bridge's client will check if it failed to receive a ping from the - server. -1 disables this check. - - - - - - - - how long to keep a connection alive in the absence of any data arriving from the client. This should - be greater than the ping period. - - - - - - - - period (in ms) between successive retries - - - - - - - - multiplier to apply to successive retry intervals - - - - - - - - Limit to the retry-interval growth (due to retry-interval-multiplier) - - - - - - - - maximum number of initial connection attempts, -1 means 'no limits' - - - - - - - - maximum number of retry attempts, -1 means 'no limits' - - - - - - - - DEPRECATED: This setting has no impact, but it's being left here to avoid XML parsing errors for users - who still have it set. Failover on shutdown is controlled via the ha-policy set on the *broker* to - which the bridge connects. - - - - - - - - should duplicate detection headers be inserted in forwarded messages? - - - - - - - - Once the bridge has received this many bytes, it sends a confirmation. Supports byte notation like - "K", "Mb", "GB", etc. - - - - - - - - Producer flow control. Supports byte notation like "K", "Mb", "GB", etc. - - - - - - - - username, if unspecified the cluster-user is used - - - - - - - - password, if unspecified the cluster-password is used - - - - - - - - Upon reconnection this configures the number of time the same node on the topology will be retried - before resetting the server locator and using the initial connectors - - - - - - - - how should the routing-type on the bridged messages be set? - - - - - - - - Number of concurrent workers, more workers can help increase throughput on high latency networks. - Defaults to 1 - - - - - - - - - - - - - - - - - - - name of discovery group used by this bridge - - - - - - - - - - - - - unique name for this bridge - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Name of the transport connector reference to use for the new upstream connection - back to this broker. - - - - - - - - - - - - - - - - - - - - - whether this connection supports fail-over - - - - - - - - whether this connection supports fail-over - - - - - - - - if there is a downstream and upstream connection configured for the same broker then - the same connection will be shared as long as both stream configs set this flag to true - - - - - - - - how long to keep a connection alive in the absence of any data arriving from the client - - - - - - - - How long to wait for a reply - - - - - - - - period (in ms) between successive retries - - - - - - - - multiplier to apply to the retry-interval - - - - - - - - Maximum value for retry-interval - - - - - - - - How many attempts should be made to connect initially - - - - - - - - How many attempts should be made to reconnect after failure - - - - - - - - The period (in milliseconds) used to check if the federation connection has failed to receive pings from - another server - - - - - - - - How long to wait for a reply if in the middle of a fail-over. -1 means wait forever. - - - - - - - - - - - - - - - - - - - name of discovery group used by this connection - - - - - - - - - - - - - - username, if unspecified the federated user is used - - - - - - - password, if unspecified the federated password is used - - - - - - - unique name for this upstream - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - optional name of transformer class - - - - - - - properties to configure the transformer class - - - - - - - - - - - - - - - optional name of transformer class - - - - - - - properties to configure the transformer class - - - - - - - - - - - - - key for the property - - - - - - - value for the property - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - the optional target key - - - - - - - the filter for the target key - - - - - - - the filter to get the local target - - - - - - - the time period for a cache entry to remain active - - - - - - - the policy configuration - - - - - - - the pool configuration - - - - - - - - a unique name for the broker balancer - - - - - - - - - - - - - - - - - - - - - properties to configure a policy - - - - - - - - the name of the policy - - - - - - - - - - - - the username to access the targets - - - - - - - the password to access the targets - - - - - - - the period (in milliseconds) used to check if a target is ready - - - - - - - the minimum number of ready targets - - - - - - - the timeout (in milliseconds) used to get the minimum number of ready targets - - - - - - - true means that the local target is enabled - - - - - - - - the name of a cluster connection - - - - - - - - - - - - - - - - - name of discovery group used by this bridge - - - - - - - - - - - - - - - - - - - - - - - - uri of the amqp connection - - - - - - - should the broker connection be started when the server is started. - - - - - - - How many attempts should be made to reconnect after failure - - - - - - - period (in ms) between successive retries - - - - - - - User name used to connect. If not defined it will try an anonymous connection. - - - - - - - Password used to connect. If not defined it will try an anonymous connection. - - - - - - - - name of the amqp connection - - - - - - - - - - - address expression to match addresses - - - - - - - This is the exact queue name to be used. - - - - - - - - This will determine that queues are mirrored towards this next broker. - All events will be send towards this AMQP connection acting like a replica. - - - - - - - Should mirror acknowledgements towards the other server - - - - - - - Should mirror queue creation events for addresses and queues. - - - - - - - Should mirror queue deletion events for addresses and queues. - - - - - - - This property will determine if the mirror will use a durable queue or not as a Store and Forward Queue. - This is true by default. - - - - - - - - - - - uri of the cluster connection - - - - - - - name of the cluster connection - - - - - - - - - - - - name of the address this cluster connection applies to - - - - - - - - Name of the connector reference to use. - - - - - - - - The period (in milliseconds) used to check if the cluster connection has failed to receive pings from - another server - - - - - - - - how long to keep a connection alive in the absence of any data arriving from the client - - - - - - - - Messages larger than this are considered large-messages. Supports byte notation like - "K", "Mb", "GB", etc. - - - - - - - - How long to wait for a reply - - - - - - - - period (in ms) between successive retries - - - - - - - - multiplier to apply to the retry-interval - - - - - - - - Maximum value for retry-interval - - - - - - - - How many attempts should be made to connect initially - - - - - - - - How many attempts should be made to reconnect after failure - - - - - - - - should duplicate detection headers be inserted in forwarded messages? - - - - - - - - DEPRECATED: use message-load-balancing-type instead. Select STRICT to mimic - forward-when-no-consumers=true and ON_DEMAND to mimic forward-when-no-consumers=false. - - - - - - - - how should messages be load balanced between servers in a cluster? - - - - - - - - - - - - - - - maximum number of hops cluster topology is propagated - - - - - - - - The size (in bytes) of the window used for confirming data from the server connected to. Supports - byte notation like "K", "Mb", "GB", etc. - - - - - - - - Producer flow control. Supports byte notation like "K", "Mb", "GB", etc. - - - - - - - - How long to wait for a reply if in the middle of a fail-over. -1 means wait forever. - - - - - - - - how often the cluster connection will notify the cluster of its existence right after joining the - cluster - - - - - - - how many times this cluster connection will notify the cluster of its existence right after joining - the cluster - - - - - - - - The connector to use for scaling down or when as backup in SCALE_DOWN mode - - - - - - - - - - - - - - restricts cluster connections to the listed connector-ref's - - - - - - - - - - - - name of discovery group used by this cluster-connection - - - - - - - - - - - - unique name for this cluster connection - - - - - - - The URI for the cluster connection options - - - - - - - - - - - - unique name for this cluster connection - - - - - - - The URI for the cluster connection options - - - - - - - - - - - - - an optional class name of a transformer - - - - - - - - optional transformer configuration - - - - - - - - whether this is an exclusive divert - - - - - - - - the routing name for the divert - - - - - - - - the address this divert will divert from - - - - - - - - the forwarding address for the divert - - - - - - - - - - how should the routing-type on the diverted messages be set? - - - - - - - - - a unique name for the divert - - - - - - - - - - - - Use a file based store for persisting journal, paging and large messages - - - - - - - Use a database for persisting journal, paging and large messages - - - - - - - - - - - - - - - - - The JDBC Driver class name - - - - - - - The JDBC Connection URL e.g. jdbc:mysql://localhost:3306/ - - - - - - - The JDBC User to use for connecting to the database, NB this will only work with drivers where support - DriverManager.getConnection(String url, String user, String password). This can be encrypted. - - - - - - - The JDBC Password to use for connecting to the database, NB this will only work with drivers where support - DriverManager.getConnection(String url, String user, String password). This can be encrypted. - - - - - - - The DataSource class name - - - - - - - A list of options for the DataSource - - - - - - - - A key-value pair option for the DataSource - - - - - - - - - - The table name used to store message journal entries - - - - - - - The table name used to store bindings journal entries - - - - - - - The table name used to large message files - - - - - - - The table name used to large message files - - - - - - - The table name used to hold shared store data - - - - - - - The JDBC network connection timeout in milliseconds. - - - - - - - The period in milliseconds of the keep alive service of a JDBC lock. - - - - - - - The time in milliseconds a JDBC lock is considered valid without keeping it alive. - - - - - - - The JDBC jouranl sync period in milliseconds. - - - - - - - - - - - - Configuration option key - - - - - - - Configuration option value - - - - - - - - - - - A live only server with no HA capabilities apart from scale down. - - - - - - - Configuration for a replicated server, either master, slave or colocated. - - - - - - - Configuration for a shared store server, either master, slave or colocated. - - - - - - - - - - - - - The distributed-primitive-manager class name - - - - - - - A list of options for the distributed-primitive-manager - - - - - - - - A key-value pair option for the distributed-primitive-manager - - - - - - - - - - - - - - - A live server configured to replicate. - - - - - - - A backup server configured to replicate. - - - - - - - a replicated lives server that will allow requests to create colocated replicated backup servers. - - - - - - - A primary server configured to replicate. - - - - - - - A backup server configured to replicate. - - - - - - - - - - - - - - If true then the server will request a backup on another node - - - - - - - How many times the live server will try to request a backup, -1 means for ever. - - - - - - - How long to wait for retries between attempts to request a backup server. - - - - - - - Whether or not this live server will accept backup requests from other live servers. - - - - - - - The offset to use for the Connectors and Acceptors when creating a new backup server. - - - - - - - the connectors that shouldn't have their ports offset, typically remote connectors or the - connector used in the cluster connection if scaling down - - - - - - - - - - - - - The configuration for the live replicated server. - - - - - - - The configuration for any slaves created. - - - - - - - - - - - - - If true then the server will request a backup on another node - - - - - - - How many times the live server will try to request a backup, -1 means for ever. - - - - - - - How long to wait for retries between attempts to request a backup server. - - - - - - - Whether or not this live server will accept backup requests from other live servers. - - - - - - - The offset to use for the Connectors and Acceptors when creating a new backup server. - - - - - - - The configuration for the live shared store server. - - - - - - - The configuration for any shared store backups created. - - - - - - - - - - - - - A shared store live server configuration. - - - - - - - A shared store backup server configuration. - - - - - - - A shared store colocated configuration - - - - - - - - - - - - - The scale down configuration of this live server. - - - - - - - - - - - - used for replication, if set, (remote) backup servers will only pair with live servers with matching - group-name - - - - - - - Name of the cluster configuration to use for replication. This setting is only necessary in case you - configure multiple cluster connections. It is used by a replicating backups and by live servers that - may attempt fail-back. - - - - - - - Whether to check the cluster for a (live) server using our own server ID when starting - up. This option is only necessary for performing 'fail-back' on replicating - servers. Strictly speaking this setting only applies to live servers and not to - backups. - - - - - - - The amount of time to wait for the replica to acknowledge it has received all the necessary data from - the replicating server at the final step of the initial replication synchronization process. - - - - - - - Whether or not this live broker should vote to remain as live if replication is lost. - - - - - - - The quorum size used for voting after replication loss, -1 means use the current cluster size - - - - - - - - If we start as a replica and lose connection to the master, how many times should we attempt to vote - for quorum before restarting - - - - - - - How long to wait (in milliseconds) between each vote - - - - - - - How long to wait (in seconds) for vote results - - - - - - - If we start as a replica how long to wait (in milliseconds) before trying to replicate again after failing to find a replica - - - - - - - - - - - - used for replication, if set, (remote) backup servers will only pair with live servers with matching - group-name - - - - - - - Name of the cluster configuration to use for replication. This setting is only necessary in case you - configure multiple cluster connections. It is used by a replicating backups and by live servers that - may attempt fail-back. - - - - - - - This specifies how many times a replicated backup server can restart after moving its files on start. - Once there are this number of backup journal files the server will stop permanently after if fails - back. - - - - - - - if provided then this backup will scale down rather than becoming live after fail over. - - - - - - - Will this server, if a backup, restart once it has been stopped because of failback or scaling down. - - - - - - - Whether a server will automatically stop when a another places a request to take over - its place. The use case is when a regular server stops and its backup takes over its - duties, later the main server restarts and requests the server (the former backup) to - stop operating. - - - - - - - DEPRECATED: if we have to start as a replicated server this is the delay to wait before fail-back - occurs - - - - - - - If we have to start as a replicated server this is the amount of time to wait for the replica to - acknowledge it has received all the necessary data from the replicating server at the final step - of the initial replication synchronization process. - - - - - - - If we have to start as a replicated server decide whether or not this live broker should vote to remain - as live if replication is lost. - - - - - - - If we have to start as a replicated server or we are a backup and lose connection to live, the quorum size - used for voting after replication loss, -1 means use the current cluster size - - - - - - - If we lose connection to the master, how many times should we attempt to vote for quorum before restarting - - - - - - - How long to wait (in milliseconds) between each vote - - - - - - - How long to wait (in milliseconds) before trying to replicate again after failing to find a replica - - - - - - - How long to wait (in seconds) for vote results - - - - - - - - - - - - It's the manager used to manager distributed locks used for this type of replication. - - - - - - - used for replication, if set, (remote) backup servers will only pair with live servers with matching - group-name - - - - - - - Name of the cluster configuration to use for replication. This setting is only necessary in case you - configure multiple cluster connections. It is used by a replicating backups and by live servers that - may attempt fail-back. - - - - - - - The common identity to use for coordination that is shared across instances that will replicate. - The value will be used as the internal server nodeId and as the identity of entities in the - distributed-primitive-manager. - - - - - - - The amount of time to wait for the replica to acknowledge it has received all the necessary data from - the replicating server at the final step of the initial replication synchronization process. - - - - - - - If we start as a replica how long to wait (in milliseconds) before trying to replicate again after failing to find a replica - - - - - - - - - - - - It's the manager used to manager distributed locks used for this type of replication. - - - - - - - used for replication, if set, (remote) backup servers will only pair with live servers with matching - group-name - - - - - - - Name of the cluster configuration to use for replication. This setting is only necessary in case you - configure multiple cluster connections. It is used by a replicating backups and by live servers that - may attempt fail-back. - - - - - - - This specifies how many times a replicated backup server can restart after moving its files on start. - Once there are this number of backup journal files the server will stop permanently after if fails - back. - - - - - - - Whether a server will automatically stop when a another places a request to take over - its place. The use case is when a regular server stops and its backup takes over its - duties, later the main server restarts and requests the server (the former backup) to - stop operating. - - - - - - - If we have to start as a replicated server this is the amount of time to wait for the replica to - acknowledge it has received all the necessary data from the replicating server at the final step - of the initial replication synchronization process. - - - - - - - How long to wait (in milliseconds) before trying to replicate again after failing to find a replica - - - - - - - - - - - - used for replication, if set, (remote) backup servers will only pair with live servers with matching - group-name - - - - - - - Name of the cluster configuration to use for replication. This setting is only necessary in case you - configure multiple cluster connections. It is used by a replicating backups and by live servers that - may attempt fail-back. - - - - - - - This specifies how many times a replicated backup server can restart after moving its files on start. - Once there are this number of backup journal files the server will stop permanently after if fails - back. - - - - - - - if provided then this backup will scale down rather than becoming live after fail over. - - - - - - - Will this server, if a backup, restart once it has been stopped because of failback or scaling down. - - - - - - - - - - - - DEPRECATED: delay to wait before fail-back occurs on (live's) restart - - - - - - - Will this backup server come live on a normal server shutdown - - - - - - - Will the master startup wait until it is activated - - - - - - - - - - - - Whether a server will automatically stop when a another places a request to take over - its place. The use case is when a regular server stops and its backup takes over its - duties, later the main server restarts and requests the server (the former backup) to - stop operating. - - - - - - - DEPRECATED: delay to wait before fail-back occurs on (live's) restart - - - - - - - Will this backup server come live on a normal server shutdown - - - - - - - if provided then this backup will scale down rather than becoming live after fail over. - - - - - - - Will this server, if a backup, restart once it has been stopped because of failback or scaling down. - - - - - - - - - - - - If true then the server will request a backup on another node - - - - - - - How many times the live server will try to request a backup, -1 means for ever. - - - - - - - How long to wait for retries between attempts to request a backup server. - - - - - - - Whether or not this live server will accept backup requests from other live servers. - - - - - - - The offset to use for the Connectors and Acceptors when creating a new backup server. - - - - - - - - - - - - its possible that you only want a server to partake in scale down as a receiver, via a group. - In this case set scale-down to false - - - - - - - The scale down group to scale down to, a server will only scale down to a server within the same group - - - - - - - - - - The discovery group to use for scale down, if not supplied then the scale-down-connectors or - first - invm connector will be used - - - - - - - - - - A list of connectors to use for scaling down, if not supplied then the scale-down-discovery-group - or - first invm connector will be used - - - - - - - - - - - - - - - - - - - - Each cluster should choose 1 node to have a LOCAL grouping handler and all the other nodes should have - REMOTE handlers - - - - - - - - - - - - - A reference to a cluster connection address - - - - - - - How long to wait for a decision - - - - - - - How long a group binding will be used, -1 means for ever. Bindings are removed after this wait - elapses. On the remote node this is used to determine how often you should re-query the main - coordinator in order to update the last time used accordingly. - - - - - - - How often the reaper will be run to check for timed out group bindings. Only valid for LOCAL handlers - - - - - - - - A name identifying this grouping-handler - - - - - - - - - - - Complex type element to configure an address. - - - - - - - the address to send dead messages to - - - - - - - - whether or not to automatically create the dead-letter-address and/or a corresponding queue - on that address when a message found to be undeliverable - - - - - - - - the prefix to use for auto-created dead letter queues - - - - - - - - the suffix to use for auto-created dead letter queues - - - - - - - - the address to send expired messages to - - - - - - - - whether or not to automatically create the expiry-address and/or a corresponding queue - on that address when a message is sent to a matching queue - - - - - - - - the prefix to use for auto-created expiry queues - - - - - - - - the suffix to use for auto-created expiry queues - - - - - - - - Overrides the expiration time for messages using the default value for expiration time. "-1" - disables this setting. - - - - - - - - Overrides the expiration time for messages using a lower value. "-1" disables this setting. - - - - - - - - Overrides the expiration time for messages using a higher value. "-1" disables this setting. - - - - - - - - the time (in ms) to wait before redelivering a cancelled message. - - - - - - - - multiplier to apply to the "redelivery-delay" - - - - - - - - factor by which to modify the redelivery delay slightly to avoid collisions - - - - - - - - Maximum value for the redelivery-delay - - - - - - - - how many times to attempt to deliver a message before sending to dead letter address - - - - - - - - the maximum size (in bytes) for an address (-1 means no limits). This is used in PAGING, BLOCK and - FAIL policies. Supports byte notation like "K", "Mb", "GB", etc. - - - - - - - - used with the address full BLOCK policy, the maximum size (in bytes) an address can reach before - messages start getting rejected. Works in combination with max-size-bytes for AMQP protocol only. - Default = -1 (no limit). - - - - - - - - The page size (in bytes) to use for an address. Supports byte notation like "K", "Mb", - "GB", etc. - - - - - - - - Number of paging files to cache in memory to avoid IO during paging navigation - - - - - - - - what happens when an address where "max-size-bytes" is specified becomes full - - - - - - - - - - - - - - - - how many days to keep message counter history for this address - - - - - - - - This is deprecated please use default-last-value-queue instead. - - - - - - - - whether to treat the queues under the address as a last value queues by default - - - - - - - - the property to use as the key for a last value queue by default - - - - - - - - whether the queue should be non-destructive by default - - - - - - - - whether to treat the queues under the address as exclusive queues by default - - - - - - - - whether to rebalance groups when a consumer is added - - - - - - - - whether to pause dispatch when rebalancing groups - - - - - - - - number of buckets to use for grouping, -1 (default) is unlimited and uses the raw group, 0 disables message groups. - - - - - - - - key used to mark a message is first in a group for a consumer - - - - - - - - the default number of consumers needed before dispatch can start for queues under the address. - - - - - - - - the default delay (in milliseconds) to wait before dispatching if number of consumers before - dispatch is not met for queues under the address. - - - - - - - - how long (in ms) to wait after the last consumer is closed on a queue before redistributing - messages. - - - - - - - - if there are no queues matching this address, whether to forward message to DLA (if it exists for - this address) - - - - - - - - The minimum rate of message consumption allowed before a consumer is considered "slow." Measurement - unit is defined by the slow-consumer-threshold-measurement-unit parameter. By default this is - messages-per-seconds - - - - - - - - The units used to measure the slow consumer threshold. Default is messages-per-second. - - - - - - - - - - - - - - - - what happens when a slow consumer is identified - - - - - - - - - - - - - - How often to check for slow consumers on a particular queue. Measured in seconds. - - - - - - - - DEPRECATED: whether or not to automatically create JMS queues when a producer sends or a consumer connects to a - queue - - - - - - - - DEPRECATED: whether or not to delete auto-created JMS queues when the queue has 0 consumers and 0 messages - - - - - - - - DEPRECATED: whether or not to automatically create JMS topics when a producer sends or a consumer subscribes to - a topic - - - - - - - - DEPRECATED: whether or not to delete auto-created JMS topics when the last subscription is closed - - - - - - - - whether or not to automatically create a queue when a client sends a message to or attempts to consume - a message from a queue - - - - - - - - whether or not to delete auto-created queues when the queue has 0 consumers and 0 messages - - - - - - - - whether or not to delete created queues when the queue has 0 consumers and 0 messages - - - - - - - - how long to wait (in milliseconds) before deleting auto-created queues after the queue has 0 - consumers. - - - - - - - - the message count the queue must be at or below before it can be evaluated to be auto deleted, 0 waits until empty queue (default) and -1 disables this check. - - - - - - - - What to do when a queue is no longer in broker.xml. - OFF = will do nothing queues will remain, - FORCE = delete queues even if messages remaining. - - - - - - - - - - - - - - whether or not to automatically create addresses when a client sends a message to or attempts to - consume a message from a queue mapped to an address that doesn't exist - - - - - - - - whether or not to delete auto-created addresses when it no longer has any queues - - - - - - - - how long to wait (in milliseconds) before deleting auto-created addresses after they no longer - have any queues - - - - - - - - What to do when an address is no longer in broker.xml. - OFF = will do nothing addresses will remain, - FORCE = delete address and its queues even if messages remaining. - - - - - - - - - - - - - - What to do when a divert is no longer in broker.xml. - OFF = will do nothing queues will remain, - FORCE = delete queues even if messages remaining. - - - - - - - - - - - - - - how many message a management resource can browse, list or filter - - - - - - - - the size limit of any message attribute value returned from a browse ,list or filter. Attribute values that exceed with be truncated - - - - - - - - purge the contents of the queue once there are no consumers - - - - - - - - the maximum number of consumers allowed on this queue at any one time - - - - - - - - the routing-type used on auto-created queues - - - - - - - - the routing-type used on auto-created addresses - - - - - - - - the default window size for a consumer - - - - - - - - the default ring-size value for any matching queue which doesn't have `ring-size` explicitly - defined - - - - - - - - the number of messages to preserve for future queues created on the matching address - - - - - - - - whether or not to enable metrics for metrics plugins on the matching address - - - - - - - - whether or not the broker should set its own timestamp on incoming messages to the matching address - - - - - - - - - - pattern for matching settings against addresses; can use wildards - - - - - - - - - - - - Complex type element to configure resource limits for a particular user. - - - - - - - how many connections are allowed by the matched user (-1 means no limit, default is -1) - - - - - - - - how many queues can be created by the matched user (-1 means no limit, default is -1) - - - - - - - - - the name of the user to whom the limits should be applied - - - - - - - - - - - - optional core filter expression (set through attribute) - - - - - - optional core filter expression - - - - - - - - - - - - - Name of the factory class of the ConnectorService - - - - - - - - - name of the connector service - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - a list of pre configured queues to create - - - - - - - - - - - - - a list of pre configured queues to create - - - - - - - - - - - - - - The address name to match incoming message addresses - - - - - - - - - - - - - - - - - Complex type element to configure wildcard address format. - - - - - - - deprecated please use routing-enabled. - - - - - - - is wildcard addresses routing enabled. - - - - - - - wildcard address parts delimiter. Default '.' - - - - - - - wildcard address any words character. Default '#' - - - - - - - wildcard address single word character. Default '*' - - - - - - - - diff --git a/baseModule/src/main/resources/artemis-jms.xsd b/baseModule/src/main/resources/artemis-jms.xsd deleted file mode 100644 index 0a01c32e..00000000 --- a/baseModule/src/main/resources/artemis-jms.xsd +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/baseModule/src/main/resources/artemis-server.xsd b/baseModule/src/main/resources/artemis-server.xsd deleted file mode 100644 index 2f1cdc1a..00000000 --- a/baseModule/src/main/resources/artemis-server.xsd +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - Root element for a document specifying the configuration - of a single "standalone" server that does not operate - as part of a domain. - - - - - - - - A profile declaration may include configuration - elements from other namespaces for the subsystems that make up the profile. - - - - - - - - diff --git a/baseModule/src/main/resources/broker.xml b/baseModule/src/main/resources/broker.xml deleted file mode 100644 index 74cc6aba..00000000 --- a/baseModule/src/main/resources/broker.xml +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - assimbly-artemis-broker - - true - - admin - admin - - NIO - data/paging - data/bindings - data/journal - data/large-messages - true - 2 - 10 - 4096 - 10M - 60000 - 10000000 - 2000 - 10000 - 95 - true - 120000 - 60000 - HALT - 300000 - - - - - tcp://0.0.0.0:61616?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE;useEpoll=true;amqpCredits=1000;amqpLowCredits=300 - - - tcp://0.0.0.0:5672?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=AMQP,CORE;useEpoll=true;amqpCredits=1000;amqpLowCredits=300 - - - tcp://0.0.0.0:61613?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=STOMP;useEpoll=true - - - tcp://0.0.0.0:5445?anycastPrefix=jms.queue.;multicastPrefix=jms.topic.;protocols=HORNETQ,STOMP;useEpoll=true - - - tcp://0.0.0.0:1883?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=MQTT;useEpoll=true - - - - - - - - - - - - - - - - - - true - true - 300000 - OFF - - - - DLQ - ExpiryQueue - 0 - - -1 - 10 - PAGE - true - true - true - true - - - - DLQ - ExpiryQueue - 0 - - -1 - 10 - PAGE - true - true - true - true - - - - -

    - - - -
    -
    - - - -
    - - - - \ No newline at end of file diff --git a/baseModule/src/main/resources/broker.xsd b/baseModule/src/main/resources/broker.xsd deleted file mode 100644 index c6cc49c2..00000000 --- a/baseModule/src/main/resources/broker.xsd +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - Root element for a document specifying the configuration - of a single "standalone" server that does not operate - as part of a domain. - - - - - - - - A profile declaration may include configuration - elements from other namespaces for the subsystems that make up the profile. - - - - - - - - \ No newline at end of file diff --git a/baseModule/src/main/resources/integration.xsd b/baseModule/src/main/resources/integration.xsd deleted file mode 100644 index eebb6d2f..00000000 --- a/baseModule/src/main/resources/integration.xsd +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/baseModule/src/main/resources/keystore.jks b/baseModule/src/main/resources/keystore.jks deleted file mode 100644 index b83b94b6bace842beda344843bacf3b0582e64a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5452 zcmchb2{@G9`^V>*8Dmd&S;rDu@QhtV_PsFKiZYFD7~9OCD9aS>Qj;htOCmzDmo?rb zAw(s6B@uZ`p)CJrOnT|0nX(6V-dW!M?R1_I16W%#UA-*MCqSTt*EtH{xsffnr`li_a9 zMy8?=Ie~NG*TfT!OqQ8tu=I2ngmGx0JR&VzB`O7HbE_xipHm{k4qkSS@%DF-R<^9! zSv$JN?{#2J==z#@;A_mwY@_u~%C~}ry4usLO^4-trmv{XnzOi_ezw1O+p(Io91E)> zx^27m6GQf;T56oX)+;sQ*UBdx=hM8{QpD#j*tmDoHRYO5lixbo4W8we=_~heJo`8s z-F5%0lU|9)sJVQ4U=Ie_H*;6ulNH-e=IjZJ?fXh1GvezDg!qT9T5n+Zff7f_7eunsAJ=->`Q7L9YRTHDA@pG2`W7`_^Z4b(h_p>4ALYmqUkGGGv72Ew>!2RjBA{T%4|x zaB431yBbD$m$WIDyX19XYFdlciOaMz=L3gxxkRgJx0di-Z_ZmAL zhySLR^{Uu&;DBd$yTAU~PYNYtp%&LuoQAhJ*Y1#>P>`n@>mJ&DK{jbH$}C&s<5c${ zH-Y}!qw8AyZyO0}Dw+2T8S8GYP{+1yvq8-$jy5=&6LFG4UC6wHI$O6z`DTq5@bkTY zak8#LlQ?{ycxuVLB6Oo8SSuovG1U8h!1QoQu?!0n_(7qHy~eo4rsCG;@g#sJ@6m~e zNviwLvgtg0-<6Qy*T0t5u}1tSYp`be%4jTOv9OHAf{^o1`QDrF6mMPE0P@GH?e*88@_*UtQuX@P zQjp;{_l;4{CWX?ir#zpsk^Q-o)CJuOG*TA6=^ra-EI6|$Otx-QNsLdwbR2thOU2D# zGX*gRjqo0fvhefUxv1$JSIaU}lfKQg`gp}dQBfaxkv@FdCCL}6A256DobQ=m3d`?x ziLl3TjA}98cwVj4$?nrpIIw@wk%HA$i|WgdGfFDDzOJ)p@cFdwrd*>eOQ&Og7c8Ue zd&sAG63ya~#=*jU8kocjqb<8Rwcpg~Y3)-i|LhX6J}y=tcGlR_^iG;bYiiCW)}5ad z$43=&xky>yx^Ios3w)vVH}=XqJ}8=_E|eKNB{TA!3haSa$^qp0nd2-V3d(Uf0Q(yU zR8cHjP|%6N3;;-ZP!^O~u|XhK$eTh5+@_=yfF}p8IUK-n`jaJ)6p#dJq^hN=#A1Hj ziYF0O*4(PJ@reF-8mYm4yuC6C?xa~25tuBSK@{P0;2R_ z$WY+F9%@R4HrQ35z7_7RRRY>ax&E9U?sHs1?-#)XJbI(m~)D8M>mRPRh*Tl;_c`02) zi2tjL)sBgx2OpM#>Ry{JJ*$8fYZ&yPo5uW4P4c1gkEA;%oyZmmP?-MI#J69zZR^>H z360uYU0M~?nhhLdss%7f@7X-^aFcS6=0Y@6$>W8oN? z5I^O#@lAPXo`U}uyS`$|xm^lI zzI+`%qRH`B+C{8I4KK(|X9^1kn<0)!@C+dN6L1&-kdNNT%)yDp`J+upIDb5Wj1RzY zK@Wr4**H)JICm`83Q{pj^accnJfi_^$e0yF`>YCGeQ^(mobLW z22#^GN3fANp7EQ>h$}m@^45b^Zf>!<&94p1Yl_0Q z#p=gj3NZdaYp8G%N&MtmmtU?$-F%h-O9gPtvQQS|MZ!TCv}st~V$FcqSpx`&kW^xh z0@6rd?4pH<|>F2Rx0w_PF0@Uw^{j7nQs>K4z|0IUOa-%kjozW7m8ZtE`|}t-QH_ZI+Isis^VyOteg&ZxOqd_uv}D79WFFlXR+gd1 z?(c6*4GCbCPG+6pZYg5-G8(VSe#o8B9+uR4o}6sj66Ee1VAc8cfh#%Lbs!Qh6q3F> zZ^2aJWIFbx{r-t1uZf$x109ZoZhl(Xow*wKnUJH&7#l+A(mGDH3fohCiu!eTCQ2(W zxTcJh+7#9iv)jo%)A)0?#gvac{byv$U8P!RRRXzV9bi~mrpzC;qE=~kaVBI<3?K z%Z~n;Xx-IH&B@q%KGBCq$Lofs*3qy(t}5~f71iECr|SsUb0$R}TL2S!Ph4^+pa@nv z>Pu7$d8`3?!c{8vYF1BjNBTm@kjL(D;}f&; zn+wG@X4ut;%Swr`>p6>VD9A<_fO0*i-J^UA&`oKt!TSX zaD>>xt+<6HE>g8Eiu0F^_um#)%kTnKFq%JWIY`f`D69RDb)eVp;l;Zeu0Lu_W?l|Q z9ML}*su4*Z9=@wePpe=&j*K?Nkw^jlE6oTFj@2vokI;I6{4jfF68WI$g-utW(-WG| zxJ$OT`5mc}xrA$lTegPi5^F8ptgOcF7T0n`mEM^nHO0c`T=ZRew?qatSXREjsA!{c z(@PY0=BvKJA10jw$K|e5#@SN1?PMj%#A8;6?BBHej-s}k@!RDU$-l~3@?UaGun6_l z`ctMIQ`%=;+c1x<@H5COIlP$vg}+0^?449l;{(1hqWqYK#lRS`gj5`{CtaYIQ0Qp% zij60?zn;sK;-W7#bY)J2Hj*cW+N4-`&s>y4?pnt8(=$6ru-g|{UY>D0hK*)w9$EC= zowP$Prg8m!a^OdTkUq1q{oy%xz3p4;Zyg?|30uXsKaTmK@DMMcI^fwFvGQ9r^H)`u zGFcZM&A!c)5F~VjTZ2}aDWdlsl%}JN8z~A3Q`fu(D%)S1d97q*N@WPBjY#@g`a?S+ zfSUTVvl@NWZt(S&~+U`2O^MjC^L zpvDh!FAxFXKN5s2D3n(;2LMNahgYTnu|E*>|CeIeWMvcxkKML1R~%jckbkde>9q}` zv|&^>%Yv8!a?t0pT$0ldA}a6&#Rf@pB+z{bj)Wtrz+31$1Ps7JU^gmQSM_ zO@HDQ$fl!~gq#x@D1RN=vhERQ?|P_o+%u4)?+X3Rgn*fX#&Ahki#S`hf=a3$Q;P&E z&5F5KnmuxMy68KHpiJrrJBwZz9367OO;xb`WV>vhgP8uKx<0Hfe&>>>G^{XonMBkjPB|-nuJtTUgmbG{dh6SzWe0UK89a|6F>c;ca%CNTD#N^~=&NOswa=C@RUum2Lw6l+2`IAfuL}ISa)x>&`{gRRhs#P)l!W*93*~Gt z+T>a9>agpA1;ZvStIC2~-R=z;5F~Pku6br~MeM&rdT|ui5PmW&d!d=(*T{L&y&5Fuld`&S{^+6~gDVzXie3J1U#k@tvySw^c8g_1ZJw zFCoQ!bep(th&rumwn}UK3N+pOF9#|mP6d_FE=ninTnIPSbWC8&wHpwHGkx-)E9)XSl17nx1B!bUESEazoETqQ`^%$Gjn*= zW(^+22Gh>FdM~K~@jcugU*5kk(dFp!%3ge;H+6M8hkO2GS~@PUX!<1PsiXS2&p9)Z z=Gg1mG#jaS=ERhI1iyCRl;{bP@UyY*m%g98gQQiRFNZsw8r=43YS$R`(K++zs4QoJ zHse|6e7nM1Y=Nmu)!z0L(Lvj<2bWAWZ|6QVxnA~7G&AT@TE|5}oWB<{Vy-dzULe+U zB>iAP%By#oz@sS_*Fn)&K>{3e7i0jnsCQrEDkB@#$9|)++#-Z;7A@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/baseModule/src/main/resources/spring-beans.xsd b/baseModule/src/main/resources/spring-beans.xsd deleted file mode 100644 index 2270e5d7..00000000 --- a/baseModule/src/main/resources/spring-beans.xsd +++ /dev/null @@ -1,1202 +0,0 @@ - - - - - - - - - - - - - - - - - - - element. - ]]> - - - - - - - - and other elements, typically the root element in the document. - Allows the definition of default values for all nested bean definitions. May itself - be nested for the purpose of defining a subset of beans with certain default values or - to be registered only when certain profile(s) are active. Any such nested element - must be declared as the last element in the document. - ]]> - - - - - - - - - - - - - - - element should be parsed. Multiple profiles - can be separated by spaces, commas, or semi-colons. - - If one or more of the specified profiles are active at time of parsing, the - element will be parsed, and all of its elements registered, <import> - elements followed, etc. If none of the specified profiles are active at time of - parsing, then the entire element and its contents will be ignored. - - If a profile is prefixed with the NOT operator '!', e.g. - - - - indicates that the element should be parsed if profile "p1" is active or - if profile "p2" is not active. - - Profiles are activated in one of two ways: - Programmatic: - ConfigurableEnvironment#setActiveProfiles(String...) - ConfigurableEnvironment#setDefaultProfiles(String...) - - Properties (typically through -D system properties, environment variables, or - servlet context init params): - spring.profiles.active=p1,p2 - spring.profiles.default=p1,p2 - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - element (or "ref" - attribute). We recommend this in most cases as it makes documentation - more explicit. - - Note that this default mode also allows for annotation-driven autowiring, - if activated. "no" refers to externally driven autowiring only, not - affecting any autowiring demands that the bean class itself expresses. - - 2. "byName" - Autowiring by property name. If a bean of class Cat exposes a "dog" - property, Spring will try to set this to the value of the bean "dog" - in the current container. If there is no matching bean by name, nothing - special happens. - - 3. "byType" - Autowiring if there is exactly one bean of the property type in the - container. If there is more than one, a fatal error is raised, and - you cannot use byType autowiring for that bean. If there is none, - nothing special happens. - - 4. "constructor" - Analogous to "byType" for constructor arguments. If there is not exactly - one bean of the constructor argument type in the bean factory, a fatal - error is raised. - - Note that explicit dependencies, i.e. "property" and "constructor-arg" - elements, always override autowiring. - - Note: This attribute will not be inherited by child bean definitions. - Hence, it needs to be specified per concrete bean definition. It can be - shared through the 'default-autowire' attribute at the 'beans' level - and potentially inherited from outer 'beans' defaults in case of nested - 'beans' sections (e.g. with different profiles). - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - " element. - ]]> - - - - - ..." element. - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ". - ]]> - - - - - ..." element. - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ". - ]]> - - - - - ..." - element. - ]]> - - - - - ". - ]]> - - - - - ..." element. - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/baseModule/src/main/resources/test-jgroups-file_ping.xml b/baseModule/src/main/resources/test-jgroups-file_ping.xml deleted file mode 100644 index b6bd7793..00000000 --- a/baseModule/src/main/resources/test-jgroups-file_ping.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/baseModule/src/main/resources/transform-to-assimbly.xsl b/baseModule/src/main/resources/transform-to-assimbly.xsl deleted file mode 100644 index cbe99fdb..00000000 --- a/baseModule/src/main/resources/transform-to-assimbly.xsl +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - 1 - default - FULL - PRODUCTION - PRODUCTION - - - - - - - - - - - - - - - - - - - - - - - - - - - - - esb - - - - - - - - - - - - - - - - - - - - route - - - - - - - - - - - - - - - - - - - - - - - - - - - - - errorHandler- - - - - - - - - - - - - - - - - - - - errorHandler- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/baseModule/src/main/resources/truststore.jks b/baseModule/src/main/resources/truststore.jks deleted file mode 100644 index 936813a96a23e77eba25dd5a008af1cda0ab4dc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32 ncmezO_TO6u1_mY|X0Tbtz`j(P@urpculd1S)om{*O}GO9!e - - - - - See http://www.w3.org/XML/1998/namespace.html and - http://www.w3.org/TR/REC-xml for information about this namespace. - - This schema document describes the XML namespace, in a form - suitable for import by other schema documents. - - Note that local names in this namespace are intended to be defined - only by the World Wide Web Consortium or its subgroups. The - following names are currently defined in this namespace and should - not be used with conflicting semantics by any Working Group, - specification, or document instance: - - base (as an attribute name): denotes an attribute whose value - provides a URI to be used as the base for interpreting any - relative URIs in the scope of the element on which it - appears; its value is inherited. This name is reserved - by virtue of its definition in the XML Base specification. - - id (as an attribute name): denotes an attribute whose value - should be interpreted as if declared to be of type ID. - The xml:id specification is not yet a W3C Recommendation, - but this attribute is included here to facilitate experimentation - with the mechanisms it proposes. Note that it is _not_ included - in the specialAttrs attribute group. - - lang (as an attribute name): denotes an attribute whose value - is a language code for the natural language of the content of - any element; its value is inherited. This name is reserved - by virtue of its definition in the XML specification. - - space (as an attribute name): denotes an attribute whose - value is a keyword indicating what whitespace processing - discipline is intended for the content of the element; its - value is inherited. This name is reserved by virtue of its - definition in the XML specification. - - Father (in any context at all): denotes Jon Bosak, the chair of - the original XML Working Group. This name is reserved by - the following decision of the W3C XML Plenary and - XML Coordination groups: - - In appreciation for his vision, leadership and dedication - the W3C XML Plenary on this 10th day of February, 2000 - reserves for Jon Bosak in perpetuity the XML name - xml:Father - - - - - This schema defines attributes and an attribute group - suitable for use by - schemas wishing to allow xml:base, xml:lang, xml:space or xml:id - attributes on elements they define. - - To enable this, such a schema must import this schema - for the XML namespace, e.g. as follows: - <schema . . .> - . . . - <import namespace="http://www.w3.org/XML/1998/namespace" - schemaLocation="http://www.w3.org/2005/08/xml.xsd"/> - - Subsequently, qualified reference to any of the attributes - or the group defined below will have the desired effect, e.g. - - <type . . .> - . . . - <attributeGroup ref="xml:specialAttrs"/> - - will define a type which will schema-validate an instance - element with any of those attributes - - - - In keeping with the XML Schema WG's standard versioning - policy, this schema document will persist at - http://www.w3.org/2005/08/xml.xsd. - At the date of issue it can also be found at - http://www.w3.org/2001/xml.xsd. - The schema document at that URI may however change in the future, - in order to remain compatible with the latest version of XML Schema - itself, or with the XML namespace itself. In other words, if the XML - Schema or XML namespaces change, the version of this document at - http://www.w3.org/2001/xml.xsd will change - accordingly; the version at - http://www.w3.org/2005/08/xml.xsd will not change. - - - - - - Attempting to install the relevant ISO 2- and 3-letter - codes as the enumerated possible values is probably never - going to be a realistic possibility. See - RFC 3066 at http://www.ietf.org/rfc/rfc3066.txt and the IANA registry - at http://www.iana.org/assignments/lang-tag-apps.htm for - further information. - - The union allows for the 'un-declaration' of xml:lang with - the empty string. - - - - - - - - - - - - - - - - - - - - - - - - See http://www.w3.org/TR/xmlbase/ for - information about this attribute. - - - - - - See http://www.w3.org/TR/xml-id/ for - information about this attribute. - - - - - - - - - - diff --git a/build_modules.bat b/bin/build_modules.bat similarity index 100% rename from build_modules.bat rename to bin/build_modules.bat diff --git a/broker/pom.xml b/broker/pom.xml new file mode 100644 index 00000000..ef2fe9c8 --- /dev/null +++ b/broker/pom.xml @@ -0,0 +1,71 @@ + + + + 4.0.0 + + + modules + org.assimbly + 3.7.0 + + + broker + jar + + org.assimbly + broker + 3.7.0 + + + UTF-8 + 11 + file:///${project.basedir}/rules.xml + + + + + org.assimbly + activemqBase + ${assimbly-base.version} + + + org.assimbly + springBase + ${assimbly-base.version} + + + org.assimbly + utils + ${assimbly-base.version} + + + org.assimbly + testBase + ${assimbly-base.version} + + + + + + + org.apache.maven.plugins + maven-toolchains-plugin + + + + toolchain + + + + + 11 + + + + + + + + + + diff --git a/brokerModule/src/main/java/org/assimbly/broker/Broker.java b/broker/src/main/java/org/assimbly/broker/Broker.java similarity index 100% rename from brokerModule/src/main/java/org/assimbly/broker/Broker.java rename to broker/src/main/java/org/assimbly/broker/Broker.java diff --git a/brokerModule/src/main/java/org/assimbly/broker/converter/CompositeDataConverter.java b/broker/src/main/java/org/assimbly/broker/converter/CompositeDataConverter.java similarity index 100% rename from brokerModule/src/main/java/org/assimbly/broker/converter/CompositeDataConverter.java rename to broker/src/main/java/org/assimbly/broker/converter/CompositeDataConverter.java diff --git a/brokerModule/src/main/java/org/assimbly/broker/decoder/AssimblyCodec.java b/broker/src/main/java/org/assimbly/broker/decoder/AssimblyCodec.java similarity index 100% rename from brokerModule/src/main/java/org/assimbly/broker/decoder/AssimblyCodec.java rename to broker/src/main/java/org/assimbly/broker/decoder/AssimblyCodec.java diff --git a/brokerModule/src/main/java/org/assimbly/broker/impl/ActiveMQArtemis.java b/broker/src/main/java/org/assimbly/broker/impl/ActiveMQArtemis.java similarity index 100% rename from brokerModule/src/main/java/org/assimbly/broker/impl/ActiveMQArtemis.java rename to broker/src/main/java/org/assimbly/broker/impl/ActiveMQArtemis.java diff --git a/brokerModule/src/main/java/org/assimbly/broker/impl/ActiveMQClassic.java b/broker/src/main/java/org/assimbly/broker/impl/ActiveMQClassic.java similarity index 100% rename from brokerModule/src/main/java/org/assimbly/broker/impl/ActiveMQClassic.java rename to broker/src/main/java/org/assimbly/broker/impl/ActiveMQClassic.java diff --git a/brokerModule/pom.xml b/brokerModule/pom.xml deleted file mode 100644 index d8624108..00000000 --- a/brokerModule/pom.xml +++ /dev/null @@ -1,167 +0,0 @@ - - - 4.0.0 - - modules - org.assimbly - 3.7.0 - - - jar - org.assimbly - brokerModule - 3.7.0 - - brokerModule - - - UTF-8 - 11 - file:///${project.basedir}/../baseModule/src/main/resources/rules.xml - - - - - org.assimbly - baseModule - 3.7.0 - compile - - - - - org.apache.activemq - activemq-broker - ${activemq-classic-version} - - - org.apache.activemq - activemq-pool - ${activemq-classic-version} - - - org.apache.activemq - activemq-kahadb-store - ${activemq-classic-version} - runtime - - - org.apache.activemq - activemq-amqp - ${activemq-classic-version} - - - org.apache.activemq - activemq-client - ${activemq-classic-version} - - - - - org.apache.activemq - artemis-server - ${activemq-artemis-version} - - - org.apache.activemq - artemis-jms-server - ${activemq-artemis-version} - - - org.apache.activemq - artemis-commons - ${activemq-artemis-version} - - - org.apache.activemq - artemis-core-client - ${activemq-artemis-version} - - - org.apache.activemq - artemis-ra - ${activemq-artemis-version} - - - org.apache.activemq - artemis-dto - ${activemq-artemis-version} - - - - org.apache.activemq - artemis-amqp-protocol - ${activemq-artemis-version} - - - org.apache.activemq - artemis-mqtt-protocol - ${activemq-artemis-version} - - - org.apache.activemq - artemis-stomp-protocol - ${activemq-artemis-version} - - - org.apache.activemq - artemis-openwire-protocol - ${activemq-artemis-version} - - - org.apache.activemq - artemis-hornetq-protocol - ${activemq-artemis-version} - - - - org.apache.activemq - activemq-artemis-native - 1.0.2 - - - - org.apache.activemq - artemis-jms-client-all - ${activemq-artemis-version} - - - - - org.apache.qpid - proton-j - 0.33.10 - - - - - - - - - org.apache.maven.plugins - maven-toolchains-plugin - - - - toolchain - - - - - 11 - - - - - - - - - - diff --git a/integrationRestModule/pom.xml b/brokerRest/pom.xml similarity index 72% rename from integrationRestModule/pom.xml rename to brokerRest/pom.xml index f7ee334a..fe1b00b4 100644 --- a/integrationRestModule/pom.xml +++ b/brokerRest/pom.xml @@ -1,46 +1,38 @@ + 4.0.0 + modules org.assimbly 3.7.0 + brokerRest jar + org.assimbly - integrationRestModule + brokerRest 3.7.0 - connectorRestModule - UTF-8 11 - file:///${project.basedir}/../baseModule/src/main/resources/rules.xml + file:///${project.basedir}/rules.xml - - - org.assimbly - baseModule - 3.7.0 - compile - org.assimbly - integrationModule - 3.7.0 - compile + broker + ${assimbly-base.version} - org.springdoc springdoc-openapi-ui - 1.6.9 + ${springdoc-openapi-ui.version} - diff --git a/brokerRestModule/src/main/java/org/assimbly/brokerrest/BrokerConfigurerResource.java b/brokerRest/src/main/java/org/assimbly/brokerrest/BrokerConfigurerResource.java similarity index 100% rename from brokerRestModule/src/main/java/org/assimbly/brokerrest/BrokerConfigurerResource.java rename to brokerRest/src/main/java/org/assimbly/brokerrest/BrokerConfigurerResource.java diff --git a/brokerRestModule/src/main/java/org/assimbly/brokerrest/BrokerManagerResource.java b/brokerRest/src/main/java/org/assimbly/brokerrest/BrokerManagerResource.java similarity index 100% rename from brokerRestModule/src/main/java/org/assimbly/brokerrest/BrokerManagerResource.java rename to brokerRest/src/main/java/org/assimbly/brokerrest/BrokerManagerResource.java diff --git a/brokerRestModule/src/main/java/org/assimbly/brokerrest/ManagedBroker.java b/brokerRest/src/main/java/org/assimbly/brokerrest/ManagedBroker.java similarity index 100% rename from brokerRestModule/src/main/java/org/assimbly/brokerrest/ManagedBroker.java rename to brokerRest/src/main/java/org/assimbly/brokerrest/ManagedBroker.java diff --git a/brokerRestModule/src/main/java/org/assimbly/brokerrest/MessageBrokerResource.java b/brokerRest/src/main/java/org/assimbly/brokerrest/MessageBrokerResource.java similarity index 100% rename from brokerRestModule/src/main/java/org/assimbly/brokerrest/MessageBrokerResource.java rename to brokerRest/src/main/java/org/assimbly/brokerrest/MessageBrokerResource.java diff --git a/brokerRestModule/src/main/java/org/assimbly/brokerrest/QueueManagerResource.java b/brokerRest/src/main/java/org/assimbly/brokerrest/QueueManagerResource.java similarity index 100% rename from brokerRestModule/src/main/java/org/assimbly/brokerrest/QueueManagerResource.java rename to brokerRest/src/main/java/org/assimbly/brokerrest/QueueManagerResource.java diff --git a/brokerRestModule/src/main/java/org/assimbly/brokerrest/TopicManagerResource.java b/brokerRest/src/main/java/org/assimbly/brokerrest/TopicManagerResource.java similarity index 100% rename from brokerRestModule/src/main/java/org/assimbly/brokerrest/TopicManagerResource.java rename to brokerRest/src/main/java/org/assimbly/brokerrest/TopicManagerResource.java diff --git a/extraModule/pom.xml b/extraModule/pom.xml deleted file mode 100644 index 18edd732..00000000 --- a/extraModule/pom.xml +++ /dev/null @@ -1,174 +0,0 @@ - - - - modules - org.assimbly - 3.7.0 - - 4.0.0 - - extraModule - - - UTF-8 - 11 - file:///${project.basedir}/../baseModule/src/main/resources/rules.xml - - - - sonic-releases - https://int-factory.aurea.com/nexus/content/repositories/sonic-releases/ - - - - - - - - com.aurea.sonic.mq - sonic_Client - 10.0.18 - - - com.aurea.sonic.mq - sonic_Crypto - 10.0.18 - - - com.aurea.sonic.mq - sonic_XMessage - 10.0.18 - - - - - world.dovetail - aggregate - 3.7.0 - - - world.dovetail - aleris - 3.7.0 - - - world.dovetail - amazon - 3.7.0 - - - world.dovetail - archive - 3.7.0 - - - world.dovetail - cookies - 3.7.0 - - - world.dovetail - csvtoxml - 3.7.0 - - - world.dovetail - docconverter - 3.7.0 - - - world.dovetail - edi - 3.7.0 - - - world.dovetail - edifact - 3.7.0 - - - world.dovetail - edifactstandards - 3.7.0 - - - world.dovetail - encoder - 3.7.0 - - - world.dovetail - enrich - 3.7.0 - - - world.dovetail - exceltoxml - 3.7.0 - - - world.dovetail - flv - 3.7.0 - - - world.dovetail - fmuta - 3.7.0 - - - world.dovetail - formtoxml - 3.7.0 - - - world.dovetail - globalvariables - 3.7.0 - - - world.dovetail - multipart - 3.7.0 - - - world.dovetail - replace - 3.7.0 - - - world.dovetail - sandbox - 3.7.0 - - - world.dovetail - simplereplace - 3.7.0 - - - world.dovetail - throttling - 3.7.0 - - - world.dovetail - xmltocsv - 3.7.0 - - - world.dovetail - xmltoexcel - 3.7.0 - - - world.dovetail - xmltojson - 3.7.0 - - - - - \ No newline at end of file diff --git a/integration/pom.xml b/integration/pom.xml new file mode 100644 index 00000000..72f2f460 --- /dev/null +++ b/integration/pom.xml @@ -0,0 +1,128 @@ + + + 4.0.0 + + modules + org.assimbly + 3.7.0 + + + integration + jar + + org.assimbly + integration + 3.7.0 + + + + UTF-8 + 11 + file:///${project.basedir}/rules.xml + + + + + org.assimbly + camelBase + ${assimbly-base.version} + + + org.assimbly + camelComponents + ${assimbly-base.version} + + + org.assimbly + camelCustomComponents + ${assimbly-base.version} + + + org.assimbly + databaseDrivers + ${assimbly-base.version} + + + org.assimbly + extra + ${assimbly-base.version} + + + org.assimbly + springBase + ${assimbly-base.version} + + + org.assimbly + utils + ${assimbly-base.version} + + + org.assimbly + testBase + ${assimbly-base.version} + + + + + com.ibm.mq + com.ibm.mq.allclient + ${ibmmq-client.version} + + + + + io.netty + netty-all + ${netty.version} + + + + io.dropwizard.metrics + metrics-core + ${dropwizard-metrics.version} + + + + + org.jolokia + jolokia-core + ${jolokia.version} + + + org.jolokia + jolokia-jvm + ${jolokia.version} + + + org.jolokia + jolokia-client-java + ${jolokia.version} + + + + + + + + org.apache.maven.plugins + maven-toolchains-plugin + + + + toolchain + + + + + 11 + + + + + + + + + + \ No newline at end of file diff --git a/integrationModule/src/main/java/org/assimbly/integration/Integration.java b/integration/src/main/java/org/assimbly/integration/Integration.java similarity index 100% rename from integrationModule/src/main/java/org/assimbly/integration/Integration.java rename to integration/src/main/java/org/assimbly/integration/Integration.java diff --git a/integrationModule/src/main/java/org/assimbly/integration/beans/CustomHttpBinding.java b/integration/src/main/java/org/assimbly/integration/beans/CustomHttpBinding.java similarity index 100% rename from integrationModule/src/main/java/org/assimbly/integration/beans/CustomHttpBinding.java rename to integration/src/main/java/org/assimbly/integration/beans/CustomHttpBinding.java diff --git a/integrationModule/src/main/java/org/assimbly/integration/beans/UuidExtensionFunction.java b/integration/src/main/java/org/assimbly/integration/beans/UuidExtensionFunction.java similarity index 100% rename from integrationModule/src/main/java/org/assimbly/integration/beans/UuidExtensionFunction.java rename to integration/src/main/java/org/assimbly/integration/beans/UuidExtensionFunction.java diff --git a/integrationModule/src/main/java/org/assimbly/integration/configuration/JSONFileConfiguration.java b/integration/src/main/java/org/assimbly/integration/configuration/JSONFileConfiguration.java similarity index 100% rename from integrationModule/src/main/java/org/assimbly/integration/configuration/JSONFileConfiguration.java rename to integration/src/main/java/org/assimbly/integration/configuration/JSONFileConfiguration.java diff --git a/integrationModule/src/main/java/org/assimbly/integration/configuration/XMLFileConfiguration.java b/integration/src/main/java/org/assimbly/integration/configuration/XMLFileConfiguration.java similarity index 100% rename from integrationModule/src/main/java/org/assimbly/integration/configuration/XMLFileConfiguration.java rename to integration/src/main/java/org/assimbly/integration/configuration/XMLFileConfiguration.java diff --git a/integrationModule/src/main/java/org/assimbly/integration/configuration/YAMLFileConfiguration.java b/integration/src/main/java/org/assimbly/integration/configuration/YAMLFileConfiguration.java similarity index 100% rename from integrationModule/src/main/java/org/assimbly/integration/configuration/YAMLFileConfiguration.java rename to integration/src/main/java/org/assimbly/integration/configuration/YAMLFileConfiguration.java diff --git a/integrationModule/src/main/java/org/assimbly/integration/configuration/marshalling/Marshall.java b/integration/src/main/java/org/assimbly/integration/configuration/marshalling/Marshall.java similarity index 100% rename from integrationModule/src/main/java/org/assimbly/integration/configuration/marshalling/Marshall.java rename to integration/src/main/java/org/assimbly/integration/configuration/marshalling/Marshall.java diff --git a/integrationModule/src/main/java/org/assimbly/integration/configuration/marshalling/Unmarshall.java b/integration/src/main/java/org/assimbly/integration/configuration/marshalling/Unmarshall.java similarity index 100% rename from integrationModule/src/main/java/org/assimbly/integration/configuration/marshalling/Unmarshall.java rename to integration/src/main/java/org/assimbly/integration/configuration/marshalling/Unmarshall.java diff --git a/integrationModule/src/main/java/org/assimbly/integration/configuration/ssl/SSLConfiguration.java b/integration/src/main/java/org/assimbly/integration/configuration/ssl/SSLConfiguration.java similarity index 100% rename from integrationModule/src/main/java/org/assimbly/integration/configuration/ssl/SSLConfiguration.java rename to integration/src/main/java/org/assimbly/integration/configuration/ssl/SSLConfiguration.java diff --git a/integrationModule/src/main/java/org/assimbly/integration/event/EventCollector.java b/integration/src/main/java/org/assimbly/integration/event/EventCollector.java similarity index 100% rename from integrationModule/src/main/java/org/assimbly/integration/event/EventCollector.java rename to integration/src/main/java/org/assimbly/integration/event/EventCollector.java diff --git a/integrationModule/src/main/java/org/assimbly/integration/event/FlowEvent.java b/integration/src/main/java/org/assimbly/integration/event/FlowEvent.java similarity index 100% rename from integrationModule/src/main/java/org/assimbly/integration/event/FlowEvent.java rename to integration/src/main/java/org/assimbly/integration/event/FlowEvent.java diff --git a/integrationModule/src/main/java/org/assimbly/integration/impl/BaseIntegration.java b/integration/src/main/java/org/assimbly/integration/impl/BaseIntegration.java similarity index 100% rename from integrationModule/src/main/java/org/assimbly/integration/impl/BaseIntegration.java rename to integration/src/main/java/org/assimbly/integration/impl/BaseIntegration.java diff --git a/integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java b/integration/src/main/java/org/assimbly/integration/impl/CamelIntegration.java similarity index 100% rename from integrationModule/src/main/java/org/assimbly/integration/impl/CamelIntegration.java rename to integration/src/main/java/org/assimbly/integration/impl/CamelIntegration.java diff --git a/integrationModule/src/main/java/org/assimbly/integration/processors/ConvertProcessor.java b/integration/src/main/java/org/assimbly/integration/processors/ConvertProcessor.java similarity index 100% rename from integrationModule/src/main/java/org/assimbly/integration/processors/ConvertProcessor.java rename to integration/src/main/java/org/assimbly/integration/processors/ConvertProcessor.java diff --git a/integrationModule/src/main/java/org/assimbly/integration/processors/FailureProcessor.java b/integration/src/main/java/org/assimbly/integration/processors/FailureProcessor.java similarity index 100% rename from integrationModule/src/main/java/org/assimbly/integration/processors/FailureProcessor.java rename to integration/src/main/java/org/assimbly/integration/processors/FailureProcessor.java diff --git a/integrationModule/src/main/java/org/assimbly/integration/processors/HeadersProcessor.java b/integration/src/main/java/org/assimbly/integration/processors/HeadersProcessor.java similarity index 100% rename from integrationModule/src/main/java/org/assimbly/integration/processors/HeadersProcessor.java rename to integration/src/main/java/org/assimbly/integration/processors/HeadersProcessor.java diff --git a/integrationModule/src/main/java/org/assimbly/integration/routes/ConnectorRoute.java b/integration/src/main/java/org/assimbly/integration/routes/ConnectorRoute.java similarity index 100% rename from integrationModule/src/main/java/org/assimbly/integration/routes/ConnectorRoute.java rename to integration/src/main/java/org/assimbly/integration/routes/ConnectorRoute.java diff --git a/integrationModule/src/main/java/org/assimbly/integration/routes/ESBRoute.java b/integration/src/main/java/org/assimbly/integration/routes/ESBRoute.java similarity index 100% rename from integrationModule/src/main/java/org/assimbly/integration/routes/ESBRoute.java rename to integration/src/main/java/org/assimbly/integration/routes/ESBRoute.java diff --git a/integrationModule/src/main/java/org/assimbly/integration/routes/SimpleRoute.java b/integration/src/main/java/org/assimbly/integration/routes/SimpleRoute.java similarity index 100% rename from integrationModule/src/main/java/org/assimbly/integration/routes/SimpleRoute.java rename to integration/src/main/java/org/assimbly/integration/routes/SimpleRoute.java diff --git a/integrationModule/src/main/java/org/assimbly/integration/routes/errorhandler/ErrorHandler.java b/integration/src/main/java/org/assimbly/integration/routes/errorhandler/ErrorHandler.java similarity index 100% rename from integrationModule/src/main/java/org/assimbly/integration/routes/errorhandler/ErrorHandler.java rename to integration/src/main/java/org/assimbly/integration/routes/errorhandler/ErrorHandler.java diff --git a/integrationModule/src/main/java/org/assimbly/integration/routes/templates/FromRouteTemplates.java b/integration/src/main/java/org/assimbly/integration/routes/templates/FromRouteTemplates.java similarity index 100% rename from integrationModule/src/main/java/org/assimbly/integration/routes/templates/FromRouteTemplates.java rename to integration/src/main/java/org/assimbly/integration/routes/templates/FromRouteTemplates.java diff --git a/integrationModule/src/main/java/org/assimbly/integration/service/Connection.java b/integration/src/main/java/org/assimbly/integration/service/Connection.java similarity index 100% rename from integrationModule/src/main/java/org/assimbly/integration/service/Connection.java rename to integration/src/main/java/org/assimbly/integration/service/Connection.java diff --git a/baseModule/src/test/java/org/assimbly/AppTest.java b/integration/src/test/java/org/assimbly/AppTest.java similarity index 100% rename from baseModule/src/test/java/org/assimbly/AppTest.java rename to integration/src/test/java/org/assimbly/AppTest.java diff --git a/integrationModule/pom.xml b/integrationModule/pom.xml deleted file mode 100644 index e2e80a74..00000000 --- a/integrationModule/pom.xml +++ /dev/null @@ -1,234 +0,0 @@ - - - 4.0.0 - - modules - org.assimbly - 3.7.0 - - - jar - org.assimbly - integrationModule - 3.7.0 - - integrationModule - - - UTF-8 - 11 - file:///${project.basedir}/../baseModule/src/main/resources/rules.xml - - - - - org.assimbly - baseModule - 3.7.0 - compile - - - org.assimbly - baseComponentsModule - 3.7.0 - compile - - - org.assimbly - extraModule - 3.7.0 - compile - - - - - org.apache.camel - camel-api - - - org.apache.camel - camel-base - - - org.apache.camel - camel-bean - - - org.apache.camel - camel-browse - - - org.apache.camel - camel-caffeine-lrucache - - - org.apache.camel - camel-catalog - - - org.apache.camel - camel-cloud - - - org.apache.camel - camel-controlbus - - - org.apache.camel - camel-core-engine - - - org.apache.camel - camel-core-catalog - - - org.apache.camel - camel-core-xml - - - org.apache.camel - camel-csimple-joor - - - org.apache.camel - camel-csv - - - org.apache.camel - camel-dataformat - - - org.apache.camel - camel-dataset - - - org.apache.camel - camel-groovy - - - org.apache.camel - camel-joor - - - org.apache.camel - camel-jsonpath - - - org.apache.camel - camel-management - - - org.apache.camel - camel-management-api - - - org.apache.camel - camel-metrics - - - org.apache.camel - camel-saxon - - - org.apache.camel - camel-support - - - org.apache.camel - camel-util - - - org.apache.camel - camel-util-json - - - org.apache.camel - camel-validator - - - org.apache.camel - camel-xpath - - - org.apache.camel - camel-xslt - - - org.apache.camel - camel-xml-io - - - org.apache.camel - camel-xml-io-dsl - - - org.apache.camel - camel-xslt-saxon - - - org.apache.camel - camel-yaml-dsl - - - org.apache.activemq - artemis-jms-client-all - ${activemq-artemis-version} - - - - - com.ibm.mq - com.ibm.mq.allclient - 9.2.5.0 - - - - - mysql - mysql-connector-java - 8.0.29 - - - org.postgresql - postgresql - 42.4.0 - - - com.microsoft.sqlserver - mssql-jdbc - 10.2.0.jre11 - - - - - - - - - - - org.apache.maven.plugins - maven-toolchains-plugin - - - - toolchain - - - - - 11 - - - - - - - - - - \ No newline at end of file diff --git a/integrationModule/src/test/java/org/assimbly/AppTest.java b/integrationModule/src/test/java/org/assimbly/AppTest.java deleted file mode 100644 index 6f8dfbb2..00000000 --- a/integrationModule/src/test/java/org/assimbly/AppTest.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.assimbly; - -import static org.junit.Assert.assertTrue; - -import org.junit.Test; - -/** - * Unit test for simple App. - */ -public class AppTest -{ - /** - * Rigorous Test :-) - */ - @Test - public void shouldAnswerWithTrue() - { - assertTrue( true ); - } -} diff --git a/brokerRestModule/pom.xml b/integrationRest/pom.xml similarity index 73% rename from brokerRestModule/pom.xml rename to integrationRest/pom.xml index 90b0559f..210de404 100644 --- a/brokerRestModule/pom.xml +++ b/integrationRest/pom.xml @@ -1,47 +1,38 @@ + 4.0.0 + modules org.assimbly 3.7.0 + integrationRest jar + org.assimbly - brokerRestModule + integrationRest 3.7.0 - brokerRestModule - UTF-8 11 - file:///${project.basedir}/../baseModule/src/main/resources/rules.xml + file:///${project.basedir}/rules.xml - org.assimbly - baseModule - 3.7.0 - compile + integration + ${assimbly-base.version} - - org.assimbly - brokerModule - 3.7.0 - compile - - - org.springdoc springdoc-openapi-ui - 1.6.9 + ${springdoc-openapi-ui.version} - diff --git a/integrationRestModule/src/main/java/org/assimbly/integrationrest/FlowConfigurerResource.java b/integrationRest/src/main/java/org/assimbly/integrationrest/FlowConfigurerResource.java similarity index 100% rename from integrationRestModule/src/main/java/org/assimbly/integrationrest/FlowConfigurerResource.java rename to integrationRest/src/main/java/org/assimbly/integrationrest/FlowConfigurerResource.java diff --git a/integrationRestModule/src/main/java/org/assimbly/integrationrest/FlowManagerResource.java b/integrationRest/src/main/java/org/assimbly/integrationrest/FlowManagerResource.java similarity index 100% rename from integrationRestModule/src/main/java/org/assimbly/integrationrest/FlowManagerResource.java rename to integrationRest/src/main/java/org/assimbly/integrationrest/FlowManagerResource.java diff --git a/integrationRestModule/src/main/java/org/assimbly/integrationrest/IntegrationResource.java b/integrationRest/src/main/java/org/assimbly/integrationrest/IntegrationResource.java similarity index 100% rename from integrationRestModule/src/main/java/org/assimbly/integrationrest/IntegrationResource.java rename to integrationRest/src/main/java/org/assimbly/integrationrest/IntegrationResource.java diff --git a/integrationRestModule/src/main/java/org/assimbly/integrationrest/MessageManagerResource.java b/integrationRest/src/main/java/org/assimbly/integrationrest/MessageManagerResource.java similarity index 100% rename from integrationRestModule/src/main/java/org/assimbly/integrationrest/MessageManagerResource.java rename to integrationRest/src/main/java/org/assimbly/integrationrest/MessageManagerResource.java diff --git a/integrationRestModule/src/main/java/org/assimbly/integrationrest/event/FailureListener.java b/integrationRest/src/main/java/org/assimbly/integrationrest/event/FailureListener.java similarity index 100% rename from integrationRestModule/src/main/java/org/assimbly/integrationrest/event/FailureListener.java rename to integrationRest/src/main/java/org/assimbly/integrationrest/event/FailureListener.java diff --git a/pom.xml b/pom.xml index b5e9464b..ccaf5048 100644 --- a/pom.xml +++ b/pom.xml @@ -1,295 +1,34 @@ + 4.0.0 - org.assimbly - modules + modules + https://github.com/assimbly/modules pom - org.assimbly.camelconnector - http://maven.apache.org + org.assimbly + modules 3.7.0 + - baseModule - baseComponentsModule - brokerModule - brokerRestModule - integrationModule - integrationRestModule - extraModule + broker + brokerRest + integration + integrationRest + 3.7.0 + 4.2.10 + 1.7.1 + 9.2.5.0 + 4.1.78.Final + 1.6.9 UTF-8 - 5.17.1 - 2.23.1 - 5.3.21 - 1.7.1 - file:///${project.basedir}/baseModule/src/main/resources/rules.xml + file:///${project.basedir}/rules.xml - - - - org.apache.camel - camel-bom - 3.14.4 - pom - import - - - - - - - - org.jasypt - jasypt - 1.9.3 - - - org.apache.camel - camel-jasypt - - - - - org.jolokia - jolokia-core - ${jolokia-version} - - - org.jolokia - jolokia-jvm - ${jolokia-version} - - - org.jolokia - jolokia-client-java - ${jolokia-version} - - - - - org.apache.commons - commons-configuration2 - 2.7 - - - commons-cli - commons-cli - 1.5.0 - - - commons-io - commons-io - 2.11.0 - - - - org.apache.commons - commons-collections4 - 4.4 - - - commons-jxpath - commons-jxpath - 1.3 - - - commons-dbcp - commons-dbcp - 1.4 - - - commons-beanutils - commons-beanutils - 1.9.4 - - - com.jayway.jsonpath - json-path - 2.7.0 - - - - org.apache.httpcomponents - httpclient - 4.5.13 - - - - javax.servlet - javax.servlet-api - 4.0.1 - - - javax.json - javax.json-api - 1.1.4 - - - - aopalliance - aopalliance - 1.0 - - - - org.bouncycastle - bcpkix-jdk15on - 1.70 - - - - ch.qos.logback - logback-classic - 1.2.11 - - - org.slf4j - slf4j-log4j12 - - - log4j - log4j - - - - - - - - io.github.assimbly - docconverter - 1.5.0 - - - - - junit - junit - 4.13.2 - test - - - - - javax.xml.soap - javax.xml.soap-api - 1.4.0 - - - - jakarta.xml.bind - jakarta.xml.bind-api - 4.0.0 - - - com.sun.xml.bind - jaxb-core - 3.0.2 - - - com.sun.xml.bind - jaxb-impl - 3.0.2 - - - - - dev.jeka - jeka-core - 0.9.20.RC26 - - - - io.dropwizard.metrics - metrics-core - 4.2.10 - - - - - - - io.netty - netty-all - 4.1.78.Final - - - - - org.springframework - spring-core - ${spring-version} - - - org.springframework - spring-beans - ${spring-version} - - - org.springframework - spring-web - ${spring-version} - - - org.springframework - spring-context - ${spring-version} - - - org.springframework - spring-messaging - ${spring-version} - - - org.springframework.data - spring-data-commons - 2.7.1 - - - - javax.annotation - javax.annotation-api - 1.3.2 - - - - - - - - diff --git a/baseModule/src/main/resources/rules.xml b/rules.xml similarity index 100% rename from baseModule/src/main/resources/rules.xml rename to rules.xml From 4484bd942e130f2ba815b1a3d0fddd2b24af2347 Mon Sep 17 00:00:00 2001 From: skin27 Date: Wed, 6 Jul 2022 17:45:58 +0200 Subject: [PATCH 33/42] pom files --- bin/win/build.bat | 1 + bin/win/versions.bat | 1 + 2 files changed, 2 insertions(+) create mode 100644 bin/win/build.bat create mode 100644 bin/win/versions.bat diff --git a/bin/win/build.bat b/bin/win/build.bat new file mode 100644 index 00000000..213b6ae1 --- /dev/null +++ b/bin/win/build.bat @@ -0,0 +1 @@ +mvn -f ..\..\pom.xml clean install \ No newline at end of file diff --git a/bin/win/versions.bat b/bin/win/versions.bat new file mode 100644 index 00000000..122cb884 --- /dev/null +++ b/bin/win/versions.bat @@ -0,0 +1 @@ +mvn -f ..\..\pom.xml versions:display-dependency-updates \ No newline at end of file From e81a6e602d4fa8cb2658bdd3e8cd6a721605ab3d Mon Sep 17 00:00:00 2001 From: skin27 Date: Wed, 6 Jul 2022 20:24:35 +0200 Subject: [PATCH 34/42] add scripts --- README.md | 78 ++++++++++++------- bin/README.md | 33 ++++++++ bin/build_modules.bat | 1 - bin/mac/build.sh | 1 + bin/mac/versions.sh | 1 + bin/win/build.bat | 5 ++ broker/pom.xml | 10 +-- brokerRest/pom.xml | 4 +- integration/pom.xml | 18 ++--- .../integration/impl/CamelIntegration.java | 5 +- integrationRest/pom.xml | 4 +- pom.xml | 11 ++- 12 files changed, 120 insertions(+), 51 deletions(-) create mode 100644 bin/README.md delete mode 100644 bin/build_modules.bat create mode 100644 bin/mac/build.sh create mode 100644 bin/mac/versions.sh diff --git a/README.md b/README.md index 494b8d93..730cf323 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,24 @@ # Modules -These API's are meant to configure and manage Assimbly module. For example -a message broker. +Assimbly modules provide a way to configure and manage an integration fuction. For example: - * Connector: connect endpoints - * Broker: message broker + * Integration flows + * Message broker -Currently the API's are build on top of [Apache Camel](https://github.com/apache/camel) and [Apache ActiveMQ](https://github.com/apache/activemq). +Each module contains an API. The integration and broker module contain a Java API and the integrationRest and brokerRest contain a REST API. + +The integration modules are build on top of [Apache Camel](https://github.com/apache/camel) and the broker modules are build on top of [Apache ActiveMQ](https://github.com/apache/activemq). + + ## Configuration -A flow is configured with key-values. The key-values are stored in a [Java Treemap](https://beginnersbook.com/2013/12/treemap-in-java-with-example/) +An integration flow is configured with key-values. + +The key-values are stored in a [Java Treemap](https://beginnersbook.com/2013/12/treemap-in-java-with-example/) Multiple flows in a connector can be configure with a list of Treemaps. -The easiest way to generate the Treemap is to convert it from an file (XML, JSON and YAML are supported). Another possibility is using the +The easiest way to generate the Treemap is to convert it from a configuration file (XML, JSON and YAML are supported). Another possibility is using the GUI of [Assimbly Gateway](https://github.com/assimbly/gateway). ## Management @@ -26,26 +31,45 @@ The API simplifies common management tasks. The following lifecycle management a * pause * resume +# Developing -## Development +The project is build with maven (mvn install). -The project is build with maven (mvn install). After building you can call the API from your Java application like this: +# prerequisite -```java -Connector connector = new CamelConnector(flowID, configurationUri); +- JDK11+ +- Maven +- [Assimbly Base](https://github.com/assimbly/base) + +# build + +The base can be build with Maven: + +```mvn clean install``` + +It's also possible to build only one module at the time. +For this the same Maven command can be executed, but then +from the directory that contains pom.xml of that module. + +For example: -connector.start(); -connector.startFlow(flowID); ``` +cd ./integration +mvn clean install +``` + -or +# Usage + +After building you can call the API from your Java application like this: ```java -Connector connector = new CamelConnector(); -connector.start(); +Integration integration = new CamelIntegration(); +integration.start(); + +integration.setFlowConfiguration(flowId, mediatype, flowConfiguration); -connector.setFlowConfiguration(flowId, mediatype, flowConfiguration); -connector.startFlow(flowID); +integration.startFlow(flowID); ``` ## Example @@ -54,10 +78,10 @@ The following XML configuration moves files from a one directory to another. ```java -Connector connector = new CamelConnector("example", "file://C:/conf/conf.xml"); +Integration integration = new CamelIntegration("example", "file://C:/conf/conf.xml"); -connector.start(); -connector.startFlow("filetofile"); +integration.start(); +integration.startFlow("filetofile"); ``` @@ -65,8 +89,8 @@ conf.xml ```xml - - + + 1 default ADAPTER @@ -107,9 +131,11 @@ conf.xml - - + + ``` -For a longer [XML example](https://github.com/assimbly/connector/wiki/XML-Configuration-Example) see the wiki. \ No newline at end of file +For a longer [XML example](https://github.com/assimbly/connector/wiki/XML-Configuration-Example) see the wiki. + + diff --git a/bin/README.md b/bin/README.md new file mode 100644 index 00000000..01f09359 --- /dev/null +++ b/bin/README.md @@ -0,0 +1,33 @@ +# Scripts usages + +Scripts in this bin directory can be executed +for Windows from _/bin/win_ or Mac/Linux from _/bin/mac_ + +--- +## build + +Builds the project or module. + +### Usage: + +To build the complete project: + +```build``` + +To build a specific module + +```build modulename``` + +--- + +## versions + +Checks the Maven dependencies for the latest versions. + +The patterns in the rules.xml are excluded. + +### Usage: + +To print a report: + +```versions``` \ No newline at end of file diff --git a/bin/build_modules.bat b/bin/build_modules.bat deleted file mode 100644 index 79ccad30..00000000 --- a/bin/build_modules.bat +++ /dev/null @@ -1 +0,0 @@ -D:\Share\assimbly-bin\apache-maven-3.8.5\bin\mvn clean install -gs "D:\Share\assimbly-bin\.m2\settings.xml" %* \ No newline at end of file diff --git a/bin/mac/build.sh b/bin/mac/build.sh new file mode 100644 index 00000000..8934e942 --- /dev/null +++ b/bin/mac/build.sh @@ -0,0 +1 @@ +mvn -f ../../pom.xml clean install \ No newline at end of file diff --git a/bin/mac/versions.sh b/bin/mac/versions.sh new file mode 100644 index 00000000..933677e2 --- /dev/null +++ b/bin/mac/versions.sh @@ -0,0 +1 @@ +mvn -f ../../pom.xml versions:display-dependency-updates \ No newline at end of file diff --git a/bin/win/build.bat b/bin/win/build.bat index 213b6ae1..9825a12a 100644 --- a/bin/win/build.bat +++ b/bin/win/build.bat @@ -1 +1,6 @@ +@echo off + +IF "%~1"=="" GOTO :BUILDALL +mvn -f ..\..\%~1\pom.xml clean install +:BUILDALL mvn -f ..\..\pom.xml clean install \ No newline at end of file diff --git a/broker/pom.xml b/broker/pom.xml index ef2fe9c8..b9113986 100644 --- a/broker/pom.xml +++ b/broker/pom.xml @@ -19,29 +19,29 @@ UTF-8 11 - file:///${project.basedir}/rules.xml + file:///${project.parent.basedir}/rules.xml org.assimbly activemqBase - ${assimbly-base.version} + ${assimbly.version} org.assimbly springBase - ${assimbly-base.version} + ${assimbly.version} org.assimbly utils - ${assimbly-base.version} + ${assimbly.version} org.assimbly testBase - ${assimbly-base.version} + ${assimbly.version} diff --git a/brokerRest/pom.xml b/brokerRest/pom.xml index fe1b00b4..4036718a 100644 --- a/brokerRest/pom.xml +++ b/brokerRest/pom.xml @@ -19,14 +19,14 @@ UTF-8 11 - file:///${project.basedir}/rules.xml + file:///${project.parent.basedir}/rules.xml org.assimbly broker - ${assimbly-base.version} + ${assimbly.version} org.springdoc diff --git a/integration/pom.xml b/integration/pom.xml index 72f2f460..91d0d4ca 100644 --- a/integration/pom.xml +++ b/integration/pom.xml @@ -18,49 +18,49 @@ UTF-8 11 - file:///${project.basedir}/rules.xml + file:///${project.parent.basedir}/rules.xml org.assimbly camelBase - ${assimbly-base.version} + ${assimbly.version} org.assimbly camelComponents - ${assimbly-base.version} + ${assimbly.version} org.assimbly camelCustomComponents - ${assimbly-base.version} + ${assimbly.version} org.assimbly databaseDrivers - ${assimbly-base.version} + ${assimbly.version} org.assimbly extra - ${assimbly-base.version} + ${assimbly.version} org.assimbly springBase - ${assimbly-base.version} + ${assimbly.version} org.assimbly utils - ${assimbly-base.version} + ${assimbly.version} org.assimbly testBase - ${assimbly-base.version} + ${assimbly.version} diff --git a/integration/src/main/java/org/assimbly/integration/impl/CamelIntegration.java b/integration/src/main/java/org/assimbly/integration/impl/CamelIntegration.java index ba138dfe..14ccead6 100644 --- a/integration/src/main/java/org/assimbly/integration/impl/CamelIntegration.java +++ b/integration/src/main/java/org/assimbly/integration/impl/CamelIntegration.java @@ -50,10 +50,9 @@ import world.dovetail.enrich.EnrichStrategy; import world.dovetail.multipart.processor.MultipartProcessor; import world.dovetail.throttling.QueueMessageChecker; -import world.dovetail.common.mail.ExtendedHeaderFilterStrategy; +import org.assimbly.util.mail.ExtendedHeaderFilterStrategy; import world.dovetail.xmltojson.CustomXmlJsonDataFormat; -import javax.xml.xpath.XPathFactory; import java.io.File; import java.net.URI; import java.nio.file.Path; @@ -67,6 +66,8 @@ import java.util.stream.Collectors; import java.util.stream.IntStream; +import javax.xml.xpath.XPathFactory; + public class CamelIntegration extends BaseIntegration { diff --git a/integrationRest/pom.xml b/integrationRest/pom.xml index 210de404..6abe31ba 100644 --- a/integrationRest/pom.xml +++ b/integrationRest/pom.xml @@ -19,14 +19,14 @@ UTF-8 11 - file:///${project.basedir}/rules.xml + file:///${project.parent.basedir}/rules.xml org.assimbly integration - ${assimbly-base.version} + ${assimbly.version} org.springdoc diff --git a/pom.xml b/pom.xml index ccaf5048..27fa7f63 100644 --- a/pom.xml +++ b/pom.xml @@ -19,14 +19,17 @@
    - 3.7.0 + 11 + 11 + UTF-8 + ${project.basedir} + + 3.7.0 4.2.10 1.7.1 - 9.2.5.0 + 9.3.0.0 4.1.78.Final 1.6.9 - UTF-8 - file:///${project.basedir}/rules.xml From a7f8c2e702d33a5d6d582329439f3d22c6ed65af Mon Sep 17 00:00:00 2001 From: skin27 Date: Mon, 11 Jul 2022 14:21:44 +0200 Subject: [PATCH 35/42] sql --- .../integration/configuration/marshalling/Unmarshall.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/integration/src/main/java/org/assimbly/integration/configuration/marshalling/Unmarshall.java b/integration/src/main/java/org/assimbly/integration/configuration/marshalling/Unmarshall.java index fd9c1ca2..1f0bf0eb 100644 --- a/integration/src/main/java/org/assimbly/integration/configuration/marshalling/Unmarshall.java +++ b/integration/src/main/java/org/assimbly/integration/configuration/marshalling/Unmarshall.java @@ -423,6 +423,7 @@ private void getRouteFromXMLFile(String type, String endpointId, String routeId) String errorRouteId = expr2.evaluate(doc); if(node!=null && errorId!=null){ + expr = xpath.compile("/integrations/integration/routeConfigurations/routeConfiguration[@id='" + errorRouteId + "']"); Node nodeRouteConfiguration = (Node)expr.evaluate(doc, XPathConstants.NODE); if(nodeRouteConfiguration != null){ @@ -451,20 +452,14 @@ private void getRouteFromXMLFile(String type, String endpointId, String routeId) } } - if(routeAsString.contains("", " Date: Tue, 12 Jul 2022 15:53:36 +0200 Subject: [PATCH 36/42] enhance test dependencies --- .../integration/beans/CustomHttpBinding.java | 13 ++++++++++--- .../assimbly/integration/impl/CamelIntegration.java | 1 - 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/integration/src/main/java/org/assimbly/integration/beans/CustomHttpBinding.java b/integration/src/main/java/org/assimbly/integration/beans/CustomHttpBinding.java index b67c8003..06f01230 100644 --- a/integration/src/main/java/org/assimbly/integration/beans/CustomHttpBinding.java +++ b/integration/src/main/java/org/assimbly/integration/beans/CustomHttpBinding.java @@ -32,7 +32,12 @@ public void writeResponse(Exchange exchange, HttpServletResponse response) throw if (exchange.isFailed()) { if (exchange.getException() != null) { addResponseTimeHeader(exchange, target); - doWriteExceptionResponse(target, exchange.getException(), response); + try { + doWriteExceptionResponse(target, exchange.getException(), response); + } catch (Exception e) { + log.error("Cannot write response: " + e.getMessage()); + } + } else { addResponseTimeHeader(exchange, target); // it must be a fault, no need to check for the fault flag on the message @@ -48,7 +53,7 @@ public void writeResponse(Exchange exchange, HttpServletResponse response) throw } } - private void doWriteExceptionResponse(Message target, Throwable exception, HttpServletResponse response) throws IOException { + private void doWriteExceptionResponse(Message target, Throwable exception, HttpServletResponse response) throws Exception { String accept = target.getHeader("Accept", String.class); if (exception instanceof TimeoutException) { @@ -89,7 +94,8 @@ private void doWriteExceptionResponse(Message target, Throwable exception, HttpS } } - private String generateJsonResponse(int code, String info, String error){ + private String generateJsonResponse(int code, String info, String error) throws Exception { + JSONObject response = new JSONObject(); response.put("code", code); @@ -100,6 +106,7 @@ private String generateJsonResponse(int code, String info, String error){ } private String generateXmlResponse(int code, String info, String error) { + Document doc = XmlHelper.newDocument(); if(doc == null) { diff --git a/integration/src/main/java/org/assimbly/integration/impl/CamelIntegration.java b/integration/src/main/java/org/assimbly/integration/impl/CamelIntegration.java index 14ccead6..401edc97 100644 --- a/integration/src/main/java/org/assimbly/integration/impl/CamelIntegration.java +++ b/integration/src/main/java/org/assimbly/integration/impl/CamelIntegration.java @@ -1566,7 +1566,6 @@ private void setSSLContext() throws Exception { registry.bind("sslContext", sslContextParameters); registry.bind("keystore", sslContextParametersKeystoreOnly); registry.bind("truststore", sslContextParametersTruststoreOnly); - context.setSSLContextParameters(sslContextParameters); From 76231537f9d23e8dd0ad0f0542fd82f4763cb069 Mon Sep 17 00:00:00 2001 From: skin27 Date: Tue, 12 Jul 2022 16:10:24 +0200 Subject: [PATCH 37/42] add customComponents --- integration/pom.xml | 139 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 138 insertions(+), 1 deletion(-) diff --git a/integration/pom.xml b/integration/pom.xml index 91d0d4ca..f6dbea1a 100644 --- a/integration/pom.xml +++ b/integration/pom.xml @@ -14,7 +14,6 @@ integration 3.7.0 - UTF-8 11 @@ -63,6 +62,144 @@ ${assimbly.version} + + + + world.dovetail + aggregate + ${assimbly.version} + + + world.dovetail + aleris + ${assimbly.version} + + + world.dovetail + amazon + ${assimbly.version} + + + world.dovetail + archive + ${assimbly.version} + + + world.dovetail + cookies + ${assimbly.version} + + + world.dovetail + csvtoxml + ${assimbly.version} + + + world.dovetail + docconverter + ${assimbly.version} + + + world.dovetail + edi + ${assimbly.version} + + + world.dovetail + edifact + ${assimbly.version} + + + world.dovetail + edifactstandards + ${assimbly.version} + + + world.dovetail + encoder + ${assimbly.version} + + + world.dovetail + enrich + ${assimbly.version} + + + world.dovetail + exceltoxml + ${assimbly.version} + + + world.dovetail + flv + ${assimbly.version} + + + world.dovetail + fmuta + ${assimbly.version} + + + world.dovetail + formtoxml + ${assimbly.version} + + + world.dovetail + globalvariables + ${assimbly.version} + + + world.dovetail + multipart + ${assimbly.version} + + + world.dovetail + replace + ${assimbly.version} + + + world.dovetail + smb + ${assimbly.version} + + + world.dovetail + sandbox + ${assimbly.version} + + + world.dovetail + simplereplace + ${assimbly.version} + + + world.dovetail + sql + ${assimbly.version} + + + world.dovetail + throttling + ${assimbly.version} + + + world.dovetail + xmltocsv + ${assimbly.version} + + + world.dovetail + xmltoexcel + ${assimbly.version} + + + world.dovetail + xmltojson + ${assimbly.version} + + com.ibm.mq From 0a93beb213ad77efe75cafab43ab36c81b13cfea Mon Sep 17 00:00:00 2001 From: skin27 Date: Wed, 13 Jul 2022 19:04:34 +0200 Subject: [PATCH 38/42] dependencies --- broker/pom.xml | 1 + integration/pom.xml | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/broker/pom.xml b/broker/pom.xml index b9113986..3a808f0a 100644 --- a/broker/pom.xml +++ b/broker/pom.xml @@ -42,6 +42,7 @@ org.assimbly testBase ${assimbly.version} + test diff --git a/integration/pom.xml b/integration/pom.xml index f6dbea1a..ae743ad5 100644 --- a/integration/pom.xml +++ b/integration/pom.xml @@ -60,6 +60,7 @@ org.assimbly testBase ${assimbly.version} + test @@ -169,6 +170,11 @@ sandbox ${assimbly.version} + + world.dovetail + soap + ${assimbly.version} + world.dovetail simplereplace From 1b6b85d891e1fc4e5d20dd6ca6c1c5705d8116e8 Mon Sep 17 00:00:00 2001 From: skin27 Date: Mon, 18 Jul 2022 08:26:10 +0200 Subject: [PATCH 39/42] rename to runtime --- README.md | 14 +++++++------- broker/pom.xml | 2 +- brokerRest/pom.xml | 2 +- integration/pom.xml | 2 +- .../java/org/assimbly/integration/Integration.java | 2 +- integrationRest/pom.xml | 2 +- pom.xml | 6 +++--- 7 files changed, 15 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 730cf323..470a91fe 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ -# Modules +# Runtime -Assimbly modules provide a way to configure and manage an integration fuction. For example: +Assimbly runtime runs - * Integration flows - * Message broker + * Integrations (Connectors, Flows) Routes) + * Message broker -Each module contains an API. The integration and broker module contain a Java API and the integrationRest and brokerRest contain a REST API. +Each module in the runtime contains an API. The integration and broker module contain a Java API and the integrationRest and brokerRest contain a REST API. The integration modules are build on top of [Apache Camel](https://github.com/apache/camel) and the broker modules are build on top of [Apache ActiveMQ](https://github.com/apache/activemq). @@ -33,7 +33,7 @@ The API simplifies common management tasks. The following lifecycle management a # Developing -The project is build with maven (mvn install). +The project is build with maven (mvn clean install). # prerequisite @@ -43,7 +43,7 @@ The project is build with maven (mvn install). # build -The base can be build with Maven: +The base can also be build with Maven: ```mvn clean install``` diff --git a/broker/pom.xml b/broker/pom.xml index 3a808f0a..26dcb922 100644 --- a/broker/pom.xml +++ b/broker/pom.xml @@ -4,7 +4,7 @@ 4.0.0 - modules + runtime org.assimbly 3.7.0 diff --git a/brokerRest/pom.xml b/brokerRest/pom.xml index 4036718a..f34c93f0 100644 --- a/brokerRest/pom.xml +++ b/brokerRest/pom.xml @@ -4,7 +4,7 @@ 4.0.0 - modules + runtime org.assimbly 3.7.0 diff --git a/integration/pom.xml b/integration/pom.xml index ae743ad5..36653ecf 100644 --- a/integration/pom.xml +++ b/integration/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - modules + runtime org.assimbly 3.7.0 diff --git a/integration/src/main/java/org/assimbly/integration/Integration.java b/integration/src/main/java/org/assimbly/integration/Integration.java index 4e62c588..072101b0 100644 --- a/integration/src/main/java/org/assimbly/integration/Integration.java +++ b/integration/src/main/java/org/assimbly/integration/Integration.java @@ -23,7 +23,7 @@ * consists of a list of flow configurations. * * For a valid flow configuration see - * https://github.com/assimbly/modules + * https://github.com/assimbly/runtime * */ public interface Integration { diff --git a/integrationRest/pom.xml b/integrationRest/pom.xml index 6abe31ba..9fd73330 100644 --- a/integrationRest/pom.xml +++ b/integrationRest/pom.xml @@ -4,7 +4,7 @@ 4.0.0 - modules + runtime org.assimbly 3.7.0 diff --git a/pom.xml b/pom.xml index 27fa7f63..4e0d6e82 100644 --- a/pom.xml +++ b/pom.xml @@ -3,12 +3,12 @@ 4.0.0 - modules - https://github.com/assimbly/modules + runtime + https://github.com/assimbly/runtime pom org.assimbly - modules + runtime 3.7.0 From fd648990e6b8c2b33fcbac5a7aef13be5962807d Mon Sep 17 00:00:00 2001 From: skin27 Date: Wed, 20 Jul 2022 09:58:50 +0200 Subject: [PATCH 40/42] update dependencies --- pom.xml | 2 +- rules.xml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 4e0d6e82..cab552b9 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ 4.2.10 1.7.1 9.3.0.0 - 4.1.78.Final + 4.1.79.Final 1.6.9 diff --git a/rules.xml b/rules.xml index e3cfa7e7..e107a523 100644 --- a/rules.xml +++ b/rules.xml @@ -3,9 +3,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mojo.codehaus.org/versions-maven-plugin/rule/2.0.0 http://mojo.codehaus.org/versions-maven-plugin/xsd/rule-2.0.0.xsd"> - .*-beta. - .*_ALPHA - .*-alpha12 + .*(alpha|Alpha|ALPHA).* + .*(beta|Beta|BETA).* + .*(rc|Rc|RC).* .*[-_\.](alpha|Alpha|ALPHA|b|beta|Beta|BETA|rc|RC|M|EA)[-_\.]?[0-9]* \ No newline at end of file From 08713f2d55cff5950ea1fd7a1b051deef6d5b070 Mon Sep 17 00:00:00 2001 From: skin27 Date: Thu, 21 Jul 2022 12:15:31 +0200 Subject: [PATCH 41/42] add git script --- bin/README.md | 39 +++++++++++++++++++++++++++++++++++++-- bin/mac/build.sh | 11 ++++++++++- bin/mac/buildandtest.sh | 10 ++++++++++ bin/mac/lazygit.sh | 10 ++++++++++ bin/win/buildandtest.bat | 6 ++++++ bin/win/lazygit.bat | 11 +++++++++++ bin/win/versions.bat | 2 +- 7 files changed, 85 insertions(+), 4 deletions(-) create mode 100644 bin/mac/buildandtest.sh create mode 100644 bin/mac/lazygit.sh create mode 100644 bin/win/buildandtest.bat create mode 100644 bin/win/lazygit.bat diff --git a/bin/README.md b/bin/README.md index 01f09359..e0289ebf 100644 --- a/bin/README.md +++ b/bin/README.md @@ -20,14 +20,49 @@ To build a specific module --- +## buildandtest + +Builds the project or module and then run the unit tests. + +### Usage: + +To build and test the complete project: + +```buildandtest``` + +To build and test a specific module + +```buildandtest modulename``` + +--- + +## lazygit + +Add all files to the staging area, commit the files and push it to origin (GitHub). Shortcut for: + +``` +git add -A +git commit -m "\n" +fi diff --git a/bin/win/buildandtest.bat b/bin/win/buildandtest.bat new file mode 100644 index 00000000..9825a12a --- /dev/null +++ b/bin/win/buildandtest.bat @@ -0,0 +1,6 @@ +@echo off + +IF "%~1"=="" GOTO :BUILDALL +mvn -f ..\..\%~1\pom.xml clean install +:BUILDALL +mvn -f ..\..\pom.xml clean install \ No newline at end of file diff --git a/bin/win/lazygit.bat b/bin/win/lazygit.bat new file mode 100644 index 00000000..bb9f993f --- /dev/null +++ b/bin/win/lazygit.bat @@ -0,0 +1,11 @@ +@echo off + +if [%1]==[] goto usage +git add -A +git commit -m %1 +git push +goto :eof +:usage +@echo Usage: %0 ^ +exit /B 1 + diff --git a/bin/win/versions.bat b/bin/win/versions.bat index 122cb884..40b99a5a 100644 --- a/bin/win/versions.bat +++ b/bin/win/versions.bat @@ -1 +1 @@ -mvn -f ..\..\pom.xml versions:display-dependency-updates \ No newline at end of file +mvn -f ..\..\pom.xml versions:display-dependency-updates -Dexcludes=org.apache.camel:* \ No newline at end of file From cb93a957a4211d34ade430290493e6638f0c73c7 Mon Sep 17 00:00:00 2001 From: skin27 Date: Fri, 22 Jul 2022 15:19:35 +0200 Subject: [PATCH 42/42] fix for starting of flows --- .../integration/impl/BaseIntegration.java | 4 +- .../integration/impl/CamelIntegration.java | 77 ++++++++++++++----- 2 files changed, 57 insertions(+), 24 deletions(-) diff --git a/integration/src/main/java/org/assimbly/integration/impl/BaseIntegration.java b/integration/src/main/java/org/assimbly/integration/impl/BaseIntegration.java index ebe14fc7..d5a1fe02 100644 --- a/integration/src/main/java/org/assimbly/integration/impl/BaseIntegration.java +++ b/integration/src/main/java/org/assimbly/integration/impl/BaseIntegration.java @@ -131,9 +131,7 @@ public void setFlowConfiguration(String flowId, String mediaType, String configu }else { flowProperties = convertYAMLToFlowConfiguration(flowId, configuration); } - - //IntegrationUtil.printTreemap(flowProperties); - + setFlowConfiguration(flowProperties); } catch (Exception e) { diff --git a/integration/src/main/java/org/assimbly/integration/impl/CamelIntegration.java b/integration/src/main/java/org/assimbly/integration/impl/CamelIntegration.java index 401edc97..77c2c7f3 100644 --- a/integration/src/main/java/org/assimbly/integration/impl/CamelIntegration.java +++ b/integration/src/main/java/org/assimbly/integration/impl/CamelIntegration.java @@ -43,8 +43,9 @@ import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.w3c.dom.Document; - +import org.w3c.dom.Element; import world.dovetail.aggregate.AggregateStrategy; import world.dovetail.cookies.CookieStore; import world.dovetail.enrich.EnrichStrategy; @@ -66,6 +67,7 @@ import java.util.stream.Collectors; import java.util.stream.IntStream; +import javax.xml.xpath.XPath; import javax.xml.xpath.XPathFactory; @@ -347,16 +349,51 @@ public void onEvent(DirectoryWatcher.Event event, Path path) { public void fileInstall(Path path) throws Exception { String pathAsString = path.toString(); - String flowId = FilenameUtils.getBaseName(pathAsString); + String fileName = FilenameUtils.getBaseName(pathAsString); String mediaType = FilenameUtils.getExtension(pathAsString); String configuration = FileUtils.readFileToString(new File(pathAsString), "UTF-8"); - log.info("File install flowid=" + flowId + " | path=" + pathAsString); + String flowId = setFlowId(fileName, configuration); - configureAndStartFlow(flowId, mediaType, configuration); + if(flowId!=null){ + log.info("File install flowid=" + flowId + " | path=" + pathAsString); + configureAndStartFlow(flowId, mediaType, configuration); + }else{ + log.error("File install for " + pathAsString + " failed. Invalid configuration file."); + } } + public String setFlowId(String filename, String configuration) throws Exception { + + String flowId = null; + + Document doc = DocConverter.convertStringToDoc(configuration); + XPath xPath = XPathFactory.newInstance().newXPath(); + + String root = doc.getDocumentElement().getTagName(); + + if(root.equals("integrations")){ + flowId = xPath.evaluate("//flows/flow[id=" + filename + "]/id",doc); + if(flowId==null){ + flowId = xPath.evaluate("//flows/flow[1]/id",doc); + } + }else if(root.equals("camelContext")){ + flowId = xPath.evaluate("/camelContext/@id",doc); + if(flowId.isEmpty() || flowId==null){ + log.warn("Configuration: CamelContext element doesn't have an id attribute"); + } + }else if(root.equals("routes")){ + flowId = xPath.evaluate("/routes/@id",doc); + if(flowId.isEmpty() || flowId==null){ + log.warn("Configuration: routes element doesn't have an id attribute"); + } + } + + return flowId; + + } + public void fileUninstall(Path path) throws Exception { String pathAsString = path.toString(); @@ -605,11 +642,6 @@ public String stopAllFlows() throws Exception { public String configureAndStartFlow(String flowId, String mediaType, String configuration) throws Exception { super.setFlowConfiguration(flowId, mediaType, configuration); - - //if() - //props.get("flow.type"); - - String status = startFlow(flowId); return status; } @@ -664,7 +696,7 @@ public String routesFlow(String flowId, String mediaType, String configuration) public String startFlow(String id) { - log.info("Start flow | id=" + id); + log.info("Starting flow | id=" + id); boolean flowAdded = false; @@ -680,11 +712,6 @@ public String startFlow(String id) { log.info("Load flow configuration | id=" + id); addFlow(props); flowAdded = true; - }else if(configureId!=null){ - id = configureId; - log.info("Load flow configuration | id=" + id); - addFlow(props); - flowAdded = true; } } @@ -697,7 +724,7 @@ public String startFlow(String id) { String routeId = route.getId(); status = routeController.getRouteStatus(routeId); if(!status.isStarted()) { - log.info("Starting route " + routeId); + log.info("Starting route | routeid=" + routeId); routeController.startRoute(routeId); int count = 1; @@ -710,11 +737,11 @@ public String startFlow(String id) { } while (status.isStarting() || count < 3000); } else { - log.info("Started route | id=" + routeId); + log.info("Started route | routeid=" + routeId); } } - //log.info("Started flow | id=" + id); + log.info("Started flow | id=" + id); return status.toString().toLowerCase(); }else { @@ -754,17 +781,25 @@ public String restartFlow(String id) { } public String stopFlow(String id) { - log.info("Stop flow | id=" + id); + + log.info("Stopping flow | id=" + id); + try { + List routeList = getRoutesByFlowId(id); + for (Route route : routeList) { - routeController.stopRoute(route.getId(), stopTimeout, TimeUnit.SECONDS); - context.removeRoute(route.getId()); + String routeId = route.getId(); + log.info("Stopping route | routeid=" + route.getId()); + routeController.stopRoute(routeId, stopTimeout, TimeUnit.SECONDS); + context.removeRoute(routeId); } + log.info("Stopped flow | id=" + id); return "stopped"; }catch (Exception e) { + log.error("Couldn't stop flow | id=" + id + "reason: " + e.getMessage()); e.printStackTrace(); return e.getMessage(); }