alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

ActiveMQ example source code file (Region.java)

This example ActiveMQ source code file (Region.java) is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Java - ActiveMQ tags/keywords

activemqdestination, activemqdestination, consumerinfo, destination, destination, exception, exception, message, messageack, producerinfo, producerinfo, removesubscriptioninfo, response, subscription, util

The ActiveMQ Region.java source code

/**
 * 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.broker.region;

import java.util.Map;
import java.util.Set;
import org.apache.activemq.Service;
import org.apache.activemq.broker.ConnectionContext;
import org.apache.activemq.broker.ConsumerBrokerExchange;
import org.apache.activemq.broker.ProducerBrokerExchange;
import org.apache.activemq.command.ActiveMQDestination;
import org.apache.activemq.command.ConsumerControl;
import org.apache.activemq.command.ConsumerInfo;
import org.apache.activemq.command.Message;
import org.apache.activemq.command.MessageAck;
import org.apache.activemq.command.MessageDispatchNotification;
import org.apache.activemq.command.MessagePull;
import org.apache.activemq.command.ProducerInfo;
import org.apache.activemq.command.RemoveSubscriptionInfo;
import org.apache.activemq.command.Response;

/**
 * A Region is used to implement the different QOS options available to 
 * a broker.  A Broker is composed of multiple message processing Regions that
 * provide different QOS options.
 * 
 * 
 */
public interface Region extends Service {

    /**
     * Used to create a destination.  Usually, this method is invoked as a side-effect of sending
     * a message to a destination that does not exist yet.
     * 
     * @param context
     * @param destination the destination to create.
     * @param createIfTemporary 
     * @return TODO
     * @throws Exception TODO
     */
    Destination addDestination(ConnectionContext context, ActiveMQDestination destination, boolean createIfTemporary) throws Exception;
    
    /**
     * Used to destroy a destination.  
     * This should try to quiesce use of the destination up to the timeout allotted time before removing the destination.
     * This will remove all persistent messages associated with the destination.
     * 
     * @param context the environment the operation is being executed under.
     * @param destination what is being removed from the broker.
     * @param timeout the max amount of time to wait for the destination to quiesce
     * @throws Exception TODO
     */
    void removeDestination(ConnectionContext context, ActiveMQDestination destination, long timeout) throws Exception;

    /**
     * Returns a copy of the current destinations available in the region
     * 
     * @return a copy of the regions currently active at the time of the call with the key the destination and the value the Destination.
     */
    Map<ActiveMQDestination, Destination> getDestinationMap();
    

    /**
     * Adds a consumer.
     * @param context the environment the operation is being executed under.
     * @return TODO
     * @throws Exception TODO
     */
    Subscription addConsumer(ConnectionContext context, ConsumerInfo info) throws Exception;

    /**
     * Removes a consumer.
     * @param context the environment the operation is being executed under.
     * @throws Exception TODO
     */
    void removeConsumer(ConnectionContext context, ConsumerInfo info) throws Exception;
    
    /**
     * Adds a Producer.
     * @param context the environment the operation is being executed under.
     * @throws Exception TODO
     */
    void addProducer(ConnectionContext context, ProducerInfo info) throws Exception;

    /**
     * Removes a Producer.
     * @param context the environment the operation is being executed under.
     * @throws Exception TODO
     */
    void removeProducer(ConnectionContext context, ProducerInfo info) throws Exception;


    /**
     * Deletes a durable subscription.
     * @param context the environment the operation is being executed under.
     * @param info TODO
     * @throws Exception TODO
     */
    void removeSubscription(ConnectionContext context, RemoveSubscriptionInfo info) throws Exception;
    
    /**
     * Send a message to the broker to using the specified destination.  The destination specified
     * in the message does not need to match the destination the message is sent to.  This is 
     * handy in case the message is being sent to a dead letter destination.
     * @param producerExchange the environment the operation is being executed under.
     * @param message 
     * @throws Exception TODO
     */
    void send(ProducerBrokerExchange producerExchange, Message message) throws Exception;
    
    /**
     * Used to acknowledge the receipt of a message by a client.
     * @param consumerExchange the environment the operation is being executed under.
     * @throws Exception TODO
     */
    void acknowledge(ConsumerBrokerExchange consumerExchange, MessageAck ack) throws Exception;
    
    /**
     * Allows a consumer to pull a message from a queue
     */
    Response messagePull(ConnectionContext context, MessagePull pull) throws Exception;

    /**
     * Process a notification of a dispatch - used by a Slave Broker
     * @param messageDispatchNotification
     * @throws Exception TODO
     */
    void processDispatchNotification(MessageDispatchNotification messageDispatchNotification) throws Exception;

    void gc();

    /**
     * Provide an exact or wildcard lookup of destinations in the region
     * 
     * @return a set of matching destination objects.
     */
    Set <Destination>getDestinations(ActiveMQDestination destination);
    
    void processConsumerControl(ConsumerBrokerExchange consumerExchange, ConsumerControl control);
    
}

Other ActiveMQ examples (source code examples)

Here is a short list of links related to this ActiveMQ Region.java source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.