|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.resoa.node.core.ResoaBaseGateway
org.resoa.node.core.ResoaServiceGateway
public abstract class ResoaServiceGateway
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from interface org.resoa.grid.ResoaGateway |
|---|
org.resoa.grid.ResoaGateway.ControllerGateway, org.resoa.grid.ResoaGateway.GatewayRunner |
| Field Summary | |
|---|---|
protected java.util.HashMap<java.lang.String,javolution.util.FastMap<java.lang.String,org.resoa.grid.ResoaServiceDescriptor>> |
deployedServices
|
protected java.util.concurrent.locks.ReentrantLock |
lockServices
synchronization object for Deployment Update and Service caching |
| Fields inherited from class org.resoa.node.core.ResoaBaseGateway |
|---|
executionExceptions, gatewayRunner, initialControllers, localProfile, lockConnection, lockNodeState, lockResoaUpdate, logger, nodeDomains, nodeType, pendingMessages, permissionExceptions, properties, rcl, requestExceptions, running, security, sessionExceptions, stack |
| Fields inherited from interface org.resoa.grid.ResoaGateway |
|---|
DOMAIN_PERSISTENCE, DOMAIN_TOPOLOGY, PROP_CONTROLLERDATAPATH, RESOAINFO_FILE, ResoaNodeTimeout, ROLE_CONTROLLER, ROLE_GRID, STACKCONFIG_FILE |
| Constructor Summary | |
|---|---|
protected |
ResoaServiceGateway()
Constructor for Gateway without Resoa Grid Functionality |
|
ResoaServiceGateway(java.lang.String configPath)
Constructor |
| Method Summary | ||
|---|---|---|
void |
broadcastToControllers(java.lang.Object request,
org.resoa.grid.ResoaStackChannel channel,
org.resoa.util.Priority prio,
int stackProtocolActivation)
Broadcast an object to all Resoa controllers |
|
void |
broadcastToDomainNodes(java.lang.Object request,
java.lang.String domain,
org.resoa.grid.ResoaStackChannel channel,
org.resoa.util.Priority prio,
int stackProtocolActivation,
java.lang.String excludedSessionID)
Broadcast an object to all Resoa nodes, registered for a domain |
|
void |
createHotBackup(java.lang.String domain)
Used by Resoa persistence services. |
|
org.resoa.topology.RestSession |
createRestSession(java.util.List<org.resoa.topology.Permission> perm,
java.lang.String userID,
java.lang.String userAgent,
int timeout,
org.resoa.grid.GridSession requestor)
Creates a RESTSession handle |
|
protected void |
deployServiceDomain(org.resoa.util.codedom.DomainDescriptor domainDescriptor)
Deploy a service domain Lock the lockService instance before! |
|
org.resoa.grid.ResoaResponse |
executeService(org.resoa.grid.GridSession session,
java.lang.Object request,
org.resoa.grid.ResoaStackChannel channel,
boolean isSecureProtocol,
org.resoa.util.Priority responsePrio)
Executes a service |
|
void |
executeService(org.resoa.grid.Message msg)
Executes a service from a stack message |
|
org.resoa.topology.RestSession |
getRestSession(java.lang.String sessionID,
boolean awake)
|
|
java.lang.Object |
getServiceImplementation(java.lang.String domain,
java.lang.String name,
boolean createNewInstance)
|
|
protected void |
initializeServices()
Call the service initialize method |
|
protected byte[] |
marshallRequest(java.lang.Object request)
Marshalls a request object to bytes |
|
void |
onMessage(java.lang.Object channel,
org.resoa.grid.Message msg)
Gets invoked on message arrival from stack. |
|
org.resoa.grid.Transaction |
performControllerTransaction(java.lang.Object request,
java.lang.String domain,
java.lang.String methodName)
Perform a transaction to a Controller node |
|
org.resoa.grid.Transaction |
performTransaction(java.lang.Object request,
org.resoa.grid.ResoaStackChannel channel,
org.resoa.grid.GridSession session,
org.resoa.util.Priority prio,
int stackProtocolActivation)
Performs a transaction on an underlying session |
|
org.resoa.grid.Message |
processResoaResponse(org.resoa.grid.ResoaResponse response,
org.resoa.grid.Message requestMessage,
org.resoa.grid.Channel channel)
Invoked AFTER the service execution, where a business implementation might set a ResonseObject and an action. |
|
java.lang.Object |
readChannel(org.resoa.util.ByteBuffer buffer)
|
|
void |
removeRestSession(java.lang.String restSessionID,
org.resoa.grid.GridSession requestor)
|
|
org.resoa.topology.RestSession |
requestRestSessionFromController(org.resoa.topology.RestSession session)
Request a RestSession handle from controller |
|
void |
sendMessage(java.lang.Object request,
org.resoa.grid.ResoaStackChannel channel,
org.resoa.grid.GridSession session,
org.resoa.util.Priority prio,
int stackProtocolActivation)
Sends a request to a session |
|
|
unmarshallTransactionResult(org.resoa.grid.Transaction t,
java.lang.Class<T> type)
Unmarshall a transaction response object to a service instance |
|
void |
writeChannel(java.lang.Object channel,
org.resoa.util.ByteBuffer buffer)
|
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface org.resoa.grid.ResoaGateway |
|---|
connectToInitialController, getConfigurationPath, getLocalProfile, getLogger, getNodeState, getNodeType, getPersistor, isDeployed, isRunning, removeIdleSessions, setGatewayRunner, stop, updateResoaInfo |
| Methods inherited from interface org.resoa.stack.StackChannelProcessor |
|---|
onTransactionDelay |
| Methods inherited from interface org.resoa.stack.Callbacks.SessionState |
|---|
sessionDisconnected, sessionInitialized |
| Field Detail |
|---|
protected java.util.concurrent.locks.ReentrantLock lockServices
protected java.util.HashMap<java.lang.String,javolution.util.FastMap<java.lang.String,org.resoa.grid.ResoaServiceDescriptor>> deployedServices
| Constructor Detail |
|---|
public ResoaServiceGateway(java.lang.String configPath)
throws org.resoa.exception.ResoaException
configPath -
org.resoa.exception.ResoaExceptionprotected ResoaServiceGateway()
| Method Detail |
|---|
public void broadcastToDomainNodes(java.lang.Object request,
java.lang.String domain,
org.resoa.grid.ResoaStackChannel channel,
org.resoa.util.Priority prio,
int stackProtocolActivation,
java.lang.String excludedSessionID)
broadcastToDomainNodes in interface org.resoa.grid.ResoaGatewayrequest - the service request instancedomain - the service domain (jarName), for which the broadcast should happenchannel - the channel instanceprio - the prioritystackProtocolActivation - the stack protocol activationexcludedSessionID - the stackSessionID, which should be excluded
public void broadcastToControllers(java.lang.Object request,
org.resoa.grid.ResoaStackChannel channel,
org.resoa.util.Priority prio,
int stackProtocolActivation)
broadcastToControllers in interface org.resoa.grid.ResoaGatewayrequest - the service request instancechannel - the channelprio - the prioritystackProtocolActivation - the stack protocol activation
public void sendMessage(java.lang.Object request,
org.resoa.grid.ResoaStackChannel channel,
org.resoa.grid.GridSession session,
org.resoa.util.Priority prio,
int stackProtocolActivation)
throws org.resoa.exception.ProtocolException,
java.io.IOException
sendMessage in interface org.resoa.grid.ResoaGatewayrequest - the service request instancechannel - the channelsession - the stack sessionprio - the prioritystackProtocolActivation - the stack protocol activation
org.resoa.exception.ResoaException
org.resoa.exception.ProtocolException
java.io.IOException
public org.resoa.grid.Transaction performTransaction(java.lang.Object request,
org.resoa.grid.ResoaStackChannel channel,
org.resoa.grid.GridSession session,
org.resoa.util.Priority prio,
int stackProtocolActivation)
throws org.resoa.exception.ResoaException,
java.io.IOException
performTransaction in interface org.resoa.grid.ResoaGatewayrequest - the service request instancechannel - the channelsession - the stack sessionprio - the prioritystackProtocolActivation - the stack protocol activation
org.resoa.exception.ResoaException
java.io.IOException
public org.resoa.grid.Transaction performControllerTransaction(java.lang.Object request,
java.lang.String domain,
java.lang.String methodName)
throws org.resoa.exception.ServiceExecutionException
request - the service request objectdomain - the domainmethodName - the method to invoke
org.resoa.exception.ServiceExecutionException - The request itself might do a cycle
invocation, if a timeout or protocol exception happen during transaction.
Maximum cycle time is 3.
public void onMessage(java.lang.Object channel,
org.resoa.grid.Message msg)
onMessage in interface org.resoa.stack.StackChannelProcessormsg - message the messagechannel - the channel object
public org.resoa.topology.RestSession createRestSession(java.util.List<org.resoa.topology.Permission> perm,
java.lang.String userID,
java.lang.String userAgent,
int timeout,
org.resoa.grid.GridSession requestor)
createRestSession in interface org.resoa.grid.ResoaGatewayperm - provide the permissions, associated with this sessionuserID - the userID of the sessionuserAgent - the user agenttimeout - the timeoutrequestor - the base stack session
public org.resoa.topology.RestSession getRestSession(java.lang.String sessionID,
boolean awake)
getRestSession in interface org.resoa.grid.ResoaGateway
public void removeRestSession(java.lang.String restSessionID,
org.resoa.grid.GridSession requestor)
removeRestSession in interface org.resoa.grid.ResoaGatewaypublic org.resoa.topology.RestSession requestRestSessionFromController(org.resoa.topology.RestSession session)
requestRestSessionFromController in class ResoaBaseGatewayprotected void deployServiceDomain(org.resoa.util.codedom.DomainDescriptor domainDescriptor)
domainDescriptor - the domainprotected void initializeServices()
public java.lang.Object getServiceImplementation(java.lang.String domain,
java.lang.String name,
boolean createNewInstance)
throws org.resoa.exception.ResoaException
getServiceImplementation in interface org.resoa.grid.ResoaGatewayorg.resoa.exception.ResoaException
public void executeService(org.resoa.grid.Message msg)
throws org.resoa.exception.InvalidSessionException,
org.resoa.exception.ACViolationException,
org.resoa.exception.BadRequestException,
org.resoa.exception.ServiceNotFoundException,
org.resoa.exception.InvalidProtocolException,
org.resoa.exception.ServiceExecutionException
executeService in interface org.resoa.grid.ResoaGatewaymsg - the stack message
org.resoa.exception.ServiceExecutionException
org.resoa.exception.InvalidSessionException
org.resoa.exception.ACViolationException
org.resoa.exception.BadRequestException
org.resoa.exception.ServiceNotFoundException
org.resoa.exception.InvalidProtocolException
public org.resoa.grid.ResoaResponse executeService(org.resoa.grid.GridSession session,
java.lang.Object request,
org.resoa.grid.ResoaStackChannel channel,
boolean isSecureProtocol,
org.resoa.util.Priority responsePrio)
throws org.resoa.exception.InvalidSessionException,
org.resoa.exception.ACViolationException,
org.resoa.exception.BadRequestException,
org.resoa.exception.ServiceNotFoundException,
org.resoa.exception.InvalidProtocolException,
org.resoa.exception.ServiceExecutionException
executeService in interface org.resoa.grid.ResoaGatewaysession - the stack sessionrequest - the request instancechannel - the ResoaStackChannel instanceisSecureProtocol - true, if request arrived on a secure protocolresponsePrio - the priority of the response for further handling
org.resoa.exception.InvalidSessionException
org.resoa.exception.ACViolationException
org.resoa.exception.BadRequestException
org.resoa.exception.ServiceNotFoundException
org.resoa.exception.InvalidProtocolException
org.resoa.exception.ServiceExecutionExceptionprotected byte[] marshallRequest(java.lang.Object request)
request - the service request object
public <T> T unmarshallTransactionResult(org.resoa.grid.Transaction t,
java.lang.Class<T> type)
T - t - the transactiontype - the type to cast into
public org.resoa.grid.Message processResoaResponse(org.resoa.grid.ResoaResponse response,
org.resoa.grid.Message requestMessage,
org.resoa.grid.Channel channel)
response - the executed ServiceExecutionHandlerequestMessage - the request messagechannel - the channel object
public void createHotBackup(java.lang.String domain)
public java.lang.Object readChannel(org.resoa.util.ByteBuffer buffer)
readChannel in interface org.resoa.stack.StackChannelProcessor
public void writeChannel(java.lang.Object channel,
org.resoa.util.ByteBuffer buffer)
writeChannel in interface org.resoa.stack.StackChannelProcessor
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||