You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Daniel John Debrunner (JIRA)" <de...@db.apache.org> on 2006/02/21 18:35:57 UTC

[jira] Created: (DERBY-1015) Define interface between network server and engine through Java interfaces.

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
 Assigned to: Daniel John Debrunner 
     Fix For: 10.2.0.0


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


[jira] Commented: (DERBY-1015) Define interface between network server and engine through Java interfaces.

Posted by "Daniel John Debrunner (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-1015?page=comments#action_12420702 ] 

Daniel John Debrunner commented on DERBY-1015:
----------------------------------------------

Since David is further ahead than me here I will defer to him for the commit

> 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.p2.diff.txt, derby1015.diff.txt, derby1015.p2.stat.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


[jira] Commented: (DERBY-1015) Define interface between network server and engine through Java interfaces.

Posted by "David Van Couvering (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-1015?page=comments#action_12420750 ] 

David Van Couvering commented on DERBY-1015:
--------------------------------------------

I will take care of committing the second patch as well.

David

> 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.p2.diff.txt, derby1015.diff.txt, derby1015.p2.stat.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


[jira] Reopened: (DERBY-1015) Define interface between network server and engine through Java interfaces.

Posted by "Sunitha Kambhampati (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-1015?page=all ]
     
Sunitha Kambhampati reopened DERBY-1015:
----------------------------------------


Thanks David for the review and commit.  The # 421435  revision number only took care of the derby1015.diff.txt .  That commit missed adding two files EnginePreparedStatement and EngineParameterMetaData. 

I am opening this issue, because there is another patch that needs to be committed. derby1015.p2.diff.txt.   

Can someone commit this too if it looks ok.  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.p2.diff.txt, derby1015.diff.txt, derby1015.p2.stat.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


[jira] Commented: (DERBY-1015) Define interface between network server and engine through Java interfaces.

Posted by "Sunitha Kambhampati (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-1015?page=comments#action_12420160 ] 

Sunitha Kambhampati commented on DERBY-1015:
--------------------------------------------

Please note, there are two pending patches waiting for review. 
derby1015.diff.txt, derby1015.p2.diff.txt.

These two patches will cover the case of adding new interfaces for PreparedStatement, ResultSet, ParameterMetaData and make use of these interfaces in the server code. 

Since Dan already added the new interfaces for Statement and Connection., I believe with these two patches(derby1015.diff.txt, derby1015.p2.diff.txt), the cases mentioned in the jira description will be covered.   

As an aside, I did a search for Embed* in drda code and came across cases where the server code uses EmbedSQLException. I wonder if the server should be using EmbedSQLException or should a interface be defined for use in the server.  Comments/Thoughts ?

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.p2.diff.txt, derby1015.diff.txt, derby1015.p2.stat.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


[jira] Resolved: (DERBY-1015) Define interface between network server and engine through Java interfaces.

Posted by "David Van Couvering (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-1015?page=all ]
     
David Van Couvering resolved DERBY-1015:
----------------------------------------

    Resolution: Fixed
    Derby Info:   (was: [Patch Available])

Committed revision 421435.  Passes derbynetclientmats on JDK 1.5

> 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.p2.diff.txt, derby1015.diff.txt, derby1015.p2.stat.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


[jira] Updated: (DERBY-1015) Define interface between network server and engine through Java interfaces.

