https://bz.apache.org/bugzilla/show_bug.cgi?id=61303

            Bug ID: 61303
           Summary: Refactoring of ConnectionPool
           Product: Tomcat Modules
           Version: unspecified
          Hardware: PC
            Status: NEW
          Severity: enhancement
          Priority: P2
         Component: jdbc-pool
          Assignee: dev@tomcat.apache.org
          Reporter: lemesmach...@gmail.com
  Target Milestone: ---

Hello everyone.
I was analyzing the modularization of some classes, and I identified that the
class ConnectionPool has an opportunity for cohesion improvement. 
The class Http11Protocol was in the same situation and the problem was solved
as follows: The HttpBaseProtocol class was created, and several get() and set()
methods that were used only to configure the class parameters were moved from
Http11Protocol to HttpBaseProtocol. 
The new class was then accessed through an instance variable in Http11Protocol.
This strategy has cleaned and improved Http11Protocol cohesion.
With this in mind, I would recommend creating a new class: ConnectionPoolConfig
, and moving the following methods:

getNumTestsPerEvictionRun
setMaxAge
setTestWhileIdle
getPropagateInterruptState
setPassword
getIdle
getDriverClassName
getDataSourceJNDI
setAlternateUsernameAllowed
getValidationInterval
getValidator
setValidationQuery
setUrl
setCommitOnReturn
getPassword
getDbProperties
setTimeBetweenEvictionRunsMillis
setValidationInterval
getName
getUseDisposableConnectionFacade
getUrl
getMinIdle
getRollbackOnReturn
getMaxIdle
getInitSQL
getPoolName
setLogValidationErrors
setJmxEnabled
setRemoveAbandoned
getNotificationInfo
setName
setRollbackOnReturn
getMaxActive
setDataSource
getLogValidationErrors
getJdbcInterceptorsAsArray
setUseDisposableConnectionFacade
getMinEvictableIdleTimeMillis
getRemoveAbandonedTimeout
setDefaultAutoCommit
setDefaultTransactionIsolation
setMinIdle
setValidator
setInitialSize
getConnectionProperties
getInitialSize
setUsername
setDefaultCatalog
getMaxAge
setUseLock
getNumActive
getDefaultAutoCommit
setDataSourceJNDI
setValidationQueryTimeout
getSuspectTimeout
setPropagateInterruptState
setMaxWait
getPoolProperties
getUseLock
getActive
setAbandonWhenPercentageFull
getNumIdle
getMaxWait
getSize
setDriverClassName
setLogAbandoned
setRemoveAbandonedTimeout
setTestOnConnect
getAbandonWhenPercentageFull
setAccessToUnderlyingConnectionAllowed
setTestOnBorrow
setTestOnReturn
setValidatorClassName
setUseEquals
getUsername
setDbProperties
getTimeBetweenEvictionRunsMillis
setIgnoreExceptionOnPreLoad
getDefaultReadOnly
getCommitOnReturn
getPool
setMaxIdle
getDataSource
getWaitCount
getValidationQuery
getValidationQueryTimeout
getDefaultTransactionIsolation
setDefaultReadOnly
getJdbcInterceptors
setFairQueue
getDefaultCatalog
setMaxActive
javax.management.MBeanNotificationInfo[]
setConnectionProperties
setSuspectTimeout
setMinEvictableIdleTimeMillis
getValidatorClassName
setNumTestsPerEvictionRun
setInitSQL
setJdbcInterceptors

from the ConnectionPool.
Those parameters accessed by an instance variable in the ConnectionPool.
Moreover, the orthogonality is the design would be enhanced.

What do you think about that?

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to