Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
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 2010 Publication History

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.
[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.
[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.
[4]
}}M. Dmitriev. Safe Class and Data Evolution in Large and Long-Lived Java Applications. PhD thesis, University of Glasgow, 2001.
[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.
[6]
}}Eclipse Foundation. Eclipse, 2010. http://www.eclipse.org/.
[7]
}}A. Goldberg and D. Robson. Smalltalk-80: the language and its implementation. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1983.
[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.
[9]
}}Institute for System Software, Johannes Kepler University Linz. Dynamic Code Evolution VM, 2010. http://ssw.jku.at/dcevm/.
[10]
}}JBoss. Open source middleware software. http://labs.jboss.com/jbossaop/, 2010.
[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.
[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.
[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.
[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.
[15]
}}Oracle Corporation. Da Vinci Machine Project, 2010. http://openjdk.java.net/projects/mlvm/.
[16]
}}Oracle Corporation. Java Debug Wire Protocol (JDWP), 2010. http://java.sun.com/javase/6/docs/technotes/guides/jpda/jdwp-spec.html.
[17]
}}Oracle Corporation. Java Virtual Machine Tool Interface (JVM TI), 2010. http://java.sun.com/javase/6/docs/technotes/guides/jvmti/index.html.
[18]
}}Oracle Corporation. NetBeans, 2010. http://netbeans.org/.
[19]
}}G. L. Steele, Jr. Common LISP: the Language. Digital Press, second edition, 1990.
[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.
[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.
[22]
}}A. Vasseur. Dynamic AOP and Runtime Weaving for Java: How does AspectWerkz address it? In Dynamic Aspects Workshop (DAW04), Lancaster, England, Mar. 2004.
[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.
[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.
[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.
[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.

Index Terms

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

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 46, Issue 2
    GPCE '10
    Febuary 2011
    185 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1942788
    Issue’s Table of Contents
    • cover image ACM Conferences
      GPCE '10: Proceedings of the ninth international conference on Generative programming and component engineering
      October 2010
      198 pages
      ISBN:9781450301541
      DOI:10.1145/1868294
      • General Chair:
      • Eelco Visser,
      • Program Chair:
      • Jaakko Järvi
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 10 October 2010
    Published in SIGPLAN Volume 46, Issue 2

    Check for updates

    Author Tags

    1. code hotswapping
    2. dynamic aspect-oriented programming
    3. dynamic code evolution
    4. dynamic software updates
    5. java virtual machine
    6. runtime weaving

    Qualifiers

    • Research-article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)2
    • Downloads (Last 6 weeks)1
    Reflects downloads up to 18 Feb 2025

    Other Metrics

    Citations

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media