Skip to main content

Loosely-Separated “Sister” Namespaces in Java

  • Conference paper
ECOOP 2005 - Object-Oriented Programming (ECOOP 2005)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 3586))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)

    Article  Google Scholar 

  2. 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)

    Chapter  Google Scholar 

  3. Alpern, B., Cocchi, A., Grove, D.: Dynamic type checking in jalapeño. In: Java Virtual Machine Research and Technology Symposium (2001)

    Google Scholar 

  4. Chambers, C.: Predicate classes. In: Nierstrasz, O. (ed.) ECOOP 1993. LNCS, vol. 707, pp. 268–296. Springer, Heidelberg (1993)

    Chapter  Google Scholar 

  5. Clamen, S.M.: Type evolution and instance adaptation. Technical Report CMU-CS-92–133, Carnegie Mellon University School of Computer Science, Pittsburgh, PA (1992)

    Google Scholar 

  6. 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)

    Chapter  Google Scholar 

  7. 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)

    Google Scholar 

  8. 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)

    Chapter  Google Scholar 

  9. Englander, R.: Developing Java Bean. O’Reilly and Associates, Inc, Sebastopol (1997)

    Google Scholar 

  10. Gong, L., Ellison, G., Dageforde, M.: Inside Java2TM Platform Security: Architecture, API Design, and Implementation, 2nd edn. Addison-Wesley, Boston (2003)

    Google Scholar 

  11. Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification, 2nd edn. Addison-Wesley, Boston (2000)

    Google Scholar 

  12. 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)

    Chapter  Google Scholar 

  13. 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)

    Google Scholar 

  14. 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)

    Chapter  Google Scholar 

  15. 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)

    Google Scholar 

  16. 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

  17. Kay, M.: SAXON The XSLT and XQuery Processor (2001), available at, http://saxon.sourceforge.net/

  18. 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)

    Chapter  Google Scholar 

  19. Lindsey, B.: XT (2002), available at, http://www.blnz.com/xt/

  20. 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)

    Chapter  Google Scholar 

  21. 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)

    Chapter  Google Scholar 

  22. Matena, V., Stearns, B.: Applying Enterprise JavaBeansTM: Component-Based Development for the J2EETM Platform. Pearson Education, London (2001)

    Google Scholar 

  23. Metastaff, Ltd.: dom4j: the flexible xml framework for Java(2001), available at, http://www.dom4j.org/

  24. Nathan, A.: NET and COM: The Complete Interoperability Guide. Sams (2002)

    Google Scholar 

  25. OMG: The Common Object Request Broker: Architecture and Specification. Revision 2.0. OMG Document (1995)

    Google Scholar 

  26. Saraswat, V.: Java is not type-safe (1997)

    Google Scholar 

  27. 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)

    Chapter  Google Scholar 

  28. Serrano, M.: Wide classes. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol. 1628, pp. 391–415. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  29. Shavor, S., D’Anjou, J., Fairbrother, S., Kehn, D., Kellerman, J., McCarthy, P.: The Java Developer’s Guide to Eclipse. Addison-Wesley, Reading (2003)

    Google Scholar 

  30. 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)

    Google Scholar 

  31. Spec - The Standard Performance Evaluation Corporation: SPECjvm98 (1998)

    Google Scholar 

  32. Sun Microsystems: The Java HotSpot Performance Engine Architecture (1999), available at, http://java.sun.com/products/hotspot/whitepaper.html

  33. Sun Microsystems: JavaTM Platform Debugger Architectuer (2001), available at, http://java.sun.com/j2se/1.4/docs/guide/jpda

  34. The Apache XML Project: Crimson Java Parser (2000), available at, http://xml.apache.org/crimson

  35. The Apache XML Project: Xalan Java XSLT Processor (2002), available at, http://xml.apache.org/xalan-j

  36. The Apache XML Project: Xerces2 Java Parser (2002), available at, http://xml.apache.org/xerces2-j

  37. The Eclipse Foundation: Eclipse.org, homepage (2001), http://www.eclipse.org/

  38. The JDOMTM Projec: JDOM (2000), available at, http://www.jdom.org/

  39. The Werken Company: jaxen: universal java xpath engine (2001), available at, http://jaxen.org/

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics