sethtrain / raven-clj

A Clojure interface to Sentry
84 stars 29 forks source link

Update clj-http depency for Clojure 1.7 #8

Closed belucid closed 8 years ago

belucid commented 9 years ago

Under Clojure 1.7-alpha5 (final 1.7 release is soon) raven-clj causes the following warning:

WARNING: update already refers to: #'clojure.core/update in namespace: clj-http.client, being replaced by: #'clj-http.client/update

It's because of the dependency on clj-http 0.6.4 (very old). This has been fixed in clj-http for some time now.

Thanks!

schmir commented 9 years ago

This completely breaks 'line repl' for me (even with clojure 1.6, see backtrace below). lein deps show this:

...
[raven-clj "1.3.1"] -> [clj-http "0.6.4"] -> [org.apache.httpcomponents/httpcore "4.2.3"]
 overrides
[leiningen "2.5.1"] -> [clj-http "0.9.2" :exclusions [crouton]] -> [org.apache.httpcomponents/httpmime "4.3.3" :exclusions [org.clojure/clojure]] -> [org.apache.httpcomponents/httpclient "4.3.3"] -> [org.apache.httpcomponents/httpcore "4.3.2"]
 and
[leiningen "2.5.1"] -> [leiningen-core "2.5.1"] -> [org.apache.maven.wagon/wagon-http "2.7"] -> [org.apache.httpcomponents/httpclient "4.3.5"] -> [org.apache.httpcomponents/httpcore "4.3.2"]
 and
[leiningen "2.5.1"] -> [clj-http "0.9.2" :exclusions [crouton]] -> [org.apache.httpcomponents/httpclient "4.3.3" :exclusions [org.clojure/clojure]] -> [org.apache.httpcomponents/httpcore "4.3.2"]
 and
[leiningen "2.5.1"] -> [leiningen-core "2.5.1"] -> [org.apache.maven.wagon/wagon-http "2.7"] -> [org.apache.httpcomponents/httpcore "4.3.2"]
 and
