001/** 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017package org.apache.activemq.store; 018 019import java.io.IOException; 020 021import org.apache.activemq.broker.ConnectionContext; 022import org.apache.activemq.command.ActiveMQDestination; 023import org.apache.activemq.command.Message; 024import org.apache.activemq.command.MessageAck; 025import org.apache.activemq.command.MessageId; 026import org.apache.activemq.usage.MemoryUsage; 027 028/** 029 * A simple proxy that delegates to another MessageStore. 030 */ 031public class ProxyMessageStore implements MessageStore { 032 033 final MessageStore delegate; 034 035 public ProxyMessageStore(MessageStore delegate) { 036 this.delegate = delegate; 037 } 038 039 public MessageStore getDelegate() { 040 return delegate; 041 } 042 043 @Override 044 public void addMessage(ConnectionContext context, Message message) throws IOException { 045 delegate.addMessage(context, message); 046 } 047 048 @Override 049 public void addMessage(ConnectionContext context, Message message, boolean canOptimizeHint) throws IOException { 050 delegate.addMessage(context,message,canOptimizeHint); 051 } 052 053 @Override 054 public Message getMessage(MessageId identity) throws IOException { 055 return delegate.getMessage(identity); 056 } 057 058 @Override 059 public void recover(MessageRecoveryListener listener) throws Exception { 060 delegate.recover(listener); 061 } 062 063 @Override 064 public void removeAllMessages(ConnectionContext context) throws IOException { 065 delegate.removeAllMessages(context); 066 } 067 068 @Override 069 public void removeMessage(ConnectionContext context, MessageAck ack) throws IOException { 070 delegate.removeMessage(context, ack); 071 } 072 073 @Override 074 public void start() throws Exception { 075 delegate.start(); 076 } 077 078 @Override 079 public void stop() throws Exception { 080 delegate.stop(); 081 } 082 083 @Override 084 public void dispose(ConnectionContext context) { 085 delegate.dispose(context); 086 } 087 088 @Override 089 public ActiveMQDestination getDestination() { 090 return delegate.getDestination(); 091 } 092 093 @Override 094 public void setMemoryUsage(MemoryUsage memoryUsage) { 095 delegate.setMemoryUsage(memoryUsage); 096 } 097 098 @Override 099 public int getMessageCount() throws IOException { 100 return delegate.getMessageCount(); 101 } 102 103 @Override 104 public long getMessageSize() throws IOException { 105 return delegate.getMessageSize(); 106 } 107 108 @Override 109 public void recoverNextMessages(int maxReturned, MessageRecoveryListener listener) throws Exception { 110 delegate.recoverNextMessages(maxReturned, listener); 111 } 112 113 @Override 114 public void resetBatching() { 115 delegate.resetBatching(); 116 } 117 118 @Override 119 public void setBatch(MessageId messageId) throws Exception { 120 delegate.setBatch(messageId); 121 } 122 123 @Override 124 public boolean isEmpty() throws Exception { 125 return delegate.isEmpty(); 126 } 127 128 @Override 129 public ListenableFuture<Object> asyncAddQueueMessage(ConnectionContext context, Message message) throws IOException { 130 return delegate.asyncAddQueueMessage(context, message); 131 } 132 133 @Override 134 public ListenableFuture<Object> asyncAddQueueMessage(ConnectionContext context, Message message, boolean canOptimizeHint) throws IOException { 135 return delegate.asyncAddQueueMessage(context,message,canOptimizeHint); 136 } 137 138 @Override 139 public ListenableFuture<Object> asyncAddTopicMessage(ConnectionContext context, Message message) throws IOException { 140 return delegate.asyncAddTopicMessage(context, message); 141 } 142 143 @Override 144 public ListenableFuture<Object> asyncAddTopicMessage(ConnectionContext context, Message message, boolean canOptimizeHint) throws IOException { 145 return delegate.asyncAddTopicMessage(context,message,canOptimizeHint); 146 } 147 148 @Override 149 public void removeAsyncMessage(ConnectionContext context, MessageAck ack) throws IOException { 150 delegate.removeAsyncMessage(context, ack); 151 } 152 153 @Override 154 public void setPrioritizedMessages(boolean prioritizedMessages) { 155 delegate.setPrioritizedMessages(prioritizedMessages); 156 } 157 158 @Override 159 public boolean isPrioritizedMessages() { 160 return delegate.isPrioritizedMessages(); 161 } 162 163 @Override 164 public void updateMessage(Message message) throws IOException { 165 delegate.updateMessage(message); 166 } 167 168 @Override 169 public void registerIndexListener(IndexListener indexListener) { 170 delegate.registerIndexListener(indexListener); 171 } 172 173 @Override 174 public String toString() { 175 return delegate.toString(); 176 } 177 178 @Override 179 public MessageStoreStatistics getMessageStoreStatistics() { 180 return delegate.getMessageStoreStatistics(); 181 } 182 183}