Something is still off here. Leiningen compiles the IFoo interface first but compilation of Foo still cannot find IFoo. I've included the (:requires) statement as described. (:gen-class) is part of the ns declaration. Any other ideas?
--- src/proj/IFoo.clj --- (ns proj.IFoo (:import ...) (:gen-interface :methods ...)) --- src/proj/Foo.clj --- (ns proj.Foo (:require proj.IFoo) (:import ...) (:gen-class :implements [proj.IFoo] ...)) Thanks, -Nick On Fri, Apr 2, 2010 at 6:35 AM, Chas Emerick <cemer...@snowtide.com> wrote: > Compilation is driven by namespace load-order, so just ensure that you add > a (:require com.foo.IFoo) to the ns declaration where you define the Foo > class. > > I seem to remember suggesting that Clojure should implicitly attempt to > require namespaces corresponding to classnames being implemented or extended > in the interop forms, but that didn't get very far... > > - Chas > > On Apr 2, 2010, at 1:22 AM, Nick Dimiduk wrote: > > Heya! > > I'm implementing a simple class hierarchy in clojure to be exposed to > external java code using AOT compilation. The library requires I > declare an interface extending a base-interface from the library and > then provide an implementation class. For example: > > interface IFoo extends ILibInterface {...} > > class Foo implements IFoo {...} > > I have everything implemented in clojure using gen-interface and gen- > class and it's rather nice - at the repl. The problem is at compile > time - how can I order the compilation such that IFoo is found by Foo? > Is there some trick to my usage of :namespaces in the leiningen project > declaration? > > Thanks! > -Nick > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com<clojure%2bunsubscr...@googlegroups.com> > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en To unsubscribe, reply using "remove me" as the subject.