org.apache.activemq.artemis.rest.queue.DestinationServiceManager Maven / Gradle / Ivy
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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 org.apache.activemq.artemis.rest.queue;
import org.apache.activemq.artemis.api.core.TransportConfiguration;
import org.apache.activemq.artemis.api.core.client.ActiveMQClient;
import org.apache.activemq.artemis.api.core.client.ClientSessionFactory;
import org.apache.activemq.artemis.api.core.client.ServerLocator;
import org.apache.activemq.artemis.core.remoting.impl.invm.InVMConnectorFactory;
import org.apache.activemq.artemis.jms.client.ConnectionFactoryOptions;
import org.apache.activemq.artemis.rest.util.LinkStrategy;
import org.apache.activemq.artemis.rest.util.TimeoutTask;
import org.apache.activemq.artemis.spi.core.naming.BindingRegistry;
public abstract class DestinationServiceManager {
protected ServerLocator locator;
protected ClientSessionFactory sessionFactory;
protected ServerLocator consumerServerLocator;
protected ClientSessionFactory consumerSessionFactory;
protected boolean started;
protected String pushStoreFile;
protected DestinationSettings defaultSettings = DestinationSettings.defaultSettings;
protected TimeoutTask timeoutTask;
protected int producerPoolSize;
protected long producerTimeToLive;
protected LinkStrategy linkStrategy;
protected BindingRegistry registry;
protected ConnectionFactoryOptions jmsOptions;
public DestinationServiceManager(ConnectionFactoryOptions jmsOptions) {
this.jmsOptions = jmsOptions;
}
public BindingRegistry getRegistry() {
return registry;
}
public void setRegistry(BindingRegistry registry) {
this.registry = registry;
}
public LinkStrategy getLinkStrategy() {
return linkStrategy;
}
public void setLinkStrategy(LinkStrategy linkStrategy) {
this.linkStrategy = linkStrategy;
}
public long getProducerTimeToLive() {
return producerTimeToLive;
}
public void setProducerTimeToLive(long producerTimeToLive) {
this.producerTimeToLive = producerTimeToLive;
}
public int getProducerPoolSize() {
return producerPoolSize;
}
public void setProducerPoolSize(int producerPoolSize) {
this.producerPoolSize = producerPoolSize;
}
public ClientSessionFactory getConsumerSessionFactory() {
return consumerSessionFactory;
}
public void setConsumerSessionFactory(ClientSessionFactory consumerSessionFactory) {
this.consumerSessionFactory = consumerSessionFactory;
}
/**
* @return the consumerServerLocator
*/
public ServerLocator getConsumerServerLocator() {
return consumerServerLocator;
}
/**
* @param consumerServerLocator the consumerServerLocator to set
*/
public void setConsumerServerLocator(ServerLocator consumerServerLocator) {
this.consumerServerLocator = consumerServerLocator;
}
public TimeoutTask getTimeoutTask() {
return timeoutTask;
}
public void setTimeoutTask(TimeoutTask timeoutTask) {
this.timeoutTask = timeoutTask;
}
public DestinationSettings getDefaultSettings() {
return defaultSettings;
}
public void setDefaultSettings(DestinationSettings defaultSettings) {
this.defaultSettings = defaultSettings;
}
public ServerLocator getServerLocator() {
return this.locator;
}
public void setServerLocator(ServerLocator locator) {
this.locator = locator;
}
public ClientSessionFactory getSessionFactory() {
return sessionFactory;
}
public void setSessionFactory(ClientSessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public String getPushStoreFile() {
return pushStoreFile;
}
public void setPushStoreFile(String pushStoreFile) {
this.pushStoreFile = pushStoreFile;
}
protected void initDefaults() {
if (locator == null) {
locator = ActiveMQClient.createServerLocatorWithoutHA(new TransportConfiguration(InVMConnectorFactory.class.getName()));
}
if (sessionFactory == null) {
try {
sessionFactory = locator.createSessionFactory();
} catch (Exception e) {
throw new RuntimeException(e.getMessage(), e);
}
}
if (consumerSessionFactory == null)
consumerSessionFactory = sessionFactory;
if (timeoutTask == null)
throw new RuntimeException("TimeoutTask is not set");
}
public abstract void start() throws Exception;
public abstract void stop();
public ConnectionFactoryOptions getJmsOptions() {
return jmsOptions;
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy