Extending eclipse RCP with dynamic update of active plug-ins

While the dynamic linking mechanism of modern programming languages, such as Java, allows loading of classes dynamically, it does not allow class reloading. Hence, dynamic linking facilitates development of component platforms, such as eclipse RCP, which supports dynamic loading but not dynamic updates of components, since this requires reloading. This paper presents an approach that enhances eclipse RCP with dynamic updating capability. It overcomes the version barrier imposed by Java's dynamic linking, while maintaining the security and type safety of Java. The feasibility of the approach validates through a modified implementation of the eclipse RCP run-time system. Analysis indicates that our approach imposes a moderate performance penalty relative to the unmodified platform.

[1]  Deepak Gupta,et al.  A Formal Framework for On-line Software Version Change , 1996, IEEE Trans. Software Eng..

[2]  Yolande Berbers,et al.  DeepCompare: static analysis for runtime software evolution , 2005 .

[3]  Vinny Cahill,et al.  Supporting Unanticipated Dynamic Adaptation of Application Behaviour , 2002, ECOOP.

[4]  Henry Lieberman,et al.  Using prototypical objects to implement shared behavior in object-oriented systems , 1986, OOPLSA '86.

[5]  Eric Jul,et al.  A framework for evolutionary, dynamically updatable, component-based systems , 2004, 24th International Conference on Distributed Computing Systems Workshops, 2004. Proceedings..

[6]  Earl T. Barr,et al.  Runtime Support for Type-Safe Dynamic Java Classes , 2000, ECOOP.

[7]  Alessandro Orso,et al.  A technique for dynamic updating of Java software , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[8]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[9]  Günter Kniesel Type-Safe Delegation for Run-Time Component Adaptation , 1999, ECOOP.

[10]  Henry Lieberman,et al.  Using Prototypical Objects to Implement Shared Behavior in Object Oriented Systems , 1986, OOPSLA.

[11]  Bo Nørregaard Jørgensen Integration of Independently Developed Components through Aliased Multi-Object Type Widening , 2004, J. Object Technol..

[12]  Yolande Berbers,et al.  Component State Mapping for Runtime Evolution , 2005, PLC.

[13]  Als-Nscort Eclipse Platform Technical Overview , 2003 .

[14]  Shigeru Chiba,et al.  Negligent Class Loaders for Software Evolution , 2004, RAM-SE.

[15]  Shigeru Chiba,et al.  Loosely-Separated "Sister" Namespaces in Java , 2005, ECOOP.

[16]  Scott Nettles,et al.  Dynamic software updating , 2001, PLDI '01.

[17]  Shigeru Chiba,et al.  Load-Time Structural Reflection in Java , 2000, ECOOP.

[18]  Theo D'Hondt,et al.  Pitfalls in Unanticipated Dynamic Software Evolution , 2005, RAM-SE.

[19]  Elisa Bertino,et al.  Objects with Multiple Most Specific Classes , 1995, ECOOP.

[20]  James Gosling,et al.  The Java Language Specification, 3rd Edition , 2005 .

[21]  Dominic Duggan,et al.  Type-based hot swapping of running modules , 2005, Acta Informatica.

[22]  Manuel Serrano,et al.  Wide Classes , 1999, ECOOP.

[23]  Sophia Drossopoulou,et al.  Fickle : Dynamic Object Re-classification , 2001, ECOOP.

[24]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .