User: starksm 
  Date: 01/11/09 02:41:00

  Modified:    src/main/org/jboss/naming Tag: Branch_2_4
                        NonSerializableFactory.java
  Log:
  Add a rebind that accepts a Name value
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.5.6.1   +50 -4     jboss/src/main/org/jboss/naming/NonSerializableFactory.java
  
  Index: NonSerializableFactory.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jboss/src/main/org/jboss/naming/NonSerializableFactory.java,v
  retrieving revision 1.5
  retrieving revision 1.5.6.1
  diff -u -r1.5 -r1.5.6.1
  --- NonSerializableFactory.java       2001/03/21 23:07:50     1.5
  +++ NonSerializableFactory.java       2001/11/09 10:41:00     1.5.6.1
  @@ -11,6 +11,7 @@
   import java.util.Hashtable;
   import java.util.Map;
   import javax.naming.Context;
  +import javax.naming.InitialContext;
   import javax.naming.Name;
   import javax.naming.NameAlreadyBoundException;
   import javax.naming.NameNotFoundException;
  @@ -64,8 +65,8 @@
   @see javax.naming.spi.ObjectFactory
   @see #rebind(Context, String, Object)
   
  -@author [EMAIL PROTECTED]
  -@version $Revision: 1.5 $
  +@author [EMAIL PROTECTED]
  +@version $Revision: 1.5.6.1 $
   */
   public class NonSerializableFactory implements ObjectFactory
   {
  @@ -104,7 +105,6 @@
       /** Remove a binding from the NonSerializableFactory map.
   
       @param key, the key into the NonSerializableFactory map to remove.
  -    @param target, the non-Serializable object to bind.
       @throws NameNotFoundException, thrown if key does not exist in the
        NonSerializableFactory map
       */
  @@ -113,7 +113,20 @@
           if( wrapperMap.remove(key) == null )
               throw new NameNotFoundException(key+" was not found in the 
NonSerializableFactory map");
       }
  +    /** Remove a binding from the NonSerializableFactory map.
   
  +    @param name, the name for the key into NonSerializableFactory map to remove.
  +     The key is obtained as name.toString().
  +    @throws NameNotFoundException, thrown if key does not exist in the
  +     NonSerializableFactory map
  +    */
  +    public static void unbind(Name name) throws NameNotFoundException
  +    {
  +        String key = name.toString();
  +        if( wrapperMap.remove(key) == null )
  +            throw new NameNotFoundException(key+" was not found in the 
NonSerializableFactory map");
  +    }
  +
       /** Lookup a value from the NonSerializableFactory map.
       @return the object bound to key is one exists, null otherwise.
       */
  @@ -122,6 +135,15 @@
           Object value = wrapperMap.get(key);
           return value;
       }
  +    /** Lookup a value from the NonSerializableFactory map.
  +    @return the object bound to key is one exists, null otherwise.
  +    */
  +    public static Object lookup(Name name)
  +    {
  +        String key = name.toString();
  +        Object value = wrapperMap.get(key);
  +        return value;
  +    }
   
       /** A convience method that simplifies the process of rebinding a
           non-zerializable object into a JNDI context.
  @@ -134,13 +156,37 @@
       */
       public static synchronized void rebind(Context ctx, String key, Object target) 
throws NamingException
       {
  -        NonSerializableFactory.rebind(key, target);
           // Bind a reference to target using NonSerializableFactory as the 
ObjectFactory
           String className = target.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);
  +        NonSerializableFactory.rebind(key, target);
  +    }
  +
  +    /** A convience method that simplifies the process of rebinding a
  +     non-zerializable object into a JNDI context. This version binds the
  +     target object into the default IntitialContext using name path.
  +
  +    @param name, the name to use as JNDI path name. The key into the
  +     NonSerializableFactory map is obtain from the toString() value of name.
  +     The name parameter cannot be a 0 length name.
  +     Any subcontexts between the root and the name.
  +    @param target, the non-Serializable object to bind.
  +    @throws NamingException, thrown on failure to rebind key into ctx.
  +    */
  +    public static synchronized void rebind(Name name, Object target) throws 
NamingException
  +    {
  +        String key = name.toString();
  +        // Bind a reference to target using NonSerializableFactory as the 
ObjectFactory
  +        String className = target.getClass().getName();
  +        String factory = NonSerializableFactory.class.getName();
  +        StringRefAddr addr = new StringRefAddr("nns", key);
  +        Reference memoryRef = new Reference(className, addr, factory, null);
  +        InitialContext ctx = new InitialContext();
  +        Util.rebind(ctx, name, memoryRef);
  +        NonSerializableFactory.rebind(key, target);
       }
   
   // --- Begin ObjectFactory interface methods
  
  
  

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to