title: Convert org.apache.tomcat.jdbc.pool.DataSource to org.apache.commons.dbcp.BasicDataSource
body: <p>Upgrading from Grails 2.2.1 to 2.4.3 everything else has upgraded fine, but having an issue with the Tomcat upgrade to 7.0.54  I am getting an error of </p>
  
  <pre><code>Error initializing the application: Error creating bean with name
  'dataSourceMBean': Unsatisfied dependency expressed through
  constructor argument with index 0 of type
  [org.apache.commons.dbcp.BasicDataSource]: Could not convert
  constructor argument value of type
  [org.apache.tomcat.jdbc.pool.DataSource] to required type
  [org.apache.commons.dbcp.BasicDataSource]: Failed to convert value of
  type 'org.apache.tomcat.jdbc.pool.DataSource' to required type
  'org.apache.commons.dbcp.BasicDataSource'; nested exception is
  java.lang.IllegalStateException: Cannot convert value of type
  [org.apache.tomcat.jdbc.pool.DataSource] to required type
  [org.apache.commons.dbcp.BasicDataSource]: no matching editors or
  conversion strategy found
  org.springframework.beans.factory.UnsatisfiedDependencyException:
  Error creating bean with name 'dataSourceMBean': Unsatisfied
  dependency expressed through constructor argument with index 0 of type
  [org.apache.commons.dbcp.BasicDataSource]: Could not convert
  constructor argument value of type
  [org.apache.tomcat.jdbc.pool.DataSource] to required type
  [org.apache.commons.dbcp.BasicDataSource]: Failed to convert value of
  type 'org.apache.tomcat.jdbc.pool.DataSource' to required type
  'org.apache.commons.dbcp.BasicDataSource'; nested exception is
  java.lang.IllegalStateException: Cannot convert value of type
  [org.apache.tomcat.jdbc.pool.DataSource] to required type
  [org.apache.commons.dbcp.BasicDataSource]: no matching editors or
  conversion strategy found
       at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:722)
      at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:185)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1114)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1017)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504)
      at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
      at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302)
      at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
      at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298)
      at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
      at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:703)
      at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760)
      at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
      at org.codehaus.groovy.grails.commons.spring.DefaultRuntimeSpringConfiguration.getApplicationContext(DefaultRuntimeSpringConfiguration.java:156)
      at org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator.initializeContext(GrailsRuntimeConfigurator.java:188)
      at org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator.configure(GrailsRuntimeConfigurator.java:168)
      at org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator.configure(GrailsRuntimeConfigurator.java:127)
      at org.codehaus.groovy.grails.web.context.GrailsConfigUtils.configureWebApplicationContext(GrailsConfigUtils.java:126)
      at org.codehaus.groovy.grails.web.context.GrailsContextLoaderListener.initWebApplicationContext(GrailsContextLoaderListener.java:109)
      at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
      at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4973)
      at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5467)
      at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
      at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
      at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
      at java.util.concurrent.FutureTask.run(FutureTask.java:262)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      at java.lang.Thread.run(Thread.java:745)
  </code></pre>
  
  <p>The area that I am getting the error in has been around for a while</p>
  
  <pre><code>dataSourceMBean(com.item.management.DataSourceMBean, ref('dataSourceUnproxied'))
  </code></pre>
  
  <p>The class is:</p>
  
  <pre><code>class DataSourceMBean {     
     private BasicDataSource dataSource       
     public DataSourceMBean(BasicDataSource dataSource) {         
        this.dataSource = dataSource  
     }
  </code></pre>
  
  <p>When I change the dataSource to to a specific type :</p>
  
  <pre><code>private org.apache.tomcat.jdbc.pool.DataSource dataSource
  </code></pre>
  
  <p>Everything compiles and all tests run fine.<br>
  Asking when did this change?
  Is there an alternative to the BasicDataSource I should be using instead?</p>
  
  <p>I found this article but, not sure if applies
  <a href="https://stackoverflow.com/questions/7667008/java-lang-classcastexception-org-apache-tomcat-dbcp-dbcp-basicdatasource-cannot">java.lang.ClassCastException: org.apache.tomcat.dbcp.dbcp.BasicDataSource cannot be cast to org.apache.tomcat.jdbc.pool.DataSource</a></p>