jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stefan Guggisberg" <stefan.guggisb...@day.com>
Subject Re: Incremental node type update?!?
Date Fri, 18 Jul 2008 15:28:22 GMT
hi nick

On Tue, Jul 8, 2008 at 9:48 PM, Nick Stuart <nstuart@speranzasystems.com> wrote:
> Thats what I am hoping Toby. Any of our changes would be adding a property
> or something like that, not changing the previous properties. The one thing
> I'm afraid of is if we find a new requirement 6 months down the road and
> want to add a new property to stuff we are storing in JackRabbit, none of
> our old stuff will work. I just don't see anything throught the NodeManager
> API to accomplish this.
> In this particular case all I wanted to do was add a new property to an
> existing node type. Right now the stuff we are storing are mostly types of
> nt:folder and nt:file, so going with nt:unstructured really isn't an option.
> I have setup our own custom node types that have a set of mixins on them
> extending nt:file/folder, which works just great. I just want to know that
> down the road those mixins can be updated to add a new property or
> something.
> Obviously I know some changes just can't happen (node type removal,
> required/default values change etc) as I can see those would just not work
> with existing data, but would love it if adding a property or something of
> the like was available.
> -Nick
> On 7/8/08, Tobias Bocanegra <tobias.bocanegra@day.com> wrote:
>> On 7/8/08, Alexander Klimetschek <aklimets@day.com> wrote:
>> > Hi Nick,
>> >
>> >  if you want a flexible data structure, go with nt:unstructured. Only
>> >  use node types and mixins for things you know that are fixed and for
>> >  which you want to search for easily ( //element(*, my:nodetype) ). In
>> >  this case you have to re-create content and re-register node types
>> >  from scratch. But a good JCR application creates its initial node
>> >  types and content model upon first startup with an empty repository
>> >  anyway. For reset, you can simply delete the workspace folder (if it
>> >  contains the persistence manager data such as derby files) except for
>> >  the workspace.xml, and it will get recreated on the next startup of
>> >  Jackrabbit.
>> >
>> >  On Tue, Jul 8, 2008 at 4:33 PM, Nick Stuart <
>> nstuart@speranzasystems.com> wrote:
>> >  > Is there a way to update node types without have to delete your entire
>> >  > repository and start over? I dont see a lot of methods on the
>> >  > NodeTypeManager to allow for really any kind of operation besides
>> >  > registering types.
>> >  >
>> >  > This can't really be an unforseen problem as I imagine data structures
>> are
>> >  > going to change everywhere, so I think I must be missing something. If
>> I try
>> >  > to register node types that already exist I of course get an error say
>> its
>> >  > already there.
>> if the nodetype change is compatible with the existing one, i.e.
>> adding a new property or childnode definition, relaxing a constraint,
>> etc, the node type can be reregistered.

trivial node type modifications are already supported.
for more details see:

here you'll find some sample code using node type definitions in CND/XML format:

if you want to build the node type definition programmatically you can use

BTW this method will probably be included in the JCR 2.0 API.


>> regards, toby

View raw message