Here is a simple example of what I'd like to be able to do
As you can see it would make it dead simple to add a new adapter. In
this case, all you need to do to get XML from gmond is to open a
socket to it.
The changes we'd need to make this work are:
1) create a synapse interface Initializable which could be implemented
both by mediators and also by stuff like adapters that need to be run
but aren't mediators
2) Add a way of specifying things that need to be started in the Synapse config:
e.g.
<startup>
<init class="org.fremantle.GMondPuller"/>
</startup>
2) need to be able to get at the thread pool from the
SynapseEnvironment (this could just be a link into the Axis2 thread
pool)
3) Fix createMessageContext!
4) I think that is it.
public class GMondPuller implements Initializable, Runnable {
private String hostName = null;
private int port = 0;
private long interval = 1000;
private SynapseEnvironment synapseEnvironment = null;
public void init(SynapseConfiguration sc, SynapseEnvironment se) {
synapseEnvironment = se;
synapseEnvironment.getThreadPool().execute(this);
}
public void run() {
if (hostName == null || port == 0 || synapseEnvironment == null)
return;
try {
while (true) {
java.net.Socket socket = new Socket(hostName,
port);
StAXOMBuilder builder = new StAXOMBuilder(socket
.getInputStream());
MessageContext mc =
synapseEnvironment.createMessageContext();
mc.getEnvelope().getBody().addChild(builder.getDocumentElement());
synapseEnvironment.injectMessage(mc);
Thread.sleep(interval);
}
} catch (Exception e) {
log.debug(e);
}
}
public void setHostName(String hostName) {
this.hostName = hostName;
}
public String getHostName() {
return hostName;
}
public void setPort(int port) {
this.port = port;
}
public int getPort() {
return port;
}
public void setInterval(long interval) {
this.interval = interval;
}
public long getInterval() {
return interval;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]