I can't seem to figure out why java can't find the clojure class in
the following example,
where f is a clojure function....
(defn cascading-function [f]
(proxy [BaseOperation Function] [(Integer. 1) (Fields. (into-array
Comparable ["line"]))]
(operate [flowProcess functionCall]
(let [clojureData (. (Tuple. (. (. functionCall getArguments)
getTuple)) getString 1)
result (hadoop-function f clojureData)
resultTuple (Tuple.)]
(. resultTuple add result)
(. (. functionCall getOutputCollector) add resultTuple)))))
cascading function returns a java object that implements Function
(from the cascading framework) and extends BaseOperation, and it
implements the operate method.
The error that I am seeing is a ClassNotFoundException for whatever I
pass in as f.
For some more context, I am trying to wrap the cascading framework in
clojure, (www.cascading.org)
The internal "driver"/framework code is in Java, and I am using
clojure to wrap the user hooks for defining operations and making
jobs. This wrapping mainly involves tedious creation of objects, one
of the objects is this Function object, and I am trying to proxy
Function and make it close over (closure) clojure functions so that I
can define the actual logic in a nice (clojure) way.
(If i implement the Function interface as an object in Java,
everything seems to run fine)
Java (framework code) -> Clojure (wrapper over making jobs) -> Java
(an operation, implements Function interface)
(defn cascading-function []
(FunctionSample.))
what I want is
Java (framework code) -> Clojure (wrapper over making jobs) -> Clojure
(operation)
but the final part is not working so well.
cascading-function is called by clojure code which wraps/builds up
objects for use by Java/cascading framework.
Does anyone know what I might be doing wrong?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---