blob: da4e6f76438c75f364e1c6d5dcce2c085e36f3d8 [file] [log] [blame]
package org.eclipse.osee.ote.jms.bridge;
import java.util.logging.Level;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.ote.OTEException;
import org.eclipse.osee.ote.core.CopyOnWriteNoIteratorList;
import org.eclipse.osee.ote.endpoint.OteUdpEndpoint;
import org.eclipse.osee.ote.endpoint.OteUdpEndpointSender;
import org.eclipse.osee.ote.message.event.OteEventMessage;
import org.eclipse.osee.ote.message.event.OteEventMessageUtil;
import org.osgi.service.event.Event;
import org.osgi.service.event.EventHandler;
public class EventToEndpoint implements EventHandler {
private OteUdpEndpoint endpoint;
public void bindOteUdpEndpoint(OteUdpEndpoint endpoint){
this.endpoint = endpoint;
}
public void unbindOteUdpEndpoint(OteUdpEndpoint endpoint){
this.endpoint = null;
}
@Override
public void handleEvent(Event arg0) {
OteEventMessage oteEventMessage = OteEventMessageUtil.getOteEventMessage(arg0);
if(oteEventMessage != null && oteEventMessage.getHeader().TTL.getValue().intValue() == 0){
oteEventMessage.getHeader().ADDRESS.setAddress(endpoint.getLocalEndpoint().getAddress());
oteEventMessage.getHeader().ADDRESS.setPort(endpoint.getLocalEndpoint().getPort());
CopyOnWriteNoIteratorList<OteUdpEndpointSender> broadcastSenders = endpoint.getBroadcastSenders();
OteUdpEndpointSender[] oteUdpEndpointSenders = broadcastSenders.get();
for(int i = 0; i < oteUdpEndpointSenders.length; i++){
try{
oteUdpEndpointSenders[i].send(oteEventMessage);
} catch (OTEException ex){
OseeLog.log(getClass(), Level.SEVERE, ex);
}
}
}
}
}