An adapter-aware, non-intrusive dependency injection framework for Java

Arnout Roemers, Kardelen Hatun, Christoph Bockisch

    Research output: Chapter in Book/Report/Conference proceedingConference contributionAcademicpeer-review

    1 Citation (Scopus)
    87 Downloads (Pure)

    Abstract

    In strongly typed Object-Oriented Programming languages, it is common to encounter type incompatibilities between separately developed software components one desires to compose. Using the Adapter pattern to overcome these type incompatibilities is only an option if changing the source code of the software components is feasible, as references from objects to other objects are oftentimes hard-coded. The concept of Dependency Injection (DI) is aimed at mitigating the issue of hard-coded references. However, current implementations of DI are intrusive in ways that component developers need to foresee future use cases. To increase the reusability of components we propose an approach and a tool to configure interoperations between components externally, without the need for intrusive code changes. This approach is based on a new dependency injection mechanism that is combined with the Adapter pattern. If necessary, the most appropriate adapter to inject is selected automatically, thereby making the specifications of dependency injection very flexible.
    Original languageUndefined
    Title of host publicationProceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools, PPPJ 2013
    Place of PublicationNew York
    PublisherAssociation for Computing Machinery (ACM)
    Pages57-66
    Number of pages10
    ISBN (Print)978-1-4503-2111-2
    DOIs
    Publication statusPublished - Sep 2013
    EventInternational Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools, PPPJ 2013 - Stuttgart, Germany
    Duration: 11 Sep 201313 Sep 2013

    Publication series

    Name
    PublisherACM

    Conference

    ConferenceInternational Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools, PPPJ 2013
    Period11/09/1313/09/13
    Other11-13 September 2013

    Keywords

    • EWI-24442
    • CR-D.3.3
    • adapter pattern
    • METIS-302699
    • reusability
    • IR-89581
    • Dependency injection
    • Software Composition

    Cite this