{"id":"https://openalex.org/W2101008993","doi":"https://doi.org/10.1145/2500828.2500834","title":"An adapter-aware, non-intrusive dependency injection framework for Java","display_name":"An adapter-aware, non-intrusive dependency injection framework for Java","publication_year":2013,"publication_date":"2013-09-03","ids":{"openalex":"https://openalex.org/W2101008993","doi":"https://doi.org/10.1145/2500828.2500834","mag":"2101008993"},"language":"en","primary_location":{"id":"doi:10.1145/2500828.2500834","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2500828.2500834","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"https://ris.utwente.nl/ws/files/5456199/p57-roemers.pdf","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5055098215","display_name":"Arnout Roemers","orcid":null},"institutions":[{"id":"https://openalex.org/I94624287","display_name":"University of Twente","ror":"https://ror.org/006hf6230","country_code":"NL","type":"education","lineage":["https://openalex.org/I94624287"]}],"countries":["NL"],"is_corresponding":true,"raw_author_name":"Arnout Roemers","raw_affiliation_strings":["University of Twente, AE Enschede, the Netherlands"],"affiliations":[{"raw_affiliation_string":"University of Twente, AE Enschede, the Netherlands","institution_ids":["https://openalex.org/I94624287"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5070632108","display_name":"Kardelen Hatun","orcid":null},"institutions":[{"id":"https://openalex.org/I94624287","display_name":"University of Twente","ror":"https://ror.org/006hf6230","country_code":"NL","type":"education","lineage":["https://openalex.org/I94624287"]}],"countries":["NL"],"is_corresponding":false,"raw_author_name":"Kardelen Hatun","raw_affiliation_strings":["University of Twente, AE Enschede, the Netherlands"],"affiliations":[{"raw_affiliation_string":"University of Twente, AE Enschede, the Netherlands","institution_ids":["https://openalex.org/I94624287"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5088940435","display_name":"Christoph Bockisch","orcid":"https://orcid.org/0009-0006-9905-4798"},"institutions":[{"id":"https://openalex.org/I94624287","display_name":"University of Twente","ror":"https://ror.org/006hf6230","country_code":"NL","type":"education","lineage":["https://openalex.org/I94624287"]}],"countries":["NL"],"is_corresponding":false,"raw_author_name":"Christoph Bockisch","raw_affiliation_strings":["University of Twente, AE Enschede, the Netherlands"],"affiliations":[{"raw_affiliation_string":"University of Twente, AE Enschede, the Netherlands","institution_ids":["https://openalex.org/I94624287"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5055098215"],"corresponding_institution_ids":["https://openalex.org/I94624287"],"apc_list":null,"apc_paid":null,"fwci":0.9955,"has_fulltext":true,"cited_by_count":2,"citation_normalized_percentile":{"value":0.83270614,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":94,"max":96},"biblio":{"volume":null,"issue":null,"first_page":"57","last_page":"66"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.9991000294685364,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.9991000294685364,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9987999796867371,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T12127","display_name":"Software System Performance and Reliability","score":0.9954000115394592,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/adapter","display_name":"Adapter (computing)","score":0.8786780834197998},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8426187038421631},{"id":"https://openalex.org/keywords/reusability","display_name":"Reusability","score":0.6478974223136902},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.6422784328460693},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.596523106098175},{"id":"https://openalex.org/keywords/object-oriented-programming","display_name":"Object-oriented programming","score":0.5370757579803467},{"id":"https://openalex.org/keywords/dependency","display_name":"Dependency (UML)","score":0.5240055322647095},{"id":"https://openalex.org/keywords/source-code","display_name":"Source code","score":0.46171829104423523},{"id":"https://openalex.org/keywords/component-based-software-engineering","display_name":"Component-based software engineering","score":0.4584055244922638},{"id":"https://openalex.org/keywords/software-engineering","display_name":"Software engineering","score":0.4417012333869934},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.4206530451774597},{"id":"https://openalex.org/keywords/component","display_name":"Component (thermodynamics)","score":0.41552895307540894},{"id":"https://openalex.org/keywords/implementation","display_name":"Implementation","score":0.41169098019599915},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.3922588527202606},{"id":"https://openalex.org/keywords/embedded-system","display_name":"Embedded system","score":0.35252606868743896},{"id":"https://openalex.org/keywords/software-development","display_name":"Software development","score":0.33969759941101074}],"concepts":[{"id":"https://openalex.org/C177284502","wikidata":"https://www.wikidata.org/wiki/Q1005390","display_name":"Adapter (computing)","level":2,"score":0.8786780834197998},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8426187038421631},{"id":"https://openalex.org/C137981799","wikidata":"https://www.wikidata.org/wiki/Q1369184","display_name":"Reusability","level":3,"score":0.6478974223136902},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6422784328460693},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.596523106098175},{"id":"https://openalex.org/C73752529","wikidata":"https://www.wikidata.org/wiki/Q79872","display_name":"Object-oriented programming","level":2,"score":0.5370757579803467},{"id":"https://openalex.org/C19768560","wikidata":"https://www.wikidata.org/wiki/Q320727","display_name":"Dependency (UML)","level":2,"score":0.5240055322647095},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.46171829104423523},{"id":"https://openalex.org/C174683762","wikidata":"https://www.wikidata.org/wiki/Q609588","display_name":"Component-based software engineering","level":4,"score":0.4584055244922638},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.4417012333869934},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.4206530451774597},{"id":"https://openalex.org/C168167062","wikidata":"https://www.wikidata.org/wiki/Q1117970","display_name":"Component (thermodynamics)","level":2,"score":0.41552895307540894},{"id":"https://openalex.org/C26713055","wikidata":"https://www.wikidata.org/wiki/Q245962","display_name":"Implementation","level":2,"score":0.41169098019599915},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.3922588527202606},{"id":"https://openalex.org/C149635348","wikidata":"https://www.wikidata.org/wiki/Q193040","display_name":"Embedded system","level":1,"score":0.35252606868743896},{"id":"https://openalex.org/C529173508","wikidata":"https://www.wikidata.org/wiki/Q638608","display_name":"Software development","level":3,"score":0.33969759941101074},{"id":"https://openalex.org/C97355855","wikidata":"https://www.wikidata.org/wiki/Q11473","display_name":"Thermodynamics","level":1,"score":0.0},{"id":"https://openalex.org/C121332964","wikidata":"https://www.wikidata.org/wiki/Q413","display_name":"Physics","level":0,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/2500828.2500834","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2500828.2500834","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools","raw_type":"proceedings-article"},{"id":"pmh:oai:ris.utwente.nl:publications/42cb323a-6ba4-48c9-9d50-5f328620aaf9","is_oa":true,"landing_page_url":"https://research.utwente.nl/en/publications/42cb323a-6ba4-48c9-9d50-5f328620aaf9","pdf_url":"https://ris.utwente.nl/ws/files/5456199/p57-roemers.pdf","source":{"id":"https://openalex.org/S4406922991","display_name":"University of Twente Research Information","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Roemers, A, Hatun, K & Bockisch, C 2013, An adapter-aware, non-intrusive dependency injection framework for Java. in Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools, PPPJ 2013. Association for Computing Machinery, New York, pp. 57-66. https://doi.org/10.1145/2500828.2500834","raw_type":"info:eu-repo/semantics/publishedVersion"}],"best_oa_location":{"id":"pmh:oai:ris.utwente.nl:publications/42cb323a-6ba4-48c9-9d50-5f328620aaf9","is_oa":true,"landing_page_url":"https://research.utwente.nl/en/publications/42cb323a-6ba4-48c9-9d50-5f328620aaf9","pdf_url":"https://ris.utwente.nl/ws/files/5456199/p57-roemers.pdf","source":{"id":"https://openalex.org/S4406922991","display_name":"University of Twente Research Information","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Roemers, A, Hatun, K & Bockisch, C 2013, An adapter-aware, non-intrusive dependency injection framework for Java. in Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools, PPPJ 2013. Association for Computing Machinery, New York, pp. 57-66. https://doi.org/10.1145/2500828.2500834","raw_type":"info:eu-repo/semantics/publishedVersion"},"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2101008993.pdf","grobid_xml":"https://content.openalex.org/works/W2101008993.grobid-xml"},"referenced_works_count":13,"referenced_works":["https://openalex.org/W1513136098","https://openalex.org/W1527793496","https://openalex.org/W1565356708","https://openalex.org/W1572739102","https://openalex.org/W1610570299","https://openalex.org/W1644882639","https://openalex.org/W1649645444","https://openalex.org/W1989479444","https://openalex.org/W2037570007","https://openalex.org/W2155570292","https://openalex.org/W2158051324","https://openalex.org/W2915240685","https://openalex.org/W3004896733"],"related_works":["https://openalex.org/W1970188613","https://openalex.org/W2532906578","https://openalex.org/W2109345116","https://openalex.org/W2000176032","https://openalex.org/W2143177054","https://openalex.org/W1955249085","https://openalex.org/W2104879423","https://openalex.org/W2246298251","https://openalex.org/W1584019797","https://openalex.org/W2405741245"],"abstract_inverted_index":{"In":[0],"strongly":[1],"typed":[2],"Object-Oriented":[3],"Programming":[4],"languages,":[5],"it":[6],"is":[7,31,44,62,117,126,140],"common":[8],"to":[9,20,26,50,84,102,138],"encounter":[10],"type":[11,29],"incompatibilities":[12,30],"between":[13,105],"separately":[14],"developed":[15],"software":[16,42],"components":[17,43,94,106],"one":[18],"desires":[19],"compose.":[21],"Using":[22],"the":[23,37,41,66,91,109,129,134,145],"Adapter":[24,130],"pattern":[25],"overcome":[27],"these":[28],"only":[32],"an":[33,97],"option":[34],"if":[35],"changing":[36],"source":[38],"code":[39,113],"of":[40,58,68,74,93,147],"feasible,":[45],"as":[46],"references":[47],"from":[48],"objects":[49,52],"other":[51],"are":[53,76],"oftentimes":[54],"hard-coded.":[55],"The":[56],"concept":[57],"Dependency":[59],"Injection":[60],"(DI)":[61],"aimed":[63],"at":[64],"mitigating":[65],"issue":[67],"hard-coded":[69],"references.":[70],"However,":[71],"current":[72],"implementations":[73],"DI":[75],"intrusive":[77,112],"in":[78],"ways":[79],"that":[80,125],"component":[81],"developers":[82],"need":[83,110],"foresee":[85],"future":[86],"use":[87],"cases.":[88],"To":[89],"increase":[90],"reusability":[92],"we":[95],"propose":[96],"approach":[98,116],"and":[99],"a":[100,120],"tool":[101],"configure":[103],"interoperations":[104],"externally,":[107],"without":[108],"for":[111],"changes.":[114],"This":[115],"based":[118],"on":[119],"new":[121],"dependency":[122,148],"injection":[123,149],"mechanism":[124],"combined":[127],"with":[128],"pattern.":[131],"If":[132],"necessary,":[133],"most":[135],"appropriate":[136],"adapter":[137],"inject":[139],"selected":[141],"automatically,":[142],"thereby":[143],"making":[144],"specifications":[146],"very":[150],"flexible.":[151]},"counts_by_year":[{"year":2014,"cited_by_count":2}],"updated_date":"2026-03-17T17:19:04.345684","created_date":"2025-10-10T00:00:00"}
