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/10/05 15:55:43 UTC
Re: Distribution of commons classes
hi
Stefan Guggisberg wrote:
> On 7/26/07, Jukka Zitting <ju...@gmail.com> wrote:
>> Hi,
>>
>> With JCR-996 and the goal of eventually integrating SPI with
>> Jackrabbit core there comes a question of where and how we should
>> bundle the various "commons" classes we have. Currently
>> jackrabbit-jcr-commons is the throw-in default of all utility classes
>> that might be useful also outside jackrabbit-core.
>> [...]
>> WDYT?
>
> +1, sounds good.
>
> cheers
> stefan
>>
>> BR,
>> Jukka Zitting
i'd like to take up the discussion regarding distribution
of the jcr-commons-classes and the related issue JCR-996
and come up with an proposal.
it summarizes the findings of my initial efforts while working
on JCR-996 on the current jackrabbit trunk. i tested the general
feasibility on the spi project and on parts of the jackrabbit-core.
please comment.
regards
angela
----------------------------------------------------------
jackrabbit-jcr-commons
----------------------------------------------------------
- modify without breaking existing dependencies to it.
- therefore rather deprecate than move classes related to
internal functionality of a JCR impl.
this mainly affects classes used for namespace handling and
name/path conversion:
> org.apache.jackrabbit.name.*.java
> org.apache.jackrabbit.util.name.*.java
- in addition the following 'utility' classes:
> org.apache.jackrabbit.util.PathMap
> org.apache.jackrabbit.util.Locked
> org.apache.jackrabbit.BaseException
- eventually deprecated methods that define param/return
values to be any of the classes mentioned above
> o.a.j.value.NameValue.valueOf(QName, NamespaceResolver)
> o.a.j.util.ISO9075.encode(QName)
> o.a.j.util.ISO9075.decode(QName)
- move the alternative ValueFactory implementation that
does not require a reference value to be a UUID from
jackrabbit-spi-commons to the o.a.j.value package.
----------------------------------------------------------
jackrabbit-spi-commons
----------------------------------------------------------
- copy classes that have been deprecated in jcr-commons
to different packages in the spi-commons.
e.g.
> namespace handling -> o.a.j.namespace
> name/path conversion -> o.a.j.conversion
> creation Name/Path -> o.a.j.name
> o.a.j.util.PathMap -> o.a.j.name (?)
> o.a.j.util.Locked -> o.a.j.lock (?)
- replace usages of QName/Path within the conversion
and utility classes with Name/Path interfaces
- provide default factories for both Name and Path based
on the current QName and Path classes.
- get rid of duplicate conversion functionality provided
both by *Resolver interfaces and by *Format classes.
i would opt for using the *Resolver interfaces.
- add o.a.j.name.NameConstants for the various predefined
and widely used names.
- since the proposed Name/Path interfaces do currently
not make usage of the BaseException but rather use
RepositoryException, i would in addition suggest to
make the various internal exceptions extend RepositoryExc.
----------------------------------------------------------
jackrabbit-spi (see JCR-996)
----------------------------------------------------------
- define Name, Path and *Factory interfaces
- change all SPI interfaces to use Name/Path interfaces
- remove dependency to jackrabbit-jcr-commons
Re: Distribution of commons classes
Posted by Julian Reschke <ju...@gmx.de>.
Angela Schreiber wrote:
> ....
> i'd like to take up the discussion regarding distribution
> of the jcr-commons-classes and the related issue JCR-996
> and come up with an proposal.
> it summarizes the findings of my initial efforts while working
> on JCR-996 on the current jackrabbit trunk. i tested the general
> feasibility on the spi project and on parts of the jackrabbit-core.
> ...
Caveat: I only have limited insight into jackrabbit-core.
But from the perspective of reducing code duplication between the
monolithic jackrabbit and the JCR2SPI this makes a lot of sense to me.
+1.
Best regards, Julian