[leiningen "2.5.1"] -> [clj-http "0.9.2" :exclusions [crouton]] -> [org.apache.httpcomponents/httpcore "4.3.2" :exclusions [org.clojure/clojure]]
...
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/conn/HttpClientConnectionManager, compiling:(cemerick/pomegranate/aether.clj:42:54)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6651)
    at clojure.lang.Compiler.analyze(Compiler.java:6445)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6632)
    at clojure.lang.Compiler.analyze(Compiler.java:6445)
    at clojure.lang.Compiler.analyze(Compiler.java:6406)
    at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:5782)
    at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5217)
    at clojure.lang.Compiler$FnExpr.parse(Compiler.java:3846)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6642)
    at clojure.lang.Compiler.analyze(Compiler.java:6445)
    at clojure.lang.Compiler.analyze(Compiler.java:6406)
    at clojure.lang.Compiler$MapExpr.parse(Compiler.java:2981)
    at clojure.lang.Compiler.analyze(Compiler.java:6453)
    at clojure.lang.Compiler.analyze(Compiler.java:6406)
    at clojure.lang.Compiler$InvokeExpr.parse(Compiler.java:3719)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6646)
    at clojure.lang.Compiler.analyze(Compiler.java:6445)
    at clojure.lang.Compiler.access$100(Compiler.java:38)
    at clojure.lang.Compiler$DefExpr$Parser.parse(Compiler.java:538)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6644)
    at clojure.lang.Compiler.analyze(Compiler.java:6445)
    at clojure.lang.Compiler.analyze(Compiler.java:6406)
    at clojure.lang.Compiler.eval(Compiler.java:6707)
    at clojure.lang.Compiler.load(Compiler.java:7130)
    at clojure.lang.RT.loadResourceScript(RT.java:370)
    at clojure.lang.RT.loadResourceScript(RT.java:361)
    at clojure.lang.RT.load(RT.java:440)
    at clojure.lang.RT.load(RT.java:411)
    at clojure.core$load$fn__5066.invoke(core.clj:5641)
    at clojure.core$load.doInvoke(core.clj:5640)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5446)
    at clojure.core$load_lib$fn__5015.invoke(core.clj:5486)
    at clojure.core$load_lib.doInvoke(core.clj:5485)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:626)
    at clojure.core$load_libs.doInvoke(core.clj:5524)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:626)
    at clojure.core$require.doInvoke(core.clj:5607)
    at clojure.lang.RestFn.invoke(RestFn.java:436)
    at cemerick.pomegranate$eval6716$loading__4958__auto____6717.invoke(pomegranate.clj:1)
    at cemerick.pomegranate$eval6716.invoke(pomegranate.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6703)
    at clojure.lang.Compiler.eval(Compiler.java:6692)
    at clojure.lang.Compiler.load(Compiler.java:7130)
    at clojure.lang.RT.loadResourceScript(RT.java:370)
    at clojure.lang.RT.loadResourceScript(RT.java:361)
    at clojure.lang.RT.load(RT.java:440)
    at clojure.lang.RT.load(RT.java:411)
    at clojure.core$load$fn__5066.invoke(core.clj:5641)
    at clojure.core$load.doInvoke(core.clj:5640)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5446)
    at clojure.core$load_lib$fn__5015.invoke(core.clj:5486)
    at clojure.core$load_lib.doInvoke(core.clj:5485)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:626)
    at clojure.core$load_libs.doInvoke(core.clj:5524)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:626)
    at clojure.core$require.doInvoke(core.clj:5607)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at vinyasa.pull$eval6710$loading__4958__auto____6711.invoke(pull.clj:1)
    at vinyasa.pull$eval6710.invoke(pull.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6703)
    at clojure.lang.Compiler.eval(Compiler.java:6692)
    at clojure.lang.Compiler.load(Compiler.java:7130)
    at clojure.lang.RT.loadResourceScript(RT.java:370)
    at clojure.lang.RT.loadResourceScript(RT.java:361)
    at clojure.lang.RT.load(RT.java:440)
    at clojure.lang.RT.load(RT.java:411)
    at clojure.core$load$fn__5066.invoke(core.clj:5641)
    at clojure.core$load.doInvoke(core.clj:5640)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at clojure.core$load_one.invoke(core.clj:5446)
    at clojure.core$load_lib$fn__5015.invoke(core.clj:5486)
    at clojure.core$load_lib.doInvoke(core.clj:5485)
    at clojure.lang.RestFn.applyTo(RestFn.java:142)
    at clojure.core$apply.invoke(core.clj:626)
    at clojure.core$load_libs.doInvoke(core.clj:5524)
    at clojure.lang.RestFn.applyTo(RestFn.java:137)
    at clojure.core$apply.invoke(core.clj:626)
    at clojure.core$require.doInvoke(core.clj:5607)
    at clojure.lang.RestFn.invoke(RestFn.java:408)
    at vinyasa.inject$inject_row_entry.invoke(inject.clj:56)
    at vinyasa.inject$inject_row$fn__48.invoke(inject.clj:82)
    at clojure.core$map$fn__4245.invoke(core.clj:2557)
    at clojure.lang.LazySeq.sval(LazySeq.java:40)
    at clojure.lang.LazySeq.seq(LazySeq.java:49)
    at clojure.lang.RT.seq(RT.java:484)
    at clojure.core$seq.invoke(core.clj:133)
    at clojure.core$apply.invoke(core.clj:624)
    at clojure.core$mapcat.doInvoke(core.clj:2586)
    at clojure.lang.RestFn.invoke(RestFn.java:423)
    at vinyasa.inject$inject_row.invoke(inject.clj:82)
    at clojure.core$map$fn__4245.invoke(core.clj:2557)
    at clojure.lang.LazySeq.sval(LazySeq.java:40)
    at clojure.lang.LazySeq.seq(LazySeq.java:49)
    at clojure.lang.RT.seq(RT.java:484)
    at clojure.core$seq.invoke(core.clj:133)
    at clojure.core$apply.invoke(core.clj:624)
    at clojure.core$mapcat.doInvoke(core.clj:2586)
    at clojure.lang.RestFn.invoke(RestFn.java:423)
    at vinyasa.inject$in.doInvoke(inject.clj:95)
    at clojure.lang.RestFn.invoke(RestFn.java:636)
    at clojure.lang.Var.invoke(Var.java:430)
    at clojure.lang.AFn.applyToHelper(AFn.java:195)
    at clojure.lang.Var.applyTo(Var.java:700)
    at clojure.lang.Compiler.macroexpand1(Compiler.java:6552)
    at clojure.lang.Compiler.macroexpand(Compiler.java:6613)
    at clojure.lang.Compiler.eval(Compiler.java:6687)
    at clojure.lang.Compiler.eval(Compiler.java:6692)
    at clojure.lang.Compiler.load(Compiler.java:7130)
    at clojure.lang.Compiler.loadFile(Compiler.java:7086)
    at clojure.main$load_script.invoke(main.clj:274)
    at clojure.main$init_opt.invoke(main.clj:279)
    at clojure.main$initialize.invoke(main.clj:307)
    at clojure.main$null_opt.invoke(main.clj:342)
    at clojure.main$main.doInvoke(main.clj:420)
    at clojure.lang.RestFn.invoke(RestFn.java:421)
    at clojure.lang.Var.invoke(Var.java:383)
    at clojure.lang.AFn.applyToHelper(AFn.java:156)
    at clojure.lang.Var.applyTo(Var.java:700)
    at clojure.main.main(main.java:37)
