[ http://issues.apache.org/jira/browse/DERBY-1015?page=all ]
Sunitha Kambhampati updated DERBY-1015:
---------------------------------------
Attachment: derby1015.diff.txt
derby1015.stat.txt
I have been looking at derby1015 in context of fixing derby-1227. I am
attaching a patch 'derby1015.diff.txt' and corresponding 'derby1015.stat.txt'
for feedback.
-- This patch is a partial fix for the issues mentioned in derby-1015. Partial
since, it only defines new interface for the PreparedStatement and
ParameterMetaData.
This patch does the following
1) Defines two new interfaces for use in network server.
EnginePreparedStatement - This will be used to get a consistent interaction
between the BrokeredPreparedStatement and the EmbedPreparedStatement
EngineParameterMetaData - This interface is defined for the ParameterMetaData.
EmbedPreparedStatement implements EnginePreparedStatement
BrokeredPreparedStatement implements EnginePreparedStatement
EmbedParameterSetMetaData implements EngineParameterMetaData
The interface details are as mentioned in the previous comment.
http://issues.apache.org/jira/browse/DERBY-1015#action_12418344
2) Code changes to make use of the newly defined interfaces in the network
server.
svn stat:
M java\engine\org\apache\derby\impl\jdbc\EmbedPreparedStatement.java
M java\engine\org\apache\derby\impl\jdbc\EmbedParameterSetMetaData.java
M java\engine\org\apache\derby\iapi\jdbc\BrokeredPreparedStatement.java
A java\engine\org\apache\derby\iapi\jdbc\EngineParameterMetaData.java
A java\engine\org\apache\derby\iapi\jdbc\EnginePreparedStatement.java
M java\drda\org\apache\derby\impl\drda\DRDAStatement.java
M java\drda\org\apache\derby\impl\drda\DRDAConnThread.java
I ran derbyall on linux/ibm142 and tests ran OK.
I looked at the code coverage for the code snippet in derby-1227 and I see that
our current tests already exercise that codepath. Not sure how best to address
testing for this patch. I'd appreciate suggestions/feedback.
I tried to run javadoc to verify if all the javadoc comments were ok, but have
not been successful in getting it to work. I'll look at my setup again.
Thanks.
> Define interface between network server and engine through Java interfaces.
> ---------------------------------------------------------------------------
>
> Key: DERBY-1015
> URL: http://issues.apache.org/jira/browse/DERBY-1015
> Project: Derby
> Type: Improvement
> Components: JDBC
> Reporter: Daniel John Debrunner
> Assignee: Daniel John Debrunner
> Fix For: 10.2.0.0
> Attachments: derby1015.diff.txt, derby1015.stat.txt
>
> API between the network server and engine is not well defined, leading to
> inconsistent & multiple ways of handling the different objects returned, such
> as reflection, explicit casting etc. This in turn has lead to bugs such as
> DERBY-966 . DERBY-1005, and DERBY-1006, and access to underlying objects by
> the application that should be hidden.
> Define interfaces, such as EngineConnection, that both EmbedConnection and
> BrokeredConnection implement. Thus the network server can rely on the fact
> that any connection it obtains will implement EngineConnection, and call the
> required methods through that interface.
> Most likely will need EngineConnection, EnginePreparedStatement and
> EngineResultSet.. These interfaces would be internal to derby and not exposed
> to applications.
--
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