[
http://jira.magnolia-cms.com/browse/MAGNOLIA-3525?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ondřej Chytil updated MAGNOLIA-3525:
------------------------------------
Fix Version/s: 4.5.x
(was: 4.5)
> Revise content2bean
> -------------------
>
> Key: MAGNOLIA-3525
> URL: http://jira.magnolia-cms.com/browse/MAGNOLIA-3525
> Project: Magnolia
> Issue Type: Sub-task
> Security Level: Public
> Components: content2bean, core
> Reporter: Grégory Joseph
> Assignee: Boris Kraft
> Fix For: 4.5.x
>
>
> While working on MAGNOLIA-2569, I had to change the Content2Bean interfaces,
> notably starting to pass the {{TypeMapping}} instance around.
> There are probably better ways - since {{TypeMapping}} is some sort of global
> "cache", it shouldn't be necessary to pass it around. There was some
> (cyclic-) dependency issue, because Transformers needed an instance of
> {{TypeMapping}}.
> Ideally, we should go for a much simpler interface:
> {code}
> public interface Content2Bean {
> Object toBean(Content node) throws Content2BeanException;
> }
> {code}
> Sprinkle some generics magic on top of that, and nobody should (hopefully)
> have to specify the transformer they need anymore. There's probably going to
> be some sort of transformer registry somewhere, where transformers are able
> to tell what type(s) they're transforming.
> Some (if not all) transformers will need to be explicitly registered (either
> just as "components" or explicitly as "transformers" - see MAGNOLIA-3517)
> Subclasses of CollectionPropertyHidingTransformer for instance, will probably
> need that.
> Additional ideas:
> * Drop support for pluggable {{info.magnolia.content2bean.TypeMapping}}.
> Instead, module descriptors can explicitly register transformers. Neither
> {{PropertiesBasedTypeMapping}} nor {{DescriptorFileBasedTypeMapping}} was
> ever used, as far as we know.
> * Only support explicitly registered transformers. We might add another
> element to the module descriptor. (see MAGNOLIA-3517)
> ** transformers would be in the root container ? can we "hide" them (i.e no
> components should depend on them, except TransformerProvider)?
> * Known non-core transformers:
> ** {{info.magnolia.module.cache.ehcache.CacheConfigurationTransformer}}
> (registered via a {{.transformer}} property - this was needed because it
> transforms a non-magnolia class)
> ** {{info.magnolia.module.cache.executor.CompositeExecutorTransformer}}
> (naming convention)
> ** {{info.magnolia.imaging.operations.text.TextStyleTransformer}} (naming
> convention)
> ** {{ProxyCapableContent2BeanTransformer}} and
> {{SpringContent2BeanTransformer}} in Blossom
--
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/community/mailing-lists.html
Alternatively, use our forums: http://forum.magnolia-cms.com/
To unsubscribe, E-mail to: <[email protected]>
----------------------------------------------------------------