[ 
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]>
----------------------------------------------------------------

Reply via email to