Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source
   * Copyright 2007, Red Hat Middleware LLC, and individual contributors
   * by the @authors tag. See the copyright.txt 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.management;
 
 import java.util.Map;
 import java.util.List;
 
The template for creating jca datasources, connection factories

Author(s):
Scott.Stark@jboss.org
Version:
$Revision: 81460 $
 
 {
    private static final long serialVersionUID = 1;
   
The meta value factory
 
    private static MetaValueFactory METAVALUE_FACTORY = MetaValueFactory.getInstance();
    private static final MetaTypeFactory METATYPE_FACTORY = MetaTypeFactory.getInstance();
    private Map<StringStringpropertyNameMappings;
    private String dsType = "local-tx-datasource";
 
    public DsDataSourceTemplateInfo(String arg0String arg1Map<StringManagedPropertyarg2)
    {
       super(arg0arg1arg2);
       // TODO Auto-generated constructor stub
    }
 
    public DsDataSourceTemplateInfo(String nameString descriptionString datasourceType)
    {
       super(namedescription);
       this. = datasourceType;
    }
 
    {
       return ;
    }
    public void setPropertyNameMappings(Map<StringStringpropertyNameMappings)
    {
       this. = propertyNameMappings;
    }
 
 
    {
       return ;
    }
 
    public void setConnectionFactoryType(String dsType)
    {
       this. = dsType;
   }
   public void start()
   {
/*
      // The type of the datasource
      ManagedObjectImpl mo2 = new ManagedObjectImpl(ManagedConnectionFactoryDeploymentGroup.class.getName());
      DefaultFieldsImpl dsTypeField = new DefaultFieldsImpl();
      setFieldName("datasource-type", dsTypeField);
      dsTypeField.setDescription("The type of the DataSource");
      dsTypeField.setMandatory(true);
      dsTypeField.setValue("local-tx-datasource");
      HashSet<MetaValue> values = new HashSet<MetaValue>();
      values.add(SimpleValueSupport.wrap("local-tx-datasource"));
      values.add(SimpleValueSupport.wrap("no-tx-datasource"));
      values.add(SimpleValueSupport.wrap("xa-datasource"));
      values.add(SimpleValueSupport.wrap("no-tx-connection-factory"));
      values.add(SimpleValueSupport.wrap("tx-connection-factory"));
      dsTypeField.setLegalValues(values);
      dsTypeField.setMetaType(SimpleMetaType.STRING);
      ManagedPropertyImpl dsTypeProp = new ManagedPropertyImpl(mo2, dsTypeField);
      super.addProperty(dsTypeProp);
      if(this.dsType != null)
         dsTypeField.setValue(this.dsType);
      else
         this.dsType = (String)dsTypeField.getValue();
*/
      // DataSource
      if("local-tx-datasource".equals())
         createLocalTxDsTemplate();
      else if("xa-datasource".equals())
         createXaDsTemplate();
      else if("tx-connection-factory".equals())
         createTxCfTemplate();
      else if("no-tx-datasource".equals())
         createNoTxDsTemplate();
      else if("no-tx-connection-factory".equals())
         createNoTxCfTemplate();
      else
         throw new IllegalStateException("Unsupported dsType: " + );
   }
   private void createXaDsTemplate()
   {
      addDsProperties(mo);
      addManagedProperty("xa-datasource-class""The xa datasource class name"true.mo);
      addManagedProperty("xa-datasource-properties""The xa datasource properties"falsetypemo);
      addManagedProperty("url-property""The URL property"true.mo);
      addManagedProperty("xa-resource-timeout""The XA resource timeout"true.new Integer(0), mo);
   }
   private void createLocalTxDsTemplate()
   {
      addNonXADsProperties(mo);
   }
   private void createNoTxDsTemplate()
   {
      addNonXADsProperties(mo);
   }
   private void createTxCfTemplate()
   {
      addCommonProperties(mo);
      addManagedProperty("xa-resource-timeout""The XA resource timeout"true.new Integer(0), mo);
      addManagedProperty("xa-transaction"""true.mo);
   }
   private void createNoTxCfTemplate()
   {
      addCommonProperties(mo);
   }
   private void addNonXADsProperties(ManagedObjectImpl mo)
   {
      addDsProperties(mo);
      addManagedProperty("driver-class""The jdbc driver class name"true.mo);
      addManagedProperty("connection-url""The jdbc url of the DataSource"true.mo);
      addManagedProperty("connection-properties""The jdbc driver connection properties"falsetypemo);
   }
   private void addDsProperties(ManagedObjectImpl mo)
   {
      addCommonProperties(mo);
      addManagedProperty("transaction-isolation""The transaction isolation level"false.mo);
      addManagedProperty("user-name""The username for the connection-url"false.mo);
      addManagedProperty("password""The password for the connection-url"false.mo);
      addManagedProperty("new-connection-sql"""false.mo);
      addManagedProperty("check-valid-connection-sql"""false.mo);
      addManagedProperty("valid-connection-checker-class-name"""false.mo);
      addManagedProperty("exception-sorter-class-name"""false.mo);
      addManagedProperty("stale-connection-checker-class-name"""false.mo);
      addManagedProperty("track-statements"""false.mo);
      addManagedProperty("prepared-statement-cache-size"""false.new Integer(0), mo);
      addManagedProperty("share-prepared-statements"""false..mo);
      addManagedProperty("set-tx-query-timeout"""false..mo);
      addManagedProperty("query-timeout"""false.new Integer(0), mo);
      addManagedProperty("url-delimiter"""false.mo);
      addManagedProperty("url-selector-strategy-class-name"""false.mo);
      addManagedProperty("use-try-lock"""false.mo);
   }
   private void addCommonProperties(ManagedObjectImpl mo)
   {
      // perhaps these descriptions should be externalized in some way
      addManagedProperty("jndi-name""The jndi name to bind the DataSource under"truetrue.""mo);
      addManagedProperty("rar-name""The resource adapter archive name"true.mo);
      addManagedProperty("use-java-context""Whether to bind the connection factory under 'java:' context"true..mo);
      addManagedProperty("connection-definition""The connection factory class name"true.mo);
      addManagedProperty("jmx-invoker-name""The name of the JMX invoker"true.mo);
      addManagedProperty("min-pool-size""The min size of the pool"true.new Integer(0), mo);
      addManagedProperty("max-pool-size""The max size of the pool"true.new Integer(10), mo);
      addManagedProperty("blocking-timeout-millis""The time to wait for a connection to become available before giving up"true.new Long(30000), mo);
      addManagedProperty("idle-timeout-minutes""The idle timeout in minutes"true.new Integer(30), mo);
      addManagedProperty("prefill""Whether to prefill the pool"true.mo);
      addManagedProperty("background-validation""Whether to use backgroup validation"true..mo);
      addManagedProperty("background-validation-millis"""false.new Long(0), mo);
      addManagedProperty("validate-on-match"""true..mo);
      addManagedProperty("use-strict-min"""true.mo);
      addManagedProperty("no-tx-separate-pools"""true.mo);
      addManagedProperty("statistics-formatter"""true.mo);
      addManagedProperty("isSameRM-override-value"""true.mo);
      addManagedProperty("track-connection-by-tx"""false..mo);
      addManagedProperty("interleaving"""false.mo);
      addManagedProperty("allocation-retry""The number of times allocation retries should be tried"false.new Integer(0), mo);
      addManagedProperty("allocation-retry-wait-millis""The time to wait between allocation retries"false.new Long(5000), mo);
      addManagedProperty("config-property""The connection factory config properties"false.mo);
      addManagedProperty("security-domain""The security-domain used to validate connections"false.mo);
      addManagedProperty("depends"""false.resolve(List.class), mo);
      addManagedProperty("metadata"""false.resolve(DBMSMetaData.class), mo);
      addManagedProperty("type-mapping"""true.mo);
      addManagedProperty("local-transaction"""true.mo);
   }
   private void addManagedProperty(String fieldName,
                                   String fieldDescr,
                                   boolean mandatory,
                                   MetaType metaType,
                                   ManagedObjectImpl mo)
   {
      addManagedProperty(fieldNamefieldDescrmandatoryfalsemetaTypenullmo);
   }
   private void addManagedProperty(String fieldName,
         String fieldDescr,
         boolean mandatory,
         MetaType metaType,
         Serializable value,
         ManagedObjectImpl mo)
   {
      MetaValue mv = .create(value);
      addManagedProperty(fieldNamefieldDescrmandatoryfalsemetaTypemvmo);
   }
   private void addManagedProperty(String fieldName,
         String fieldDescr,
         boolean mandatory,
         MetaType metaType,
         MetaValue value,
         ManagedObjectImpl mo)
   {
      addManagedProperty(fieldNamefieldDescrmandatoryfalsemetaTypevaluemo);
   }
   private void addManagedProperty(String fieldName,
         String fieldDescr,
         boolean mandatory,
         boolean isID,
         MetaType metaType,
         Serializable value,
         ManagedObjectImpl mo)
   {
      MetaValue mv = .create(value);
      addManagedProperty(fieldNamefieldDescrmandatoryisIDmetaTypemvmo);      
   }
   private void addManagedProperty(String fieldName,
                                   String fieldDescr,
                                   boolean mandatory,
                                   boolean isID,
                                   MetaType metaType,
                                   MetaValue value,
                                   ManagedObjectImpl mo)
   {
      DefaultFieldsImpl fields = new DefaultFieldsImpl();
      setFieldName(fieldNamefields);
      fields.setDescription(fieldDescr);
      fields.setMandatory(mandatory);
      fields.setMetaType(metaType);
      ManagedPropertyImpl mp = new ManagedPropertyImpl(mofields);
      if(isID)
      {
         Map<StringAnnotationannotations = new HashMap<StringAnnotation>();
         Map<StringObjectidFields = Collections.emptyMap();
         try
         {
            ManagementObjectID id = (ManagementObjectID) AnnotationProxy.createProxy(idFieldsManagementObjectID.class);
            annotations.put(ManagementObjectID.class.getName(), id);
            mp.setAnnotations(annotations);
         }
         catch(Exception e)
         {
            throw new UndeclaredThrowableException(e);
         }
      }
      super.addProperty(mp);
      if(value != null)
      {
         if((value instanceof MetaValue) == false)
            value = .create(value);
         mp.setValue(value);
      }
   }
   protected void setFieldName(String nameFields f)
   {
      f.setField(.name);
      if != null )
      {
         String mappedName = .get(name);
         ifmappedName != null )
            f.setField(.mappedName);
      }
   }
New to GrepCode? Check out our FAQ X