[ http://issues.apache.org/jira/browse/IBATIS-57?page=history ]
     
Clinton Begin closed IBATIS-57:
-------------------------------

      Assign To: Clinton Begin
     Resolution: Fixed
    Fix Version: 2.0.9b

ScriptRunner has been deprecated.

> Refactoring classes in the com.ibatis.common.jdbc package
> ---------------------------------------------------------
>
>          Key: IBATIS-57
>          URL: http://issues.apache.org/jira/browse/IBATIS-57
>      Project: iBatis for Java
>         Type: Improvement
>     Versions: 2.0.9
>  Environment: 2.0.9
>     Reporter: Siveton Vincent
>     Assignee: Clinton Begin
>     Priority: Minor
>      Fix For: 2.0.9b

>
> In the current release, each class in com.ibatis.common.jdbc package has a 
> public constructor with a given map as parameter. 
> Using maps implies that the developer should know exactly the needed keys to 
> construct a valid object. Actually, the developer need to read the 
> implementaion to know which are the needed properties (the needed properties 
> are not the same between constructor, checks SimpleDataSource and 
> ScriptRunner classes...)
> Moreover, no validation of keys exists or throws conventional errors between 
> these classes. Maybe, we can have something like:
> if (props.get(PROP_JDBC_DRIVER) == null) {
>   throw new NestedRuntimeException("The property '" + PROP_JDBC_DRIVER + "' 
> is required.");
> } else {
>   jdbcDriver = (String) props.get(PROP_JDBC_DRIVER);
> }
> PROP_JDBC_DRIVER is a public static field in an interface or an abstract 
> class because all classes use it.
> Like SimpleDataSource class contains only getter, I propose to use an 
> immutable object to instanciate this object and maybe the same pattern for 
> all classes in this package. 
> The main idea of this code refactoring is to configure more easily theses 
> objects like:
> Properties props = new Properties();
> URL url = new URL(MyTest.class.getResource("/").toString()+ myPropertiesConf);
> props.load(url.openStream());
> DataSource ds = new SimpleDataSource(props);
> OR 
> ScriptRunner sr = new ScriptRunner(props);

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira

Reply via email to