Module descriptor additions
---------------------------
Key: MAGNOLIA-3517
URL: http://jira.magnolia-cms.com/browse/MAGNOLIA-3517
Project: Magnolia
Issue Type: New Feature
Components: core
Reporter: Grégory Joseph
Assignee: Philipp Bärfuss
Fix For: 5.0
In the light of changes for IoC (MAGNOLIA-2569), we need to introduce a couple
of new elements in the module descriptors.
http://wiki.magnolia-cms.com/display/DEV/Concept+IOC+in+Magnolia contains some
background information.
Changes are in flux, but so far, we've identified the following:
* {{components}}
** {{component}} - with an optional {{key}} attribute, and possibly with a
{{scope}} attribute. This is a replacement for components registered via
properties. The {{key}} can be used to _replace_ an already registered
component. If no key is provided, one might bump into
{{AmbiguousComponentResolutionException}} (or whatever equivalent exception
other containers might throw), but this also allows dependencies on collections
of certain types. TBD: do we introduce a different element for
repository-configured components, or do we determine if the value is a class or
a repository path by analyzing the string ?
** {{provider}} or {{factory}} - optional {{key}} attribute. With this we will
explicitly register factories for types of components (instead of the current
mechanism that checks if the instantiated class is a factory)
** {{composer}} - tbd. This could be used to register container-specific
"composers", i.e a special type of component which will register components on
the container by code rather than by adding more elements to the module
descriptor. (So this could be, for example, picocontainer-specific, using more
complex component configuration/registration (jmx for example?)
* {{transformers}} - for content2bean. TBD: perhaps these can simply be
registered as {{component}}s.
* {{moduleID}} or {{moduleKey}} or {{moduleCoordinates}}? - unrelated to IoC,
but it's as good a moment to introduce it as any. This is the equivalent of the
groupId:artifactId:version of Maven/Aether. We will need this to download
modules into Magnolia, and might also help avoiding potential naming conflicts,
which could easily arise with our current short-naming scheme.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.magnolia-cms.com/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
----------------------------------------------------------------
For list details see
http://www.magnolia-cms.com/home/community/mailing-lists.html
To unsubscribe, E-mail to: <[email protected]>
----------------------------------------------------------------