diff options
| author | Keith Wall <kwall@apache.org> | 2014-06-06 15:44:20 +0000 |
|---|---|---|
| committer | Keith Wall <kwall@apache.org> | 2014-06-06 15:44:20 +0000 |
| commit | 6ddaec7aa7ca032a47144aa3148497367dd70d3b (patch) | |
| tree | 5e1f5919407db4331340a0a66e7a0c9cad88ce73 /qpid/java/broker-plugins | |
| parent | 386c80ed77f3d91903c563e0727dbf2a1b09fc2b (diff) | |
| download | qpid-python-6ddaec7aa7ca032a47144aa3148497367dd70d3b.tar.gz | |
QPID-5802: [Java Broker] Introduce separate VirtualHost types
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1600936 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker-plugins')
6 files changed, 229 insertions, 12 deletions
diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/AcknowledgeTest.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/AcknowledgeTest.java index 34331973e8..58989bbef9 100644 --- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/AcknowledgeTest.java +++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/AcknowledgeTest.java @@ -20,17 +20,17 @@ */ package org.apache.qpid.server.protocol.v0_8; +import java.util.List; + import org.apache.qpid.exchange.ExchangeDefaults; import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.server.queue.AMQQueue; +import org.apache.qpid.server.store.MessageCounter; import org.apache.qpid.server.store.MessageStore; -import org.apache.qpid.server.store.TestMemoryMessageStore; import org.apache.qpid.server.util.BrokerTestHelper; import org.apache.qpid.server.virtualhost.VirtualHostImpl; import org.apache.qpid.test.utils.QpidTestCase; -import java.util.List; - public class AcknowledgeTest extends QpidTestCase { private AMQChannel _channel; @@ -173,7 +173,9 @@ public class AcknowledgeTest extends QpidTestCase private void checkStoreContents(int messageCount) { - assertEquals("Message header count incorrect in the MetaDataMap", messageCount, ((TestMemoryMessageStore) _messageStore).getMessageCount()); + MessageCounter counter = new MessageCounter(); + _messageStore.visitMessages(counter); + assertEquals("Message header count incorrect in the MetaDataMap", messageCount, counter.getCount()); } } diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/QueueBrowserUsesNoAckTest.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/QueueBrowserUsesNoAckTest.java index 211c17b746..cf065de38a 100644 --- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/QueueBrowserUsesNoAckTest.java +++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/QueueBrowserUsesNoAckTest.java @@ -20,19 +20,19 @@ */ package org.apache.qpid.server.protocol.v0_8; +import java.util.List; + import org.apache.qpid.common.AMQPFilterTypes; import org.apache.qpid.exchange.ExchangeDefaults; import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.framing.FieldTable; import org.apache.qpid.server.queue.AMQQueue; +import org.apache.qpid.server.store.MessageCounter; import org.apache.qpid.server.store.MessageStore; -import org.apache.qpid.server.store.TestMemoryMessageStore; import org.apache.qpid.server.util.BrokerTestHelper; import org.apache.qpid.server.virtualhost.VirtualHostImpl; import org.apache.qpid.test.utils.QpidTestCase; -import java.util.List; - public class QueueBrowserUsesNoAckTest extends QpidTestCase { private AMQChannel _channel; @@ -132,7 +132,10 @@ public class QueueBrowserUsesNoAckTest extends QpidTestCase private void checkStoreContents(int messageCount) { - assertEquals("Message header count incorrect in the MetaDataMap", messageCount, ((TestMemoryMessageStore) _messageStore).getMessageCount()); + MessageCounter counter = new MessageCounter(); + _messageStore.visitMessages(counter); + + assertEquals("Message header count incorrect in the MetaDataMap", messageCount, counter.getCount()); } private AMQShortString browse(AMQChannel channel, AMQQueue queue) throws Exception diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/ReferenceCountingTest.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/ReferenceCountingTest.java index 69b3069ddb..0ff22f9d51 100644 --- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/ReferenceCountingTest.java +++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/ReferenceCountingTest.java @@ -26,6 +26,7 @@ import org.apache.qpid.framing.BasicContentHeaderProperties; import org.apache.qpid.framing.ContentHeaderBody; import org.apache.qpid.framing.abstraction.MessagePublishInfo; import org.apache.qpid.server.message.MessageReference; +import org.apache.qpid.server.store.MessageCounter; import org.apache.qpid.server.store.StoredMessage; import org.apache.qpid.server.store.TestMemoryMessageStore; import org.apache.qpid.test.utils.QpidTestCase; @@ -90,11 +91,18 @@ public class ReferenceCountingTest extends QpidTestCase MessageReference ref = message.newReference(); - assertEquals(1, _store.getMessageCount()); + assertEquals(1, getStoreMessageCount()); ref.release(); - assertEquals(0, _store.getMessageCount()); + assertEquals(0, getStoreMessageCount()); + } + + private int getStoreMessageCount() + { + MessageCounter counter = new MessageCounter(); + _store.visitMessages(counter); + return counter.getCount(); } private ContentHeaderBody createPersistentContentHeader() @@ -152,10 +160,10 @@ public class ReferenceCountingTest extends QpidTestCase // we call routing complete to set up the handle // message.routingComplete(_store, _storeContext, new MessageHandleFactory()); - assertEquals(1, _store.getMessageCount()); + assertEquals(1, getStoreMessageCount()); MessageReference ref2 = message.newReference(); ref.release(); - assertEquals(1, _store.getMessageCount()); + assertEquals(1, getStoreMessageCount()); } public static junit.framework.Test suite() diff --git a/qpid/java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/virtualhost/derby/DerbyVirtualHost.java b/qpid/java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/virtualhost/derby/DerbyVirtualHost.java new file mode 100644 index 0000000000..5a5511becf --- /dev/null +++ b/qpid/java/broker-plugins/derby-store/src/main/java/org/apache/qpid/server/virtualhost/derby/DerbyVirtualHost.java @@ -0,0 +1,68 @@ +/* + * + * 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.qpid.server.virtualhost.derby; + +import java.util.Map; + +import org.apache.qpid.server.logging.subjects.MessageStoreLogSubject; +import org.apache.qpid.server.model.ManagedObject; +import org.apache.qpid.server.model.ManagedObjectFactoryConstructor; +import org.apache.qpid.server.model.VirtualHostNode; +import org.apache.qpid.server.store.MessageStore; +import org.apache.qpid.server.store.derby.DerbyMessageStore; +import org.apache.qpid.server.virtualhost.AbstractVirtualHost; + +@ManagedObject(category = false, type = DerbyVirtualHost.VIRTUAL_HOST_TYPE) +public class DerbyVirtualHost extends AbstractVirtualHost<DerbyVirtualHost> +{ + public static final String VIRTUAL_HOST_TYPE = "DERBY"; + private MessageStore _messageStore; + private MessageStoreLogSubject _messageStoreLogSubject; + + @ManagedObjectFactoryConstructor + public DerbyVirtualHost(final Map<String, Object> attributes, + final VirtualHostNode<?> virtualHostNode) + { + super(attributes, virtualHostNode); + } + + + @Override + protected void initialiseStorage() + { + _messageStore = new DerbyMessageStore().getMessageStore(); + + _messageStoreLogSubject = new MessageStoreLogSubject(getName(), _messageStore.getClass().getSimpleName()); + + } + + @Override + protected MessageStoreLogSubject getMessageStoreLogSubject() + { + return _messageStoreLogSubject; + } + + @Override + public MessageStore getMessageStore() + { + return _messageStore; + } +} diff --git a/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/virtualhost/jdbc/JDBCVirtualHost.java b/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/virtualhost/jdbc/JDBCVirtualHost.java new file mode 100644 index 0000000000..8acf474321 --- /dev/null +++ b/qpid/java/broker-plugins/jdbc-store/src/main/java/org/apache/qpid/server/virtualhost/jdbc/JDBCVirtualHost.java @@ -0,0 +1,68 @@ +/* + * + * 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.qpid.server.virtualhost.jdbc; + +import java.util.Map; + +import org.apache.qpid.server.logging.subjects.MessageStoreLogSubject; +import org.apache.qpid.server.model.ManagedObject; +import org.apache.qpid.server.model.ManagedObjectFactoryConstructor; +import org.apache.qpid.server.model.VirtualHostNode; +import org.apache.qpid.server.store.MessageStore; +import org.apache.qpid.server.store.jdbc.JDBCMessageStore; +import org.apache.qpid.server.virtualhost.AbstractVirtualHost; + +@ManagedObject(category = false, type = JDBCVirtualHost.VIRTUAL_HOST_TYPE) +public class JDBCVirtualHost extends AbstractVirtualHost<JDBCVirtualHost> +{ + public static final String VIRTUAL_HOST_TYPE = "JDBC"; + private MessageStore _messageStore; + private MessageStoreLogSubject _messageStoreLogSubject; + + @ManagedObjectFactoryConstructor + public JDBCVirtualHost(final Map<String, Object> attributes, + final VirtualHostNode<?> virtualHostNode) + { + super(attributes, virtualHostNode); + } + + + @Override + protected void initialiseStorage() + { + _messageStore = new JDBCMessageStore().getMessageStore(); + + _messageStoreLogSubject = new MessageStoreLogSubject(getName(), _messageStore.getClass().getSimpleName()); + + } + + @Override + protected MessageStoreLogSubject getMessageStoreLogSubject() + { + return _messageStoreLogSubject; + } + + @Override + public MessageStore getMessageStore() + { + return _messageStore; + } +} diff --git a/qpid/java/broker-plugins/memory-store/src/main/java/org/apache/qpid/server/virtualhost/memory/MemoryVirtualHost.java b/qpid/java/broker-plugins/memory-store/src/main/java/org/apache/qpid/server/virtualhost/memory/MemoryVirtualHost.java new file mode 100644 index 0000000000..ebd32d79a7 --- /dev/null +++ b/qpid/java/broker-plugins/memory-store/src/main/java/org/apache/qpid/server/virtualhost/memory/MemoryVirtualHost.java @@ -0,0 +1,68 @@ +/* + * + * 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.qpid.server.virtualhost.memory; + +import java.util.Map; + +import org.apache.qpid.server.logging.subjects.MessageStoreLogSubject; +import org.apache.qpid.server.model.ManagedObject; +import org.apache.qpid.server.model.ManagedObjectFactoryConstructor; +import org.apache.qpid.server.model.VirtualHostNode; +import org.apache.qpid.server.store.MemoryMessageStore; +import org.apache.qpid.server.store.MessageStore; +import org.apache.qpid.server.virtualhost.AbstractVirtualHost; + +@ManagedObject(category = false, type = MemoryVirtualHost.VIRTUAL_HOST_TYPE) +public class MemoryVirtualHost extends AbstractVirtualHost<MemoryVirtualHost> +{ + public static final String VIRTUAL_HOST_TYPE = "Memory"; + private MessageStore _messageStore; + private MessageStoreLogSubject _messageStoreLogSubject; + + @ManagedObjectFactoryConstructor + public MemoryVirtualHost(final Map<String, Object> attributes, + final VirtualHostNode<?> virtualHostNode) + { + super(attributes, virtualHostNode); + } + + + @Override + protected void initialiseStorage() + { + _messageStore = new MemoryMessageStore(); + + _messageStoreLogSubject = new MessageStoreLogSubject(getName(), _messageStore.getClass().getSimpleName()); + + } + + @Override + protected MessageStoreLogSubject getMessageStoreLogSubject() + { + return _messageStoreLogSubject; + } + + @Override + public MessageStore getMessageStore() + { + return _messageStore; + } +} |
