#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

Reply via email to