#3045: [RFC] Ordered ExtensionPoint implementation
------------------------------+---------------------------------------------
Reporter: athomas | Owner: jonas
Type: enhancement | Status: new
Priority: low | Milestone:
Component: general | Version: devel
Severity: minor | Resolution:
Keywords: rfc architecture |
------------------------------+---------------------------------------------
Changes (by cboos):
* severity: trivial => minor
* keywords: => rfc architecture
Comment:
Well, the plugin architecture is normally independant from
the fact that components have a `.config`, as it's the
`Environment` class, acting as the `ComponentManager` which
adds this attribute to the components that it activates
(in `Environment.component_activated()`).
There's an exception made to this rule for the `SingletonExtensionPoint`,
and I always thought that because of this, the `SingletonExtensionPoint`
should have been placed in `env.py` rather than in `core.py`.
I don't think this exception could be made for the base `ExtensionPoint`
without making at the same time the dependency to the `.config`
explicit...
and I'm not sure that this is wanted.
So I'd suggest that your `ExtensionPoint` above should be renamed
`OrderedExtensionPoint`, and placed, together with
`SingletonExtensionPoint`,
in `env.py`.
Then, ''some'' extension points could be turned into the ordered type,
when it matters.
--
Ticket URL: <http://projects.edgewall.com/trac/ticket/3045>
The Trac Project <http://trac.edgewall.com/>
_______________________________________________
Trac-Tickets mailing list
[email protected]
http://lists.edgewall.com/mailman/listinfo/trac-tickets