Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * IronJacamar, a Java EE Connector Architecture implementation
   * Copyright 2012, 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.bootstrapcontext;
 
 
 import java.util.Map;
 
Coordinator for BootstrapContext instances

Author(s):
Jesper Pedersen
 
 {
   
The logger
 
    private static CoreLogger log = Logger.getMessageLogger(CoreLogger.class,
                                                            BootstrapContextCoordinator.class.getName());

   
Whether trace is enabled
 
    private static boolean trace = .isTraceEnabled();

   
The instance
 
    private static final BootstrapContextCoordinator INSTANCE = new BootstrapContextCoordinator();

   
The bootstrap contexts
 
The default bootstrap context
 
The activate bootstrap contexts
 
The ref count for activate bootstrap contexts
 
    private Map<StringIntegerrefCountBootstrapContexts;

   
Constructor
 
    {
       this. = null;
       this. = new HashMap<StringInteger>();
    }

   
Get the instance

Returns:
The instance
 
    public static BootstrapContextCoordinator getInstance()
    {
       return ;
    }

   
Register bootstrap context

Parameters:
bc The bootstrap context
 
    {
       if (bc != null)
       {
          if (bc.getName() == null || bc.getName().trim().equals(""))
             throw new IllegalArgumentException("The name of BootstrapContext is invalid: " + bc);
 
          if (!.keySet().contains(bc.getName()))
          {
             .put(bc.getName(), bc);
          }
      }
   }

   
Unregister boostrap context

Parameters:
bc The bootstrap context
   {
      if (bc != null)
      {
         if (bc.getName() == null || bc.getName().trim().equals(""))
            throw new IllegalArgumentException("The name of BootstrapContext is invalid: " + bc);
         if (.keySet().contains(bc.getName()))
         {
            .remove(bc.getName());
         }
      }
   }

   
Get the default bootstrap context

Returns:
The bootstrap context
   {
      return ;
   }

   
Set the default bootstrap context

Parameters:
bc The bootstrap context
   {
      if ()
         .tracef("Default BootstrapContext: %s"bc);
      String currentName = null;
      if ( != null)
         currentName = .getName();
       = bc;
      if (bc != null)
      {
         .put(bc.getName(), bc);
      }
      else if (currentName != null)
      {
         .remove(currentName);
      }
   }

   
Create a bootstrap context

Parameters:
id The id of the bootstrap context
Returns:
The bootstrap context
   {
      return createBootstrapContext(idnull);
   }

   
Get a bootstrap context

Parameters:
id The id of the bootstrap context
name The name of the bootstrap context; if null default value is used
Returns:
The bootstrap context
   public synchronized CloneableBootstrapContext createBootstrapContext(String idString name)
   {
      if (id == null || id.trim().equals(""))
         throw new IllegalArgumentException("The id of BootstrapContext is invalid: " + id);
      // Check for an active work manager
      {
         Integer i = .get(id);
         .put(id, Integer.valueOf(i.intValue() + 1));
         return .get(id);
      }
      try
      {
         // Create a new instance
         CloneableBootstrapContext template = null;
         if (name != null)
         {
            template = .get(name);
         }
         else
         {
            template = ;
         }
         if (template == null)
            throw new IllegalArgumentException("The BootstrapContext wasn't found: " + name);
         CloneableBootstrapContext bc = template.clone();
         bc.setId(id);
         org.jboss.jca.core.api.workmanager.WorkManager wm =
            WorkManagerCoordinator.getInstance().createWorkManager(idbc.getWorkManagerName());
         bc.setWorkManager(wm);
         .put(idbc);
         .put(id, Integer.valueOf(1));
         if ()
            .tracef("Created BootstrapContext: %s"bc);
         return bc;
      }
      catch (Throwable t)
      {
         throw new IllegalStateException("The BootstrapContext couldn't be created: " + namet);
      }
   }

   
Remove a bootstrap context

Parameters:
id The id of the bootstrap context
   public synchronized void removeBootstrapContext(String id)
   {
      if (id == null || id.trim().equals(""))
         throw new IllegalArgumentException("The id of BootstrapContext is invalid: " + id);
      Integer i = .get(id);
      if (i != null)
      {
         int newValue = i.intValue() - 1;
         if (newValue == 0)
         {
            .remove(id);
            .remove(id);
            WorkManagerCoordinator.getInstance().removeWorkManager(id);
         }
         else
         {
            .put(id, Integer.valueOf(newValue));
         }
      }
   }

   
Create an identifier

Parameters:
raClz The resource adapter class name
cps The config properties
Returns:
The id
   public String createIdentifier(String raClzMap<StringStringcps)
   {
      return createIdentifier(raClzcpsnull);
   }

   
Create an identifier

Parameters:
raClz The resource adapter class name
cps The config properties
bootstrapContextName The name of the bootstrap context
Returns:
The id
   public String createIdentifier(String raClzMap<StringStringcpsString bootstrapContextName)
   {
      if ( == null)
         throw new IllegalArgumentException("No default BootstrapContext defined");
      StringBuffer sb = new StringBuffer();
      sb.append(raClz);
      if (cps != null && cps.size() > 0)
      {
         sb.append(";");
         Iterator<Map.Entry<StringString>> iterator = cps.entrySet().iterator();
         while (iterator.hasNext())
         {
            Map.Entry<StringStringentry = iterator.next();
            sb.append(entry.getKey()).append("=").append(entry.getValue());
            if (iterator.hasNext())
               sb.append(":");
         }
      }
      sb.append("-");
      if (bootstrapContextName != null && !bootstrapContextName.trim().equals(""))
      {
         sb.append(bootstrapContextName);
      }
      else
      {
         sb.append(.getName());
      }
      return sb.toString();
   }
New to GrepCode? Check out our FAQ X