You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by Apache Wiki <wi...@apache.org> on 2005/09/27 17:55:18 UTC

[Db-derby Wiki] Update of "WhatIsTheCodeToBeShared" by DavidVanCouvering

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Db-derby Wiki" for change notification.

The following page has been changed by DavidVanCouvering:
http://wiki.apache.org/db-derby/WhatIsTheCodeToBeShared

------------------------------------------------------------------------------
  I think we need to think what is the code in derby to be shared and between where we can share code , in this discussion .
  (I also think answer may be there are no code and no part where to be shared in derby ..... Well... this is just my 'maybe' thinking now ... )
  
-  
+ ----
  
+ '''DVC:''' 
+ 
+ I think part of what you are asking is what exactly is the "unit" of sharing.  Here is how I would define it: a ''shared component'' is a collection of one or more packages that is used across multiple subsystems within Derby.  Very loosely, I would define a "subsystem" as the code contained in one of the top-level source directories, e.g. engine, client, drda, tools, etc.  
+ 
+ If anyone has a better name than "shared component" please let me know.  I would love to use "module" but since it's already in use in Derby with a very specific definition I don't think we can use it.
+ 
+ Normally such a unit of sharing would be encapsulated in a JAR file.  I would actually like to suggest that our internal build does create a JAR file for a shared component to make it very clear what exactly composes the shared component.  When we create a release, the classes in the shared component JAR file can be merged into derby.jar and derby-client.jar to avoid increasing the number of JAR files seen by the end user.
+ 
+ You are also asking where we can share code, that is, who would be using the shared code.  A shared component could be used by any top-level subsystem of Derby as defined above.
+ 
+ Finally, you are asking "what is the code in Derby to be shared."  Here is a list of potential shared code, and I suspect the list could grow:
+ 
+    * Internationalization
+    * JDBC error messages and SQL States
+    * DRDA networking encode/decode functionality
+    * Security encryption/decryption of network traffic, passwords, etc.
+    * SanityManager and associated sanity classes
+    * ProductVersionHolder and associated info classes
+    * Common functionality between embedded and client JDBC drivers
+ 
+ Right now the only shared component that is proposed is all the classes under the package org.apache.derby.common and its sub-packages.  It is possible in the future we may break out some of this "common" code into other shared components, for instance org.apache.derby.common.drda and org.apache.derby.common.jdbc, but that is not currently on the table. 
+ 
+ I hope this answers your questions. 
+ 
+ David
+