Error formatting macro: pagetree: java.lang.NullPointerException

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


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

Work in Progress

Clojure-contrib modularization

Work-in-progress on the "modules" branch.  BUILD IS SUCCESSFUL.

Each major namespace group gets its own module.

Every module depends on a "parent" module that specifies which version of Clojure to depend on, and configuration for compile/test/build.

Library authors can override this on a per-module basis.

The "complete" module includes all other modules as dependencies and can build a clojure-contrib "uberjar."

A full build takes over seven minutes on an 8-core, but individual modules can be built independently.

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.



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