Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
What is Java binary compatibility?
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Architecture-based runtime software evolution
Proceedings of the 20th international conference on Software engineering
SOFA/DCUP: Architecture for Component Trading and Dynamic Updating
CDS '98 Proceedings of the International Conference on Configurable Distributed Systems
Rich Client Programming: Plugging into the NetBeans(TM) Platform
Rich Client Programming: Plugging into the NetBeans(TM) Platform
Support for distributed adaptations in aspect-oriented middleware
Proceedings of the 7th international conference on Aspect-oriented software development
Dynamic update of Java applications—balancing change flexibility vs programming transparency
Journal of Software Maintenance and Evolution: Research and Practice - Special Issue on the 12th Conference on Software Maintenance and Reengineering (CSMR 2008)
Module Reload through Dynamic Update - The Case of NetBeans
CSMR '08 Proceedings of the 2008 12th European Conference on Software Maintenance and Reengineering
Towards a dynamic-update-enabled JVM
Proceedings of the Workshop on AOP and Meta-Data for Software Evolution
Dynamic code evolution for Java
Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Static analysis for dynamic updates
Proceedings of the 9th Central & Eastern European Software Engineering Conference in Russia
Hi-index | 0.00 |
Module systems have been acknowledged as software development and maintenance boosters. Likewise, dynamic updating, meaning the ability to evolve a software system at runtime, not only has the potential to increase developer productivity, but also to significantly reduce production system downtime. However, widely adopted module systems for Java inherently enforces assumptions that make dynamic updates of modules difficult, even with the recent prominent advances in dynamic updating systems for Java applications. In this paper, we explain why it requires much more than just updating the set of Java classes that constitute a patched version of a running module. In addition, we provide a set of well-defined integration points to which developers of dynamic updating systems need to hook into in order to support correct dynamic updating in a module system. We show how our dynamic updating system has been integrated with the NetBeans Platform with a modest integration effort, thus showcasing that practical state-preserving runtime updates of modules can be achieved in a modern module system setup.