You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Alan Conway (JIRA)" <qp...@incubator.apache.org> on 2008/01/11 15:39:34 UTC
[jira] Assigned: (QPID-732) Plugin-Module support added, several
TODOs completed
[ https://issues.apache.org/jira/browse/QPID-732?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alan Conway reassigned QPID-732:
--------------------------------
Assignee: Alan Conway
> Plugin-Module support added, several TODOs completed
> ----------------------------------------------------
>
> Key: QPID-732
> URL: https://issues.apache.org/jira/browse/QPID-732
> Project: Qpid
> Issue Type: New Feature
> Components: C++ Broker
> Reporter: Ted Ross
> Assignee: Alan Conway
> Attachments: qpid-patch17.diff
>
>
> The attached patch provides support for plugin modules in the C++ broker.
> - Plugins are supported (--load <lib>, --load-dir <dir> options provided)
> - Command options may be extended by plugins.
> - A workaround was added to make config-file parsing tolerant of unregistered options.
> - Store-specific options were removed so they can be supplied by a plugin
> - A pre-log facility was introduced so log messages can be generated prior to the initialization of the logging module.
> File-by-file details:
> M cpp/src/qpidd.cpp
> Added support for loadable plugin modules. This involves a
> two-phased handling of command line/config options. Phase-1
> determines which modules to load and phase-2 is based on all of
> the command-line options supplied by qpidd and the loaded
> plugins.
> Also added a pre-log facility so log messages can be generated
> prior to the initialization of the log module.
> M cpp/src/Makefile.am
> Added dependency for boost_filesystem library.
> M cpp/src/qpid/Plugin.h
> Added 'earlyInitialize' method. Plugins are now initialized at
> two points: earlyInitialize is called prior to broker
> initialization and initialize is called at the end of broker
> init. This allows modules like the store to be hooked in early
> and other modules to be able to assume that the broker target is
> fully functional.
> M cpp/src/qpid/cluster/ClusterPlugin.cpp
> Added stub for the new pure-virtual earlyInitialize method.
> M cpp/src/qpid/Options.h
> M cpp/src/qpid/Options.cpp
> Added 'allowUnknown' option in the parse method. This is needed
> in phase-1 command processing when there are options for
> not-yet-loaded plugin modules.
> Because the stable version of boost does not permit 'allowUnknown'
> for config files, a workaround has been implemented in this module
> to pre-filter the config file text removing lines that represent
> unknown options.
> M cpp/src/qpid/broker/Broker.h
> M cpp/src/qpid/broker/Broker.cpp
> Removed all store-specific command options. Updated logic to
> allow the store to be a plugin module.
> M cpp/src/qpid/broker/DtxManager.h
> M cpp/src/qpid/broker/DtxManager.cpp
> M cpp/src/qpid/broker/QueueRegistry.h
> M cpp/src/qpid/broker/QueueRegistry.cpp
> Changed API to these classes such that the store is no longer
> supplied in the constructor but is supplied later, before any
> operations are called for.
> M cpp/src/qpid/broker/MessageStoreModule.h
> M cpp/src/qpid/broker/MessageStoreModule.cpp
> This module is still needed to provide "exception transfer"
> service. It was changed to not load the store module but rather
> use the already-loaded plugin store.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.