Skip to end of metadata
Go to start of metadata

Rationale

Java deployments increasingly rely on modularity services such as OSGi. In addition, packages such as NetKernel etc would like languages to behave as services. Clojure should behave well in such environments.

Plan

  • Fix misfeatures that are broken in the face of modularity
    • add-classpath
    • all-ns?
  • Add features to make Clojure a better language-as-service

Issues

  • No standards for modularity of dynamically-generated code
    • Most systems focus on the dynamic loading of statically compiled code

Current Status of Java Modularization

Java 7 / Jigsaw

Java 7 will NOT include JSR 294 (superpackages) or JSR 277 (Java Module System).

Project Jigsaw is an OpenJDK endeavor. It is "focused narrowly upon the goal of modularizing the JDK," and "will not be an official part of the Java SE 7 Platform Specification.

Java EE 6

Clojure works fine in Glassfish 3 (a Java EE 6 application server). Dynamic loading, eval, everything works.

OSGi

  • Equinox (Eclipse OSGi implementation)
    • Clojure does NOT work out-of-the-box
      • Cannot locate core.clj
    • clojure.osgi project
      • Currently depends of features of Equinox outside of the OSGi spec
        • This could be fixed
      • Used by Counterclockwise (Clojure Eclipse plugin)
Labels: