From e46c3c0a19af0fd659cfe018c34db1c0dfd498c5 Mon Sep 17 00:00:00 2001 From: Gordon Sim Date: Thu, 15 Jan 2009 11:29:38 +0000 Subject: QPID-1567: Initial support for asynchronous queue state replication * Added QueueEvents class with per broker instance * Modified qpid::broker::Queue to notify QueueEvents of enqueues and dequeues (based on configuration) * Added replication subdir containing two plugins: - an event listener that registers with QueueEvents and creates messages representing received events on a replication queue - a custom exchange type for processing messages of the format created by the listener plugin * Added new option for controlling event generation to qpid::client::QueueOptions * Added new queue option to qpid-config script for the same git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@734674 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/replication.mk | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 cpp/src/replication.mk (limited to 'cpp/src/replication.mk') diff --git a/cpp/src/replication.mk b/cpp/src/replication.mk new file mode 100644 index 0000000000..6830f99d36 --- /dev/null +++ b/cpp/src/replication.mk @@ -0,0 +1,46 @@ +# +# 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. + +# Make file for building two plugins for asynchronously replicating +# queues. + +dmodule_LTLIBRARIES += replicating_listener.la replication_exchange.la + +# a queue event listener plugin that creates messages on a replication +# queue corresponding to enqueue and dequeue events: +replicating_listener_la_SOURCES = \ + qpid/replication/constants.h \ + qpid/replication/ReplicatingEventListener.cpp \ + qpid/replication/ReplicatingEventListener.h + +replicating_listener_la_LIBADD = libqpidbroker.la + +replicating_listener_la_LDFLAGS = $(PLUGINLDFLAGS) + +# a custom exchange plugin that allows an exchange to be created that +# can process the messages from a replication queue (populated on the +# source system by the replicating listener plugin above) and take the +# corresponding action on the local queues +replication_exchange_la_SOURCES = \ + qpid/replication/constants.h \ + qpid/replication/ReplicationExchange.cpp \ + qpid/replication/ReplicationExchange.h + +replication_exchange_la_LIBADD = libqpidbroker.la + +replication_exchange_la_LDFLAGS = $(PLUGINLDFLAGS) -- cgit v1.2.1