Caused by: java.lang.NoClassDefFoundError: org/apache/http/conn/HttpClientConnectionManager
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at clojure.lang.RT.classForName(RT.java:2065)
    at clojure.lang.Compiler$HostExpr.maybeClass(Compiler.java:978)
    at clojure.lang.Compiler$HostExpr.access$400(Compiler.java:756)
    at clojure.lang.Compiler$NewExpr$Parser.parse(Compiler.java:2540)
    at clojure.lang.Compiler.analyzeSeq(Compiler.java:6644)
    ... 124 more
Caused by: java.lang.ClassNotFoundException: org.apache.http.conn.HttpClientConnectionManager
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 131 more
REPL server launch timed out.
martinklepsch commented 8 years ago

fixed in [raven-clj "1.3.2"]

martinklepsch commented 8 years ago

I'm considering completely swapping clj-http with aleph if you have thoughts/objections on that let me know.

schmir commented 8 years ago

Isn't that a much "heavier" dependency?

martinklepsch commented 8 years ago

Maybe, I'm not sure how Netty and the Apache HTTP Components libraries compare. Here are the dependency graphs of both project, probably isn't very informative though.

[aleph "0.4.2-alpha3"]
├── [byte-streams "0.2.2"]
│   ├── [clj-tuple "0.2.2"]
│   └── [primitive-math "0.1.5"]
├── [io.aleph/dirigiste "0.1.3"]
├── [io.netty/netty-all "4.1.0.CR7"]
├── [manifold "0.1.4"]
│   └── [riddley "0.1.12"]
├── [org.clojure/tools.logging "0.3.1" :exclusions [[org.clojure/clojure]]]
└── [potemkin "0.4.3"]
[clj-http "3.0.1"]
├── [commons-codec "1.10" :exclusions [[org.clojure/clojure]]]
├── [commons-io "2.4" :exclusions [[org.clojure/clojure]]]
├── [org.apache.httpcomponents/httpclient "4.5.2" :exclusions [[org.clojure/clojure]]]
│   └── [commons-logging "1.2"]
├── [org.apache.httpcomponents/httpcore "4.4.4" :exclusions [[org.clojure/clojure]]]
├── [org.apache.httpcomponents/httpmime "4.5.2" :exclusions [[org.clojure/clojure]]]
├── [potemkin "0.4.3" :exclusions [[org.clojure/clojure]]]
│   ├── [clj-tuple "0.2.2"]
│   └── [riddley "0.1.12"]
└── [slingshot "0.12.2" :exclusions [[org.clojure/clojure]]]