Skip to main content

From Dalang to Kava - the Evolution of a Reflective Java Extension

  • Conference paper
  • First Online:
Book cover Meta-Level Architectures and Reflection (Reflection 1999)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1616))

Included in the following conference series:

Abstract

Current implementations of reflective Java extensions typically either require access to source code, or require a modified Java platform. This makes them unsuitable for applying reflection to Commercial-off-the-Shelf (COTS) systems. In order to address this we developed a prototype Java extension Dalang based on class wrapping that worked with compiled code, and was implemented using a standard Java platform. In this paper we evaluate the class wrapper approach, and discuss issues that relate to the transparent application of reflection to COTS systems. This has informed our design of a new version of Dalang called Kava that implements a metaobject protocol through the application of standard byte code transformations. Kava leverages the capabilities of byte code transformation toolkits whilst presenting a high-level abstraction for specifying behavioural changes to Java components.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Benantar M., Blakley B., and Nadain A. J.: Approach to Object Security in Distributed SOM. IBM Systems Journal, Vol35, No.2, (1996).

    Google Scholar 

  2. Agesen, O., Freund S., and Mitchell J. C.: Adding Type Parameterization. In Proceedings of OOPSLA’97, Atlanta, Georgia (1997).

    Google Scholar 

  3. Bracha, Gilad: personal communication (1999).

    Google Scholar 

  4. Burns A., Mitchell S., and Wellings A. J.: Mopping up Exceptions. In ECOOP98 Workshop Reader: Workshop on Reflective Object-Oriented Programming and Systems (1998).

    Google Scholar 

  5. Chiba S and Masuda T.: Designing an Extensible Distributed Language with a Meta-Level Architecture. In proceedings of ECOOP93 (1993).

    Google Scholar 

  6. Chiba S.: A Metaobject Protocol for C++. In proceedings of ECOOP95 (1995).

    Google Scholar 

  7. Cohen, Geoff A., and Chase, Jeffery S.: Automatic Program Transformation with JOIE. Proceedings of USENIX Annual Technical Symposium (1998).

    Google Scholar 

  8. Czaijkowski, Grzegorz and von Eicken, Thorsten. JRes: A Resource Accounting Interface for Java. Proceedings of OOPSLA’98 (1998).

    Google Scholar 

  9. Danforth, S. H. and Forman, I. R.: Reflections on Metaclass Programming in SOM. In proceedings of OOPLSA’94 (1994).

    Google Scholar 

  10. Dony, Christophe: Exception Handling and Object Oriented Programming: towards a synthesis. Proceedings of ECOOP/OOPSLA’90. Ottawa, Canada (1990).

    Google Scholar 

  11. Fabre, J.-C. and Perennou, T.: FRIENDS: A Flexible Architecture for Implementing Fault Tolerant and Secure Distributed Applications. Proceedings of the Second European Dependable Computing Conference (EDCC-2) (1996).

    Google Scholar 

  12. Fabre, J.-C. and Nicomette, V. and Perennou, T., Stroud, R. J. and Wu, Z.: Implementing Fault-Tolerant Applications using Reflective Object-Oriented Programming. Proceedings 25th International Symposium on Fault-Tolerant Computing (FTCS-25), (1995).

    Google Scholar 

  13. Gamma E., Helm R., Johnson R., and Vlissides J.: Design Patterns: Elements of Reusable Object-Oriented Software. Reading, Mass.: Addison-Wesley, (1995).

    Google Scholar 

  14. Golm, M.: Design and Implementation of a Meta Architecture for Java. MSc Thesis (1997). University of Erlangen.

    Google Scholar 

  15. Guimares, Jos de Oliveira: Reflection for Statically Typed Languages. Proceedings of ECOOP98 (1998).

    Google Scholar 

  16. Holzle, U.: Integrating Independently-Developed Components in Object-Oriented Languages. Proceedings of ECOOP’93 (1993).

    Google Scholar 

  17. IBM. Bean Extender Documentation, version 2.0 (1997).

    Google Scholar 

  18. JavaSoft, Sun Microsystems, Inc.: Reflection, 1997. JDK 1.1 documentation, available athttp://java.sun.com/products/jdk/1.1/docs/guide/reflection.

    Google Scholar 

  19. Keller, R. and Holzle, U.: Binary Component Adaptation. Proceedings of ECOOP’98 (1998).

    Google Scholar 

  20. Kiczales G., des Rivieres J.: The Art of the Metaobject Protocol. MIT Press (1991).

    Google Scholar 

  21. Killijian Marc-Olivier, Fabre Jean-Charles, Ruiz-Garcia Juan-Carlos, and Chiba Shigeru: A Metaobject Protocol for Fault-Tolerant CORBA Applications. Proceedings of SRDS’98 (1998).

    Google Scholar 

  22. Liang, Sheng and Bracha, Gilad: Dynamic Class Loading in the Java(tm) Virtual Machine. Proceedings of OOPSLA’98 (1998).

    Google Scholar 

  23. Lieberman, Henry: Using Prototypical Objects to Implement Shared Behaviour in Object-Oriented Systems. Proceedings of OOPSLA’86 (1986).

    Google Scholar 

  24. Masuhara H., Matsuoka S., Watanabe T. and Yonezawa A.: Object-Oriented Concurrent Reflective Languages can be Implemented Efficiently. In proceedings of OOPSLA’92 (1992).

    Google Scholar 

  25. Matsuoka S., Ogawa H., Shimura K., Kimura, Y., and Takagi H.: OpenJIT-A Reflective Java JIT Compiler. Proceedings of Workshop on Reflective Programming in C++ and Java, UTCCP Report 98-4, Center for Computational Physics, University of Tsukuba, Japan ISSN 1344-3135, (1998).

    Google Scholar 

  26. McAffer, J.: Meta-Level Programming with CodA. In proceedings of ECOOP95 (1995).

    Google Scholar 

  27. Mulet, P. and Malenfant, J. and Cointe, P.: Towards a Methodology for Explicit Composition of MetaObjects. Proceedings of OOPSLA’95 (1995).

    Google Scholar 

  28. Oliva, Alexandre; Buzato, Luiz Eduardo; Garcia, Islene Calciolari: The Reflective Architecture of Guaran. Available from: http://www.dcc.unicamp.br/oliva.

    Google Scholar 

  29. Stroud, Robert: Transparency and Reflection in Distributed Systems. Operating Systems Review 27(2): 99–103 (1993)

    Article  Google Scholar 

  30. Stroud, R. J. and Z. Wu: Using Metaobject Protocols to Satisfy Non-Functional Requirements. Chapter 3 from “Advances in Object-Oriented Metalevel Architectures and Reflection” (1996), ed. Chris Zimmermann. Published by CRC Press.

    Google Scholar 

  31. Stroud, R.J. and Wu, Z.: Using Metaobject Protocols to Implement Atomic Data Types, Proceedings of ECOOP’95 (LNCS-925), Aarhus, Denmark, (1995).

    Google Scholar 

  32. Tatsubori, Michiaki and Chiba, Shigeru: Programming Support of Design Patterns with Compile-time Reflection. Proceedings of Workshop on Reflective Programming in C++ and Java, UTCCP Report 98-4, Center for Computational Physics, University of Tsukuba, Japan ISSN 1344-3135, (1998).

    Google Scholar 

  33. Van Oeyen Johan, Bijnens Stijn, Joosen Wouter, Robben Bert, Matthijs Frank and Verbaeten Pierre: A Flexible Object Support System as a Runtime for Concurrent Object-Oriented Languages. Chapter 13 from “Advances in Object-Oriented Metalevel Architectures and Reflection” (1996), ed. Chris Zimmermann. Published by CRC Press.

    Google Scholar 

  34. Welch, Ian and Stroud Robert: Adaptation of Connectors in Software Architectures. ECOOP’98 Workshop on Component-Oriented Programming. Extended abstract published in workshop reader, and full paper published by Turku Centre for Computer Science, (1998).

    Google Scholar 

  35. Welch, Ian and Stroud, Robert: Dalang-A Reflective Extension for Java. Computing Science Technical Report CS-TR-672, University of Newcastle upon Tyne, (1999).

    Google Scholar 

  36. Wu, Z. and Schwiderski, S.: Reflective Java-Making Java Even More Flexible. FTP: Architecture Projects Management Limited (apm@ansa.co.uk), Cambridge, UK (1997).

    Google Scholar 

  37. Zimmerman, Chris: Metalevels, MOPs and What all the Fuzz is All about. Chapter 1 from “Advances in Object-Oriented Metalevel Architectures and Reflection” (1996), ed. Chris Zimmermann. Published by CRC Press.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1999 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Welch, I., Stroud, R. (1999). From Dalang to Kava - the Evolution of a Reflective Java Extension. In: Cointe, P. (eds) Meta-Level Architectures and Reflection. Reflection 1999. Lecture Notes in Computer Science, vol 1616. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48443-4_2

Download citation

  • DOI: https://doi.org/10.1007/3-540-48443-4_2

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-66280-8

  • Online ISBN: 978-3-540-48443-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics