Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source.
   * Copyright 2006, Red Hat Middleware LLC, 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.resource.deployers;
 
 import java.net.URL;
 
 
A resource adapter deployment

Author(s):
Adrian Brock
Version:
$Revision: 46109 $
 
 public class RARDeployment extends ServiceDynamicMBeanSupport implements BootstrapContext
 {
   
The RARDeploymentMetaData
 
    protected RARDeploymentMetaData rdmd;
   
   
The ConnectorMetaData
 
    protected ConnectorMetaData cmd;
   
   
The JBossRAMetaData
 
    protected JBossRAMetaData ramd;
   
   
The resource adapter
 
    protected ResourceAdapter resourceAdapter;

   
The work manager
 
    private WorkManager workManager;

   
The xa terminator
 
    private XATerminator xaTerminator;
   
   
Create a new RAR deployment

Parameters:
rdmd the metadata
 
    public RARDeployment(RARDeploymentMetaData rdmd)
    {
 	  if (rdmd == null)
 		  throw new IllegalArgumentException("Null metadata");
 	  this. = rdmd;
 	  this. = rdmd.getConnectorMetaData(); 
       this. = rdmd.getRaXmlMetaData();      
    }
 
    public Timer createTimer() throws UnavailableException
    {
       return new Timer(true);
    }

   
Get the workManager.

Returns:
the workManager.
   {
      return ;
   }

   
Set the workManager.

Parameters:
workManager the workManager.
   public void setWorkManager(WorkManager workManager)
   {
      this. = workManager;
   }

   
Get the XATerminator.

Returns:
the xaTerminator.
   {
      return ;
   }

   
Set the xXATerminator.

Parameters:
xaTerminator the XATerminator.
   public void setXATerminator(XATerminator xaTerminator)
   {
      this. = xaTerminator;
   }
   protected void startService() throws Exception
   {
      URL url = .getURL();      
      if (.getLicense().getRequired())
      {    	  
         .info ("Required license terms exist, view " + ServerConfigUtil.shortUrlFromServerHome(url.toString()));         
         .debug("License terms full URL: " + url);
      }           
       = ResourceAdapterFactory.createResourceAdapter();
      .start(this);
   }
   
   protected void stopService() throws Exception
   {
      .stop();
   }
   
   protected String getInternalDescription()
   {
      String description = null;
      if (dgmd != null)
         description = dgmd.getDescription();
      if (description == null)
         description = "RAR Deployment " + .getURL();
      return description;
   }
   {
      Collection<ConfigPropertyMetaDataproperties = .getProperties();
      MBeanAttributeInfo[] attrs = new MBeanAttributeInfo[13+properties.size()];
      attrs[0] = new MBeanAttributeInfo("MetaData"ConnectorMetaData.class.getName(), "The meta data"truefalsefalse);
      attrs[1] = new MBeanAttributeInfo("AuthenticationMechanism"String.class.getName(), "The authentication mechanism"truefalsefalse);
      attrs[2] = new MBeanAttributeInfo("EISType"String.class.getName(), "The EIS type"truefalsefalse);
      attrs[3] = new MBeanAttributeInfo("License"String.class.getName(), "The license"truefalsefalse);
      attrs[4] = new MBeanAttributeInfo("RAClass"String.class.getName(), "The resource adapter class"truefalsefalse);
      attrs[5] = new MBeanAttributeInfo("RAVersion"String.class.getName(), "The resource adapter version"truefalsefalse);
      attrs[6] = new MBeanAttributeInfo("TransactionSupport"String.class.getName(), "The transaction support"truefalsefalse);
      attrs[7] = new MBeanAttributeInfo("VendorName"String.class.getName(), "The vendor name"truefalsefalse);
      attrs[8] = new MBeanAttributeInfo("Version"String.class.getName(), "The spec version"truefalsefalse);
      attrs[9] = new MBeanAttributeInfo("ReauthenticationSupport"..getName(), "Whether reauthentication support is supported"truefalsefalse);
      attrs[10] = new MBeanAttributeInfo("ResourceAdapter"ResourceAdapter.class.getName(), "The resource adapter instance"truefalsefalse);
      attrs[11] = new MBeanAttributeInfo("WorkManager"WorkManager.class.getName(), "The work manager"truetruefalse);
      attrs[12] = new MBeanAttributeInfo("XATerminator"XATerminator.class.getName(), "The xa terminator"truetruefalse);
      int n = 13;
      for (ConfigPropertyMetaData cpmd : properties)
      {
         attrs[n++] = new MBeanAttributeInfo(cpmd.getName(), cpmd.getType(), cpmd.getDescription().getDescription(), truefalsefalse);
      }
      return attrs;
   }
   
   protected Object getInternalAttribute(String attribute)
   {
      if ("MetaData".equals(attribute))
         return ;
      else if ("AuthenticationMechanism".equals(attribute))
      else if ("EISType".equals(attribute))
         return .getEISType();
      else if ("License".equals(attribute))
         return .getLicense().getDescription().getDescription();
      else if ("RAClass".equals(attribute))
         return .getRAClass();
      else if ("RAVersion".equals(attribute))
         return .getRAVersion();
      else if ("TransactionSupport".equals(attribute))
         return .getTransactionSupport();
      else if ("VendorName".equals(attribute))
         return .getVendorName();
      else if ("Version".equals(attribute))
         return .getVersion();
      else if ("ReauthenticationSupport".equals(attribute))
         return new Boolean(.getReauthenticationSupport());
      else if ("ResourceAdapter".equals(attribute))
         return ;
      else if ("WorkManager".equals(attribute))
         return ;
      else if ("XATerminator".equals(attribute))
         return ;
      Object property = .getProperty(attribute);
      if (property != null)
         return property;
      
      return super.getInternalAttribute(attribute);
   }
   {
      String name = attribute.getName();
      if ("WorkManager".equals(name))
         this. = (WorkManagerattribute.getValue();
      else if ("XATerminator".equals(name))
         this. = (XATerminatorattribute.getValue();
      else
         super.setInternalAttribute(attribute);
   }
   {
      MBeanOperationInfo[] ops = new MBeanOperationInfo[3];
      MBeanParameterInfo[] createActivationSpecParams = new MBeanParameterInfo[]
      {
         new MBeanParameterInfo("MessagingType"Class.class.getName(), "The type of the message listener"),
         new MBeanParameterInfo("ActivationConfig"Collection.class.getName(), "A collection of activation config properties")
      };
      ops[0] = new MBeanOperationInfo("createActivationSpec""Create an activation spec",
            createActivationSpecParamsActivationSpec.class.getName(), .);
      MBeanParameterInfo[] activationParams = new MBeanParameterInfo[]
      {
         new MBeanParameterInfo("MessageEndpointFactory"MessageEndpointFactory.class.getName(), "The message endpoint factory"),
         new MBeanParameterInfo("ActivationSpec"ActivationSpec.class.getName(), "The activation spec")
      };
      ops[1] = new MBeanOperationInfo("endpointActivation""Active the endpoint",
            activationParamsVoid.class.getName(), .);
      ops[2] = new MBeanOperationInfo("endpointDeactivation""Deactive the endpoint",
            activationParamsVoid.class.getName(), .);
      return ops;
   }
   
   @SuppressWarnings("unchecked")
   protected Object internalInvoke(String actionNameObject[] paramsString[] signaturethrows MBeanException,
         ReflectionException
   {
      if ("createActivationSpec".equals(actionName))
      {
         if (params.length != 2)
            throw new IllegalArgumentException("Wrong number of parameters for " + actionName);
         Class messagingType = (Classparams[0];
         Collection activationConfig = (Collectionparams[1];
         return createActivationSpec(messagingTypeactivationConfig);
      }
      else if ("endpointActivation".equals(actionName))
      {
         if (params.length != 2)
            throw new IllegalArgumentException("Wrong number of parameters for " + actionName);
         MessageEndpointFactory messageEndpointFactory = (MessageEndpointFactoryparams[0];
         ActivationSpec activationSpec = (ActivationSpecparams[1];
         endpointActivation(messageEndpointFactoryactivationSpec);
         return null;
      }
      else if ("endpointDeactivation".equals(actionName))
      {
         if (params.length != 2)
            throw new IllegalArgumentException("Wrong number of parameters for " + actionName);
         MessageEndpointFactory messageEndpointFactory = (MessageEndpointFactoryparams[0];
         ActivationSpec activationSpec = (ActivationSpecparams[1];
         endpointDeactivation(messageEndpointFactoryactivationSpec);
         return null;
      }
      return super.internalInvoke(actionNameparamssignature);
   }
   @SuppressWarnings("unchecked")
   protected ActivationSpec createActivationSpec(Class messagingTypeCollection activationConfigthrows MBeanException
   {
      boolean trace = .isTraceEnabled();
      if (trace)
         .trace("CreateActivateSpec rar=" + getServiceName() + " messagingType=" + messagingType.getName() + " activationConfig=" + activationConfig);
      
      try
      {
         // Find the meta data
         MessageListenerMetaData mlmd = .getMessageListener(messagingType.getName());
         if (mlmd == null)
            throw new DeploymentException("MessagingType '" + messagingType.getName() + "' not found in resource deployment " + getServiceName());
         
         return ActivationSpecFactory.createActivationSpec(getServiceName(), messagingType.getName(), activationConfigmlmd);
      }
      catch (Exception e)
      {
         throw new MBeanException(e"Error in create activation spec " + getServiceName());
      }
   }
   protected void endpointActivation(MessageEndpointFactory messageEndpointFactoryActivationSpec activationSpecthrows MBeanException
   {
      boolean trace = .isTraceEnabled();
      if (trace)
         .trace("EndpointActivation rar=" + getServiceName() + " messagingEndpointFactory=" + messageEndpointFactory + " activationSpec=" + activationSpec);
      try
      {
         activationSpec.setResourceAdapter();
         .endpointActivation(messageEndpointFactoryactivationSpec);
      }
      catch (Exception e)
      {
         throw new MBeanException(e"Error in endpoint activation " + getServiceName());
      }
   }
   protected void endpointDeactivation(MessageEndpointFactory messageEndpointFactoryActivationSpec activationSpecthrows MBeanException
   {
      boolean trace = .isTraceEnabled();
      if (trace)
         .trace("EndpointDeactivation rar=" + getServiceName() + " messagingEndpointFactory=" + messageEndpointFactory + " activationSpec=" + activationSpec);
      try
      {
         .endpointDeactivation(messageEndpointFactoryactivationSpec);
      }
      catch (Exception e)
      {
         throw new MBeanException(e"Error in endpoint deactivation " + getServiceName());
      }
   }
New to GrepCode? Check out our FAQ X