Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * IronJacamar, a Java EE Connector Architecture implementation
   * Copyright 2013, Red Hat Inc, and individual contributors
   * as indicated by the @author tags. See the copyright.txt file in the
   * distribution for a full listing of individual contributors.
   *
   * This is free software; you can redistribute it and/or modify it
   * under the terms of the GNU Lesser General Public License as
   * published by the Free Software Foundation; either version 2.1 of
  * the License, or (at your option) any later version.
  *
  * This software is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this software; if not, write to the Free
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
 
 package org.jboss.jca.core.naming;
 
 
 
 
Helper class to create JNDI bindings

Author(s):
Jesper Pedersen
 
 public class JndiBinder implements ObjectFactory
 {
    private static CoreLogger log = Logger.getMessageLogger(CoreLogger.classJndiBinder.class.getName());
 
    private static boolean trace = .isTraceEnabled();
 
    private static ConcurrentMap<StringObjectobjs = new ConcurrentHashMap<StringObject>();
 
    private String name;
    private Object obj;

   
Constructor
 
    public JndiBinder()
    {
    }

   
Set the name

Parameters:
v The value
 
    public void setName(String v)
    {
       this. = v;
    }

   
Set the object

Parameters:
v The value
 
    public void setObject(Object v)
    {
       this. = v;
    }

   
Obtain the connection factory
 
    public Object getObjectInstance(Object objName nameContext nameCtxHashtable<?, ?> environment)
       throws Exception
    {
       Reference ref = (Reference)obj;
       String objName = (String)ref.get("name").getContent();
 
       return .get(objName);
    }

   
Bind

Throws:
java.lang.Throwable Thrown in case of an error
 
    public void bind() throws Throwable
    {
      if ( == null)
         throw new IllegalArgumentException("Name is null");
      if ( == null)
         throw new IllegalArgumentException("Obj is null");
      if ()
         .trace("Binding " + .getClass().getName() + " under " + );
      Context context = new InitialContext();
      try
      {
         String className = .getClass().getName();
         Reference ref = new Reference(className,
                                       new StringRefAddr("class"className),
                                       JndiBinder.class.getName(),
                                       null);
         ref.add(new StringRefAddr("name"));
         .put();
         Util.bind(contextref);
         if (.isDebugEnabled())
            .debug("Bound " + .getClass().getName() + " under " + );
      }
      finally
      {
         if (context != null)
         {
            try
            {
               context.close();
            }
            catch (NamingException ne)
            {
               // Ignore
            }
         }
      }
   }

   
Unbind

Throws:
java.lang.Throwable Thrown in case of an error
   public void unbind() throws Throwable
   {
      if ( == null)
         throw new IllegalArgumentException("Name is null");
      if ()
         .trace("Unbinding " + );
      Context context = null;
      try
      {
         context = new InitialContext();
         Util.unbind(context);
         .remove();
         if (.isDebugEnabled())
            .debug("Unbound " + );
      }
      catch (Throwable t)
      {
         .exceptionDuringUnbind(t);
      }
      finally
      {
         if (context != null)
         {
            try
            {
               context.close();
            }
            catch (NamingException ne)
            {
               // Ignore
            }
         }
      }
   }
New to GrepCode? Check out our FAQ X