[ http://issues.apache.org/jira/browse/IBATIS-205?page=all ]

Jeff Roberts updated IBATIS-205:
--------------------------------

    Attachment: SqlMapClientBuilder.java

This is the source for the code I changed.  The exact changes are commented and 
include the word XWIRE to show where I've made changes.

> Change access modifiers from private to protected in many classes to allow 
> developers to create extensions and subclasses to the iBatis classes
> -----------------------------------------------------------------------------------------------------------------------------------------------
>
>          Key: IBATIS-205
>          URL: http://issues.apache.org/jira/browse/IBATIS-205
>      Project: iBatis for Java
>         Type: Improvement
>   Components: SQL Maps
>     Versions: 2.1.5
>     Reporter: Jeff Roberts
>     Priority: Minor
>  Attachments: SqlMapClientBuilder.java, SqlMapConfigParser.java
>
> I have recently added and extension to the iBatis
> framework.  In order for my extension to work
> effectively, I had to subclass several of the iBatis
> classes.  In doing so, I found that some of the
> methods and variables in the iBatis classes were
> declared as private, preventing me access to them from
> my subclasses.
> I changed the following access modifiers in the
> following iBatis classes:
> - com.ibatis.sqlmap.client.SqlMapClient
> I changed the default constructor from private to
> protected.  This still prevents public instantiation
> of the class, but allows me to instantiate my
> subclass.
> -
> com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser
> I changed the static variable "parser" from private to
> protected.  This allows me to access the parser from
> my subclass.
> I also changed the addSqlMapNodelets() method from
> private to protected, allowing me to override it in my
> subclass and extend its behavior.
> - com.ibatis.sqlmap.engine.builder.xml.SqlMapParser
> I changed the static variable "parser" from private to
> protected.  This allows me to access the parser from
> my subclass.
> I also changed the addStatementNodelets() method from
> private to protected, allowing me to override it in my
> subclass and extend its behavior.
> - com.ibatis.sqlmap.engine.impl.SqlMapClientImpl
> I changed the variable "localSqlMapSession" from
> private to protected, allowing my subclass to access
> it.
> I also changed the getLocalSqlMapSession() from
> private to protected, allowing me to override it in my
> subclass and extend its behavior.
> - com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate
> I changed the variable "sqlExecutor" from private to
> protected, allowing my subclass to access it.
> I also changed the autoEndTransaction(),
> autoCommitTransaction() and autoStartTransaction()
> methods from private to protected, allowing my
> subclass to invoke them.
> I would like to request that the iBatis development
> team make these same changes to the iBatis source
> code.  In my view, it doesn't change any behavior or
> introduce any changes to the source code other than to
> make key pieces of the code accessible to subclasses. 
> By making these changes, I can implement an extension
> to iBatis by subclassing the classes I've mentioned
> above and providing an additional feature.

-- 
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
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to