Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Evolution of Object Behavior Using Context Relations
IEEE Transactions on Software Engineering
Generation of visitor components that implement program transformations
SSR '01 Proceedings of the 2001 symposium on Software reusability: putting software reuse in context
Java Virtual Machine Specification
Java Virtual Machine Specification
The paradoxical success of aspect-oriented programming
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Extracting queries by static analysis of transparent persistence
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Java Persistence with Hibernate
Java Persistence with Hibernate
On the relative completeness of bytecode analysis versus source code analysis
CC'08/ETAPS'08 Proceedings of the Joint European Conferences on Theory and Practice of Software 17th international conference on Compiler construction
Automatic prefetching by traversal profiling in object persistence architectures
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Object-relational mapping with SqueakSave
IWST '09 Proceedings of the International Workshop on Smalltalk Technologies
Self-configuring user interface components
Proceedings of the 1st international workshop on Semantic models for adaptive interactive systems
DENEB: a platform for the development and execution of interoperable dynamic Web processes
Concurrency and Computation: Practice & Experience
Hi-index | 0.00 |
Object-to-relational maps are nowadays routinely utilized in providing a persistency mechanism for object-oriented programs. We present how an object-to-relational mapper, such as Hibernate, provides transparent persistency to object-oriented programs. We then show how the existing approaches of eager and lazy fetching of associations are problematic under the face of program evolution. As an improvement, we present self-configuring components, which reflectively configure the persistency layer usage sites, thus leading to improved maintainability of software. A self-configuring component analyses the actual persistency layer usage pattern. Based on this information, the actual queries are configured. A general algorithm for retrieving the actual usage pattern is given. As an implementation mechanism, we discuss different approaches for the self-configuring components. Practical choices for implementation can vary between analysis of abstract syntax trees and Java byte-code analysis. Suitability of two byte-code analysis frameworks, namely BCEL and Soot are evaluated.