Hi Emmanuel,

On Mon, Dec 5, 2011 at 11:00 AM, Emmanuel Lecharny <elecharny@gmail.com> wrote:
On 12/4/11 8:23 PM, Göktürk Gezer wrote:

If passing null as CoreSession is ok on AbstractBTreePartition(Schema and
Config Partitions.) operations, i might use some pointers about how to use
them best.

Pointers on SearchEngine usage could save me lots of hours also.

>From the top of my head, you need a CoreSession because you need a reference on the SchemaManager which is hold by the Session (in fact, we use an OperationContext, which contains a Session).

The Partition will manipulate indexes, and for that, we need the SchemaManager, as it is the only place we have information about AttributeType names and OIDs, as Index are referring AT names or OID.
Yeah Partition uses schemaManager heavily, but it is not getting the SchemaManager instance from the OperationContext, it is using the SchemaManager instance which is set by AbstractPartition.setSchemaManager(SchemaManager) method at the Partition init time. I looked at both partition( schema partition and config partition ) and this is what i saw. Am i missing something?

Now, you should not need the DirectoryService instance to query the SchemaPartition.

I have to check what could happen if you pass a null value as the CoreSession for this partition...

As what i saw, OperationContextes are only used for their getEntry(), getDn() ext... methods by the AbstractBTreePartition. But if i'm missing something i can always create a CoreSession which contains only the needed fields set. Right?

Emmanuel Lécharny