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.connectionmanager;
 
 import java.util.List;
 
 
 import  org.jboss.metadata.MetaData;
A ManagedConnectionFactoryDeployment.

Author(s):
Weston Price
Version:
$Revision: 1.1 $
 
 {

   
The serialVersionUID
 
    private static final long serialVersionUID = -8448602289610025849L;
 
    public final static String MCF_ATTRIBUTE_CHANGED_NOTIFICATION = "jboss.mcfattributechangednotification";
 
    private Logger log = Logger.getLogger(getClass());
 
    //Hack to use previous ra.xml parsing code until xslt deployment is written.
    private ObjectName oldRarDeployment;
 
    private String rarName;
 
    private String connectionDefinition;
 
    private String vendorName;
 
    private String specVersion;
 
    private String eisType;
 
    private String version;
 
   private String transactionSupport;
   private boolean reauthenticationSupport;
   private Class mcfClass;
   private String jndiName;
   
   
   
   private ConnectorMetaData cmd;
   
   
Default managed constructor for RARDeployment mbeans.
   {
   }
   
   {
      this. = cmd;
      this. = dmd;      
   }
   
   public String getJndiName()
   {
      return this.;
   }
   
   public void setJndiName(String jndiName)
   {
      this. = jndiName;
      
   }
   public String getRARName()
   {
      return ;
   }
   public void setRARName(String rarName)
   {
      this. = rarName;
   }
   {
      return ;
   }
   public void setConnectionDefinition(String connectionDefinition)
   {
      this. = connectionDefinition;
   }
   public String getVendorName()
   {
      return ;
   }
   public void setVendorName(String vendorName)
   {
      this. = vendorName;
   }
   public String getSpecVersion()
   {
      return ;
   }
   public void setSpecVersion(String specVersion)
   {
      this. = specVersion;
   }
   public String getEisType()
   {
      return ;
   }
   public void setEisType(String eisType)
   {
      this. = eisType;
   }
   public String getVersion()
   {
      return ;
   }
   public void setVersion(String version)
   {
      this. = version;
   }
   {
   }
   public void setManagedConnectionFactoryClass(final String managedConnectionFactoryClass)
   {
      this. = managedConnectionFactoryClass;
   }
   {
      return ;
   }
   public void setConnectionFactoryInterface(String connectionFactoryInterface)
   {
      this. = connectionFactoryInterface;
   }
   {
      return ;
   }
   public void setConnectionFactoryImplClass(String connectionFactoryImplClass)
   {
      this. = connectionFactoryImplClass;
   }
   {
      return ;
   }
   public void setConnectionInterface(String connectionInterface)
   {
      this. = connectionInterface;
   }
   {
      return ;
   }
   public void setConnectionImplClass(String connectionImplClass)
   {
      this. = connectionImplClass;
   }
   {
      return ;
   }
   public void setTransactionSupport(String transactionSupport)
   {
      this. = transactionSupport;
   }
   {
   }
   public void setManagedConnectionFactoryProperties(Element managedConnectionFactoryProperties)
   {
      this. = managedConnectionFactoryProperties;
   }
   {
      return ;
   }
   public void setAuthenticationMechanismType(String authenticationMechanismType)
   {
      this. = authenticationMechanismType;
   }
   {
      return ;
   }
   public void setCredentialInterface(String credentialInterface)
   {
      this. = credentialInterface;
   }
   public boolean isReauthenticationSupport()
   {
      return ;
   }
   public void setReauthenticationSupport(boolean reauthenticationSupport)
   {
      this. = reauthenticationSupport;
   }
   {
      return ;
   }
   
   protected void startService() throws Exception
   {
      if ( != null)
         throw new DeploymentException("Stop the RARDeployment before restarting it");
      ResourceAdapter resourceAdapter = null;
      
      try
      {
         resourceAdapter = (ResourceAdaptergetServer().getAttribute("ResourceAdapter");
         if (cdmd == null)
            throw new DeploymentException("ConnectionDefinition '" +  + "' not found in rar '"
                  +  + "'");
      }
      catch (Exception e)
      {
         throw new DeploymentException("couldn't get oldRarDeployment! " + e);
      }
      
      try
      {
      }
      catch (ClassNotFoundException cnfe)
      {
         .error("Could not find ManagedConnectionFactory class: " + cnfe);
         throw new DeploymentException("Could not find ManagedConnectionFactory class: "
               + );
      }
      try
      {
      }
      catch (Exception e)
      {
         .error("Could not instantiate ManagedConnectionFactory: " + e);
         throw new DeploymentException("Could not instantiate ManagedConnectionFactory: "
               + );
      }
      
      if ( != null)
      {
         // Set the resource adapter properties
         setMcfProperties(.getProperties(), false);
         // Set the connection definition properties
         setMcfProperties(cdmd.getProperties(), true);
      }
      
      if (resourceAdapter != null &&  instanceof ResourceAdapterAssociation)
      {
         raa.setResourceAdapter(resourceAdapter);
      }
   }
   protected void stopService()
   {
       = null;
       = null;
   }
   public void setManagedConnectionFactoryAttribute(String nameClass clazzObject value)
   {
      setManagedConnectionFactoryAttribute(nameclazzvaluefalse);
   }
   
   protected void setManagedConnectionFactoryAttribute(String nameClass clazzObject valueboolean mustExist)
   {
      if (name == null || name.length() == 0)
         throw new IllegalArgumentException("Null or empty attribute name " + name);
      String setterName = "set" + Character.toUpperCase(name.charAt(0));
      if (name.length() > 1)
         setterName = setterName.concat(name.substring(1));
      Method setter;
      try
      {
         setter = .getMethod(setterNamenew Class[] {clazz});
      }
      catch (NoSuchMethodException nsme)
      {
         String error = "The class '" + .toString() + "' has no setter for config property '" + name + "'"
         if (mustExist)
            throw new IllegalArgumentException(error);
         else
         {
            .trace(errornsme);
            return;
         }
      }
      try
      {
         setter.invoke(new Object[] {value});
         .debug("set property " + name + " to value " + value);
      }
      catch (Exception e)
      {
         String error = "Unable to invoke setter method '" + setter + "' " + "on object '" +  + "'";
         if (e instanceof InvocationTargetException)
            throw new NestedRuntimeException(error, ((InvocationTargetExceptione).getCause());
         else
            throw new NestedRuntimeException(errore);
      }
            getNextNotificationSequenceNumber()));
   }
   {
      if (name == null || name.length() == 0)
         throw new IllegalArgumentException("Null or empty attribute name " + name);
      String getterName = "get" + Character.toUpperCase(name.charAt(0));
      if (name.length() > 1)
         getterName = getterName.concat(name.substring(1));
      Method getter;
      try
      {
         getter = .getMethod(getterNamenew Class[] {});
      }
      catch (NoSuchMethodException e)
      {
         String msg = "The class '" +  + "' has no getter("
            + getterName + ") for config property '" + name + "'";
         .debug(msge);
         throw new IllegalArgumentException(msg);
      }
      try
      {
         Object value = getter.invoke(new Object[]{});
         .debug("get property " + name + ": value " + value);
         return value;
      }
      catch (Exception e)
      {
         String error = "Unable to invoke getter method '" + getter + "' " + "on object '" +  + "'";
         .debug(errore);
         if (e instanceof InvocationTargetException)
            throw new NestedRuntimeException(error, ((InvocationTargetExceptione).getCause());
         else
            throw new NestedRuntimeException(errore);
      }
   }
   protected void setMcfProperties(Collection propertiesboolean mustExistthrows DeploymentException
   {
      for (Iterator i = properties.iterator(); i.hasNext();)
      {
         ConfigPropertyMetaData cpmd = (ConfigPropertyMetaDatai.next();
         String name = cpmd.getName();
         String type = cpmd.getType();
         String value = cpmd.getValue();
         if (name == null || name.length() == 0 || value == null || value.length() == 0)
         {
            .debug("Not setting config property '" + name + "'");
            continue;
         }
         // see if it is a primitive type first
         Class clazz = Classes.getPrimitiveTypeForName(type);
         if (clazz == null)
         {
            //not primitive, look for it.
            try
            {
               clazz = Thread.currentThread().getContextClassLoader().loadClass(type);
            }
            catch (ClassNotFoundException cnfe)
            {
               .warn("Unable to find class '" + type + "' for " + "property '" + name + "' - skipping property.");
               continue;
            }
         }
         PropertyEditor pe = PropertyEditorManager.findEditor(clazz);
         if (pe == null)
         {
            .warn("Unable to find a PropertyEditor for class '" + clazz + "' of property '" + name + "' - "
                  + "skipping property");
            continue;
         }
         // TODO: should happen in parsing layer?
         value = StringPropertyReplacer.replaceProperties(value);
         .debug("setting property: " + name + " to value " + value);
         try
         {
            pe.setAsText(value);
         }
         catch (IllegalArgumentException iae)
         {
            .warn("Value '" + value + "' is not valid for property '" + name + "' of class '" + clazz
                  + "' - skipping " + "property");
            continue;
         }
         Object v = pe.getValue();
         setManagedConnectionFactoryAttribute(nameclazzvmustExist);
      }
   }
   
   {
      
      for (ManagedConnectionFactoryPropertyMetaData property : properties)
      {
         String name = property.getName();
         String type = property.getType();
         String value = property.getValue();
         
         if (name == null || name.length() == 0 || value == null || value.length() == 0)
         {
            .debug("Not setting config property '" + name + "'");
            continue;
         }
         
         if (type == null || type.length() == 0)
         {
            // Default to String for convenience.
            type = "java.lang.String";
         }
         Class clazz = Classes.getPrimitiveTypeForName(type);
         if (clazz == null)
         {
            //not primitive, look for it.
            try
            {
               clazz = Thread.currentThread().getContextClassLoader().loadClass(type);
            }
            catch (ClassNotFoundException cnfe)
            {
               .warn("Unable to find class '" + type + "' for " + "property '" + name
                     + "' - skipping property.");
               continue;
            }
         }
         PropertyEditor pe = PropertyEditorManager.findEditor(clazz);
         if (pe == null)
         {
            .warn("Unable to find a PropertyEditor for class '" + clazz + "' of property '" + name + "' - "
                  + "skipping property");
            continue;
         }
         // TODO: should happen in parsing layer?
         value = StringPropertyReplacer.replaceProperties(value);
         .debug("setting property: " + name + " to value " + value);
         try
         {
            pe.setAsText(value);
         }
         catch (IllegalArgumentException iae)
         {
            .warn("Value '" + value + "' is not valid for property '" + name + "' of class '" + clazz
                  + "' - skipping " + "property");
            continue;
         }
         Object v = pe.getValue();
         setManagedConnectionFactoryAttribute(nameclazzv);
      
      }
      
      
   }
   {
      return .createConnectionFactory();
   }
   {
      return .createConnectionFactory(cxManager);
   }
         ConnectionRequestInfo cxRequestInfothrows ResourceException
   {
      return .createManagedConnection(subjectcxRequestInfo);
   }
   public boolean equals(Object other)
   {
      return .equals(other);
   }
   {
      return .getLogWriter();
   }
   public String toString()
   {
      StringBuffer buffer = new StringBuffer();
      buffer.append(getClass().getName());
      buffer.append('@');
      buffer.append(Integer.toHexString(System.identityHashCode(this)));
      return buffer.toString();
   }
   
   public int hashCode()
   {
      return .hashCode();
   }
         ConnectionRequestInfo cxRequestInfothrows ResourceException
   {
      return .matchManagedConnections(connectionSetsubjectcxRequestInfo);
   }
   public void setLogWriter(java.io.PrintWriter outthrows ResourceException
   {
      .setLogWriter(out);
   }
   {
      List<MBeanAttributeInfoattributes = new ArrayList<MBeanAttributeInfo>();
      attributes.add(new MBeanAttributeInfo("RARName"String.class.getName(), "The ResourceAdapter deployment name."truefalsefalse));
      attributes.add(new MBeanAttributeInfo("OldRarDeployment"javax.management.ObjectName.class.getName(), "The Connection Defintion class name."truetruefalse));
      attributes.add(new MBeanAttributeInfo("ConnectionDefinition"String.class.getName(), "The Connection Defintion class name."truefalsefalse));
      attributes.add(new MBeanAttributeInfo("VendorName"String.class.getName(), "The Vendor Name."truefalsefalse));
      attributes.add(new MBeanAttributeInfo("SpecVersion"String.class.getName(), "The Specification Version."truefalsefalse));
      attributes.add(new MBeanAttributeInfo("EisType"String.class.getName(), "The Enterprise Information System type."truefalsefalse));
      attributes.add(new MBeanAttributeInfo("Version"String.class.getName(), "The ResourceAdapter version."truefalsefalse));
      attributes.add(new MBeanAttributeInfo("ManagedConnectionFactoryClass"String.class.getName(), "The ManagedConnectionFactory class"truefalsefalse));
      attributes.add(new MBeanAttributeInfo("ConnectionFactoryImpl"String.class.getName(), "The Connection Factory implementation"truefalsefalse));
      attributes.add(new MBeanAttributeInfo("ConnectionInterface"String.class.getName(), "The Connection Inteface"truefalsefalse));
      attributes.add(new MBeanAttributeInfo("ConnectionImplClass"String.class.getName(), "The Connection Implementation class"truefalsefalse));
      attributes.add(new MBeanAttributeInfo("TransactionSupport"String.class.getName(), "The Transaction Support"truefalsefalse));
      attributes.add(new MBeanAttributeInfo("AuthenticationMechanismType"String.class.getName(), "The Authentication Mechanism Type"truefalsefalse));
      attributes.add(new MBeanAttributeInfo("CredentialInterface"String.class.getName(), "The Credential Interface"truefalsefalse));
      attributes.add(new MBeanAttributeInfo("ReauthenticationSupport"Boolean.class.getName(), "The Reauthentication Support"truefalsetrue));
      attributes.add(new MBeanAttributeInfo("McfInstance""javax.resource.spi.ManagedConnectionFactory""The ManagedConnectionFactory instance"truefalsefalse));
      
//      ConnectionDefinitionMetaData cdmd = cmd.getConnectionDefinition(this.connectionDefinition);
      
//      Collection mcfProps = cdmd.getProperties();
//      
//      for(Iterator iter = mcfProps.iterator(); iter.hasNext();)
//      {
//         ConfigPropertyMetaData cpmd = (ConfigPropertyMetaData)iter.next();         
//         attributes.add(new MBeanAttributeInfo(cpmd.getName(), cpmd.getType(), cpmd.getDescription().getDescription(), true, false, false));         
//      }
      MBeanAttributeInfo[] info = attributes.toArray(new MBeanAttributeInfo[attributes.size()]);
      return info;
            
   }
   
   {
      if("OldRarDeployment".equals(attribute.getName()))
      {
         this. = (ObjectName)attribute.getValue();
         
      }
   }
   {
      MBeanOperationInfo[] operations = new MBeanOperationInfo[1]; 
      MBeanParameterInfo[] getMCFAttributeParamInfo = new MBeanParameterInfo[]{ new MBeanParameterInfo("ManagedConnectionFactoryAttributeName"String.class.getName(), "The ManagedConnectionFactoryAttribute name")};
      operations[0] = new MBeanOperationInfo("getManagedConnectionFactoryAttribute""Inspect the value of a ManagedConnectionFactory attribute"getMCFAttributeParamInfoObject.class.getName(), .);
      return operations;
      
   }
   
   protected Object internalInvoke(String actionNameObject[] paramsString[] signaturethrows MBeanExceptionReflectionException
   {
      if(actionName.equals("getManagedConnectionFactoryAttribute"))
      {
         String param = (String)params[0];
         return getManagedConnectionFactoryAttribute(param);
   
      }
      else
      {
         return super.internalInvoke(actionNameparamssignature);
      }
   
   }
   {
      
      Object result = null;
      
      if("RARName".equals(attribute))
      {
         result = ;         
      
      }else if("OldRarDeployment".equals(attribute))
      {
         result = ;
      }
      else if("ConnectionDefinition".equals(attribute))
      {
         result = .getConnectionDefinition();         
      
      }else if("VendorName".equals(attribute))
      {
         result = .getVendorName();         
      
      }else if("SpecVersion".equals(attribute))
      {
         result = .getVersion();         
      
      }else if("EisType".equals(attribute))
      {
         result = .getEISType();               
      
      }else if("Version".equals(attribute))
      {
         result = .getRAVersion();
      
      }else if("ManagedConnectionFactoryClass".equals(attribute))
      {
         result = cdmd.getManagedConnectionFactoryClass();         
      }else if("ConnectionInterface".equals(attribute))
      {
         result = cdmd.getConnectionInterfaceClass();         
      }
      else if("ConnectionFactoryImpl".equals(attribute))
      {
         result = cdmd.getConnectionFactoryImplementationClass();
         
      }else if("ConnectionImplClass".equals(attribute))
      {
         result = cdmd.getConnectionImplementationClass();
      
      }
      else if("TransactionSupport".equals(attribute))
      {
         result = .getTransactionSupportMetaData();         
      
      }
      else if("AuthenticationMechanismType".equals(attribute))
      {
         result = .getAuthenticationMechanism().getAuthenticationMechansimType();      
      
      }
      else if("CredentialInterface".equals(attribute))
      {
      
      }
      else if("ReauthenticationSupport".equals(attribute))
      {
         result = .getReauthenticationSupport();
               
      }
      else if("McfInstance".equals(attribute))
      {
         result = ;               
      }
      
      if(result == null)
      {
         result = super.getInternalAttribute(attribute);
      }
      
      return result;
   }
   
   protected String getInternalDescription()
   {
      String description = null;
      if (dgmd != null)
         description = dgmd.getDescription();
      if (description == null)
         description = "RAR Deployment ";
      return description;
   }
New to GrepCode? Check out our FAQ X