I've (re-)fixed the conflict of patches we had between Navin's commit and my original proposed fixes. I've also fixed a but between annotations head and search head wrt event listener initializations (that's why I don't like ivy not pointing to latest :) )

Please please please everyone:
 - use the right style template. I have one for IntelliJ I can provide, I'm sure someone has one for Eclipse. No more style conflict madness.
 - run ant clean junit before committing. If it fails, do not commit.


BTW We are close to the beta 1 freeze, likely to be tonight or tomorrow

A few questions and comments
@ProvidedId
Should @ProvidedId be renamed @ExternalId?
ProvidedId.bridge() is no longer of type Class<StringBridge>, just Class (see later)
name() defaults to providedId (I still think "id" is a better name, though)

SearchFactoryImpl
I've done various refactorings to eliminate the dependency between o.h.c.Configuration and SearchFactoryImpl
The event system is now responsible for converting the o.h.c.Configuration into a Search configuration

TransactionContext
I moved them next to the Worker and Worker queues in backend (its implementation is in backend.impl
renamed isTxInProgress() to a readable name
I removed TransactionContext as Serializable, each implementation shold make its own decision. EventsourceTC is not serialzible: they could use transient / readObject / writeObject

SearchConfiguration
The HibernameImplementation now deal with getMappedClass() returning null. I used Class<?> instead of the raw Class in the interface.




Here are the things Navin still needs to work on:
DocumentBuilder
1. @ProvidedId can be set on a superclass, your code does not deal with it
2. you've hardcoded the bridge implementation to StringBridge, this is not good and should be configured by ProvidedId.bridge().This should be done more or less like BridgeFactory.extractType(ClassBridge);

Those 2 need to be fixed before we go and release the @ProvidedId feature but this can wait till after Beta1