org.objectweb.fractal.rmi
Class RmiAdapter

java.lang.Object
  extended byorg.objectweb.fractal.rmi.RmiAdapter
All Implemented Interfaces:
BindingController, NamingContext, Runnable

public class RmiAdapter
extends Object
implements NamingContext, Runnable, BindingController

Provides a very simple object adapter component. This naming context exports an object in the following way:


Field Summary
protected  Logger logger
          The logger used to log messages.
protected  LoggerFactory loggerFactory
          The optional logger factory used to get a logger for this component.
protected  SkeletonFactory skeletonFactory
          The skeleton factory used to create skeletons for the exported objects.
 
Constructor Summary
RmiAdapter()
          Constructs a new RmiAdapter.
 
Method Summary
 void bindFc(String clientItfName, Object serverItf)
           
 Identifier decode(byte[] data, int offset, int length)
          Decodes an identifier from a buffer portion.
 Identifier decode(UnMarshaller u)
          Decodes an identifier from the provided unmarshaller.
 Identifier export(Object obj, Context hints)
          Creates a new identifier for the object interface designated by the obj parameter.
 String[] listFc()
           
 Object lookupFc(String clientItfName)
           
 void run()
          Blocks the caller thread.
 void unbindFc(String clientItfName)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

skeletonFactory

protected SkeletonFactory skeletonFactory
The skeleton factory used to create skeletons for the exported objects.


loggerFactory

protected LoggerFactory loggerFactory
The optional logger factory used to get a logger for this component.


logger

protected Logger logger
The logger used to log messages. May be null.

Constructor Detail

RmiAdapter

public RmiAdapter()
Constructs a new RmiAdapter.

Method Detail

listFc

public String[] listFc()
Specified by:
listFc in interface BindingController

lookupFc

public Object lookupFc(String clientItfName)
Specified by:
lookupFc in interface BindingController

bindFc

public void bindFc(String clientItfName,
                   Object serverItf)
Specified by:
bindFc in interface BindingController

unbindFc

public void unbindFc(String clientItfName)
Specified by:
unbindFc in interface BindingController

export

public Identifier export(Object obj,
                         Context hints)
                  throws JonathanException
Creates a new identifier for the object interface designated by the obj parameter. Note that calling the resolve method on the returned identifier should return id.

Specified by:
export in interface NamingContext
Parameters:
obj - an object.
hints - additional information.
Returns:
an identifier managed by the target naming context.
Throws:
JonathanException - if something goes wrong.
See Also:
org.objectweb.jonathan.model.naming_context#export(org.objectweb.jonathan.model.name)

decode

public Identifier decode(byte[] data,
                         int offset,
                         int length)
                  throws JonathanException
Decodes an identifier from a buffer portion. Since identifiers are likely to be transmitted on the net, they may have to be encoded and decoded. The encoding method is borne by the Identifier interface, but the decoding methods must be borne by each naming context. This method creates an identifier (associated with the target naming context), from the length bytes of data starting at offset offset.

Specified by:
decode in interface NamingContext
Parameters:
data - the byte array to read the encoded identifier from.
offset - offset of the first byte of the encoding.
length - length of the encoding.
Returns:
a decoded identifier.
Throws:
JonathanException - if something goes wrong.

decode

public Identifier decode(UnMarshaller u)
                  throws JonathanException
Decodes an identifier from the provided unmarshaller.

Specified by:
decode in interface NamingContext
Parameters:
u - an unmarhaller;
Returns:
an identifier managed by the target naming context;
Throws:
JonathanException - if something goes wrong.

run

public void run()
Blocks the caller thread. This method is used to create a "daemon" thread when the export method is called for the time, in order to keep the JVM process alive, waiting for incoming remote method calls.

Specified by:
run in interface Runnable