Component Software: Beyond Object-Oriented Programming
Component Software: Beyond Object-Oriented Programming
An easy-to-use toolkit for efficient Java bytecode translators
Proceedings of the 2nd international conference on Generative programming and component engineering
Java Reflection in Action (In Action series)
Java Reflection in Action (In Action series)
Verification of evolving software via component substitutability analysis
Formal Methods in System Design
Enhanced OSGi Bundle Updates to Prevent Runtime Exceptions
SEAA '08 Proceedings of the 2008 34th Euromicro Conference Software Engineering and Advanced Applications
Testing-based Process for Evaluating Component Replaceability
Electronic Notes in Theoretical Computer Science (ENTCS)
Automated Versioning in OSGi: A Mechanism for Component Software Consistency Guarantee
SEAA '09 Proceedings of the 2009 35th Euromicro Conference on Software Engineering and Advanced Applications
Hi-index | 0.00 |
The Java type system is strictly checked by both the compiler and the runtime bytecode interpreter of the JVM. These mechanisms together guarantee appropriate usage of class instances. Using modern component systems can however circumvent these static checks, because incompatible versions of classes can be bound together during component installation or update. Such problematic bindings result in ClassCastException or NoSuchMethodException runtime errors. In this paper we describe a representation of Java language types suitable for checking component compatibility. The presented approach applies various bytecode handling techniques to reconstruct a representation of the Java types contained in a component implementation, using different sources of class data. The representation is then used during build- and run-time type system verifications with the aim to prevent these kinds of errors. We have successfully applied this approach to prevent OSGi component incompatibilities.