diff --git a/queue-api/pom.xml b/queue-api/pom.xml index 9c4bb4c..8b9bf9c 100644 --- a/queue-api/pom.xml +++ b/queue-api/pom.xml @@ -25,7 +25,7 @@ com.cisco.oss.foundation.queue queue-api queue-api - 1.1.1-1-SNAPSHOT + 2.0.0-1-SNAPSHOT This project defines common api for queue api for foundation runtime software https://github.com/foundation-runtime/communication/tree/master/queue-api @@ -82,15 +82,33 @@ - - com.cisco.oss.foundation - configuration-api - 1.0.2-1 + + org.springframework + spring-beans + ${spring-version} + provided + + + org.springframework + spring-context + ${spring-version} + provided - com.cisco.oss.foundation - monitoring-api - 1.0.2-1 + org.slf4j + slf4j-api + 1.7.21 + provided + diff --git a/queue-api/src/main/java/com/cisco/oss/foundation/message/AbstractMessageDispatcher.java b/queue-api/src/main/java/com/cisco/oss/foundation/message/AbstractMessageDispatcher.java index 6aeeb46..d50d62d 100644 --- a/queue-api/src/main/java/com/cisco/oss/foundation/message/AbstractMessageDispatcher.java +++ b/queue-api/src/main/java/com/cisco/oss/foundation/message/AbstractMessageDispatcher.java @@ -16,10 +16,12 @@ package com.cisco.oss.foundation.message; -import com.cisco.oss.foundation.configuration.ConfigurationFactory; -import org.apache.commons.configuration.Configuration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.env.Environment; +import org.springframework.stereotype.Component; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; @@ -27,6 +29,7 @@ import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; +@Component abstract class AbstractMessageDispatcher implements MessageDispatcher { private static final Logger LOGGER = LoggerFactory.getLogger(MessageDispatcher.class); @@ -36,13 +39,18 @@ abstract class AbstractMessageDispatcher implements MessageDispatcher { private ExecutorService executorService; private CapacityEnsurableLinkedBlockingQueue blockingWaitingQueue; + @Autowired + private Environment environment; + + @Value("${"+MessageConstants.QUEUE_SIZE_PROPERTY+"}") + private int maxThreadPoolSize=0; + + @Value("${"+MessageConstants.WAITING_QUEUE_SIZE_PROPERTY+"}") + private int waitingQueueSize=0; + public AbstractMessageDispatcher(ConcurrentMessageHandler concurrentMessageHandler){ this.concurrentMessageHandler = concurrentMessageHandler; - Configuration configuration = ConfigurationFactory.getConfiguration(); - int maxThreadPoolSize = configuration.getInt(MessageConstants.QUEUE_SIZE_PROPERTY); - int waitingQueueSize = configuration.getInt(MessageConstants.WAITING_QUEUE_SIZE_PROPERTY); - waitingList = new CopyOnWriteArrayList(); try { if (waitingQueueSize > 0){ diff --git a/queue-api/src/main/java/com/cisco/oss/foundation/message/AbstractMessageHandler.java b/queue-api/src/main/java/com/cisco/oss/foundation/message/AbstractMessageHandler.java index d52e56e..9abd88d 100644 --- a/queue-api/src/main/java/com/cisco/oss/foundation/message/AbstractMessageHandler.java +++ b/queue-api/src/main/java/com/cisco/oss/foundation/message/AbstractMessageHandler.java @@ -16,18 +16,12 @@ package com.cisco.oss.foundation.message; -import com.cisco.oss.foundation.configuration.ConfigurationFactory; -import com.cisco.oss.foundation.monitoring.CommunicationInfo; -import com.cisco.oss.foundation.monitoring.services.ServiceDetails; -import org.apache.commons.configuration.Configuration; - /** * Created by Yair Ogen on 15/06/2014. */ public abstract class AbstractMessageHandler implements MessageHandler { private String consumerName; - private ServiceDetails serviceDetails = new ServiceDetails(getServiceDescription(),consumerName,getProtocol(),-1); public AbstractMessageHandler(String consumerName){ this.consumerName = consumerName; @@ -35,24 +29,12 @@ public AbstractMessageHandler(String consumerName){ // @Override public void preMessageProcessing(Message message) { - if(isMonitoringEnabled()){ - CommunicationInfo.INSTANCE.transactionStarted(serviceDetails,consumerName); - } } // @Override public void postMessageProcessing(Message message) { - if(isMonitoringEnabled()){ - CommunicationInfo.INSTANCE.transactionFinished(serviceDetails,consumerName,false, "N/A"); - } } - private boolean isMonitoringEnabled() { - Configuration configuration = ConfigurationFactory.getConfiguration(); - Configuration subset = configuration.subset(consumerName); - boolean isMonitoringEnabled = subset.getBoolean("queue.isMonitoringEnabled",false); - return isMonitoringEnabled; - } public abstract String getServiceDescription(); diff --git a/queue-api/src/main/java/com/cisco/oss/foundation/message/AbstractMessageProducer.java b/queue-api/src/main/java/com/cisco/oss/foundation/message/AbstractMessageProducer.java index bbc44b9..0e7b985 100644 --- a/queue-api/src/main/java/com/cisco/oss/foundation/message/AbstractMessageProducer.java +++ b/queue-api/src/main/java/com/cisco/oss/foundation/message/AbstractMessageProducer.java @@ -16,11 +16,6 @@ package com.cisco.oss.foundation.message; -import com.cisco.oss.foundation.configuration.ConfigurationFactory; -import com.cisco.oss.foundation.monitoring.CommunicationInfo; -import com.cisco.oss.foundation.monitoring.serverconnection.ServerConnectionDetails; -import org.apache.commons.configuration.Configuration; - /** * Created by Yair Ogen on 16/06/2014. */ @@ -28,7 +23,6 @@ public abstract class AbstractMessageProducer implements MessageProducer { protected String producerName; protected String queueName = ""; - private ServerConnectionDetails serverConnectionDetails = new ServerConnectionDetails(producerName,getProducerImpl(), "N/A", -1, -1); public AbstractMessageProducer(String producerName){ this.producerName = producerName; @@ -36,24 +30,12 @@ public AbstractMessageProducer(String producerName){ @Override public void postSendMessage() { - if (isMonitoringEnabled()) { - CommunicationInfo.INSTANCE.transactionStarted(serverConnectionDetails,queueName); - } } @Override public void preSendMessage() { - if (isMonitoringEnabled()) { - CommunicationInfo.INSTANCE.transactionFinished(serverConnectionDetails,queueName, false, ""); - } } - private boolean isMonitoringEnabled() { - Configuration configuration = ConfigurationFactory.getConfiguration(); - Configuration subset = configuration.subset(producerName); - boolean isMonitoringEnabled = subset.getBoolean("queue.isMonitoringEnabled",false); - return isMonitoringEnabled; - } public abstract String getProducerImpl(); } diff --git a/queue-api/src/main/java/com/cisco/oss/foundation/message/ArrayMessageDispatcher.java b/queue-api/src/main/java/com/cisco/oss/foundation/message/ArrayMessageDispatcher.java index 48cf396..fda465d 100644 --- a/queue-api/src/main/java/com/cisco/oss/foundation/message/ArrayMessageDispatcher.java +++ b/queue-api/src/main/java/com/cisco/oss/foundation/message/ArrayMessageDispatcher.java @@ -18,8 +18,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; +@Component class ArrayMessageDispatcher extends AbstractMessageDispatcher { private static final Logger LOGGER = LoggerFactory.getLogger(ArrayMessageDispatcher.class); diff --git a/queue-api/src/main/java/com/cisco/oss/foundation/message/ConfigurationMessageIdentifier.java b/queue-api/src/main/java/com/cisco/oss/foundation/message/ConfigurationMessageIdentifier.java index 9431151..da12049 100644 --- a/queue-api/src/main/java/com/cisco/oss/foundation/message/ConfigurationMessageIdentifier.java +++ b/queue-api/src/main/java/com/cisco/oss/foundation/message/ConfigurationMessageIdentifier.java @@ -16,19 +16,26 @@ package com.cisco.oss.foundation.message; -import com.cisco.oss.foundation.configuration.ConfigurationFactory; -import org.apache.commons.configuration.Configuration; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.env.Environment; +import org.springframework.stereotype.Component; +@Component public class ConfigurationMessageIdentifier implements MessageIdentifier { public static final String MESSAGE_IDENTIFIER_PROPERTY = "messageHandling.messageIdentifierProperty"; - private final String identifierProperty; + + + @Autowired + private Environment environment; + + @Value("${"+MESSAGE_IDENTIFIER_PROPERTY+"}") + private String identifierProperty=null; public ConfigurationMessageIdentifier() { - Configuration config = ConfigurationFactory.getConfiguration(); - identifierProperty = config.getString(MESSAGE_IDENTIFIER_PROPERTY); } public String getIdentifier(Message message) { diff --git a/queue-api/src/main/java/com/cisco/oss/foundation/message/LockMessageDispatcher.java b/queue-api/src/main/java/com/cisco/oss/foundation/message/LockMessageDispatcher.java index 3ae3134..cf1c163 100644 --- a/queue-api/src/main/java/com/cisco/oss/foundation/message/LockMessageDispatcher.java +++ b/queue-api/src/main/java/com/cisco/oss/foundation/message/LockMessageDispatcher.java @@ -16,6 +16,8 @@ package com.cisco.oss.foundation.message; +import org.springframework.stereotype.Component; + import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; @@ -28,6 +30,7 @@ * @author yglass * */ +@Component public class LockMessageDispatcher extends AbstractMessageDispatcher { //private static final Logger LOGGER = LoggerFactory.getLogger(LockMessageDispatcher.class); diff --git a/queue-api/src/main/resources/configSchema.xml b/queue-api/src/main/resources/configSchema.xml deleted file mode 100644 index 9c75289..0000000 --- a/queue-api/src/main/resources/configSchema.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - diff --git a/queue-rabbitmq/pom.xml b/queue-rabbitmq/pom.xml index 7778b5e..349dc88 100644 --- a/queue-rabbitmq/pom.xml +++ b/queue-rabbitmq/pom.xml @@ -24,7 +24,7 @@ com.cisco.oss.foundation.queue queue-rabbitmq queue-rabbitmq - 1.5.3-2-SNAPSHOT + 2.0.0-1-SNAPSHOT This project is a rabbitmq implementation for the queue-api library. https://github.com/foundation-runtime/communication/tree/master/queue-rabbitmq @@ -47,10 +47,7 @@ 1.0.1-5 - 4.1.0 - 1.0.2-1 - 1.0.2-1 - 1.0.3-1 + 3.6.0 scm:git:git@github.com:foundation-runtime/communication.git @@ -88,23 +85,7 @@ ${project.groupId} queue-api - 1.1.1-0 - - - com.cisco.oss.foundation - configuration-lib - ${configuration-lib-version} - - - com.cisco.oss.foundation - logging-api - ${logging-api-version} - - - org.hornetq - hornetq-server - 2.4.4.Final - test + 2.0.0-1-SNAPSHOT com.rabbitmq @@ -150,18 +131,5 @@ ${logging-log4j-version} test - - com.cisco.oss.foundation - http-client-jetty - 0.0.0-8 - test - - - com.cisco.oss.foundation - configuration-lib - ${configuration-lib-version} - tests - test - diff --git a/queue-rabbitmq/src/main/java/com/cisco/oss/foundation/message/AbstractRabbitMQConcurrentMessageHandler.java b/queue-rabbitmq/src/main/java/com/cisco/oss/foundation/message/AbstractRabbitMQConcurrentMessageHandler.java index 6138c23..a588202 100644 --- a/queue-rabbitmq/src/main/java/com/cisco/oss/foundation/message/AbstractRabbitMQConcurrentMessageHandler.java +++ b/queue-rabbitmq/src/main/java/com/cisco/oss/foundation/message/AbstractRabbitMQConcurrentMessageHandler.java @@ -19,6 +19,7 @@ import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -27,6 +28,7 @@ * Basic abstract handler that exposes the foundation message handler but also implements silently the RabbitMQ message handler * Created by Yair Ogen on 24/04/2014. */ +@Component public abstract class AbstractRabbitMQConcurrentMessageHandler extends AbstractRabbitMQMessageHandler implements ConcurrentMessageHandler{ private static final Logger LOGGER = LoggerFactory.getLogger(AbstractRabbitMQConcurrentMessageHandler.class); diff --git a/queue-rabbitmq/src/main/java/com/cisco/oss/foundation/message/AbstractRabbitMQMessageHandler.java b/queue-rabbitmq/src/main/java/com/cisco/oss/foundation/message/AbstractRabbitMQMessageHandler.java index 317f539..f532756 100644 --- a/queue-rabbitmq/src/main/java/com/cisco/oss/foundation/message/AbstractRabbitMQMessageHandler.java +++ b/queue-rabbitmq/src/main/java/com/cisco/oss/foundation/message/AbstractRabbitMQMessageHandler.java @@ -19,6 +19,7 @@ import com.cisco.oss.foundation.flowcontext.FlowContextFactory; import com.rabbitmq.client.*; import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Component; import java.io.IOException; @@ -26,6 +27,7 @@ * Basic abstract handler that exposes the foundation message handler but also implements silently the RabbitMQ message handler * Created by Yair Ogen on 24/04/2014. */ +@Component public abstract class AbstractRabbitMQMessageHandler extends AbstractMessageHandler implements Consumer { /** diff --git a/queue-rabbitmq/src/test/java/com/cisco/oss/foundation/core/test/FilterTest.java b/queue-rabbitmq/src/test/java/com/cisco/oss/foundation/core/test/FilterTest.java deleted file mode 100644 index 6c31d30..0000000 --- a/queue-rabbitmq/src/test/java/com/cisco/oss/foundation/core/test/FilterTest.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 2015 Cisco Systems, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.cisco.oss.foundation.core.test; - -import org.hornetq.api.core.SimpleString; -import org.hornetq.core.filter.impl.FilterParser; -import org.hornetq.core.filter.impl.Identifier; -import org.hornetq.core.filter.impl.ParseException; -import org.junit.Test; - -import java.util.HashMap; -import java.util.Map; - -/** - * Created by yaogen on 10/03/2015. - */ -public class FilterTest { - String filter = "pointer='/households[householdId=?]/userProfiles[userProfileId=?]' OR pointer LIKE '/households[householdId=?]/userProfiles[userProfileId=?]/preferences/%' OR pointer='/households[householdId=?]/userProfiles[userProfileId=?]/favoriteChannels' OR pointer LIKE '/households[householdId=?]/devices[deviceId=?]%' OR pointer LIKE '/households[householdId=?]/preferences/%' OR pointer='/households[householdId=?]/householdStatus' OR pointer='/households[householdId=?]/locale' OR pointer='/households[householdId=?]' OR pointer LIKE '/households[householdId=?]/enabledServices%' OR pointer = '/households[householdId=?]/numTitles' OR pointer = '/households[householdId=?]/authorizations/subscriptions[authorizationId=?]' OR pointer = '/households[householdId=?]/authorizations/titles[purchaseId=?]'"; - - @Test - public void testFilterParser(){ - Map identifierMap = new HashMap<>(); - try { - Object parsed = FilterParser.doParse(new SimpleString(filter), identifierMap); - int i=0; - } catch (ParseException e) { - e.printStackTrace(); - } - } -}