Search in sources :

Example 6 with LinkHeaderLinkStrategy

use of org.apache.activemq.artemis.rest.util.LinkHeaderLinkStrategy in project activemq-artemis by apache.

the class MessageTestBase method getLinkByTitle.

public static Link getLinkByTitle(LinkStrategy strategy, ClientResponse response, String title) {
    if (strategy instanceof LinkHeaderLinkStrategy) {
        return response.getLinkHeader().getLinkByTitle(title);
    } else {
        String headerName = "msg-" + title;
        String href = (String) response.getHeaders().getFirst(headerName);
        if (href == null)
            return null;
        // System.out.println(headerName + ": " + href);
        Link l = new Link(title, null, href, null, null);
        try {
            l.setExecutor((ClientExecutor) executorField.get(response));
        } catch (IllegalAccessException e) {
            throw new RuntimeException(e);
        }
        return l;
    }
}
Also used : LinkHeaderLinkStrategy(org.apache.activemq.artemis.rest.util.LinkHeaderLinkStrategy) Link(org.jboss.resteasy.spi.Link)

Example 7 with LinkHeaderLinkStrategy

use of org.apache.activemq.artemis.rest.util.LinkHeaderLinkStrategy in project activemq-artemis by apache.

the class MessageServiceManager method start.

public void start() throws Exception {
    if (configuration == null || !configSet) {
        if (configResourcePath == null) {
            configuration = new MessageServiceConfiguration();
        } else {
            URL url = getClass().getClassLoader().getResource(configResourcePath);
            if (isOutsideOfClassloader(url)) {
                url = new URL(configResourcePath);
            }
            JAXBContext jaxb = JAXBContext.newInstance(MessageServiceConfiguration.class);
            Reader reader = new InputStreamReader(url.openStream());
            String xml = XMLUtil.readerToString(reader);
            xml = XMLUtil.replaceSystemProps(xml);
            configuration = (MessageServiceConfiguration) jaxb.createUnmarshaller().unmarshal(new StringReader(xml));
        }
    }
    if (threadPool == null)
        threadPool = Executors.newCachedThreadPool(ActiveMQThreadFactory.defaultThreadFactory());
    timeoutTaskInterval = configuration.getTimeoutTaskInterval();
    timeoutTask = new TimeoutTask(timeoutTaskInterval);
    threadPool.execute(timeoutTask);
    DestinationSettings defaultSettings = new DestinationSettings();
    defaultSettings.setConsumerSessionTimeoutSeconds(configuration.getConsumerSessionTimeoutSeconds());
    defaultSettings.setDuplicatesAllowed(configuration.isDupsOk());
    defaultSettings.setDurableSend(configuration.isDefaultDurableSend());
    ServerLocator consumerLocator = ActiveMQClient.createServerLocator(configuration.getUrl());
    if (configuration.getConsumerWindowSize() != -1) {
        consumerLocator.setConsumerWindowSize(configuration.getConsumerWindowSize());
    }
    ActiveMQRestLogger.LOGGER.debug("Created ServerLocator: " + consumerLocator);
    consumerSessionFactory = consumerLocator.createSessionFactory();
    ActiveMQRestLogger.LOGGER.debug("Created ClientSessionFactory: " + consumerSessionFactory);
    ServerLocator defaultLocator = ActiveMQClient.createServerLocator(configuration.getUrl());
    ClientSessionFactory sessionFactory = defaultLocator.createSessionFactory();
    LinkStrategy linkStrategy;
    if (configuration.isUseLinkHeaders()) {
        linkStrategy = new LinkHeaderLinkStrategy();
    } else {
        linkStrategy = new CustomHeaderLinkStrategy();
    }
    queueManager.setServerLocator(defaultLocator);
    queueManager.setSessionFactory(sessionFactory);
    queueManager.setTimeoutTask(timeoutTask);
    queueManager.setConsumerServerLocator(consumerLocator);
    queueManager.setConsumerSessionFactory(consumerSessionFactory);
    queueManager.setDefaultSettings(defaultSettings);
    queueManager.setPushStoreFile(configuration.getQueuePushStoreDirectory());
    queueManager.setProducerPoolSize(configuration.getProducerSessionPoolSize());
    queueManager.setProducerTimeToLive(configuration.getProducerTimeToLive());
    queueManager.setLinkStrategy(linkStrategy);
    queueManager.setRegistry(registry);
    topicManager.setServerLocator(defaultLocator);
    topicManager.setSessionFactory(sessionFactory);
    topicManager.setTimeoutTask(timeoutTask);
    topicManager.setConsumerServerLocator(consumerLocator);
    topicManager.setConsumerSessionFactory(consumerSessionFactory);
    topicManager.setDefaultSettings(defaultSettings);
    topicManager.setPushStoreFile(configuration.getTopicPushStoreDirectory());
    topicManager.setProducerPoolSize(configuration.getProducerSessionPoolSize());
    queueManager.setProducerTimeToLive(configuration.getProducerTimeToLive());
    topicManager.setLinkStrategy(linkStrategy);
    topicManager.setRegistry(registry);
    queueManager.start();
    topicManager.start();
}
Also used : DestinationSettings(org.apache.activemq.artemis.rest.queue.DestinationSettings) CustomHeaderLinkStrategy(org.apache.activemq.artemis.rest.util.CustomHeaderLinkStrategy) InputStreamReader(java.io.InputStreamReader) Reader(java.io.Reader) InputStreamReader(java.io.InputStreamReader) StringReader(java.io.StringReader) JAXBContext(javax.xml.bind.JAXBContext) URL(java.net.URL) TimeoutTask(org.apache.activemq.artemis.rest.util.TimeoutTask) CustomHeaderLinkStrategy(org.apache.activemq.artemis.rest.util.CustomHeaderLinkStrategy) LinkHeaderLinkStrategy(org.apache.activemq.artemis.rest.util.LinkHeaderLinkStrategy) LinkStrategy(org.apache.activemq.artemis.rest.util.LinkStrategy) StringReader(java.io.StringReader) LinkHeaderLinkStrategy(org.apache.activemq.artemis.rest.util.LinkHeaderLinkStrategy) ClientSessionFactory(org.apache.activemq.artemis.api.core.client.ClientSessionFactory) ServerLocator(org.apache.activemq.artemis.api.core.client.ServerLocator)

Aggregations

LinkHeaderLinkStrategy (org.apache.activemq.artemis.rest.util.LinkHeaderLinkStrategy)7 CustomHeaderLinkStrategy (org.apache.activemq.artemis.rest.util.CustomHeaderLinkStrategy)6 Test (org.junit.Test)5 QueueDeployment (org.apache.activemq.artemis.rest.queue.QueueDeployment)4 InputStreamReader (java.io.InputStreamReader)1 Reader (java.io.Reader)1 StringReader (java.io.StringReader)1 URL (java.net.URL)1 JAXBContext (javax.xml.bind.JAXBContext)1 ClientSessionFactory (org.apache.activemq.artemis.api.core.client.ClientSessionFactory)1 ServerLocator (org.apache.activemq.artemis.api.core.client.ServerLocator)1 DestinationSettings (org.apache.activemq.artemis.rest.queue.DestinationSettings)1 TopicDeployment (org.apache.activemq.artemis.rest.topic.TopicDeployment)1 LinkStrategy (org.apache.activemq.artemis.rest.util.LinkStrategy)1 TimeoutTask (org.apache.activemq.artemis.rest.util.TimeoutTask)1 Link (org.jboss.resteasy.spi.Link)1