Posted by "Sunitha Kambhampati (JIRA)" <de...@db.apache.org>.
     [ 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


[jira] Commented: (DERBY-1015) Define interface between network server and engine through Java interfaces.

Posted by "Sunitha Kambhampati (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-1015?page=comments#action_12412847 ] 

Sunitha Kambhampati commented on DERBY-1015:
--------------------------------------------

I am proposing the following interface for the EnginePreparedStatement for use in the network server. 

snippet:

+public interface EnginePreparedStatement extends PreparedStatement {
+ 
+ /**
+  * Immitate the function in JDBC 3.0
+  *
+  * Retrieves the number, types and properties of this PreparedStatement
+  * object's parameters.
+  *
+  * @return a EmbedParameterSetMetaData object that contains information about the
+  * number, types and properties of this PreparedStatement object's parameters.
+  * @exception SQLException if a database access error occurs
+    */
+    public EmbedParameterSetMetaData getEmbedParameterSetMetaData()
+    throws SQLException;
+    
+    
+}

EmbedPreparedStatement implements EnginePreparedStatement
BrokeredPreparedStatement implements EnginePreparedStatement

Thoughts/comments ?   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

>
> 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


[jira] Commented: (DERBY-1015) Define interface between network server and engine through Java interfaces.

Posted by "Daniel John Debrunner (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-1015?page=comments#action_12412857 ] 

Daniel John Debrunner commented on DERBY-1015:
----------------------------------------------

I wonder if this new interface should be returning EmbedParameterSetMetaData or should an interface be defined for the parameter meta data? Of course once jdk 1.3 stops being supported the returned type could be the regular JDBD class.

> 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

>
> 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


[jira] Commented: (DERBY-1015) Define interface between network server and engine through Java interfaces.

Posted by "Sunitha Kambhampati (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-1015?page=comments#action_12418344 ] 

Sunitha Kambhampati commented on DERBY-1015:
--------------------------------------------

Thanks for the feedbac, Dan. 

Looking at this some more, I think it is better to define a new interface for ParameterMetaData for the following reasons:
-- no need to import a impl class in iapi 
-- this implementation seems clean for use in server. 

So the new interface EnginePreparedStatement will return EngineParameterMetaData instead of EmbedParameterSetMetaData.

Here are the two interfaces I am proposing:  

NEW INTERFACE: EngineParameterMetaData

/**
 * An internal api only, mainly for use in the network server. 
 * 
 * This interface imitates the ParameterMetaData interface from JDBC3.0
 * We want to provide the ParameterMetaData functionality to JDKs before JDBC3.0. 
 * org.apache.derby.iapi.jdbc.EnginePreparedStatement interface returns an object 
 * of this type on a getEmbedParameterSetMetaData
 * Once,JDK1.3 stops being supported, this interface can be removed and 
 * instead the JDBC 3.0 class ParameterMetaData can be used
 */
public interface EngineParameterMetaData  {
    public int getParameterCount();
    public int isNullable(int param) throws SQLException;
    public boolean isSigned(int param) throws SQLException;
    public int getPrecision(int param) throws SQLException;        
    public int getScale(int param) throws SQLException;
    public int getParameterType(int param) throws SQLException;
    public String getParameterTypeName(int param) throws SQLException;
    public String getParameterClassName(int param) throws SQLException;
    public int getParameterMode(int param) throws SQLException;
    }

(Note: javadoc comments for the methods will be added in the actual patch)

EmbedParameterSetMetaData implements EngineParameterMetaData

-----------------------------------------------------------------------------------------------------------------------------------------------
NEW INTERFACE: EnginePreparedStatement

/**
 * Additional methods the embedded engine exposes on its 
 * PreparedStatement object implementations. An internal api only, mainly 
 * for the network server. Allows consistent interaction between embedded 
 * PreparedStatement and Brokered PreparedStatements.
 * 
 */
public interface EnginePreparedStatement extends PreparedStatement {
    
    /**
     * Immitate the getParameterMetaData() that is in JDBC 3.0
     * Once,JDK1.3 stops being supported, instead of returning EngineParameterMetaData
     * the JDBC 3.0 Class - ParameterMetaData can be used.
     *
     * Retrieves the number, types and properties of this PreparedStatement
     * object's parameters.
     *
     * @return a EngineParameterMetaData object that contains information about the
     * number, types and properties of this PreparedStatement object's parameters.
     * @exception SQLException if a database access error occurs
     */
    public EngineParameterMetaData getEmbedParameterSetMetaData()
        throws SQLException;
    
}

EmbedPreparedStatement implements EnginePreparedStatement
BrokeredPreparedStatement implements EnginePreparedStatement 
--------------------------------------------------------------------------------------------------------------
Thoughts/comments ? 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

>
> 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


[jira] Commented: (DERBY-1015) Define interface between network server and engine through Java interfaces.

Posted by "David Van Couvering (JIRA)" <de...@db.apache.org>.
    [ http://issues.apache.org/jira/browse/DERBY-1015?page=comments#action_12420677 ] 

David Van Couvering commented on DERBY-1015:
--------------------------------------------

I looked at the patches, and they look quite good, very simple and direct, and creating what I think is a very useful and important abstraction between the network server and the engine.  

I think it would be good to complete the abstraction and not depend directly on any engine classes, including EmbedSQLException, but I would argue that should be a separate JIRA.

I'll work on getting this committed.

> 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.p2.diff.txt, derby1015.diff.txt, derby1015.p2.stat.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


[jira] Updated: (DERBY-1015) Define interface between network server and engine through Java interfaces.

Posted by "Sunitha Kambhampati (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-1015?page=all ]

Sunitha Kambhampati updated DERBY-1015:
---------------------------------------

    Derby Info: [Patch Available]

> 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


[jira] Resolved: (DERBY-1015) Define interface between network server and engine through Java interfaces.

Posted by "Sunitha Kambhampati (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-1015?page=all ]

Sunitha Kambhampati resolved DERBY-1015.
----------------------------------------

    Resolution: Fixed

This issue has been fixed.  

The two patches (derby1015.diff.txt, derby1015.p2.diff.txt) were committed as 
URL: http://svn.apache.org/viewvc?rev=421435&view=rev
URL: http://svn.apache.org/viewvc?rev=421460&view=rev
http://svn.apache.org/viewvc?rev=421497&view=rev 

There are many  more commits that happened for this issue by dan. Please see the subversion commit view  for all the changes related to this jira.


> Define interface between network server and engine through Java interfaces.
> ---------------------------------------------------------------------------
>
>                 Key: DERBY-1015
>                 URL: http://issues.apache.org/jira/browse/DERBY-1015
>             Project: Derby
>          Issue Type: Improvement
>          Components: JDBC
>            Reporter: Daniel John Debrunner
>         Assigned To: Daniel John Debrunner
>             Fix For: 10.2.0.0
>
>         Attachments: derby1015.diff.txt, Derby1015.p2.diff.txt, derby1015.p2.stat.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

        

[jira] Updated: (DERBY-1015) Define interface between network server and engine through Java interfaces.

Posted by "Sunitha Kambhampati (JIRA)" <de...@db.apache.org>.
     [ http://issues.apache.org/jira/browse/DERBY-1015?page=all ]

Sunitha Kambhampati updated DERBY-1015:
---------------------------------------

    Attachment: Derby1015.p2.diff.txt
                derby1015.p2.stat.txt

I am attaching a phase 2 patch ( derby1015.p2.diff.txt, derby1015.p2.stat.txt)  to address adding the new interface for ResultSet.  

This patch derby1015.p2.diff.txt  can be applied independently of the derby1015.diff.txt.   

The changes in this patch include
-- add a new interface EngineResultSet  for use in Network Server
--  make changes in network server code to make use of this interface instead of EmbedResultSet.

Ran derbyall on linux/ibm142 OK on linux. 

Can someone please review this patch.  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.p2.diff.txt, derby1015.diff.txt, derby1015.p2.stat.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


[jira] Closed: (DERBY-1015) Define interface between network server and engine through Java interfaces.

Posted by "Daniel John Debrunner (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-1015?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel John Debrunner closed DERBY-1015.
----------------------------------------


> Define interface between network server and engine through Java interfaces.
> ---------------------------------------------------------------------------
>
>                 Key: DERBY-1015
>                 URL: https://issues.apache.org/jira/browse/DERBY-1015
>             Project: Derby
>          Issue Type: Improvement
>          Components: JDBC
>            Reporter: Daniel John Debrunner
>         Assigned To: Daniel John Debrunner
>             Fix For: 10.2.1.6
>
>         Attachments: derby1015.diff.txt, Derby1015.p2.diff.txt, derby1015.p2.stat.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.
-
You can reply to this email to add a comment to the issue online.