Abstract
Dependency injection is a hot topic among industrial developers using component frameworks. This paper first mentions that dependency injection and aspect-oriented programming share the same goal, which is to reduce dependency among components for better reus- ability. However, existing aspect-oriented programming languages/ frameworks, in particular, AspectJ, are not perfectly suitable for expressing inter-component dependency with a simple and straightforward representation. Their limited kinds of implicit construction of aspect instances (or implementations) cannot fully express inter-component dependency. This paper points out this fact and proposes our aspect-oriented programming system named GluonJ to address this problem. GluonJ allows developers to explicitly construct and associate an aspect implementation with aspect targets.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Boner, J., Vasseur, A.: AspectWerkz 1.0 (2002), http://aspectwerkz.codehaus.org/
Chiba, S.: Load-time structural reflection in Java. In: Bertino, E. (ed.) ECOOP 2000. LNCS, vol. 1850, pp. 313–336. Springer, Heidelberg (2000)
Chiba, S., Masuda, T.: Designing an extensible distributed language with a meta-level architecture. In: Nierstrasz, O. (ed.) ECOOP 1993. LNCS, vol. 707, pp. 482–501. Springer, Heidelberg (1993)
Cohen, T., Gil, J.Y.: AspectJ2EE = AOP + J2EE : Towards an aspect based, programmable and extensible middleware framework. In: Odersky, M. (ed.) ECOOP 2004. LNCS, vol. 3086, pp. 219–243. Springer, Heidelberg (2004)
Eichberg, M., Mezini, M.: Alice: Modularization of middleware using aspect-oriented programming. In: Gschwind, T., Mascolo, C. (eds.) SEM 2004. LNCS, vol. 3437, pp. 47–63. Springer, Heidelberg (2005)
Fowler, M.: Inversion of control containers and the dependency injection pattern (2004), http://www.martinfowler.com/articles/injection.html
Golm, M., Kleinöder, J.: Jumping to the meta level, behavioral reflection can be fast and flexible. In: Cointe, P. (ed.) Reflection 1999. LNCS, vol. 1616, pp. 22–39. Springer, Heidelberg (1999)
Hannemann, J., Kiczales, G.: Design pattern implementation in java and aspectj. In: Proc. of ACM Conf. on Object-Oriented Programming Systems, Languages, and Applications, pp. 161–173 (2002)
JBoss Inc.: JBoss AOP 1.0.0 final (2004), http://www.jboss.org/
Johnson, R., Hoeller, J.: Expert One-on-One J2EE Development without EJB. Wrox (2004)
Kiczales, G., des Rivières, J., Bobrow, D.G.: The Art of the Metaobject Protocol. The MIT Press, Cambridge (1991)
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–353. Springer, Heidelberg (2001)
Lieberherr, K., Lorenz, D., Mezini, M.: Programming with Aspectual Components. Technical Report NU-CCS-99-01, College of Computer Science, Northeastern University, Boston, MA (1999)
Mezini, M., Ostermann, K.: Conquering aspects with caesar. In: Proc. of Int’l Conf. on Aspect-Oriented Software Development (AOSD 2003), pp. 90–99. ACM Press, New York (2003)
Orleans, D.: Incremental programming with extensible decisions. In: AOSD 2002: Proceedings of the 1st international conference on Aspect-oriented software development, pp. 56–64. ACM Press, New York (2002)
Pawlak, R., Seinturier, L., Duchien, L., Florin, G.: Jac: A flexible solution for aspect-oriented programming in java. In: Yonezawa, A., Matsuoka, S. (eds.) Reflection 2001. LNCS, vol. 2192, pp. 1–24. Springer, Heidelberg (2001)
Sakurai, K., Masuhara, H., Ubayashi, N., Matsuura, S., Kimoya, S.: Association aspects. In: Aspect-Oriented Software Development, pp. 16–25 (2004)
Smith, B.C.: Reflection and semantics in Lisp. In: Proc. of ACM Symp. on Principles of Programming Languages, pp. 23–35 (1984)
Suvée, D., Vanderperren, W., Jonckers, V.: Jasco: An aspect-oriented approach tailored for component based software development. In: Proc. of Int’l Conf. on Aspect-Oriented Software Development (AOSD 2003), pp. 21–29. ACM Press, New York (2003)
Welch, I., Stroud, R.: From dalang to kava — the evolution of a reflective java extension. In: Cointe, P. (ed.) Reflection 1999. LNCS, vol. 1616, pp. 2–21. Springer, Heidelberg (1999)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Chiba, S., Ishikawa, R. (2005). Aspect-Oriented Programming Beyond Dependency Injection. In: Black, A.P. (eds) ECOOP 2005 - Object-Oriented Programming. ECOOP 2005. Lecture Notes in Computer Science, vol 3586. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11531142_6
Download citation
DOI: https://doi.org/10.1007/11531142_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-27992-1
Online ISBN: 978-3-540-31725-8
eBook Packages: Computer ScienceComputer Science (R0)