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 Mike Matrigali <mi...@sbcglobal.net> on 2007/04/19 20:08:13 UTC

how to get store unit tests to boot DataValueFactory?

The collation changes now make the store factory depend on
the DataValueFactory.  In the normal system the DataValueFactory
is booted before store by BasicDataBase using:
  // boot the type factory before store to ensure any dynamically
  // registered types (DECIMAL) are there before logical undo recovery
  // might need them.
  DataValueFactory dvf = (DataValueFactory)
      Monitor.bootServiceModule(
          create,
          this,
          org.apache.derby.iapi.reference.ClassName.DataValueFactory,
          startParams);

The unit tests try to only boot modules that they are testing, but
now most of the store unit tests will require the DataValueFactory.
Anyone have hints on how to correctly boot the DataValueFactory.
I have tried adding the above code to the unit tests (both in the
boot phase and in the start test phase), but I keep getting the
following error when the unit test tries to boot the real module
being tested:

2007-04-19 17:56:06.760 GMT Thread[main,5,main] Starting test 
'org.apache.derby
Testing.unitTests.store.T_RawStoreFactory'.
[main] FAIL - org.apache.derbyTesting.unitTests.harness.T_Fail: The test 
failed
with an exception: ERROR XBM02: Startup failed due to missing 
functionality for
org.apache.derby.iapi.types.DataValueFactory. Please ensure your 
classpath inclu
des the correct Derby software.

The boot is returning non-null, but I am guessing maybe I am not booting
the module into the right area?

Any help would be appreciated.

/mikem


Re: how to get store unit tests to boot DataValueFactory?

Posted by Mike Matrigali <mi...@sbcglobal.net>.
I have changed the store factory that requires DataValueFactory to
do the boot.  From the doc it looks like calling boot will first
see if it exists and return it, and if it does not exist will boot
it.  I had a find the module call there, so it seemed appropriate
to use this bootServiceModule call instead.

Mike Matrigali wrote:
> The collation changes now make the store factory depend on
> the DataValueFactory.  In the normal system the DataValueFactory
> is booted before store by BasicDataBase using:
>  // boot the type factory before store to ensure any dynamically
>  // registered types (DECIMAL) are there before logical undo recovery
>  // might need them.
>  DataValueFactory dvf = (DataValueFactory)
>      Monitor.bootServiceModule(
>          create,
>          this,
>          org.apache.derby.iapi.reference.ClassName.DataValueFactory,
>          startParams);
> 
> The unit tests try to only boot modules that they are testing, but
> now most of the store unit tests will require the DataValueFactory.
> Anyone have hints on how to correctly boot the DataValueFactory.
> I have tried adding the above code to the unit tests (both in the
> boot phase and in the start test phase), but I keep getting the
> following error when the unit test tries to boot the real module
> being tested:
> 
> 2007-04-19 17:56:06.760 GMT Thread[main,5,main] Starting test 
> 'org.apache.derby
> Testing.unitTests.store.T_RawStoreFactory'.
> [main] FAIL - org.apache.derbyTesting.unitTests.harness.T_Fail: The test 
> failed
> with an exception: ERROR XBM02: Startup failed due to missing 
> functionality for
> org.apache.derby.iapi.types.DataValueFactory. Please ensure your 
> classpath inclu
> des the correct Derby software.
> 
> The boot is returning non-null, but I am guessing maybe I am not booting
> the module into the right area?
> 
> Any help would be appreciated.
> 
> /mikem
> 
> 
>