Skip to main content

Aspect-Oriented Programming Beyond Dependency Injection

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 3586))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Boner, J., Vasseur, A.: AspectWerkz 1.0 (2002), http://aspectwerkz.codehaus.org/

  2. Chiba, S.: Load-time structural reflection in Java. In: Bertino, E. (ed.) ECOOP 2000. LNCS, vol. 1850, pp. 313–336. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  3. 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)

    Chapter  Google Scholar 

  4. 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)

    Chapter  Google Scholar 

  5. 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)

    Chapter  Google Scholar 

  6. Fowler, M.: Inversion of control containers and the dependency injection pattern (2004), http://www.martinfowler.com/articles/injection.html

  7. 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)

    Chapter  Google Scholar 

  8. 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)

    Google Scholar 

  9. JBoss Inc.: JBoss AOP 1.0.0 final (2004), http://www.jboss.org/

  10. Johnson, R., Hoeller, J.: Expert One-on-One J2EE Development without EJB. Wrox (2004)

    Google Scholar 

  11. Kiczales, G., des Rivières, J., Bobrow, D.G.: The Art of the Metaobject Protocol. The MIT Press, Cambridge (1991)

    Google Scholar 

  12. 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)

    Chapter  Google Scholar 

  13. 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)

    Google Scholar 

  14. 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)

    Chapter  Google Scholar 

  15. 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)

    Chapter  Google Scholar 

  16. 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)

    Chapter  Google Scholar 

  17. Sakurai, K., Masuhara, H., Ubayashi, N., Matsuura, S., Kimoya, S.: Association aspects. In: Aspect-Oriented Software Development, pp. 16–25 (2004)

    Google Scholar 

  18. Smith, B.C.: Reflection and semantics in Lisp. In: Proc. of ACM Symp. on Principles of Programming Languages, pp. 23–35 (1984)

    Google Scholar 

  19. 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)

    Chapter  Google Scholar 

  20. 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)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics