JPPF is a Java framework to perform distributed execution of computation jobs.
In my experiment to use JPPF (
http://www.jppf.org) in Clojure I noticed a class loading problem.
A JPPFTask implemenation created via 'proxy could not be loaded by the JPPF framework.
As a result I got the following ClassNotFoundException: "Could not load class 'clj_jppf_example.core.proxy$org.jppf.server.protocol.JPPFTask$0'".
When AOT-compiling the corresponding namespace there is no problem.
But AOT-compilation seems to be a strong restriction for distributed computation in pure Clojure projects.
I have an example project for demonstration purposes on github:
https://github.com/guv/clj-jppf-exampleLaurent from JPPF told me that the problem is a missing cache for the byte[] representation of dynamically generated classes.
He suggested a change to Clojure's DynamicClassLoader that is adding an in-memory cache.
Most likely, an in-memory cache is not suitable in general and that change should be extended to an on-disk file cache in a temporary directory.
I hope we can discuss and realize a solution to use JPPF in Clojure without the need for AOT compilation.
Sincerely,
Gunnar