Merge branch 'amf/object_creation' into sprint58
diff --git a/org.eclipse.ote.bytemessage/src/org/eclipse/ote/bytemessage/OteByteMessageUtil.java b/org.eclipse.ote.bytemessage/src/org/eclipse/ote/bytemessage/OteByteMessageUtil.java
index 44c2130..81e3601 100644
--- a/org.eclipse.ote.bytemessage/src/org/eclipse/ote/bytemessage/OteByteMessageUtil.java
+++ b/org.eclipse.ote.bytemessage/src/org/eclipse/ote/bytemessage/OteByteMessageUtil.java
@@ -51,7 +51,25 @@
public static UUID getUUID(OteByteMessage msg) {
return new UUID(msg.getHeader().UUID_HIGH.getValue(), msg.getHeader().UUID_LOW.getValue());
}
+
+ public static UUID getUUID(byte[] data) {
+ long low = getLong(data, 74);
+ long high = getLong(data, 82);
+ return new UUID(high, low);
+ }
+ private static long getLong(byte[] data, int index){
+ return
+ (long)(0xff & data[index]) << 56 |
+ (long)(0xff & data[index+1]) << 48 |
+ (long)(0xff & data[index+2]) << 40 |
+ (long)(0xff & data[index+3]) << 32 |
+ (long)(0xff & data[index+4]) << 24 |
+ (long)(0xff & data[index+5]) << 16 |
+ (long)(0xff & data[index+6]) << 8 |
+ (long)(0xff & data[index+7]) << 0;
+ }
+
public static void setUUID(OteByteMessage msg, UUID id) {
msg.getHeader().UUID_HIGH.setValue(id.getMostSignificantBits());
msg.getHeader().UUID_LOW.setValue(id.getLeastSignificantBits());
diff --git a/org.eclipse.ote.event.bridge.jms/src/org/eclipse/ote/event/bridge/jms/EventToJmsComponent.java b/org.eclipse.ote.event.bridge.jms/src/org/eclipse/ote/event/bridge/jms/EventToJmsComponent.java
index 25adccf..03a0e2a 100644
--- a/org.eclipse.ote.event.bridge.jms/src/org/eclipse/ote/event/bridge/jms/EventToJmsComponent.java
+++ b/org.eclipse.ote.event.bridge.jms/src/org/eclipse/ote/event/bridge/jms/EventToJmsComponent.java
@@ -31,7 +31,7 @@
private JmsConnectionNodeProvider connecitonNode;
private EventAdmin eventAdmin;
- private List<Event> eventQueue;
+ private final List<Event> eventQueue;
private final UUID MYID;
public EventToJmsComponent(){
@@ -80,9 +80,9 @@
Object obj = event.getProperty("bytes");
if(obj != null && obj instanceof byte[]){
try {
- OteByteMessage msg = new OteByteMessage((byte[])obj);
- UUID id = OteByteMessageUtil.getUUID(msg);
+ UUID id = OteByteMessageUtil.getUUID((byte[])obj);
if(!id.equals(MYID)){
+ OteByteMessage msg = new OteByteMessage((byte[])obj);
OteByteMessageUtil.setUUID(msg, MYID);
connecitonNode.getConnectionNode().send(BridgeMessages.BYTE_MESSAGE, obj);
}
@@ -95,9 +95,9 @@
@Override
public void process(Object message, Map<String, Object> headers, ReplyConnection replyConnection) {
if(message instanceof byte[]){
- OteByteMessage msg = new OteByteMessage((byte[])message);
- UUID id = OteByteMessageUtil.getUUID(msg);
+ UUID id = OteByteMessageUtil.getUUID((byte[])message);
if(!id.equals(MYID)){
+ OteByteMessage msg = new OteByteMessage((byte[])message);
OteByteMessageUtil.setUUID(msg, MYID);
Map<String, Object> data = new HashMap<String, Object>();
data.put("bytes", msg.getData());