Skip to content

Commit

Permalink
WS connection: Using invoker from the stage.
Browse files Browse the repository at this point in the history
Changing the message format.
Separating the serialization code.
  • Loading branch information
Sperry, Daniel committed Oct 21, 2015
1 parent 99bdf74 commit e5ee61a
Show file tree
Hide file tree
Showing 6 changed files with 385 additions and 244 deletions.
11 changes: 11 additions & 0 deletions actors/websocket/pom.xml
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -48,11 +48,22 @@
<artifactId>orbit-actors-core</artifactId> <artifactId>orbit-actors-core</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<dependency>
<groupId>com.ea.orbit</groupId>
<artifactId>orbit-actors-stage</artifactId>
<version>${project.version}</version>
</dependency>
<dependency> <dependency>
<groupId>javax.websocket</groupId> <groupId>javax.websocket</groupId>
<artifactId>javax.websocket-api</artifactId> <artifactId>javax.websocket-api</artifactId>
<version>1.0</version> <version>1.0</version>
</dependency> </dependency>
<dependency>
<groupId>com.ea.orbit</groupId>
<artifactId>orbit-actors-json</artifactId>
<version>${project.version}</version>
<optional>true</optional>
</dependency>


<!-- test dependencies --> <!-- test dependencies -->
<dependency> <dependency>
Expand Down
Original file line number Original file line Diff line number Diff line change
@@ -0,0 +1,45 @@
package com.ea.orbit.actors.ws.server;

import com.ea.orbit.actors.extensions.json.ActorReferenceModule;
import com.ea.orbit.actors.runtime.ReferenceFactory;
import com.ea.orbit.actors.runtime.Runtime;

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.InputStream;
import java.io.OutputStream;
import java.lang.reflect.Type;

public class JsonPeerSerializer implements PeerSerializer
{
private ObjectMapper mapper = new ObjectMapper();

@Override
public Message deserializeMessage(final com.ea.orbit.actors.runtime.Runtime runtime, final InputStream inputStream) throws Exception
{
return mapper.readValue(inputStream, Message.class);
}

@Override
public void serializeMessage(final Runtime runtime, final OutputStream out, final Message message) throws Exception
{
mapper.writeValue(out, message);
}

@Override
public Object convertValue(final Object o, final Type genericParameterType)
{
return mapper.convertValue(o, mapper.constructType(genericParameterType));
}

{
mapper.registerModule(new ActorReferenceModule(new ReferenceFactory()));
mapper.setVisibility(mapper.getSerializationConfig().getDefaultVisibilityChecker()
.withFieldVisibility(JsonAutoDetect.Visibility.ANY)
.withGetterVisibility(JsonAutoDetect.Visibility.NONE)
.withIsGetterVisibility(JsonAutoDetect.Visibility.NONE)
.withSetterVisibility(JsonAutoDetect.Visibility.NONE)
.withCreatorVisibility(JsonAutoDetect.Visibility.NONE));
}
}
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -28,24 +28,23 @@


package com.ea.orbit.actors.ws.server; package com.ea.orbit.actors.ws.server;


import java.util.Map;

public class Message public class Message
{ {
private int messageType; private int type;
private int messageId; private int messageId;
private boolean oneWay; private int interfaceId;
private Map<Object, Object> headers; private int methodId;
private String objectId;
private Object payload; private Object payload;


public int getMessageType() public int getType()
{ {
return messageType; return type;
} }


public void setMessageType(final int messageType) public void setType(final int type)
{ {
this.messageType = messageType; this.type = type;
} }


public int getMessageId() public int getMessageId()
Expand All @@ -58,33 +57,43 @@ public void setMessageId(final int messageId)
this.messageId = messageId; this.messageId = messageId;
} }


public boolean isOneWay() public Object getPayload()
{ {
return oneWay; return payload;
} }


public void setOneWay(final boolean oneWay) public void setPayload(final Object payload)
{ {
this.oneWay = oneWay; this.payload = payload;
} }


public Map<Object, Object> getHeaders() public int getInterfaceId()
{ {
return headers; return interfaceId;
} }


public void setHeaders(final Map<Object, Object> headers) public void setInterfaceId(final int interfaceId)
{ {
this.headers = headers; this.interfaceId = interfaceId;
} }


public Object getPayload() public int getMethodId()
{ {
return payload; return methodId;
} }


public void setPayload(final Object payload) public void setMethodId(final int methodId)
{ {
this.payload = payload; this.methodId = methodId;
}

public String getObjectId()
{
return objectId;
}

public void setObjectId(final String objectId)
{
this.objectId = objectId;
} }
} }
Loading

0 comments on commit e5ee61a

Please sign in to comment.