Chapter 60. Hipchat
Hipchat component
Available as of Camel 2.15.0
The Hipchat component supports producing and consuming messages from/to Hipchat service.
You must have a valid Hipchat user account and get a personal access token that you can use to produce/consume messages.
|
URI Format
hipchat://[host][:port]?options
You can append query options to the URI in the following format, ?options=value&option2=value&...
URI Options
Name
|
Default Value
|
Context
| Required | Producer/Consumer |
Description
|
---|---|---|---|---|---|
authToken
|
null
|
Shared
|
Yes | Both | Authorization token(personal access token) obtained from Hipchat |
protocol
|
http
|
Shared
|
No | Both |
Default protocol to connect to the Hipchat server
|
consumeUsers
|
null
|
Shared
|
No | Consumer |
Comma separated list of user @Mentions or emails whose messages to the owner of authToken must be consumed
|
host | api.hipchat.com | Shared | No | Both | The API host of the Hipchat to connect to |
port | 80 | Shared | No | Both | The port to connect to on the Hipchat host |
delay | 5000 | Shared | No | Consumer | The poll interval in millisec for consuming messages from consumeUsers provided. Please read about rate limits before decreasing this. |
Scheduled Poll Consumer
This component implements the ScheduledPollConsumer. Only the last message from the provided 'consumeUsers' are retrieved and sent as Exchange body. If you do not want the same message to be retrieved again when there are no new messages on next poll then you can add the idempotent consumer as shown below. All the options on the ScheduledPollConsumer can also be used for more control on the consumer.
@Override public void configure() throws Exception { String hipchatEndpointUri = "hipchat://?authToken=XXXX&consumeUsers=@Joe,@John"; from(hipchatEndpointUri) .idempotentConsumer( simple("${in.header.HipchatMessageDate} ${in.header.HipchatFromUser}"), MemoryIdempotentRepository.memoryIdempotentRepository(200) ) .to("mock:result"); }
Message headers set by the Hipchat consumer
|
Hipchat Producer
Producer can send messages to both Room's and User's simultaneously. The body of the exchange is sent as message. Sample usage is shown below. Appropriate headers needs to be set.
@Override public void configure() throws Exception { String hipchatEndpointUri = "hipchat://?authToken=XXXX"; from("direct:start") .to(hipchatEndpointUri) .to("mock:result"); }
Message headers evaluated by the Hipchat producer
|
Message headers set by the Hipchat producer
|
Dependencies
Maven users will need to add the following dependency to their pom.xml.
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-hipchat</artifactId> <version>${camel-version}</version> </dependency>
where
${camel-version
} must be replaced by the actual version of Camel (2.15.0 or higher)