From 274fb62085b6917558e22359b9e2b8ac1d009cf4 Mon Sep 17 00:00:00 2001 From: Isuru Wijesiri Date: Thu, 7 Dec 2023 15:56:52 +0530 Subject: [PATCH 1/2] Set default params --- .../counter/TransactionCounterConstants.java | 16 +++++ .../counter/config/APIMConfigFetcher.java | 66 +++++++++++-------- .../counter/config/MIConfigFetcher.java | 65 +++++++++++------- .../config/TransactionCounterConfig.java | 40 +++++++++++ 4 files changed, 136 insertions(+), 51 deletions(-) diff --git a/counter/src/main/java/org/wso2/integration/transaction/counter/TransactionCounterConstants.java b/counter/src/main/java/org/wso2/integration/transaction/counter/TransactionCounterConstants.java index b9969a5..493de7d 100644 --- a/counter/src/main/java/org/wso2/integration/transaction/counter/TransactionCounterConstants.java +++ b/counter/src/main/java/org/wso2/integration/transaction/counter/TransactionCounterConstants.java @@ -91,4 +91,20 @@ public static enum ServerType { + ".service_username"; public static final String MI_SERVICE_PASSWORD = MI_CONFIG_ROOT + ".service_password"; + + // Default values + public static final String DEFAULT_SERVER_ID = "default"; + public static final String DEFAULT_TRANSACTION_COUNT_STORE_CLASS = + "org.wso2.integration.transaction.counter.store.TransactionRecordStoreImpl"; + public static final int DEFAULT_TRANSACTION_RECORD_QUEUE_SIZE = 1000; + public static final int DEFAULT_PRODUCER_THREAD_POOL_SIZE = 10; + public static final int DEFAULT_TRANSACTION_COUNT_RECORD_INTERVAL = 10; + public static final double DEFAULT_MAX_TRANSACTION_COUNT = 20; + public static final double DEFAULT_MIN_TRANSACTION_COUNT = 5; + public static final int DEFAULT_CONSUMER_COMMIT_INTERVAL = 10; + public static final int DEFAULT_MAX_TRANSACTION_RECORDS_PER_COMMIT = 100; + public static final int DEFAULT_MAX_RETRY_COUNT = 3; + public static final String DEFAULT_TRANSACTION_COUNT_SERVICE = "https://localhost:8080/transactions/records"; + public static final String DEFAULT_TRANSACTION_COUNT_SERVICE_USERNAME = "admin"; + public static final String DEFAULT_TRANSACTION_COUNT_SERVICE_PASSWORD = "admin"; } diff --git a/counter/src/main/java/org/wso2/integration/transaction/counter/config/APIMConfigFetcher.java b/counter/src/main/java/org/wso2/integration/transaction/counter/config/APIMConfigFetcher.java index 5ff441c..bb04711 100644 --- a/counter/src/main/java/org/wso2/integration/transaction/counter/config/APIMConfigFetcher.java +++ b/counter/src/main/java/org/wso2/integration/transaction/counter/config/APIMConfigFetcher.java @@ -24,7 +24,6 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.HashMap; -import java.util.Objects; public class APIMConfigFetcher implements ConfigFetcher { @@ -48,67 +47,79 @@ private APIMConfigFetcher() throws TransactionCounterConfigurationException { temp = (String) getFirstProperty.invoke(apiManagerConfiguration, TransactionCounterConstants.GATEWAY_SERVER_ID); - String SERVER_ID = Objects.requireNonNull( temp, "Server ID cannot be null"); + String SERVER_ID = temp; temp = (String) getFirstProperty.invoke(apiManagerConfiguration, TransactionCounterConstants.GATEWAY_STORE_CLASS); - String TRANSACTION_COUNT_STORE_CLASS = Objects.requireNonNull( - temp, "Transaction count store class cannot be null"); + String TRANSACTION_COUNT_STORE_CLASS = temp; temp = (String) getFirstProperty.invoke(apiManagerConfiguration, TransactionCounterConstants.GATEWAY_QUEUE_SIZE); - temp = Objects.requireNonNull(temp, "Transaction record queue size cannot be null"); - Integer TRANSACTION_RECORD_QUEUE_SIZE = Integer.parseInt(temp); + Integer TRANSACTION_RECORD_QUEUE_SIZE = null; + if (temp != null) { + TRANSACTION_RECORD_QUEUE_SIZE = Integer.parseInt(temp); + } temp = (String) getFirstProperty.invoke(apiManagerConfiguration, TransactionCounterConstants.GATEWAY_PRODUCER_THREAD_POOL_SIZE); - temp = Objects.requireNonNull(temp, "Producer thread pool size cannot be null"); - Integer PRODUCER_THREAD_POOL_SIZE = Integer.parseInt(temp); + Integer PRODUCER_THREAD_POOL_SIZE = null; + if (temp != null) { + PRODUCER_THREAD_POOL_SIZE = Integer.parseInt(temp); + } temp = (String) getFirstProperty.invoke(apiManagerConfiguration, TransactionCounterConstants.GATEWAY_RECORD_INTERVAL); - temp = Objects.requireNonNull(temp, "Transaction count record interval cannot be null"); - Integer TRANSACTION_COUNT_RECORD_INTERVAL = Integer.parseInt(temp); + Integer TRANSACTION_COUNT_RECORD_INTERVAL = null; + if (temp != null) { + TRANSACTION_COUNT_RECORD_INTERVAL = Integer.parseInt(temp); + } temp = (String) getFirstProperty.invoke(apiManagerConfiguration, TransactionCounterConstants.GATEWAY_MAX_TRANSACTION_COUNT); - temp = Objects.requireNonNull(temp, "Max transaction count cannot be null"); - Double MAX_TRANSACTION_COUNT = Double.parseDouble(temp); + Double MAX_TRANSACTION_COUNT = null; + if (temp != null) { + MAX_TRANSACTION_COUNT = Double.parseDouble(temp); + } temp = (String) getFirstProperty.invoke(apiManagerConfiguration, TransactionCounterConstants.GATEWAY_MIN_TRANSACTION_COUNT); - temp = Objects.requireNonNull(temp, "Min transaction count cannot be null"); - Double MIN_TRANSACTION_COUNT = Double.parseDouble(temp); + Double MIN_TRANSACTION_COUNT = null; + if (temp != null) { + MIN_TRANSACTION_COUNT = Double.parseDouble(temp); + } temp = (String) getFirstProperty.invoke(apiManagerConfiguration, TransactionCounterConstants.GATEWAY_CONSUMER_COMMIT_INTERVAL); - temp = Objects.requireNonNull(temp, "Consumer commit interval cannot be null"); - Integer CONSUMER_COMMIT_INTERVAL = Integer.parseInt(temp); + Integer CONSUMER_COMMIT_INTERVAL = null; + if (temp != null) { + CONSUMER_COMMIT_INTERVAL = Integer.parseInt(temp); + } temp = (String) getFirstProperty.invoke(apiManagerConfiguration, TransactionCounterConstants.GATEWAY_MAX_TRANSACTION_RECORDS_PER_COMMIT); - temp = Objects.requireNonNull(temp, "Max transaction records per commit cannot be null"); - Integer MAX_TRANSACTION_RECORDS_PER_COMMIT = Integer.parseInt(temp); + Integer MAX_TRANSACTION_RECORDS_PER_COMMIT = null; + if (temp != null) { + MAX_TRANSACTION_RECORDS_PER_COMMIT = Integer.parseInt(temp); + } temp = (String) getFirstProperty.invoke(apiManagerConfiguration, TransactionCounterConstants.GATEWAY_MAX_RETRY_COUNT); - temp = Objects.requireNonNull(temp, "Max retry count cannot be null"); - Integer MAX_RETRY_COUNT = Integer.parseInt(temp); + Integer MAX_RETRY_COUNT = null; + if (temp != null) { + MAX_RETRY_COUNT = Integer.parseInt(temp); + } temp = (String) getFirstProperty.invoke(apiManagerConfiguration, TransactionCounterConstants.GATEWAY_SERVICE); - String TRANSACTION_COUNT_SERVICE = Objects.requireNonNull(temp, - "Transaction count service cannot be null"); + String TRANSACTION_COUNT_SERVICE = temp; temp = (String) getFirstProperty.invoke(apiManagerConfiguration, TransactionCounterConstants.GATEWAY_SERVICE_USERNAME); - String TRANSACTION_COUNT_SERVICE_USERNAME = Objects.requireNonNull(temp, - "Transaction count service username cannot be null"); + String TRANSACTION_COUNT_SERVICE_USERNAME = temp; temp = (String) getFirstProperty.invoke(apiManagerConfiguration, TransactionCounterConstants.GATEWAY_SERVICE_PASSWORD); - String TRANSACTION_COUNT_SERVICE_PASSWORD = Objects.requireNonNull(temp, - "Transaction count service password cannot be null"); + String TRANSACTION_COUNT_SERVICE_PASSWORD = temp; configMap.put(TransactionCounterConstants.SERVER_ID, SERVER_ID); configMap.put(TransactionCounterConstants.TRANSACTION_COUNT_STORE_CLASS, TRANSACTION_COUNT_STORE_CLASS); @@ -142,6 +153,9 @@ public static ConfigFetcher getInstance() throws TransactionCounterConfiguration @Override public String getConfigValue(String key) { + if (configMap.get(key) == null) { + return null; + } return configMap.get(key).toString(); } diff --git a/counter/src/main/java/org/wso2/integration/transaction/counter/config/MIConfigFetcher.java b/counter/src/main/java/org/wso2/integration/transaction/counter/config/MIConfigFetcher.java index 4520a74..4d08ffc 100644 --- a/counter/src/main/java/org/wso2/integration/transaction/counter/config/MIConfigFetcher.java +++ b/counter/src/main/java/org/wso2/integration/transaction/counter/config/MIConfigFetcher.java @@ -43,55 +43,67 @@ private MIConfigFetcher() throws TransactionCounterConfigurationException { Long tempLong; temp = (String) configs.get(TransactionCounterConstants.MI_SERVER_ID); - String SERVER_ID = Objects.requireNonNull( temp, "Server ID cannot be null"); + String SERVER_ID = temp; temp = (String) configs.get(TransactionCounterConstants.MI_STORE_CLASS); - String TRANSACTION_COUNT_STORE_CLASS = Objects.requireNonNull(temp, - "Transaction count store class cannot be null"); + String TRANSACTION_COUNT_STORE_CLASS = temp; tempLong = (Long) configs.get(TransactionCounterConstants.MI_QUEUE_SIZE); - Objects.requireNonNull(tempLong, "Transaction record queue size cannot be null"); - Integer TRANSACTION_RECORD_QUEUE_SIZE = Integer.parseInt(tempLong.toString()); + Integer TRANSACTION_RECORD_QUEUE_SIZE = null; + if (tempLong != null) { + TRANSACTION_RECORD_QUEUE_SIZE = Integer.parseInt(tempLong.toString()); + } tempLong = (Long) configs.get(TransactionCounterConstants.MI_PRODUCER_THREAD_POOL_SIZE); - Objects.requireNonNull(tempLong, "Producer thread pool size cannot be null"); - Integer PRODUCER_THREAD_POOL_SIZE = Integer.parseInt(tempLong.toString()); + Integer PRODUCER_THREAD_POOL_SIZE = null; + if (tempLong != null) { + PRODUCER_THREAD_POOL_SIZE = Integer.parseInt(tempLong.toString()); + } tempLong = (Long) configs.get(TransactionCounterConstants.MI_RECORD_INTERVAL); - Objects.requireNonNull(tempLong, "Transaction count record interval cannot be null"); - Integer TRANSACTION_COUNT_RECORD_INTERVAL = Integer.parseInt(tempLong.toString()); + Integer TRANSACTION_COUNT_RECORD_INTERVAL = null; + if (tempLong != null) { + TRANSACTION_COUNT_RECORD_INTERVAL = Integer.parseInt(tempLong.toString()); + } tempLong = (Long) configs.get(TransactionCounterConstants.MI_MAX_TRANSACTION_COUNT); - Objects.requireNonNull(tempLong, "Max transaction count cannot be null"); - Double MAX_TRANSACTION_COUNT = Double.parseDouble(tempLong.toString()); + Double MAX_TRANSACTION_COUNT = null; + if (tempLong != null) { + MAX_TRANSACTION_COUNT = Double.parseDouble(tempLong.toString()); + } tempLong = (Long) configs.get(TransactionCounterConstants.MI_MIN_TRANSACTION_COUNT); - Objects.requireNonNull(tempLong, "Min transaction count cannot be null"); - Double MIN_TRANSACTION_COUNT = Double.parseDouble(tempLong.toString()); + Double MIN_TRANSACTION_COUNT = null; + if (tempLong != null) { + MIN_TRANSACTION_COUNT = Double.parseDouble(tempLong.toString()); + } tempLong = (Long) configs.get(TransactionCounterConstants.MI_CONSUMER_COMMIT_INTERVAL); - Objects.requireNonNull(tempLong, "Consumer commit interval cannot be null"); - Integer CONSUMER_COMMIT_INTERVAL = Integer.parseInt(tempLong.toString()); + Integer CONSUMER_COMMIT_INTERVAL = null; + if (tempLong != null) { + CONSUMER_COMMIT_INTERVAL = Integer.parseInt(tempLong.toString()); + } tempLong = (Long) configs.get(TransactionCounterConstants.MI_MAX_TRANSACTION_RECORDS_PER_COMMIT); - Objects.requireNonNull(tempLong, "Max transaction records per commit cannot be null"); - Integer MAX_TRANSACTION_RECORDS_PER_COMMIT = Integer.parseInt(tempLong.toString()); + Integer MAX_TRANSACTION_RECORDS_PER_COMMIT = null; + if (tempLong != null) { + MAX_TRANSACTION_RECORDS_PER_COMMIT = Integer.parseInt(tempLong.toString()); + } tempLong = (Long) configs.get(TransactionCounterConstants.MI_MAX_RETRY_COUNT); - Objects.requireNonNull(tempLong, "Max retry count cannot be null"); - Integer MAX_RETRY_COUNT = Integer.parseInt(tempLong.toString()); + Integer MAX_RETRY_COUNT = null; + if (tempLong != null) { + MAX_RETRY_COUNT = Integer.parseInt(tempLong.toString()); + } temp = (String) configs.get(TransactionCounterConstants.MI_SERVICE); - String TRANSACTION_COUNT_SERVICE = Objects.requireNonNull(temp, - "Transaction count service cannot be null"); + String TRANSACTION_COUNT_SERVICE = temp; temp = (String) configs.get(TransactionCounterConstants.MI_SERVICE_USERNAME); - String TRANSACTION_COUNT_SERVICE_USERNAME = Objects.requireNonNull(temp, - "Transaction count service username cannot be null"); + String TRANSACTION_COUNT_SERVICE_USERNAME = temp; temp = (String) configs.get(TransactionCounterConstants.MI_SERVICE_PASSWORD); - String TRANSACTION_COUNT_SERVICE_PASSWORD = Objects.requireNonNull(temp, - "Transaction count service password cannot be null"); + String TRANSACTION_COUNT_SERVICE_PASSWORD = temp; configMap.put(TransactionCounterConstants.SERVER_ID, SERVER_ID); configMap.put(TransactionCounterConstants.TRANSACTION_COUNT_STORE_CLASS, TRANSACTION_COUNT_STORE_CLASS); @@ -125,6 +137,9 @@ public static MIConfigFetcher getInstance() throws TransactionCounterConfigurati @Override public String getConfigValue(String key) { + if (configMap.get(key) == null) { + return null; + } return configMap.get(key).toString(); } } diff --git a/counter/src/main/java/org/wso2/integration/transaction/counter/config/TransactionCounterConfig.java b/counter/src/main/java/org/wso2/integration/transaction/counter/config/TransactionCounterConfig.java index 56139db..1d2350f 100644 --- a/counter/src/main/java/org/wso2/integration/transaction/counter/config/TransactionCounterConfig.java +++ b/counter/src/main/java/org/wso2/integration/transaction/counter/config/TransactionCounterConfig.java @@ -18,6 +18,7 @@ package org.wso2.integration.transaction.counter.config; +import java.util.UUID; import org.wso2.integration.transaction.counter.TransactionCounterConstants; import org.wso2.integration.transaction.counter.exception.TransactionCounterConfigurationException; @@ -49,61 +50,100 @@ public static TransactionCounterConstants.ServerType getServerType() { } public static String getServerID() { + if ( configFetcher.getConfigValue(TransactionCounterConstants.SERVER_ID) == null ) { + return serverType.toString() + "_" + UUID.randomUUID().toString(); + } return configFetcher.getConfigValue(TransactionCounterConstants.SERVER_ID); } public static String getTransactionCountStoreClass() { + if ( configFetcher.getConfigValue(TransactionCounterConstants.TRANSACTION_COUNT_STORE_CLASS) == null ) { + return TransactionCounterConstants.DEFAULT_TRANSACTION_COUNT_STORE_CLASS; + } return configFetcher.getConfigValue(TransactionCounterConstants.TRANSACTION_COUNT_STORE_CLASS); } public static int getProducerThreadPoolSize() { + if ( configFetcher.getConfigValue(TransactionCounterConstants.PRODUCER_THREAD_POOL_SIZE) == null ) { + return TransactionCounterConstants.DEFAULT_PRODUCER_THREAD_POOL_SIZE; + } return Integer.parseInt( configFetcher.getConfigValue(TransactionCounterConstants.PRODUCER_THREAD_POOL_SIZE)); } public static double getMaxTransactionCount() { + if ( configFetcher.getConfigValue(TransactionCounterConstants.MAX_TRANSACTION_COUNT) == null ) { + return TransactionCounterConstants.DEFAULT_MAX_TRANSACTION_COUNT; + } return Double.parseDouble( configFetcher.getConfigValue(TransactionCounterConstants.MAX_TRANSACTION_COUNT)); } public static double getMinTransactionCount() { + if ( configFetcher.getConfigValue(TransactionCounterConstants.MIN_TRANSACTION_COUNT) == null ) { + return TransactionCounterConstants.DEFAULT_MIN_TRANSACTION_COUNT; + } return Double.parseDouble( configFetcher.getConfigValue(TransactionCounterConstants.MIN_TRANSACTION_COUNT)); } public static int getTransactionCountRecordInterval() { + if ( configFetcher.getConfigValue(TransactionCounterConstants.TRANSACTION_COUNT_RECORD_INTERVAL) == null ) { + return TransactionCounterConstants.DEFAULT_TRANSACTION_COUNT_RECORD_INTERVAL; + } return Integer.parseInt( configFetcher.getConfigValue(TransactionCounterConstants.TRANSACTION_COUNT_RECORD_INTERVAL)); } public static int getMaxRetryCount() { + if ( configFetcher.getConfigValue(TransactionCounterConstants.MAX_RETRY_COUNT) == null ) { + return TransactionCounterConstants.DEFAULT_MAX_RETRY_COUNT; + } return Integer.parseInt( configFetcher.getConfigValue(TransactionCounterConstants.MAX_RETRY_COUNT)); } public static int getMaxTransactionRecordsPerCommit() { + if ( configFetcher.getConfigValue(TransactionCounterConstants.MAX_TRANSACTION_RECORDS_PER_COMMIT) == null ) { + return TransactionCounterConstants.DEFAULT_MAX_TRANSACTION_RECORDS_PER_COMMIT; + } return Integer.parseInt( configFetcher.getConfigValue(TransactionCounterConstants.MAX_TRANSACTION_RECORDS_PER_COMMIT)); } public static int getTransactionRecordQueueSize() { + if ( configFetcher.getConfigValue(TransactionCounterConstants.TRANSACTION_RECORD_QUEUE_SIZE) == null ) { + return TransactionCounterConstants.DEFAULT_TRANSACTION_RECORD_QUEUE_SIZE; + } return Integer.parseInt( configFetcher.getConfigValue(TransactionCounterConstants.TRANSACTION_RECORD_QUEUE_SIZE)); } public static String getTransactionCountService() { + if ( configFetcher.getConfigValue(TransactionCounterConstants.TRANSACTION_COUNT_SERVICE) == null ) { + return TransactionCounterConstants.DEFAULT_TRANSACTION_COUNT_SERVICE; + } return configFetcher.getConfigValue(TransactionCounterConstants.TRANSACTION_COUNT_SERVICE); } public static String getTransactionCountServiceUsername() { + if ( configFetcher.getConfigValue(TransactionCounterConstants.TRANSACTION_COUNT_SERVICE_USERNAME) == null ) { + return TransactionCounterConstants.DEFAULT_TRANSACTION_COUNT_SERVICE_USERNAME; + } return configFetcher.getConfigValue(TransactionCounterConstants.TRANSACTION_COUNT_SERVICE_USERNAME); } public static String getTransactionCountServicePassword() { + if ( configFetcher.getConfigValue(TransactionCounterConstants.TRANSACTION_COUNT_SERVICE_PASSWORD) == null ) { + return TransactionCounterConstants.DEFAULT_TRANSACTION_COUNT_SERVICE_PASSWORD; + } return configFetcher.getConfigValue(TransactionCounterConstants.TRANSACTION_COUNT_SERVICE_PASSWORD); } public static int getConsumerCommitInterval() { + if ( configFetcher.getConfigValue(TransactionCounterConstants.CONSUMER_COMMIT_INTERVAL) == null ) { + return TransactionCounterConstants.DEFAULT_CONSUMER_COMMIT_INTERVAL; + } return Integer.parseInt( configFetcher.getConfigValue(TransactionCounterConstants.CONSUMER_COMMIT_INTERVAL)); } From 503e43628b15f1f3ef2c2a71928b0176f252fd58 Mon Sep 17 00:00:00 2001 From: Isuru Wijesiri Date: Thu, 7 Dec 2023 15:57:22 +0530 Subject: [PATCH 2/2] Remove maven build from ballerina service --- counter/pom.xml | 62 ++++++++++++++++++++++++++++++++----- pom.xml | 82 ------------------------------------------------- service/pom.xml | 56 --------------------------------- 3 files changed, 54 insertions(+), 146 deletions(-) delete mode 100644 pom.xml delete mode 100644 service/pom.xml diff --git a/counter/pom.xml b/counter/pom.xml index 41de4ef..3ab7477 100644 --- a/counter/pom.xml +++ b/counter/pom.xml @@ -18,12 +18,8 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - - org.wso2.integration.transaction.counter - transaction-counter - 1.0.0 - - + org.wso2.integration.transaction.counter + 1.0.0 transaction-count-handler bundle WSO2 Integration Transaction Counting Handler @@ -56,6 +52,57 @@ + + scm:git:https://github.com/wso2/integration-transaction-counter.git + scm:git:https://github.com/wso2/integration-transaction-counter.git + https://github.com/wso2/integration-transaction-counter.git/ + HEAD + + + + + deploy + + + + + + wso2-nexus + WSO2 internal Repository + https://maven.wso2.org/nexus/content/groups/wso2-public/ + + true + daily + ignore + + + + wso2.releases + WSO2 internal Repository + https://maven.wso2.org/nexus/content/repositories/releases/ + + true + daily + ignore + + + + + + + wso2.releases + WSO2 Releases Repository + + true + + + false + + https://maven.wso2.org/nexus/content/repositories/releases/ + default + + + @@ -72,8 +119,7 @@ org.wso2.integration.transaction.counter.*, - org.apache.synapse.core, - *;resolution:=optional + org.apache.synapse.core, *;resolution:=optional diff --git a/pom.xml b/pom.xml deleted file mode 100644 index 85dc5df..0000000 --- a/pom.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - - 4.0.0 - - org.wso2.integration.transaction.counter - transaction-counter - pom - 1.0.0 - WSO2 Integration Transaction Counter - - - counter - service - - - - scm:git:https://github.com/wso2/integration-transaction-counter.git - scm:git:https://github.com/wso2/integration-transaction-counter.git - https://github.com/wso2/integration-transaction-counter.git/ - HEAD - - - - - deploy - - - - - - wso2-nexus - WSO2 internal Repository - https://maven.wso2.org/nexus/content/groups/wso2-public/ - - true - daily - ignore - - - - wso2.releases - WSO2 internal Repository - https://maven.wso2.org/nexus/content/repositories/releases/ - - true - daily - ignore - - - - - - - wso2.releases - WSO2 Releases Repository - - true - - - false - - https://maven.wso2.org/nexus/content/repositories/releases/ - default - - - diff --git a/service/pom.xml b/service/pom.xml deleted file mode 100644 index b0e2003..0000000 --- a/service/pom.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - - 4.0.0 - - - org.wso2.integration.transaction.counter - transaction-counter - 1.0.0 - - - transaction-count-service - pom - WSO2 Integration Transaction Counting Service - - - - - org.codehaus.mojo - exec-maven-plugin - 3.1.0 - - - counting-service-build - compile - - exec - - - - - bal - ${project.basedir} - - build - - - - - -