skip to main content
research-article

Applications of enhanced dynamic code evolution for Java in GUI development and dynamic aspect-oriented programming

Published:10 October 2010Publication History
Skip Abstract Section

Abstract

While dynamic code evolution in object-oriented systems is an important feature supported by dynamic languages, there is currently only limited support for dynamic code evolution in high-performance, state-of-the-art runtime systems for statically typed languages, such as the Java Virtual Machine. In this tool demonstration, we present the Dynamic Code Evolution VM, which is based on a recent version of Oracle's state-of-the-art Java HotSpot(TM) VM and allows unlimited changes to loaded classes at runtime. Based on the Dynamic Code Evolution VM, we developed an enhanced version of the Mantisse GUI builder (which is part of the NetBeans IDE) that allows adding GUI components without restarting the application under development. Furthermore, we redesigned the dynamic AOP framework HotWave to take advantage of the enhanced dynamic code evolution capabilities. The new version, HotWave2, now supports most AspectJ constructs, including around() advice and static cross-cutting. We will demonstrate both the enhanced Mantisse GUI builder as well as HotWave2, weaving several aspects for dynamic analysis in sizable applications at runtime.

References

  1. }}J. Andersson and T. Ritzau. Dynamic code update in JDrums. In Workshop on Software Engineering for Wearable and Pervasive Computing, 2000.Google ScholarGoogle Scholar
  2. }}C. Bockisch, M. Haupt, M. Mezini, and K. Ostermann. Virtual machine support for dynamic join points. In AOSD '04: Proceedings of the 3rd international conference on Aspect-oriented software development, pages 83--92, New York, NY, USA, 2004. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. }}S. Chiba, Y. Sato, and M. Tatsubori. Using Hotswap for Implementing Dynamic AOP Systems. In Proceedings of the 1st Workshop on Advancing the State-of-the-Art in Run-time Inspection, 2003.Google ScholarGoogle Scholar
  4. }}M. Dmitriev. Safe Class and Data Evolution in Large and Long-Lived Java Applications. PhD thesis, University of Glasgow, 2001.Google ScholarGoogle Scholar
  5. }}M. Dmitriev. Towards flexible and safe technology for runtime evolution of Java language applications. In Proceedings of the Workshop on Engineering Complex Object-Oriented Systems for Evolution, 2001.Google ScholarGoogle Scholar
  6. }}Eclipse Foundation. Eclipse, 2010. http://www.eclipse.org/.Google ScholarGoogle Scholar
  7. }}A. Goldberg and D. Robson. Smalltalk-80: the language and its implementation. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. }}E. Hilsdale and J. Hugunin. Advice weaving in AspectJ. In AOSD '04: Proceedings of the 3rd International Conference on Aspect-Oriented Software Development, pages 26--35, New York, NY, USA, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. }}Institute for System Software, Johannes Kepler University Linz. Dynamic Code Evolution VM, 2010. http://ssw.jku.at/dcevm/.Google ScholarGoogle Scholar
  10. }}JBoss. Open source middleware software. http://labs.jboss.com/jbossaop/, 2010.Google ScholarGoogle Scholar
  11. }}S. Malabarba, R. Pandey, J. Gragg, E. Barr, and J. F. Barnes. Runtime support for type-safe dynamic Java classes. In Proceedings of the European Conference on Object-Oriented Programming, pages 337--361. Springer-Verlag, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. }}P. Moret, W. Binder, D. Ansaloni, and A. Villazon. Exploring Large Profiles with Calling Context Ring Charts. In WOSP/SIPEW 2010: Proceedings of the First Joint International Conference on Performance Engineering, pages 63--68. ACM Press, Jan. 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. }}P. Moret, W. Binder, A. Villazon, D. Ansaloni, and A. Heydarnoori. Visualizing and Exploring Profiles with Calling Context Ring Charts. Software: Practice and Experience, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. }}A. Nicoara, G. Alonso, and T. Roscoe. Controlled, Systematic, and Efficient Code Replacement for Running Java Programs. In Eurosys '08: Proceedings of the 3rd ACM SIGOPS/EuroSys European Conference on Computer Systems 2008, pages 233¿246, New York, NY, USA, 2008. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. }}Oracle Corporation. Da Vinci Machine Project, 2010. http://openjdk.java.net/projects/mlvm/.Google ScholarGoogle Scholar
  16. }}Oracle Corporation. Java Debug Wire Protocol (JDWP), 2010. http://java.sun.com/javase/6/docs/technotes/guides/jpda/jdwp-spec.html.Google ScholarGoogle Scholar
  17. }}Oracle Corporation. Java Virtual Machine Tool Interface (JVM TI), 2010. http://java.sun.com/javase/6/docs/technotes/guides/jvmti/index.html.Google ScholarGoogle Scholar
  18. }}Oracle Corporation. NetBeans, 2010. http://netbeans.org/.Google ScholarGoogle Scholar
  19. }}G. L. Steele, Jr. Common LISP: the Language. Digital Press, second edition, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. }}S. Subramanian, M. Hicks, and K. S. McKinley. Dynamic software up- dates: a VM-centric approach. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 1--12. ACM Press, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. }}W. Vanderperren, D. Suvee, B. Verheecke, M. A. Cibran, and V. Jonckers. Adaptive Programming in JAsCo. In AOSD '05: Proceedings of the 4th international conference on Aspect-oriented software development, pages 75¿86, New York, NY, USA, 2005. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. }}A. Vasseur. Dynamic AOP and Runtime Weaving for Java: How does AspectWerkz address it? In Dynamic Aspects Workshop (DAW04), Lancaster, England, Mar. 2004.Google ScholarGoogle Scholar
  23. }}A. Villazon, D. Ansaloni, W. Binder, and P. Moret. HotWave: Creating Adaptive Tools with Dynamic Aspect-Oriented Programming in Java. In GPCE '09: Proceedings of the Eighth International Conference on Generative Programming and Component Engineering. ACM, Oct. 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. }}A. Villazon, W. Binder, D. Ansaloni, and P. Moret. Advanced Runtime Adaptation for Java. In GPCE '09: Proceedings of the Eighth International Conference on Generative Programming and Component Engineering, pages 85--94. ACM, Oct. 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. }}T. Würthinger, W. Binder, D. Ansaloni, P. Moret, and H. Mössenböck. Improving aspect-oriented programming with dynamic code evolution in an enhanced Java virtual machine. In RAM-SE '10: Proceedings of the 7th ECOOP Workshop on Reflection, AOP and Meta-Data for Software Evolution. ACM, June 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. }}T. Würthinger, L. Stadler, and C. Wimmer. Dynamic code evolution for Java. In Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java (PPPJ'10), 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Applications of enhanced dynamic code evolution for Java in GUI development and dynamic aspect-oriented programming

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!