KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > activemq > broker > region > virtual > VirtualTopicInterceptor


1 /**
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one or more
4  * contributor license agreements. See the NOTICE file distributed with
5  * this work for additional information regarding copyright ownership.
6  * The ASF licenses this file to You under the Apache License, Version 2.0
7  * (the "License"); you may not use this file except in compliance with
8  * the License. You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */

18 package org.apache.activemq.broker.region.virtual;
19
20 import org.apache.activemq.broker.ProducerBrokerExchange;
21 import org.apache.activemq.broker.region.Destination;
22 import org.apache.activemq.broker.region.DestinationFilter;
23 import org.apache.activemq.command.ActiveMQDestination;
24 import org.apache.activemq.command.ActiveMQQueue;
25 import org.apache.activemq.command.Message;
26
27 /**
28  * A Destination which implements <a
29  * HREF="http://activemq.org/site/virtual-destinations.html">Virtual Topic</a>
30  *
31  * @version $Revision: 516444 $
32  */

33 public class VirtualTopicInterceptor extends DestinationFilter {
34
35     private String JavaDoc prefix;
36     private String JavaDoc postfix;
37
38     public VirtualTopicInterceptor(Destination next, String JavaDoc prefix, String JavaDoc postfix) {
39         super(next);
40         this.prefix = prefix;
41         this.postfix = postfix;
42     }
43
44     public void send(ProducerBrokerExchange context, Message message) throws Exception JavaDoc {
45         ActiveMQDestination queueConsumers = getQueueConsumersWildcard(message.getDestination());
46         send(context, message, queueConsumers);
47     }
48
49     protected ActiveMQDestination getQueueConsumersWildcard(ActiveMQDestination original) {
50         return new ActiveMQQueue(prefix + original.getPhysicalName() + postfix);
51     }
52 }
53
Popular Tags