Programming in MODULA-2 (3rd corrected ed.)
Programming in MODULA-2 (3rd corrected ed.)
Programming in Ada95
Units: cool modules for HOT languages
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Dynamic class loading in the Java virtual machine
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Modular object-oriented programming with units and mixins
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
MultiJava: modular open classes and symmetric multiple dispatch for Java
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A study of devirtualization techniques for a Java Just-In-Time compiler
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Jiazzi: new-age components for old-fasioned Java
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Java Virtual Machine Specification
Java Virtual Machine Specification
The Java Language Specification
The Java Language Specification
The Definition of Standard ML
True Modules for Java-like Languages
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Pluggable verification modules: an extensible protection mechanism for the JVM
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Classbox/J: controlling the scope of change in Java
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A formal framework for component deployment
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
The java module system: core design and semantic definition
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Proceedings of the 2008 ACM symposium on Applied computing
R-OSGi: distributed applications through software modularization
Proceedings of the ACM/IFIP/USENIX 2007 International Conference on Middleware
KOTEK: Clustering Of The Enterprise Code
Proceedings of the 2005 conference on Software Engineering: Evolution and Emerging Technologies
Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
Isolating untrusted software extensions by custom scoping rules
Computer Languages, Systems and Structures
R-OSGi: distributed applications through software modularization
MIDDLEWARE2007 Proceedings of the 8th ACM/IFIP/USENIX international conference on Middleware
Verification of object-oriented software: The KeY approach
Verification of object-oriented software: The KeY approach
Modules as objects in newspeak
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
The road to feature modularity?
Proceedings of the 15th International Software Product Line Conference, Volume 2
Virtualization of service gateways in multi-provider environments
CBSE'06 Proceedings of the 9th international conference on Component-Based Software Engineering
J2EE packaging, deployment and reconfiguration using a general component model
CD'05 Proceedings of the Third international working conference on Component Deployment
A type system for checking specialization of packages in object-oriented programming
Proceedings of the 27th Annual ACM Symposium on Applied Computing
Hi-index | 0.00 |
While Java provides many software engineering benefits, it lacks a coherent module system and instead provides only packages (which are primarily a name space mechanism) and classloaders (which are very low-level). As a result, large Java applications suffer from unexpected interactions between independent components, require complex CLASSPATH definitions, and are often extremely complex to install and maintain. We have implemented a module system for Java called MJ that is implemented with class loaders, but provides a much higher-level interface. High-level properties can be specified in a module definition and are enforced by the module system as new modules are loaded. To experimentally validate the ability of MJ to properly handle the complex module inter-relationships found in large Java server systems, we replaced the classloader mechanisms of Apache Tomcat 4.1.18 [27] with 30 MJ modules. The modified Tomcat is functionally identical to the original, but requires no CLASSPATH definitions, and will operate correctly even if user code loads a different version of a module used by Tomcat, such as the Xerces XML parser [31]. Furthermore, by making a small change to the Java core libraries enabled by MJ, we obtained a 30% performance improvement in a servlet microbenchmark.