Abstract
Most modern programming systems such as Java allow us to link independently developed components together dynamically. This makes it possible to develop and deploy software on a per component basis. However, a number of Java developers have reported a problem, ironically called the version barrier, imposed by the strict separation of namespaces. The version barrier prohibits one component from passing an instance to another component if each component contains that class type. This paper introduces a novel concept for Java namespaces, called sister namespaces, to address this problem. Sister namespaces can relax the version barrier between components. The main purpose of this paper is to provide a mechanism for relaxing the version barrier, while still allowing type-safe instance accesses between components with negligible performance penalties in regular execution.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Alpern, B., Attanasio, C.R., Barton, J.J., Burke, M.G., Cheng, P., Choi, J.D., Cocchi, A., Fink, S.J., Grove, D., Hind, M., Hummel, S.F., Lieber, D., Litvinov, V., Mergen, M.F., Ngo, T., Russell, J.R., Sarkar, V., Serrano, M.J., Shepherd, J.C., Smith, S.E., Sreedhar, V.C., Srinivasan, H., Whaley, J.: The Jalapeno virtual machine. IBM System Journal 39, 211–238 (2000)
Alpern, B., Cocchi, A., Fink, S.J., Grove, D., Lieber, D.: Efficient implementation of java interfaces: Invokeinterface considered harmless. In: Proceedings of the 2001 ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 2001), Tampa, Florida, USA. Number 11 in SIGPLAN Notices, vol. 36, pp. 108–124. ACM, New York (2001)
Alpern, B., Cocchi, A., Grove, D.: Dynamic type checking in jalapeño. In: Java Virtual Machine Research and Technology Symposium (2001)
Chambers, C.: Predicate classes. In: Nierstrasz, O. (ed.) ECOOP 1993. LNCS, vol. 707, pp. 268–296. Springer, Heidelberg (1993)
Clamen, S.M.: Type evolution and instance adaptation. Technical Report CMU-CS-92–133, Carnegie Mellon University School of Computer Science, Pittsburgh, PA (1992)
Drossopoulou, S., Damiani, F., Dezani-Ciancaglini, M., Giannini, P.: Fickle: Dynamic object re-classification. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 130–149. Springer, Heidelberg (2001)
Drossopoulou, S., Wragg, D., Eisenbach, S.: What is java binary compatibility? In: Proceedings of the 1998 ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages & Applications (OOPSLA 1998), Vancouver, British Columbia, Canada, pp. 341–361 (1998)
Duggan, D.: Type-based hot swapping of running modules. In: Proceedings of the Sixth ACM SIGPLAN International Conference on Functional Programming (ICFP 2001), Florence, Italy. SIGPLAN Notices 36, vol. 10, pp. 62–73. ACM, New York (2001)
Englander, R.: Developing Java Bean. O’Reilly and Associates, Inc, Sebastopol (1997)
Gong, L., Ellison, G., Dageforde, M.: Inside Java2TM Platform Security: Architecture, API Design, and Implementation, 2nd edn. Addison-Wesley, Boston (2003)
Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification, 2nd edn. Addison-Wesley, Boston (2000)
Halsted, K.L., Roberts, J.H.J.: Eclipse help system: an open source user assistance offering. In: Proceedings of the 20st annual international conference on Documentation, SIGDOC 2002, Toronto, Ontario, Canada, pp. 49–59. ACM, New York (2002)
Hjálmtyśson, G., Gray, R.: Dynamic C++ Classes: A lightweight mechanism to update code in a running program. In: Proceedings of the USENIX Annual Technical Conference, New Orleans, Louisiana, USENIX (1998)
Hnětynka, P., Tůma, P.: Fighting class name clashes in java component systems. In: Böszörményi, L., Schojer, P. (eds.) JMLC 2003. LNCS, vol. 2789, pp. 106–109. Springer, Heidelberg (2003)
Ishizaki, K., Kawahito, M., Yasue, T., Komatsu, H., Nakatani, T.: A study of devirtualization techniques for a java\(^{\mbox{tm}}\) just-in-time compiler. In: Proceedings of the 2000 ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages & Applications (OOPSLA 2000), Minneapolis, Minnesota, USA. Number 10 in SIGPLAN Notices, vol. 35, pp. 294–310. ACM, New York (2001)
JUnit FAQ: Why do I get an error (ClassCastException or LinkageError) using the GUI TestRunners? (2002), available at, http://junit.sourceforge.net/doc/faq/faq.htm
Kay, M.: SAXON The XSLT and XQuery Processor (2001), available at, http://saxon.sourceforge.net/
Liang, S., Bracha, G.: Dynamic Class Loading in the Java Virtual Machine. In: Proceedings of OOPSLA 1998, Proceedings of the 1998 ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages & Applications, Vancouver, British Columbia, Canada. Number 10 in SIGPLAN Notices, vol. 33, pp. 36–44. ACM, New York (1998)
Lindsey, B.: XT (2002), available at, http://www.blnz.com/xt/
Malabarba, S., Pandey, R., Gragg, J., Barr, E., Barnes, J.F.: Runtime Support for Type-Safe Dynamic Java Classes. In: Bertino, E. (ed.) ECOOP 2000. LNCS, vol. 1850, pp. 337–361. Springer, Heidelberg (2000)
Marc Fleury, F.R.: The JBoss Extensible Server. In: Endler, M., Schmidt, D.C. (eds.) Middleware 2003. LNCS, vol. 2672, pp. 344–373. Springer, Heidelberg (2003)
Matena, V., Stearns, B.: Applying Enterprise JavaBeansTM: Component-Based Development for the J2EETM Platform. Pearson Education, London (2001)
Metastaff, Ltd.: dom4j: the flexible xml framework for Java(2001), available at, http://www.dom4j.org/
Nathan, A.: NET and COM: The Complete Interoperability Guide. Sams (2002)
OMG: The Common Object Request Broker: Architecture and Specification. Revision 2.0. OMG Document (1995)
Saraswat, V.: Java is not type-safe (1997)
Sato, Y., Chiba, S., Tatsubori, M.: A Selective, Just-In-Time Aspect Weaver. In: Pfenning, F., Smaragdakis, Y. (eds.) GPCE 2003. LNCS, vol. 2830, pp. 189–208. Springer, Heidelberg (2003)
Serrano, M.: Wide classes. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol. 1628, pp. 391–415. Springer, Heidelberg (1999)
Shavor, S., D’Anjou, J., Fairbrother, S., Kehn, D., Kellerman, J., McCarthy, P.: The Java Developer’s Guide to Eclipse. Addison-Wesley, Reading (2003)
Skarra, A.H., Zdonik, S.B.: The management of changing types in an object-oriented database. In: Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 1986), Portland, Oregon. SIGPLAN Notices 21, vol. 11, pp. 483–495 (1986)
Spec - The Standard Performance Evaluation Corporation: SPECjvm98 (1998)
Sun Microsystems: The Java HotSpot Performance Engine Architecture (1999), available at, http://java.sun.com/products/hotspot/whitepaper.html
Sun Microsystems: JavaTM Platform Debugger Architectuer (2001), available at, http://java.sun.com/j2se/1.4/docs/guide/jpda
The Apache XML Project: Crimson Java Parser (2000), available at, http://xml.apache.org/crimson
The Apache XML Project: Xalan Java XSLT Processor (2002), available at, http://xml.apache.org/xalan-j
The Apache XML Project: Xerces2 Java Parser (2002), available at, http://xml.apache.org/xerces2-j
The Eclipse Foundation: Eclipse.org, homepage (2001), http://www.eclipse.org/
The JDOMTM Projec: JDOM (2000), available at, http://www.jdom.org/
The Werken Company: jaxen: universal java xpath engine (2001), available at, http://jaxen.org/
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Sato, Y., Chiba, S. (2005). Loosely-Separated “Sister” Namespaces in Java. In: Black, A.P. (eds) ECOOP 2005 - Object-Oriented Programming. ECOOP 2005. Lecture Notes in Computer Science, vol 3586. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11531142_3
Download citation
DOI: https://doi.org/10.1007/11531142_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-27992-1
Online ISBN: 978-3-540-31725-8
eBook Packages: Computer ScienceComputer Science (R0)