You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Ted Ross (JIRA)" <qp...@incubator.apache.org> on 2008/01/11 15:12:34 UTC

[jira] Updated: (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 ]

Ted Ross updated QPID-732:
--------------------------

    Attachment: qpid-patch17.diff

> 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
>         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.