Apologies for the large amount of commits today on the bean packages - this is 
partly to address a quite serious bug I discovered we'd introduced when 
switching over to JPA, and partly to try to simplify the models and reduce the 
volume of persistence code we're having to maintain.

The main changes are:

1. SharedData and Participant objects are accessed via the internal form of the 
SharedDataKey. The internal form is a hashed composite key to ensure uniqueness 
across host applications and widget URIs. This means there are no direct joins 
between SharedData, Participant and other beans such as Widget and 
WidgetInstance.

2. Access to SharedData collections is via a new service facade class, 
SharedDataHelper. I did this principally so I could cut out all the boilerplate 
in the IWidget and IWidgetInstance interfaces that has to be replicated for JPA 
and JCR implementations. `This facade doesn't actually do much other than 
convert the SharedDataKey to the internal form and then run regular 
FindByValue(s) methods, but it does ensure we have consistent access.

(Incidentally, I noticed that the classes in the "helpers" package aren't 
really all " helpers" as such - there are some View Helpers, some Factories and 
now a ServiceFacade among other "things" - so if anyone has a better way of 
organising and naming the classes please do contribute your ideas!)

S

Reply via email to