db-derby-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Db-derby Wiki] Update of "SharedComponentVersioningGuidelines" by DavidVanCouvering
Date Fri, 21 Oct 2005 23:54:06 GMT
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/SharedComponentVersioningGuidelines

------------------------------------------------------------------------------
  
  == Mixed Version Support ==
  
- As much as possible, two applications should be able to use different versions of Derby
within the same Java VM without having to resort to creating specialized classloaders.  This
is enabled by supporting forward compatibility as described below.  
+ Two applications should be able to use one version of the Derby network client driver and
a different version of the Derby embedded driver within the same Java VM without having to
resort to creating specialized classloaders.  This is enabled by supporting forward compatibility
as described below.  
  
  == Guidelines for Forward Compatibility ==
  
@@ -25, +25 @@

  
  The consumer decides it can work with a given version of a shared component not by looking
up its version number and then extrapolating what features are available, but instead by directly
querying the component to see if the shared component provides the feature or features it
is looking for.  
  
+ A shared component must provide a class called {{{<ComponentName>Info}}} that provides
a static method called {{{hasFeature}}}.  This class should be at the top level of the package
for that component, e.g. the info class for the common component should be {{{org.apache.derby.common.CommonInfo}}}.
+ 
- A shared component must provide a class called {{{<ComponentName>Info}}} that provides
a static method called {{{hasFeature}}}.  This method takes a single parameter which is a
feature identifier.  If the shared component implementation recognizes the feature identifier,
it returns true, otherwise it returns false.   Here is an example definition and usage using
the common component.  Assume that a consumer is making use of a new whizbang feature in the
message utilities in a newer version of the common component which is not available in older
versions.
+ This method takes a single parameter which is a feature identifier.  If the shared component
implementation recognizes the feature identifier, it returns true, otherwise it returns false.
  Here is an example definition and usage using the common component.  Assume that a consumer
is making use of a new whizbang feature in the message utilities in a newer version of the
common component which is not available in older versions.
  
  Here is the old version of the {{{CommonInfo}}} class: {{{#!java
  

Mime
View raw message