Details

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

    Description

      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

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: