poweld / hipchat-scala Goto Github PK
View Code? Open in Web Editor NEWScala interface for the HipChat v2 API
License: MIT License
Scala interface for the HipChat v2 API
License: MIT License
While using this library with play 2.4.6 I get some problems:
2016-01-05 11:41:35,458 [error] Cannot invoke the action
java.lang.RuntimeException: java.lang.NoSuchMethodError: com.ning.http.client.AsyncHttpClientConfig$Builder.setRequestTimeoutInMs(I)Lcom/ning/http/client/AsyncHttpClientConfig$Builder;
at play.api.mvc.ActionBuilder$$anon$1.apply(Action.scala:498) ~[play_2.11-2.4.3.jar:2.4.3]
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:105) ~[play_2.11-2.4.3.jar:2.4.3]
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:105) ~[play_2.11-2.4.3.jar:2.4.3]
at play.utils.Threads$.withContextClassLoader(Threads.scala:21) ~[play_2.11-2.4.3.jar:2.4.3]
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4.apply(Action.scala:104) ~[play_2.11-2.4.3.jar:2.4.3]
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4.apply(Action.scala:103) ~[play_2.11-2.4.3.jar:2.4.3]
at scala.Option.map(Option.scala:146) ~[scala-library-2.11.7.jar:na]
at play.api.mvc.Action$$anonfun$apply$1.apply(Action.scala:103) ~[play_2.11-2.4.3.jar:2.4.3]
at play.api.mvc.Action$$anonfun$apply$1.apply(Action.scala:96) ~[play_2.11-2.4.3.jar:2.4.3]
at play.api.libs.iteratee.Iteratee$$anonfun$mapM$1.apply(Iteratee.scala:524) ~[play-iteratees_2.11-2.4.3.jar:2.4.3]
at play.api.libs.iteratee.Iteratee$$anonfun$mapM$1.apply(Iteratee.scala:524) ~[play-iteratees_2.11-2.4.3.jar:2.4.3]
at play.api.libs.iteratee.Iteratee$$anonfun$flatMapM$1.apply(Iteratee.scala:560) ~[play-iteratees_2.11-2.4.3.jar:2.4.3]
at play.api.libs.iteratee.Iteratee$$anonfun$flatMapM$1.apply(Iteratee.scala:560) ~[play-iteratees_2.11-2.4.3.jar:2.4.3]
at play.api.libs.iteratee.Iteratee$$anonfun$flatMap$1$$anonfun$apply$14.apply(Iteratee.scala:537) ~[play-iteratees_2.11-2.4.3.jar:2.4.3]
at play.api.libs.iteratee.Iteratee$$anonfun$flatMap$1$$anonfun$apply$14.apply(Iteratee.scala:537) ~[play-iteratees_2.11-2.4.3.jar:2.4.3]
at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24) ~[scala-library-2.11.7.jar:na]
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24) ~[scala-library-2.11.7.jar:na]
at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:40) [akka-actor_2.11-2.3.13.jar:na]
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:397) [akka-actor_2.11-2.3.13.jar:na]
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) [scala-library-2.11.7.jar:na]
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) [scala-library-2.11.7.jar:na]
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) [scala-library-2.11.7.jar:na]
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) [scala-library-2.11.7.jar:na]
Caused by: java.lang.NoSuchMethodError: com.ning.http.client.AsyncHttpClientConfig$Builder.setRequestTimeoutInMs(I)Lcom/ning/http/client/AsyncHttpClientConfig$Builder;
at dispatch.InternalDefaults$BasicDefaults$.builder(defaults.scala:45) ~[dispatch-core_2.11-0.11.2.jar:0.11.2]
at dispatch.InternalDefaults$.client(defaults.scala:32) ~[dispatch-core_2.11-0.11.2.jar:0.11.2]
at dispatch.Http$.<init>(execution.scala:30) ~[dispatch-core_2.11-0.11.2.jar:0.11.2]
at dispatch.Http$.<clinit>(execution.scala) ~[dispatch-core_2.11-0.11.2.jar:0.11.2]
at com.imadethatcow.hipchat.common.Common$.<init>(Common.scala:22) ~[hipchat-scala_2.11-0.2.jar:0.2]
at com.imadethatcow.hipchat.common.Common$.<clinit>(Common.scala) ~[hipchat-scala_2.11-0.2.jar:0.2]
at com.imadethatcow.hipchat.rooms.RoomNotifier.sendNotification(RoomNotifier.scala:21) ~[hipchat-scala_2.11-0.2.jar:0.2]
(...)
2016-01-05 11:41:35,473 [error] Caught exception
java.lang.RuntimeException: java.lang.NoSuchMethodError: com.ning.http.client.AsyncHttpClientConfig$Builder.setRequestTimeoutInMs(I)Lcom/ning/http/client/AsyncHttpClientConfig$Builder;
at play.api.mvc.ActionBuilder$$anon$1.apply(Action.scala:498) ~[play_2.11-2.4.3.jar:2.4.3]
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:105) ~[play_2.11-2.4.3.jar:2.4.3]
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:105) ~[play_2.11-2.4.3.jar:2.4.3]
at play.utils.Threads$.withContextClassLoader(Threads.scala:21) ~[play_2.11-2.4.3.jar:2.4.3]
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4.apply(Action.scala:104) ~[play_2.11-2.4.3.jar:2.4.3]
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4.apply(Action.scala:103) ~[play_2.11-2.4.3.jar:2.4.3]
at scala.Option.map(Option.scala:146) ~[scala-library-2.11.7.jar:na]
at play.api.mvc.Action$$anonfun$apply$1.apply(Action.scala:103) ~[play_2.11-2.4.3.jar:2.4.3]
at play.api.mvc.Action$$anonfun$apply$1.apply(Action.scala:96) ~[play_2.11-2.4.3.jar:2.4.3]
at play.api.libs.iteratee.Iteratee$$anonfun$mapM$1.apply(Iteratee.scala:524) ~[play-iteratees_2.11-2.4.3.jar:2.4.3]
at play.api.libs.iteratee.Iteratee$$anonfun$mapM$1.apply(Iteratee.scala:524) ~[play-iteratees_2.11-2.4.3.jar:2.4.3]
at play.api.libs.iteratee.Iteratee$$anonfun$flatMapM$1.apply(Iteratee.scala:560) ~[play-iteratees_2.11-2.4.3.jar:2.4.3]
at play.api.libs.iteratee.Iteratee$$anonfun$flatMapM$1.apply(Iteratee.scala:560) ~[play-iteratees_2.11-2.4.3.jar:2.4.3]
at play.api.libs.iteratee.Iteratee$$anonfun$flatMap$1$$anonfun$apply$14.apply(Iteratee.scala:537) ~[play-iteratees_2.11-2.4.3.jar:2.4.3]
at play.api.libs.iteratee.Iteratee$$anonfun$flatMap$1$$anonfun$apply$14.apply(Iteratee.scala:537) ~[play-iteratees_2.11-2.4.3.jar:2.4.3]
at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24) ~[scala-library-2.11.7.jar:na]
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24) ~[scala-library-2.11.7.jar:na]
at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:40) [akka-actor_2.11-2.3.13.jar:na]
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:397) [akka-actor_2.11-2.3.13.jar:na]
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) [scala-library-2.11.7.jar:na]
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) [scala-library-2.11.7.jar:na]
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) [scala-library-2.11.7.jar:na]
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) [scala-library-2.11.7.jar:na]
Caused by: java.lang.NoSuchMethodError: com.ning.http.client.AsyncHttpClientConfig$Builder.setRequestTimeoutInMs(I)Lcom/ning/http/client/AsyncHttpClientConfig$Builder;
at dispatch.InternalDefaults$BasicDefaults$.builder(defaults.scala:45) ~[dispatch-core_2.11-0.11.2.jar:0.11.2]
at dispatch.InternalDefaults$.client(defaults.scala:32) ~[dispatch-core_2.11-0.11.2.jar:0.11.2]
at dispatch.Http$.<init>(execution.scala:30) ~[dispatch-core_2.11-0.11.2.jar:0.11.2]
at dispatch.Http$.<clinit>(execution.scala) ~[dispatch-core_2.11-0.11.2.jar:0.11.2]
at com.imadethatcow.hipchat.common.Common$.<init>(Common.scala:22) ~[hipchat-scala_2.11-0.2.jar:0.2]
at com.imadethatcow.hipchat.common.Common$.<clinit>(Common.scala) ~[hipchat-scala_2.11-0.2.jar:0.2]
at com.imadethatcow.hipchat.rooms.RoomNotifier.sendNotification(RoomNotifier.scala:21) ~[hipchat-scala_2.11-0.2.jar:0.2]
(...)
I believe the problem is due to:
1.9.21
doesn't have com.ning.http.client.AsyncHttpClientConfig$Builder.setRequestTimeoutInMs(I)
method, leading to this error on runtime
Hipchat provides a self hosted version (https://www.hipchat.com/data-center).
I'm still not sure if Hipchat enterprise maintains the same API (I would expect so).
From what I've seen (at https://github.com/poweld/hipchat-scala/search?utf8=%E2%9C%93&q=api-url&type=) it should be possible to use this lib with Hipchat enterprise/self-hosted. If so, this use case could be covered on the README file
Hey, it would be great to add 2.12 support )
I'm executing a Spark job which generates a output to HipChat.
After the notification is send the application continues to run, even though my code has finished.
Using visual-vm
I've found that the threads from dispatch
are kept alive, making the application wait for them to finish.
Here's an example gist to reproduce the bug.
To solve this I added a callback finishing the internal dispatch clients, enabling the application to die.
eventualNotification.onComplete { _ =>
// Both clients are needed, only one or the other doesn't work
Http.shutdown()
Common.http.shutdown()
}
This is IMO a severe bug, since my application needs to handle the lifecycle of the internal http library of one of my dependencies.
One suggestion is to choose another http client, I've had used dispatch
before and had a terrible experience with it on a similar scenario.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.