[ https://issues.apache.org/jira/browse/SLING-3716?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Stefan Seifert updated SLING-3716: ---------------------------------- Attachment: 140701_SLING-3716_slingmodes_constructorinjection.patch attached is a patch for adding constructor injection support to sling models including unit tests. some remarks: * due to missing support in java reflection it is not possible to get the name of a constructor parameter without resorting external tools like objectweb ASM. i did not wanted to introduce this only for this usecase. So if an injector is used that depends on name-based injection a @Named parameter or equivalent injector-specific annotation with name attribute is mandatory. the existing injector implementations where extended to ensure that they can cope with a null name attribute and unit tests were added for this case. * by default only constructors which are annotated with @Inject are supported for constructor injection. to keep compatibility with previous sling implementation releases the special case with one-parameter constructor matching the adaptable is still supported. * to make the injection of the adaptable itself more generic and support it in multiple parameter constructors i added a new "SelfInjector". this is supported for field injection as well. * currently there is no SelfInjector-specific annotation, the matching is class based. we can easily add one, this touches the topics discussed in SLING-3715 and SLING-3718 as well. * integration test added as well > Sling Models: Add support for constructor dependency injection > -------------------------------------------------------------- > > Key: SLING-3716 > URL: https://issues.apache.org/jira/browse/SLING-3716 > Project: Sling > Issue Type: Improvement > Components: Extensions > Reporter: Stefan Seifert > Priority: Minor > Attachments: 140701_SLING-3716_slingmodes_constructorinjection.patch > > > Currently, Sling Models only supports dependency injection for fields (or > interface getter methods), but not for constructor arguments. This ticket is > for discussing what this constructor dependency injection should support, and > perhaps finally provide a patch to implement it. > This is somewhat related to SLING-3715 for class-based dependency injection, > because this would come in especially handy for constructor injection. -- This message was sent by Atlassian JIRA (v6.2#6252)