Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   *
   * Copyright (c) 1997-2010,2012 Oracle and/or its affiliates. All rights reserved.
   *
   * The contents of this file are subject to the terms of either the GNU
   * General Public License Version 2 only ("GPL") or the Common Development
   * and Distribution License("CDDL") (collectively, the "License").  You
   * may not use this file except in compliance with the License.  You can
  * obtain a copy of the License at
  * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
  * or packager/legal/LICENSE.txt.  See the License for the specific
  * language governing permissions and limitations under the License.
  *
  * When distributing the software, include this License Header Notice in each
  * file and include the License file at packager/legal/LICENSE.txt.
  *
  * GPL Classpath Exception:
  * Oracle designates this particular file as subject to the "Classpath"
  * exception as provided by Oracle in the GPL Version 2 section of the License
  * file that accompanied this code.
  *
  * Modifications:
  * If applicable, add the following below the License Header, with the fields
  * enclosed by brackets [] replaced by your own identifying information:
  * "Portions Copyright [year] [name of copyright owner]"
  *
  * Contributor(s):
  * If you wish your version of this file to be governed by only the CDDL or
  * only the GPL Version 2, indicate your decision by adding "[Contributor]
  * elects to include this software in this distribution under the [CDDL or GPL
  * Version 2] license."  If you don't indicate a single choice of license, a
  * recipient has the option to distribute your version of this file under
  * either the CDDL, the GPL Version 2 or to extend the choice of license to
  * its licensees as provided above.  However, if you add GPL Version 2 code
  * and therefore, elected the GPL Version 2 license, then the option applies
  * only if the new code is made subject to such option by the copyright
  * holder.
  */
 
 package com.sun.enterprise.connectors;
 
 
 import  javax.resource.spi.BootstrapContext;
 import  javax.resource.spi.XATerminator;
 import  javax.resource.spi.work.WorkManager;
 import  javax.resource.spi.work.WorkContext;
 import  javax.transaction.TransactionSynchronizationRegistry;
BootstrapContext implementation.

Author(s):
Qingqing Ouyang, Binod P.G
 
 public final class BootstrapContextImpl implements BootstrapContext, Serializable {
 
     private String poolId;
     private transient WorkManager wm;
     private XATerminator xa;
     private String moduleName;
     private String threadPoolId;
     private ClassLoader rarCL;
 
     private static final Logger logger =
             LogDomains.getLogger(BootstrapContextImpl.class.);

    
Constructs a BootstrapContext with default thread pool for work manager.

Parameters:
moduleName resource-adapter name
Throws:
ConnectorRuntimeException If there is a failure in retrieving WorkManager.
 
     public BootstrapContextImpl (String moduleNamethrows ConnectorRuntimeException{
         this. = moduleName;
         initializeWorkManager();
     }

    
Constructs a BootstrapContext with a specified thread pool for work manager.

Parameters:
poolId thread-pool-id
moduleName resource-adapter name
Throws:
ConnectorRuntimeException If there is a failure in retrieving WorkManager.
 
     public BootstrapContextImpl (String poolIdString moduleNameClassLoader rarCL)
                                  throws ConnectorRuntimeException{
        this. = poolId;
        this. = moduleName;
        this. = rarCL;
        initializeWorkManager();
    }

    
Creates a java.util.Timer instance. This can cause a problem, since the timer threads are not actually under appserver control. We should override the timer later.

Returns:
java.util.Timer object.
    public Timer createTimer() {
        // set the timer as 'daemon' such that RAs that do not cancel the timer during
        // ra.stop() will not block (eg : server shutdown)
        return new Timer("connectors-runtime-context"true);
    }

    
    public boolean isContextSupported(Class<? extends WorkContext> aClass) {
        WorkContextHandler wch = ConnectorRuntime.getRuntime().getWorkContextHandler();
        wch.init();
        return wch.isContextSupported(trueaClass.getName());
    }

    
    public TransactionSynchronizationRegistry getTransactionSynchronizationRegistry() {
        try{
            InitialContext ic = new InitialContext();
            return (TransactionSynchronizationRegistry)ic.lookup("java:comp/TransactionSynchronizationRegistry");
        }catch(Exception e){
            .log(."tx.sync.registry.lookup.failed"e);
            RuntimeException re = new RuntimeException("Transaction Synchronization Registry Unavailable");
            re.initCause(e);
            throw re;
        }
    }

    
Retrieves the work manager.

Returns:
WorkManager instance.
See also:
com.sun.enterprise.connectors.work.CommonWorkManager
com.sun.enterprise.connectors.work.WorkManagerFactoryImpl
    public WorkManager getWorkManager() {
        initializeWorkManager();
        return ;
    }

    
initialize work manager reference
    private void initializeWorkManager() {
        if ( == null) {
            try {
                 = ConnectorRuntime.getRuntime().getWorkManagerProxy();
            } catch(Exception e) {
           	    .log(."workmanager.instantiation_error"e);
            }
        }
    }


    
Retrieves the XATerminator object.
    public XATerminator getXATerminator() {
        initializeXATerminator();
        return ;
    }

    
initializes XATerminator reference
    private void initializeXATerminator() {
        if ( == null) {                                   
             = ConnectorRuntime.getRuntime().getXATerminatorProxy();
        }
    }
New to GrepCode? Check out our FAQ X