You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by Angela Schreiber <an...@day.com> on 2007/03/28 17:20:55 UTC

SPI Contribution: Status

hi

i would like summarize the current status of the SPI contribution,
after i spent a couple of days consolidating and testing the
work done so far.


JSR 170 -> SPI  (jcr2spi)
-----------------------------------------------------------------------

- Implementation of the JSR170 API on top of any SPI implementation.
- Covering transient space [1] (separation transient / persistent layer)
- Separation of hierarchy and state information
- CacheBehaviour with 2 Modi
   > Observation:  Notification about external modifications using
                   Observation mechanism. No refresh required.
   > Invalidation: Refresh required in order be informed about
                   external modifications. Items get invalidated thus
                   forcing a reload upon next access.


SPI Implementations [2]
-----------------------------------------------------------------------

a) SPI2JCR: Implementation on top of any JSR 170 repo.

b) SPI-RMI: RMI implementation that can be used to connect
             to SPI2JCR.

c) SPI2DAV: WebDAV client functionality that can be used to
             connect to the jcr-server (WebDAV server on
             top of any JSR 170 repository).


Status
-----------------------------------------------------------------------

1) JCR2SPI

    all features implemented and tested with TCK (and a few extra tests).
    there are a couple of TODOs left (and probably a lot of undetected
    bugs).

    knows bugs:
    - reverting combined move/reorder operations with SNS
    - session-scoped lock: transfering token to another session
      is not supported (won't be possible with jsr283 anyway)

    issues with cachebehaviour INVALIDATION:
    - NodeCanAddMixinTest.testLocked fails due to lasy lock
      detection.

    issues with cachebehaviour OBSERVATION:
    - quite some observation tests fail (??)
    - tests relying on external observation events fail occasionally
      if conditions are tested before events got processed.


2) SPI2JCR

    tested in the setup
    - jcr2spi-(invalidation)-spi2jcr-jackrabbit
    - jcr2spi-(observation)-spi2jcr-jackrabbit

    known issues:
    - some observation test fail due to missing features
      (nodetype, uuid filtering)


3) SPI2DAV

    partially tested in the setup
    jcr2spi-(invalidation)-spi2dav-jackrabbit.
    since clone and Workspace.copy are not implemented by the
    jcr-server (but heavily used by various tests) futher testing
    has been postponed.

    known issues:
    - some observation test fail due to missing features.
    - due to limitations in jcr-server: missing impl for
      > invalidate
      > clone
      > workspace-copy


4) Status SPI-RMI

    no TODOs left (but i didn't test it up to now).


Misc
-----------------------------------------------------------------------

- project has been migrated to maven2
- building the spi contrib will run the TCK and some impl specific
   tests using the setup jcr2spi-(invalidation)-spi2jcr-jackrabbit.
- i managed to run Day's CRX on top of JCR2SPI (instead of
   the implementation shipped with CRX)

regards
angela


[1]
http://svn.apache.org/repos/asf/jackrabbit/trunk/contrib/spi/docs/spi_arch.jpg

[2]
http://svn.apache.org/repos/asf/jackrabbit/trunk/contrib/spi/docs/overview.gif



Re: SPI Contribution: Status

Posted by Marcel Reutegger <ma...@gmx.net>.
just one minor remark...

Angela Schreiber wrote:
> SPI Implementations [2]
> -----------------------------------------------------------------------
> 
> a) SPI2JCR: Implementation on top of any JSR 170 repo.
> 
> b) SPI-RMI: RMI implementation that can be used to connect
>             to SPI2JCR.
> 
> c) SPI2DAV: WebDAV client functionality that can be used to
>             connect to the jcr-server (WebDAV server on
>             top of any JSR 170 repository).

the SPI-RMI module can be used to remote any SPI implementation not just 
SPI2JCR. While SPI2JCR and SPI2DAV really are repository implementations, the 
SPI-RMI is rather a 'repeater' for SPI calls using RMI.

regards
  marcel

Re: SPI Contribution: Status

Posted by Julian Reschke <ju...@gmx.de>.
Angela Schreiber schrieb:
> hi
> 
> i would like summarize the current status of the SPI contribution,
> after i spent a couple of days consolidating and testing the
> work done so far.
> ...

Hi,

we are using JCR2SPI with a custom SPI implementation on an existing 
system. I can report that this really works as intended: most of the 
transient layer gets abstracted away, and the implementor of the SPI can 
focus on a much simpler interface.

Good work (so far)!

Best regards, Julian