On Sep 20, 2012, at 4:33 PM, Kohsuke Kawaguchi <[email protected]> wrote:

> I don't claim to fully understand Vert.x, but it does look interesting. It 
> sounds like a way to develop distributed event-driven apps, so this lets you 
> create apps that interact with Jenkins?

That's it exactly.  The plugin itself is primarily responsible for generating 
events and exposing certain extension points (like the QueueTaskDispatcher) to 
the event bus (similar to a message broker).  Applications that want to 
interact with Jenkins this way can be deployed in Vert.x instances that form a 
cluster with the plugin, but they are neither tied to the Jenkins plugin 
architecture nor the Jenkins server lifecycle.  This could even be used as a 
way to have two Jenkins instances communicating with one another.

> Would you be interested in hosting this plugin in the same Jenkins org with 
> other plugins?

Yes, once it's gotten a little bit of use.  The primary Jenkins instance I use 
at work is on a very old Linux VM that can't run Java 7, which Vert.x requires. 
 Once *I* can use it, I'll consider turning it over. :-)

> I wonder if you had a chance to look at the JSON/XML serialization mechanism 
> in Jenkins called the remote API (see http://ci.jenkins-ci.og/api for 
> example) You might be able to take advantages of this in what you do.

I've used that where possible.  At first I used XStream's JSON support but then 
someone pointed me to a serialization mechanism that isn't directly tied to 
Stapler requests (in newer versions of Jenkins).  That's largely what the 
message payloads are based on, with some additional information added where 
necessary.  I was not able to use the API-based JSON support in the 
QueueTaskDispatcher because serializing a Queue.Item invokes canRun() which 
serializes the Queue.Item which invokes canRun()… :-) 

I'm not sure how many specific EventBus (Vert.x terminology) I'll need to 
implement, since distributed applications could just use the remote HTTP API 
themselves.  So far I've focused on publishing events that applications can 
subscribe to.

Reply via email to