You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2011/10/17 14:51:02 UTC
svn commit: r1185134 [2/2] - in /directory/apacheds/trunk:
core-api/src/main/java/org/apache/directory/server/core/api/
core-api/src/main/java/org/apache/directory/server/core/api/event/
core-api/src/main/java/org/apache/directory/server/core/api/subtr...
Modified: directory/apacheds/trunk/interceptors/subtree/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/interceptors/subtree/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java?rev=1185134&r1=1185133&r2=1185134&view=diff
==============================================================================
--- directory/apacheds/trunk/interceptors/subtree/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java (original)
+++ directory/apacheds/trunk/interceptors/subtree/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java Mon Oct 17 12:51:01 2011
@@ -30,6 +30,7 @@ import javax.naming.directory.SearchCont
import org.apache.directory.server.constants.ApacheSchemaConstants;
import org.apache.directory.server.constants.ServerDNConstants;
import org.apache.directory.server.core.shared.DefaultCoreSession;
+import org.apache.directory.server.core.shared.subtree.SubentryUtils;
import org.apache.directory.server.core.api.CoreSession;
import org.apache.directory.server.core.api.DirectoryService;
import org.apache.directory.server.core.api.LdapPrincipal;
@@ -50,6 +51,9 @@ import org.apache.directory.server.core.
import org.apache.directory.server.core.api.interceptor.context.SearchingOperationContext;
import org.apache.directory.server.core.api.partition.ByPassConstants;
import org.apache.directory.server.core.api.partition.PartitionNexus;
+import org.apache.directory.server.core.api.subtree.Subentry;
+import org.apache.directory.server.core.api.subtree.SubentryCache;
+import org.apache.directory.server.core.api.subtree.SubtreeEvaluator;
import org.apache.directory.server.i18n.I18n;
import org.apache.directory.shared.ldap.codec.controls.search.subentries.SubentriesDecorator;
import org.apache.directory.shared.ldap.model.constants.AuthenticationLevel;
@@ -103,18 +107,12 @@ public class SubentryInterceptor extends
/** The set of Subentry operational attributes */
public static AttributeType[] SUBENTRY_OPATTRS;
- /** the hash mapping the Dn of a subentry to its SubtreeSpecification/types */
- private final SubentryCache subentryCache = new SubentryCache();
-
/** The SubTree specification parser instance */
private SubtreeSpecificationParser ssParser;
- /** The Subtree evaluator instance */
- private SubtreeEvaluator evaluator;
-
/** A reference to the nexus for direct backend operations */
private PartitionNexus nexus;
-
+
/** An enum used for the entries update */
private enum OperationEnum
{
@@ -135,7 +133,7 @@ public class SubentryInterceptor extends
public boolean accept( SearchingOperationContext searchContext, Entry entry ) throws Exception
{
// See if the requested entry is a subentry
- if ( subentryCache.hasSubentry( entry.getDn() ) )
+ if ( directoryService.getSubentryCache().hasSubentry( entry.getDn() ) )
{
return false;
}
@@ -155,7 +153,7 @@ public class SubentryInterceptor extends
public boolean accept( SearchingOperationContext searchContext, Entry entry ) throws Exception
{
// See if the requested entry is a subentry
- if ( subentryCache.hasSubentry( entry.getDn() ) )
+ if ( directoryService.getSubentryCache().hasSubentry( entry.getDn() ) )
{
return true;
}
@@ -189,7 +187,6 @@ public class SubentryInterceptor extends
};
ssParser = new SubtreeSpecificationParser( schemaManager );
- evaluator = new SubtreeEvaluator( schemaManager );
// prepare to find all subentries in all namingContexts
Set<String> suffixes = nexus.listSuffixes();
@@ -243,7 +240,7 @@ public class SubentryInterceptor extends
newSubentry.setAdministrativeRoles( getSubentryAdminRoles( subentry ) );
newSubentry.setSubtreeSpecification( ss );
- subentryCache.addSubentry( subentryDn, newSubentry );
+ directoryService.getSubentryCache().addSubentry( subentryDn, newSubentry );
}
}
catch ( Exception e )
@@ -355,7 +352,7 @@ public class SubentryInterceptor extends
Entry candidate = subentries.get();
Dn candidateDn = candidate.getDn();
- if ( evaluator.evaluate( ss, apDn, candidateDn, candidate ) )
+ if ( directoryService.getEvaluator().evaluate( ss, apDn, candidateDn, candidate ) )
{
List<Modification> modifications = null;
@@ -518,6 +515,9 @@ public class SubentryInterceptor extends
* would be caused by chop exclusions. In this case we must add subentry
* operational attribute values with the dn of this subentry.
*/
+ SubentryCache subentryCache = directoryService.getSubentryCache();
+ SubtreeEvaluator evaluator = directoryService.getEvaluator();
+
for ( Dn subentryDn : subentryCache )
{
Dn apDn = subentryDn.getParent();
@@ -774,12 +774,12 @@ public class SubentryInterceptor extends
{
List<Modification> modList = new ArrayList<Modification>();
- for ( Dn subentryDn : subentryCache )
+ for ( Dn subentryDn : directoryService.getSubentryCache() )
{
Dn apDn = subentryDn.getParent();
- SubtreeSpecification ss = subentryCache.getSubentry( subentryDn ).getSubtreeSpecification();
- boolean isOldEntrySelected = evaluator.evaluate( ss, apDn, name, oldEntry );
- boolean isNewEntrySelected = evaluator.evaluate( ss, apDn, name, newEntry );
+ SubtreeSpecification ss = directoryService.getSubentryCache().getSubentry( subentryDn ).getSubtreeSpecification();
+ boolean isOldEntrySelected = directoryService.getEvaluator().evaluate( ss, apDn, name, oldEntry );
+ boolean isNewEntrySelected = directoryService.getEvaluator().evaluate( ss, apDn, name, newEntry );
if ( isOldEntrySelected == isNewEntrySelected )
{
@@ -890,7 +890,7 @@ public class SubentryInterceptor extends
* ----------------------------------------------------------------
*/
setSubtreeSpecification( subentry, entry );
- subentryCache.addSubentry( dn, subentry );
+ directoryService.getSubentryCache().addSubentry( dn, subentry );
// Now inject the subentry into the backend
next.add( addContext );
@@ -920,19 +920,19 @@ public class SubentryInterceptor extends
// We brutally check *all* the subentries, as we don't hold a hierarchy
// of AP
// TODO : add a hierarchy of subentries
- for ( Dn subentryDn : subentryCache )
+ for ( Dn subentryDn : directoryService.getSubentryCache() )
{
Dn apDn = subentryDn.getParent();
// No need to evaluate the entry if it's not below an AP.
if ( dn.isDescendantOf( apDn ) )
{
- Subentry subentry = subentryCache.getSubentry( subentryDn );
+ Subentry subentry = directoryService.getSubentryCache().getSubentry( subentryDn );
SubtreeSpecification ss = subentry.getSubtreeSpecification();
// Now, evaluate the entry wrt the subentry ss
// and inject a ref to the subentry if it evaluates to true
- if ( evaluator.evaluate( ss, apDn, dn, entry ) )
+ if ( directoryService.getEvaluator().evaluate( ss, apDn, dn, entry ) )
{
if ( subentry.isAccessControlAdminRole() )
@@ -980,7 +980,7 @@ public class SubentryInterceptor extends
// We first remove the re
if ( entry.contains( OBJECT_CLASS_AT, SchemaConstants.SUBENTRY_OC ) )
{
- Subentry removedSubentry = subentryCache.getSubentry( dn );
+ Subentry removedSubentry = directoryService.getSubentryCache().getSubentry( dn );
/* ----------------------------------------------------------------
* Find the baseDn for the subentry and use that to search the tree
@@ -998,7 +998,7 @@ public class SubentryInterceptor extends
updateEntries( OperationEnum.REMOVE, deleteContext.getSession(), dn, apDn, removedSubentry.getSubtreeSpecification(), baseDn, null );
// Update the cache
- subentryCache.removeSubentry( dn );
+ directoryService.getSubentryCache().removeSubentry( dn );
// Now delete the subentry itself
next.delete( deleteContext );
@@ -1064,7 +1064,7 @@ public class SubentryInterceptor extends
// Check if we have a modified subentry attribute in a Subentry entry
if ( containsSubentryOC && isSubtreeSpecificationModification )
{
- Subentry subentry = subentryCache.removeSubentry( dn );
+ Subentry subentry = directoryService.getSubentryCache().removeSubentry( dn );
SubtreeSpecification ssOld = subentry.getSubtreeSpecification();
SubtreeSpecification ssNew;
@@ -1081,7 +1081,7 @@ public class SubentryInterceptor extends
subentry.setSubtreeSpecification( ssNew );
subentry.setAdministrativeRoles( getSubentryTypes( entry, modifications ) );
- subentryCache.addSubentry( dn, subentry );
+ directoryService.getSubentryCache().addSubentry( dn, subentry );
next.modify( modifyContext );
@@ -1109,7 +1109,7 @@ public class SubentryInterceptor extends
Entry candidate = subentries.get();
Dn candidateDn = candidate.getDn();
- if ( evaluator.evaluate( ssOld, apName, candidateDn, candidate ) )
+ if ( directoryService.getEvaluator().evaluate( ssOld, apName, candidateDn, candidate ) )
{
nexus.modify( new ModifyOperationContext( modifyContext.getSession(), candidateDn,
getOperationalModsForRemove( dn, candidate ) ) );
@@ -1135,7 +1135,7 @@ public class SubentryInterceptor extends
}
// search for all selected entries by the new SS and add references to subentry
- subentry = subentryCache.getSubentry( dn );
+ subentry = directoryService.getSubentryCache().getSubentry( dn );
List<Attribute> operationalAttributes = getSubentryOperationalAttributes( dn, subentry );
Dn newBaseDn = apName;
newBaseDn = newBaseDn.add( ssNew.getBase() );
@@ -1152,7 +1152,7 @@ public class SubentryInterceptor extends
Entry candidate = subentries.get();
Dn candidateDn = candidate.getDn();
- if ( evaluator.evaluate( ssNew, apName, candidateDn, candidate ) )
+ if ( directoryService.getEvaluator().evaluate( ssNew, apName, candidateDn, candidate ) )
{
nexus.modify( new ModifyOperationContext( modifyContext.getSession(), candidateDn,
getOperationalModsForAdd( candidate, operationalAttributes ) ) );
@@ -1241,7 +1241,7 @@ public class SubentryInterceptor extends
// the new parent is an AP
checkAdministrativeRole( moveContext, newSuperiorDn );
- Subentry subentry = subentryCache.removeSubentry( oldDn );
+ Subentry subentry = directoryService.getSubentryCache().removeSubentry( oldDn );
SubtreeSpecification ss = subentry.getSubtreeSpecification();
Dn apName = oldDn.getParent();
Dn baseDn = apName;
@@ -1250,11 +1250,11 @@ public class SubentryInterceptor extends
newName = newName.add( oldDn.getRdn() );
newName.apply( schemaManager );
- subentryCache.addSubentry( newName, subentry );
+ directoryService.getSubentryCache().addSubentry( newName, subentry );
next.move( moveContext );
- subentry = subentryCache.getSubentry( newName );
+ subentry = directoryService.getSubentryCache().getSubentry( newName );
ExprNode filter = new PresenceNode( OBJECT_CLASS_AT );
SearchControls controls = new SearchControls();
@@ -1277,7 +1277,7 @@ public class SubentryInterceptor extends
Dn dn = candidate.getDn();
dn.apply( schemaManager );
- if ( evaluator.evaluate( ss, apName, dn, candidate ) )
+ if ( directoryService.getEvaluator().evaluate( ss, apName, dn, candidate ) )
{
nexus.modify( new ModifyOperationContext( moveContext.getSession(), dn, getOperationalModsForReplace(
oldDn, newName, subentry, candidate ) ) );
@@ -1341,7 +1341,7 @@ public class SubentryInterceptor extends
if ( entry.contains( OBJECT_CLASS_AT, SchemaConstants.SUBENTRY_OC ) )
{
- Subentry subentry = subentryCache.removeSubentry( oldDn );
+ Subentry subentry = directoryService.getSubentryCache().removeSubentry( oldDn );
SubtreeSpecification ss = subentry.getSubtreeSpecification();
Dn apName = oldDn.getParent();
Dn baseDn = apName;
@@ -1351,11 +1351,11 @@ public class SubentryInterceptor extends
newName = newName.add( moveAndRenameContext.getNewRdn() );
newName.apply( schemaManager );
- subentryCache.addSubentry( newName, subentry );
+ directoryService.getSubentryCache().addSubentry( newName, subentry );
next.moveAndRename( moveAndRenameContext );
- subentry = subentryCache.getSubentry( newName );
+ subentry = directoryService.getSubentryCache().getSubentry( newName );
ExprNode filter = new PresenceNode( OBJECT_CLASS_AT );
SearchControls controls = new SearchControls();
@@ -1377,7 +1377,7 @@ public class SubentryInterceptor extends
Dn dn = candidate.getDn();
dn.apply( schemaManager );
- if ( evaluator.evaluate( ss, apName, dn, candidate ) )
+ if ( directoryService.getEvaluator().evaluate( ss, apName, dn, candidate ) )
{
nexus.modify( new ModifyOperationContext( moveAndRenameContext.getSession(), dn, getOperationalModsForReplace(
oldDn, newName, subentry, candidate ) ) );
@@ -1433,7 +1433,7 @@ public class SubentryInterceptor extends
if ( entry.contains( OBJECT_CLASS_AT, SchemaConstants.SUBENTRY_OC ) )
{
// @Todo To be reviewed !!!
- Subentry subentry = subentryCache.removeSubentry( oldDn );
+ Subentry subentry = directoryService.getSubentryCache().removeSubentry( oldDn );
SubtreeSpecification ss = subentry.getSubtreeSpecification();
Dn apName = oldDn.getParent();
Dn baseDn = apName;
@@ -1443,10 +1443,10 @@ public class SubentryInterceptor extends
newName = newName.add( renameContext.getNewRdn() );
newName.apply( schemaManager );
- subentryCache.addSubentry( newName, subentry );
+ directoryService.getSubentryCache().addSubentry( newName, subentry );
next.rename( renameContext );
- subentry = subentryCache.getSubentry( newName );
+ subentry = directoryService.getSubentryCache().getSubentry( newName );
ExprNode filter = new PresenceNode( OBJECT_CLASS_AT );
SearchControls controls = new SearchControls();
controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
@@ -1467,7 +1467,7 @@ public class SubentryInterceptor extends
Dn dn = candidate.getDn();
dn.apply( schemaManager );
- if ( evaluator.evaluate( ss, apName, dn, candidate ) )
+ if ( directoryService.getEvaluator().evaluate( ss, apName, dn, candidate ) )
{
nexus.modify( new ModifyOperationContext( renameContext.getSession(), dn, getOperationalModsForReplace(
oldDn, newName, subentry, candidate ) ) );
@@ -1541,89 +1541,4 @@ public class SubentryInterceptor extends
return cursor;
}
-
-
- //-------------------------------------------------------------------------------------------
- // Shared method
- //-------------------------------------------------------------------------------------------
- /**
- * Evaluates the set of subentry subtrees upon an entry and returns the
- * operational subentry attributes that will be added to the entry if
- * added at the dn specified.
- *
- * @param dn the normalized distinguished name of the entry
- * @param entryAttrs the entry attributes are generated for
- * @return the set of subentry op attrs for an entry
- * @throws Exception if there are problems accessing entry information
- */
- public Entry getSubentryAttributes( Dn dn, Entry entryAttrs ) throws LdapException
- {
- Entry subentryAttrs = new DefaultEntry( schemaManager, dn );
-
- for ( Dn subentryDn : subentryCache )
- {
- Dn apDn = subentryDn.getParent();
- Subentry subentry = subentryCache.getSubentry( subentryDn );
- SubtreeSpecification ss = subentry.getSubtreeSpecification();
-
- if ( evaluator.evaluate( ss, apDn, dn, entryAttrs ) )
- {
- Attribute operational;
-
- if ( subentry.isAccessControlAdminRole() )
- {
- operational = subentryAttrs.get( ACCESS_CONTROL_SUBENTRIES_AT );
-
- if ( operational == null )
- {
- operational = new DefaultAttribute( ACCESS_CONTROL_SUBENTRIES_AT );
- subentryAttrs.put( operational );
- }
-
- operational.add( subentryDn.getNormName() );
- }
-
- if ( subentry.isSchemaAdminRole() )
- {
- operational = subentryAttrs.get( SUBSCHEMA_SUBENTRY_AT );
-
- if ( operational == null )
- {
- operational = new DefaultAttribute( SUBSCHEMA_SUBENTRY_AT );
- subentryAttrs.put( operational );
- }
-
- operational.add( subentryDn.getNormName() );
- }
-
- if ( subentry.isCollectiveAdminRole() )
- {
- operational = subentryAttrs.get( COLLECTIVE_ATTRIBUTE_SUBENTRIES_AT );
-
- if ( operational == null )
- {
- operational = new DefaultAttribute( COLLECTIVE_ATTRIBUTE_SUBENTRIES_AT );
- subentryAttrs.put( operational );
- }
-
- operational.add( subentryDn.getNormName() );
- }
-
- if ( subentry.isTriggersAdminRole() )
- {
- operational = subentryAttrs.get( TRIGGER_EXECUTION_SUBENTRIES_AT );
-
- if ( operational == null )
- {
- operational = new DefaultAttribute( TRIGGER_EXECUTION_SUBENTRIES_AT );
- subentryAttrs.put( operational );
- }
-
- operational.add( subentryDn.getNormName() );
- }
- }
- }
-
- return subentryAttrs;
- }
}
Modified: directory/apacheds/trunk/interceptors/subtree/src/test/java/org/apache/directory/server/core/subtree/RefinementEvaluatorTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/interceptors/subtree/src/test/java/org/apache/directory/server/core/subtree/RefinementEvaluatorTest.java?rev=1185134&r1=1185133&r2=1185134&view=diff
==============================================================================
--- directory/apacheds/trunk/interceptors/subtree/src/test/java/org/apache/directory/server/core/subtree/RefinementEvaluatorTest.java (original)
+++ directory/apacheds/trunk/interceptors/subtree/src/test/java/org/apache/directory/server/core/subtree/RefinementEvaluatorTest.java Mon Oct 17 12:51:01 2011
@@ -23,6 +23,8 @@ import static org.junit.Assert.assertFal
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
+import org.apache.directory.server.core.shared.subtree.RefinementEvaluator;
+import org.apache.directory.server.core.shared.subtree.RefinementLeafEvaluator;
import org.apache.directory.shared.ldap.model.entry.Attribute;
import org.apache.directory.shared.ldap.model.entry.DefaultAttribute;
import org.apache.directory.shared.ldap.model.entry.StringValue;
Modified: directory/apacheds/trunk/interceptors/subtree/src/test/java/org/apache/directory/server/core/subtree/RefinementLeafEvaluatorTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/interceptors/subtree/src/test/java/org/apache/directory/server/core/subtree/RefinementLeafEvaluatorTest.java?rev=1185134&r1=1185133&r2=1185134&view=diff
==============================================================================
--- directory/apacheds/trunk/interceptors/subtree/src/test/java/org/apache/directory/server/core/subtree/RefinementLeafEvaluatorTest.java (original)
+++ directory/apacheds/trunk/interceptors/subtree/src/test/java/org/apache/directory/server/core/subtree/RefinementLeafEvaluatorTest.java Mon Oct 17 12:51:01 2011
@@ -26,6 +26,8 @@ import static org.junit.Assert.fail;
import com.mycila.junit.concurrent.Concurrency;
import com.mycila.junit.concurrent.ConcurrentJunitRunner;
+
+import org.apache.directory.server.core.shared.subtree.RefinementLeafEvaluator;
import org.apache.directory.shared.ldap.model.constants.SchemaConstants;
import org.apache.directory.shared.ldap.model.entry.DefaultAttribute;
import org.apache.directory.shared.ldap.model.entry.Attribute;
Modified: directory/apacheds/trunk/interceptors/subtree/src/test/java/org/apache/directory/server/core/subtree/SubtreeEvaluatorTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/interceptors/subtree/src/test/java/org/apache/directory/server/core/subtree/SubtreeEvaluatorTest.java?rev=1185134&r1=1185133&r2=1185134&view=diff
==============================================================================
--- directory/apacheds/trunk/interceptors/subtree/src/test/java/org/apache/directory/server/core/subtree/SubtreeEvaluatorTest.java (original)
+++ directory/apacheds/trunk/interceptors/subtree/src/test/java/org/apache/directory/server/core/subtree/SubtreeEvaluatorTest.java Mon Oct 17 12:51:01 2011
@@ -33,6 +33,7 @@ import net.sf.ehcache.CacheManager;
import org.apache.directory.server.core.shared.DefaultDnFactory;
import org.apache.directory.server.core.api.DnFactory;
+import org.apache.directory.server.core.api.subtree.SubtreeEvaluator;
import org.apache.directory.server.core.shared.normalization.FilterNormalizingVisitor;
import org.apache.directory.shared.ldap.model.entry.DefaultEntry;
import org.apache.directory.shared.ldap.model.entry.Entry;
Modified: directory/apacheds/trunk/interceptors/trigger/pom.xml
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/interceptors/trigger/pom.xml?rev=1185134&r1=1185133&r2=1185134&view=diff
==============================================================================
--- directory/apacheds/trunk/interceptors/trigger/pom.xml (original)
+++ directory/apacheds/trunk/interceptors/trigger/pom.xml Mon Oct 17 12:51:01 2011
@@ -65,11 +65,6 @@
</dependency>
<dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>apacheds-interceptors-subtree</artifactId>
- </dependency>
-
- <dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
</dependency>
Modified: directory/apacheds/trunk/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/TriggerInterceptor.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/TriggerInterceptor.java?rev=1185134&r1=1185133&r2=1185134&view=diff
==============================================================================
--- directory/apacheds/trunk/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/TriggerInterceptor.java (original)
+++ directory/apacheds/trunk/interceptors/trigger/src/main/java/org/apache/directory/server/core/trigger/TriggerInterceptor.java Mon Oct 17 12:51:01 2011
@@ -44,7 +44,7 @@ import org.apache.directory.server.core.
import org.apache.directory.server.core.shared.sp.StoredProcEngineConfig;
import org.apache.directory.server.core.shared.sp.StoredProcExecutionManager;
import org.apache.directory.server.core.shared.sp.java.JavaStoredProcEngineConfig;
-import org.apache.directory.server.core.subtree.SubentryInterceptor;
+import org.apache.directory.server.core.shared.subtree.SubentryUtils;
import org.apache.directory.server.i18n.I18n;
import org.apache.directory.shared.ldap.model.constants.SchemaConstants;
import org.apache.directory.shared.ldap.model.entry.Attribute;
@@ -96,6 +96,9 @@ public class TriggerInterceptor extends
private StoredProcExecutionManager manager;
+ /** The SubentryUtils instance */
+ private static SubentryUtils subentryUtils;
+
/**
* Adds prescriptiveTrigger TriggerSpecificaitons to a collection of
* TriggerSpeficaitions by accessing the triggerSpecCache. The trigger
@@ -250,6 +253,9 @@ public class TriggerInterceptor extends
manager = new StoredProcExecutionManager( spContainer, spEngineConfigs );
this.enabled = true; // TODO: Get this from the configuration if needed.
+
+ // Init the SubentryUtils instance
+ subentryUtils = new SubentryUtils( directoryService );
}
@@ -442,9 +448,7 @@ public class TriggerInterceptor extends
// we need to construct an entry to represent it
// at least with minimal requirements which are object class
// and access control subentry operational attributes.
- SubentryInterceptor subentryInterceptor = ( SubentryInterceptor ) chain.get( SubentryInterceptor.class
- .getSimpleName() );
- Entry fakeImportedEntry = subentryInterceptor.getSubentryAttributes(newDn, importedEntry );
+ Entry fakeImportedEntry = subentryUtils.getSubentryAttributes(newDn, importedEntry );
for ( Attribute attribute : importedEntry )
{
@@ -516,9 +520,7 @@ public class TriggerInterceptor extends
// we need to construct an entry to represent it
// at least with minimal requirements which are object class
// and access control subentry operational attributes.
- SubentryInterceptor subentryInterceptor = ( SubentryInterceptor ) chain.get( SubentryInterceptor.class
- .getSimpleName() );
- Entry fakeImportedEntry = subentryInterceptor.getSubentryAttributes( newDn, importedEntry );
+ Entry fakeImportedEntry = subentryUtils.getSubentryAttributes( newDn, importedEntry );
for ( Attribute attribute : importedEntry )
{