jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bertrand LEGA <legabertr...@yahoo.fr>
Subject Re: Persistence Manager sanity check ehancements
Date Tue, 05 Jul 2005 07:25:39 GMT


> I don't like the copy approach either. I found the same limitation and 
> proposed to make the constructor public but there was no interest at 
> that moment. Feel free to post a jira issue.

Ok. I'll do that.

> I'd like to add checks for node type constraints before committing the 
> contribution. I don't like the idea of committing a repair tool that 
> will surely break the repo in known circumstances. Thanks for 
> volunteering :).

Could you be more specific how the tool may introduce new 
inconsistencies ? Removing a mandatory name/property for example ?
In this case, we need to check the mandatory state of the Item we want 
to remove and remove the parent too (and the parent of the parent and so 
on). But as you pointd out, you need a NodeTypeRegistry to do that.

What can be done for the property, instead of removing it is to set to a 
default value. Which can be done with a NodeTypeRegistry.

> btw, I also plan to add test cases, I already made some but I'll add a 
> few more.
>
I found validating methods in ItemValidator class !. Looks good.

I copied the code to my two new checks : CheckPropertyValidate and 
CheckNodeValidate which basically do the built-in jackrabbit validations 
(type check, constraints, etc...). I couldn't come up with a better 
name, but stay open to suggestions.

I guess I'm not forced to copy the code. I can initialize new instances 
of the ItemValidator using a mock HierarchyManager (only used in error 
messages). I'll fix that later on.

I changed the following in the original code :

  - how the PropDef is retreive from the NodeTypeRegistry: using the 
definition id is not the best choice for a checking tool. As far as I 
understand, the definition id may change when the definition of the 
node/property changed (and is re-computed then).
 
  - the exceptions thrown to SanityCheckException (of course :)

Tell me if I'm doing something you've already done.

I'm interested to have your feedback on these points.

I hope I'll be able to finish my two checks for the end of the week.



Cheers,
Bertrand.


Mime
View raw message