> If the worst comes to the worst, you may need to run the NLP module 
> and the Clojure code in separate JVMs using some form of IPC to exchange 
data. 

That is what I'm looking at right now, though I've also been told that I 
absolutely must have this working by tomorrow morning, so I'm a little 
frustrated with the amount of work I face tonight. Also, a month ago we 
were doing IPC and then we gave up on that redesigned the NLP to work as a 
library we could embed inside of the Clojure app, but now it looks like we 
need to reverse that decision. 

For me, it's been a good reminder that "easy Java interop" is true up to a 
point, but then very not true for certain kinds of ambitions. 



On Monday, June 29, 2015 at 7:18:07 PM UTC-4, Fluid Dynamics wrote:
>
> On Monday, June 29, 2015 at 6:38:40 PM UTC-4, Gary Verhaegen wrote:
>>
>> Assuming there is a version that works for both dependencies, you can 
>> manually fix it in your own project.clj. Your own direct dependencies 
>> will override transitive ones. 
>>
>> Otherwise, as far as I can tell, you're stuck. Maybe you can try using 
>> an older clj-time?
>>
>
> In theory, JodaTime 2.6 should not have any API-breaking changes since 
> 2.1, or they should have called it 3.something.
>
> So, if you can force the NLP module to use JodaTime 2.6 it *should* work.
>
> If that fails, it may still be possible if you can force the two versions 
> of JodaTime to load in separate classloaders. I haven't the foggiest how 
> that might actually be achieved. Actually I'm somewhat surprised that the 
> Java NLP component and clj-time are not *already* loading in different 
> classloaders, the former in the standard Java classloader and the latter in 
> Clojure's DynamicClassLoader. Two different versions of the same Java 
> package or Clojure namespace can *usually* coexist peacefully in different 
> classloaders, though, modulo native dependencies or centralized filesystem 
> stuff (e.g. a single .foo file in the user directory that they both modify, 
> stepping on each others' toes, and they can't be overridden to look for 
> separate files to each keep their own version).
>
> If the worst comes to the worst, you may need to run the NLP module and 
> the Clojure code in separate JVMs using some form of IPC to exchange data. 
> Then deployment, startup, and shutdown become more complicated and 
> annoying, and communication across the divide much less efficient (like 
> kernel mode switching, IPC means carting data across address space 
> boundaries), so ideally there'd be a clean internal boundary between the 
> NLP-parts and the rest that has relatively little traffic crossing it. 
> You'd then end up with a kind of NLP daemon and an application that had a 
> dependency on it.
>

-- 
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
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to