Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.cayenne.remote.service
Class BaseRemoteService

    java.lang.Object
      org.apache.cayenne.remote.service.BaseRemoteService

All Implemented Interfaces:
  Remote, RemoteService

Direct Known Subclasses:
  HttpRemoteService

    public abstract class BaseRemoteService

extends Object
implements RemoteService

A generic implementation of an RemoteService. Subclasses can be customized to work with different remoting mechanisms, such as Hessian or JAXRPC.

Since:
  1.2
Author:
  Andrus Adamchik

Field Summary
`protected DataDomain` | `domain`
`static String` | `EVENT_BRIDGE_FACTORY_PROPERTY`
`protected String` | `eventBridgeFactoryName`
`protected Map` | `eventBridgeParameters`

Constructor Summary
`BaseRemoteService()`

Method Summary
`protected DataChannel` | `createChannel()` Creates a server-side channel that will handle all client requests.
`protected RemoteSession` | `createRemoteSession(String sessionId, String name, boolean enableEvents)`
`protected abstract ServerSession` | `createServerSession()` Creates a new ServerSession with a dedicated DataChannel.
`protected abstract ServerSession` | `createServerSession(String name)` Creates a new ServerSession based on a shared DataChannel.
`protected void` | `destroyService()` Shuts down this service.
`RemoteSession` | `establishSession()` Establishes a dedicated session with Cayenne DataChannel, returning session id.
`RemoteSession` | `establishSharedSession(String name)` Creates a new session with the specified or joins an existing one.
`String` | `getEventBridgeFactoryName()`
`Map` | `getEventBridgeParameters()`
`DataChannel` | `getRootChannel()` Returns a DataChannel that is a parent of all session DataChannels.
`protected abstract ServerSession` | `getServerSession()` Returns a ServerSession object that represents Cayenne-related state associated with the current session.
`protected void` | `initCayenneStack(Map properties)` Sets up Cayenne stack.
`protected void` | `initEventBridgeParameters(Map properties)` Initializes EventBridge parameters for remote clients peer-to-peer communications.
`protected void` | `initService(Map properties)` A method that sets up a service, initializing Cayenne stack.
`Object` | `processMessage(ClientMessage message)` Processes message on a remote server, returning the result of such processing.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### EVENT_BRIDGE_FACTORY_PROPERTY

    public static final String EVENT_BRIDGE_FACTORY_PROPERTY

See Also:
  Constant Field Values

### domain

    protected DataDomain domain

### eventBridgeFactoryName

    protected String eventBridgeFactoryName

### eventBridgeParameters

    protected Map eventBridgeParameters

Constructor Detail

### BaseRemoteService

    public BaseRemoteService()

Method Detail

### getEventBridgeFactoryName

    public String getEventBridgeFactoryName()

### getEventBridgeParameters

    public Map getEventBridgeParameters()

### initService

    protected void initService(Map properties)
                        throws CayenneRuntimeException

  A method that sets up a service, initializing Cayenne stack. Should be invoked by subclasses from their appropriate service lifecycle methods.

  Throws:
    `CayenneRuntimeException`

### destroyService

    protected void destroyService()

  Shuts down this service. Should be invoked by subclasses from their appropriate service lifecycle methods.

### getRootChannel

    public DataChannel getRootChannel()

  Returns a DataChannel that is a parent of all session DataChannels.

### createServerSession

    protected abstract ServerSession createServerSession()

  Creates a new ServerSession with a dedicated DataChannel.

### createServerSession

    protected abstract ServerSession createServerSession(String name)

  Creates a new ServerSession based on a shared DataChannel.

  Parameters:
    `name` - shared session name used to lookup a shared DataChannel.

### getServerSession

    protected abstract ServerSession getServerSession()

  Returns a ServerSession object that represents Cayenne-related state associated with the current session. If ServerSession hasn't been previously saved, returns null.

### establishSession

    public RemoteSession establishSession()

  Description copied from interface: `RemoteService`
  Establishes a dedicated session with Cayenne DataChannel, returning session id.

  Specified by:
    `establishSession` in interface `RemoteService`

### establishSharedSession

    public RemoteSession establishSharedSession(String name)

  Description copied from interface: `RemoteService`
  Creates a new session with the specified or joins an existing one. This method is used to bootstrap collaborating clients of a single "group chat".

  Specified by:
    `establishSharedSession` in interface `RemoteService`

### processMessage

    public Object processMessage(ClientMessage message)
                          throws Throwable

  Description copied from interface: `RemoteService`
  Processes message on a remote server, returning the result of such processing.

  Specified by:
    `processMessage` in interface `RemoteService`
  Throws:
    `Throwable`

### createRemoteSession

    protected RemoteSession createRemoteSession(String sessionId,
                                                String name,
                                                boolean enableEvents)

### createChannel

    protected DataChannel createChannel()

  Creates a server-side channel that will handle all client requests. For shared sessions the same channel instance is reused for the entire group of clients. For dedicated sessions, one channel per client is created.

  This implementation returns `ClientServerChannel` instance wrapping a DataContext. Subclasses may override the method to customize channel creation. For instance they may wrap channel in the custom interceptors to handle transactions or security.

### initCayenneStack

    protected void initCayenneStack(Map properties)

  Sets up Cayenne stack.

### initEventBridgeParameters

    protected void initEventBridgeParameters(Map properties)

  Initializes EventBridge parameters for remote clients peer-to-peer communications.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2008 Apache Cayenne. All Rights Reserved.