• Icon: Sub-task Sub-task
    • Resolution: Won't Fix
    • Icon: Neutral Neutral
    • None
    • None
    • content2bean, core
    • None

      Ideally, we should go for a much simpler interface:

      public interface Content2Bean {
          Object toBean(Content node) throws Content2BeanException;
      }
      

      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

            Unassigned Unassigned
            tmattsson Tobias Mattsson
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: