diff options
| author | Barry Warsaw | 2017-06-17 03:33:39 +0000 |
|---|---|---|
| committer | Barry Warsaw | 2017-06-17 03:33:39 +0000 |
| commit | 66559bacf1dbfa166c2d4c2596ea96c7909bb43c (patch) | |
| tree | 9bc9cef4a696639654185709c1143924b1d41f43 /src/mailman/core | |
| parent | 4fdad6f9c8a9487a6f2c8462be734cd97aaf4d94 (diff) | |
| parent | 88f40ac0add14cc9e7c106c5e2e9ec3d6f73df6e (diff) | |
| download | mailman-66559bacf1dbfa166c2d4c2596ea96c7909bb43c.tar.gz mailman-66559bacf1dbfa166c2d4c2596ea96c7909bb43c.tar.zst mailman-66559bacf1dbfa166c2d4c2596ea96c7909bb43c.zip | |
Diffstat (limited to 'src/mailman/core')
| -rw-r--r-- | src/mailman/core/chains.py | 20 | ||||
| -rw-r--r-- | src/mailman/core/pipelines.py | 11 | ||||
| -rw-r--r-- | src/mailman/core/rules.py | 10 |
3 files changed, 6 insertions, 35 deletions
diff --git a/src/mailman/core/chains.py b/src/mailman/core/chains.py index 0eedd8b8c..c251d38bc 100644 --- a/src/mailman/core/chains.py +++ b/src/mailman/core/chains.py @@ -17,12 +17,10 @@ """Application support for chain processing.""" -from mailman.chains.base import Chain, TerminalChainBase from mailman.config import config from mailman.interfaces.chain import IChain, LinkAction -from mailman.utilities.modules import find_components +from mailman.utilities.modules import add_components from public import public -from zope.interface.verify import verifyObject @public @@ -91,19 +89,5 @@ def process(mlist, msg, msgdata, start_chain='default-posting-chain'): @public def initialize(): """Set up chains, both built-in and from the database.""" - for chain_class in find_components('mailman.chains', IChain): - # FIXME 2010-12-28 barry: We need a generic way to disable automatic - # instantiation of discovered classes. This is useful not just for - # chains, but also for rules, handlers, etc. Ideally it should be - # part of find_components(). For now, hard code the ones we do not - # want to instantiate. - if chain_class in (Chain, TerminalChainBase): - continue - chain = chain_class() - verifyObject(IChain, chain) - assert chain.name not in config.chains, ( - 'Duplicate chain "{}" found in {} (previously: {}'.format( - chain.name, chain_class, config.chains[chain.name])) - config.chains[chain.name] = chain + add_components('mailman.chains', IChain, config.chains) # XXX Read chains from the database and initialize them. - pass diff --git a/src/mailman/core/pipelines.py b/src/mailman/core/pipelines.py index 07780dfeb..15e23a022 100644 --- a/src/mailman/core/pipelines.py +++ b/src/mailman/core/pipelines.py @@ -25,10 +25,9 @@ from mailman.core.i18n import _ from mailman.interfaces.handler import IHandler from mailman.interfaces.pipeline import ( DiscardMessage, IPipeline, RejectMessage) -from mailman.utilities.modules import find_components +from mailman.utilities.modules import add_components from public import public from zope.interface import implementer -from zope.interface.verify import verifyObject dlog = logging.getLogger('mailman.debug') @@ -139,13 +138,7 @@ class VirginPipeline(BasePipeline): def initialize(): """Initialize the pipelines.""" # Find all handlers in the registered plugins. - for handler_class in find_components('mailman.handlers', IHandler): - handler = handler_class() - verifyObject(IHandler, handler) - assert handler.name not in config.handlers, ( - 'Duplicate handler "{}" found in {}'.format( - handler.name, handler_class)) - config.handlers[handler.name] = handler + add_components('mailman.handlers', IHandler, config.handlers) # Set up some pipelines. for pipeline_class in (OwnerPipeline, PostingPipeline, VirginPipeline): pipeline = pipeline_class() diff --git a/src/mailman/core/rules.py b/src/mailman/core/rules.py index ce89b06ba..8e0d9197c 100644 --- a/src/mailman/core/rules.py +++ b/src/mailman/core/rules.py @@ -19,18 +19,12 @@ from mailman.config import config from mailman.interfaces.rules import IRule -from mailman.utilities.modules import find_components +from mailman.utilities.modules import add_components from public import public -from zope.interface.verify import verifyObject @public def initialize(): """Find and register all rules in all plugins.""" # Find rules in plugins. - for rule_class in find_components('mailman.rules', IRule): - rule = rule_class() - verifyObject(IRule, rule) - assert rule.name not in config.rules, ( - 'Duplicate rule "{}" found in {}'.format(rule.name, rule_class)) - config.rules[rule.name] = rule + add_components('mailman.rules', IRule, config.rules) |
