|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.jboss.naming.NonSerializableFactory
A utility class that allows one to bind a non-serializable object into a
local JNDI context. The binding will only be valid for the lifetime of the
VM in which the JNDI InitialContext lives. An example usage code snippet is:
// The non-Serializable object to bind
Object nonserializable = ...;
// An arbitrary key to use in the StringRefAddr. The best key is the jndi
// name that the object will be bound under.
String key = ...;
// This places nonserializable into the NonSerializableFactory hashmap under key
NonSerializableFactory.rebind(key, nonserializable);
Context ctx = new InitialContext();
// Bind a reference to nonserializable using NonSerializableFactory as the ObjectFactory
String className = nonserializable.getClass().getName();
String factory = NonSerializableFactory.class.getName();
StringRefAddr addr = new StringRefAddr("nns", key);
Reference memoryRef = new Reference(className, addr, factory, null);
ctx.rebind(key, memoryRef);
Or you can use the rebind(Context, String, Object) convience method to simplify
the number of steps to:
Context ctx = new InitialContext();
// The non-Serializable object to bind
Object nonserializable = ...;
// The jndiName that the object will be bound into ctx with
String jndiName = ...;
// This places nonserializable into the NonSerializableFactory hashmap under key
NonSerializableFactory.rebind(ctx, jndiName, nonserializable);
To unbind the object, use the following code snippet:
new InitialContext().unbind(key);
NonSerializableFactory.unbind(key);
ObjectFactory
,
rebind(Context, String, Object)
Constructor Summary | |
NonSerializableFactory()
|
Method Summary | |
static void |
bind(java.lang.String key,
java.lang.Object target)
Place an object into the NonSerializableFactory namespace for subsequent access by getObject. |
java.lang.Object |
getObjectInstance(java.lang.Object obj,
javax.naming.Name name,
javax.naming.Context nameCtx,
java.util.Hashtable env)
Transform the obj Reference bound into the JNDI namespace into the actual non-Serializable object. |
static java.lang.Object |
lookup(javax.naming.Name name)
Lookup a value from the NonSerializableFactory map. |
static java.lang.Object |
lookup(java.lang.String key)
Lookup a value from the NonSerializableFactory map. |
static void |
rebind(javax.naming.Context ctx,
java.lang.String key,
java.lang.Object target)
A convience method that simplifies the process of rebinding a non-zerializable object into a JNDI context. |
static void |
rebind(javax.naming.Name name,
java.lang.Object target)
A convience method that simplifies the process of rebinding a non-zerializable object into a JNDI context. |
static void |
rebind(java.lang.String key,
java.lang.Object target)
Place or replace an object in the NonSerializableFactory namespce for subsequent access by getObject. |
static void |
unbind(javax.naming.Name name)
Remove a binding from the NonSerializableFactory map. |
static void |
unbind(java.lang.String key)
Remove a binding from the NonSerializableFactory map. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public NonSerializableFactory()
Method Detail |
public static void bind(java.lang.String key, java.lang.Object target) throws javax.naming.NameAlreadyBoundException
key,
- the name to bind target under. This should typically be the
name that will be used to bind target in the JNDI namespace, but it does
not have to be.target,
- the non-Serializable object to bind.NameAlreadyBoundException,
- thrown if key already exists in the
NonSerializableFactory mappublic static void rebind(java.lang.String key, java.lang.Object target)
key,
- the name to bind target under. This should typically be the
name that will be used to bind target in the JNDI namespace, but it does
not have to be.target,
- the non-Serializable object to bind.public static void unbind(java.lang.String key) throws javax.naming.NameNotFoundException
key,
- the key into the NonSerializableFactory map to remove.NameNotFoundException,
- thrown if key does not exist in the
NonSerializableFactory mappublic static void unbind(javax.naming.Name name) throws javax.naming.NameNotFoundException
name,
- the name for the key into NonSerializableFactory map to remove.
The key is obtained as name.toString().NameNotFoundException,
- thrown if key does not exist in the
NonSerializableFactory mappublic static java.lang.Object lookup(java.lang.String key)
public static java.lang.Object lookup(javax.naming.Name name)
public static void rebind(javax.naming.Context ctx, java.lang.String key, java.lang.Object target) throws javax.naming.NamingException
ctx,
- the JNDI context to rebind to.key,
- the key to use in both the NonSerializableFactory map and JNDI. It
must be a valid name for use in ctx.bind().target,
- the non-Serializable object to bind.NamingException,
- thrown on failure to rebind key into ctx.public static void rebind(javax.naming.Name name, java.lang.Object target) throws javax.naming.NamingException
name,
- the name to use as JNDI path name. The key into the
NonSerializableFactory map is obtained from the toString() value of name.
The name parameter cannot be a 0 length name.
Any subcontexts between the root and the name.target,
- the non-Serializable object to bind.NamingException,
- thrown on failure to rebind key into ctx.public java.lang.Object getObjectInstance(java.lang.Object obj, javax.naming.Name name, javax.naming.Context nameCtx, java.util.Hashtable env) throws java.lang.Exception
getObjectInstance
in interface javax.naming.spi.ObjectFactory
obj,
- the object bound in the JNDI namespace. This must be an implementation
of javax.naming.Reference with a javax.naming.RefAddr of type "nns" whose
content is the String key used to location the non-Serializable object in the
NonSerializableFactory map.name,
- ignored.nameCtx,
- ignored.env,
- ignored.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |