Return-Path: Delivered-To: apmail-directory-commits-archive@www.apache.org Received: (qmail 66303 invoked from network); 20 Jan 2008 17:00:51 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 20 Jan 2008 17:00:51 -0000 Received: (qmail 69792 invoked by uid 500); 20 Jan 2008 17:00:41 -0000 Delivered-To: apmail-directory-commits-archive@directory.apache.org Received: (qmail 69714 invoked by uid 500); 20 Jan 2008 17:00:41 -0000 Mailing-List: contact commits-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@directory.apache.org Delivered-To: mailing list commits@directory.apache.org Received: (qmail 69703 invoked by uid 99); 20 Jan 2008 17:00:40 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 20 Jan 2008 09:00:40 -0800 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 20 Jan 2008 17:00:20 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id B0BEC1A983A; Sun, 20 Jan 2008 09:00:26 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r613608 [1/15] - in /directory/sandbox/akarasulu/bigbang/apacheds: ./ bootstrap-plugin/ bootstrap-plugin/src/main/java/org/apache/directory/server/core/bootstrap/plugin/ core-entry/ core-entry/src/main/java/org/apache/directory/server/core/... Date: Sun, 20 Jan 2008 16:59:36 -0000 To: commits@directory.apache.org From: akarasulu@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080120170026.B0BEC1A983A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: akarasulu Date: Sun Jan 20 08:59:10 2008 New Revision: 613608 URL: http://svn.apache.org/viewvc?rev=613608&view=rev Log: merging changes in from big bang branch to start working with all the work emmanuel did with ServerEntry interfaces. Here's a breakdown of the merge that took place: Sun Jan 20 11:07:38 EST 2008 ---------------------------- svn merge -r 604350:613587 https://svn.apache.org/repos/asf/directory/apacheds/b ranches/bigbang . Added: directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/AbstractServerAttribute.java - copied unchanged from r613587, directory/apacheds/branches/bigbang/core-entry/src/main/java/org/apache/directory/server/core/entry/AbstractServerAttribute.java directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/DefaultServerAttribute.java - copied unchanged from r613587, directory/apacheds/branches/bigbang/core-entry/src/main/java/org/apache/directory/server/core/entry/DefaultServerAttribute.java directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/DefaultServerEntry.java - copied unchanged from r613587, directory/apacheds/branches/bigbang/core-entry/src/main/java/org/apache/directory/server/core/entry/DefaultServerEntry.java directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerAttributeSerializerUtils.java - copied unchanged from r613587, directory/apacheds/branches/bigbang/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerAttributeSerializerUtils.java directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerEntryFactory.java - copied unchanged from r613587, directory/apacheds/branches/bigbang/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerEntryFactory.java directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerEntryPropertyEditor.java - copied unchanged from r613587, directory/apacheds/branches/bigbang/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerEntryPropertyEditor.java directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerEntrySerializerUtils.java - copied unchanged from r613587, directory/apacheds/branches/bigbang/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerEntrySerializerUtils.java directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerEntryUtils.java - copied unchanged from r613587, directory/apacheds/branches/bigbang/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerEntryUtils.java directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/test/java/org/apache/directory/server/core/entry/DefaultServerAttributeTest.java - copied unchanged from r613587, directory/apacheds/branches/bigbang/core-entry/src/test/java/org/apache/directory/server/core/entry/DefaultServerAttributeTest.java directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/test/java/org/apache/directory/server/core/entry/DefaultServerEntryTest.java - copied unchanged from r613587, directory/apacheds/branches/bigbang/core-entry/src/test/java/org/apache/directory/server/core/entry/DefaultServerEntryTest.java directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/test/java/org/apache/directory/server/core/entry/ObjectClassAttributeTest.java - copied unchanged from r613587, directory/apacheds/branches/bigbang/core-entry/src/test/java/org/apache/directory/server/core/entry/ObjectClassAttributeTest.java directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/test/java/org/apache/directory/server/core/entry/ServerBinaryValueTest.java - copied unchanged from r613587, directory/apacheds/branches/bigbang/core-entry/src/test/java/org/apache/directory/server/core/entry/ServerBinaryValueTest.java directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/test/java/org/apache/directory/server/core/entry/ServerStreamedValueTest.java - copied unchanged from r613587, directory/apacheds/branches/bigbang/core-entry/src/test/java/org/apache/directory/server/core/entry/ServerStreamedValueTest.java directory/sandbox/akarasulu/bigbang/apacheds/protocol-dns/src/test/java/org/apache/directory/server/dns/messages/ - copied from r613587, directory/apacheds/branches/bigbang/protocol-dns/src/test/java/org/apache/directory/server/dns/messages/ directory/sandbox/akarasulu/bigbang/apacheds/protocol-dns/src/test/java/org/apache/directory/server/dns/messages/RecordClassTest.java - copied unchanged from r613587, directory/apacheds/branches/bigbang/protocol-dns/src/test/java/org/apache/directory/server/dns/messages/RecordClassTest.java Removed: directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/BasicServerAttribute.java directory/sandbox/akarasulu/bigbang/apacheds/protocol-shared/src/main/java/org/apache/directory/server/protocol/shared/store/KerberosAttribute.java Modified: directory/sandbox/akarasulu/bigbang/apacheds/LAST_BIG_BANG_MERGE directory/sandbox/akarasulu/bigbang/apacheds/bootstrap-plugin/pom.xml directory/sandbox/akarasulu/bigbang/apacheds/bootstrap-plugin/src/main/java/org/apache/directory/server/core/bootstrap/plugin/BootstrapPlugin.java directory/sandbox/akarasulu/bigbang/apacheds/core-entry/pom.xml directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ObjectClassAttribute.java directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerAttribute.java directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerBinaryValue.java directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerEntry.java directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerModification.java directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerStreamedValue.java directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerStringValue.java directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerValue.java directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/test/java/org/apache/directory/server/core/entry/ServerModificationTest.java directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/test/java/org/apache/directory/server/core/entry/ServerStringValueTest.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/main/java/org/apache/directory/server/core/integ/AnnotationUtils.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/main/java/org/apache/directory/server/core/integ/CiRunner.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/main/java/org/apache/directory/server/core/integ/CiSuite.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/main/java/org/apache/directory/server/core/integ/DirectoryServiceFactory.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/main/java/org/apache/directory/server/core/integ/annotations/ApplyLdifFiles.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/main/java/org/apache/directory/server/core/integ/annotations/ApplyLdifs.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/main/java/org/apache/directory/server/core/integ/annotations/CleanupLevel.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/main/java/org/apache/directory/server/core/integ/annotations/Factory.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/main/java/org/apache/directory/server/core/integ/annotations/Mode.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/main/java/org/apache/directory/server/core/integ/state/NonExistentState.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/main/java/org/apache/directory/server/core/integ/state/StartedRevertedState.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/main/java/org/apache/directory/server/core/integ/state/StoppedDirtyState.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/main/java/org/apache/directory/server/core/integ/state/StoppedPristineState.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/main/java/org/apache/directory/server/core/integ/state/TestServiceContext.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/main/java/org/apache/directory/server/core/integ/state/TestServiceState.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/StockCoreISuite.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/authn/SimpleAuthenticationIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/authz/AddAuthorizationIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/authz/AdministratorsGroupIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/authz/AuthorizationServiceAsAdminIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/authz/AuthorizationServiceAsNonAdminIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/authz/AuthzAuthnIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/authz/AuthzISuite.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/authz/AutzIntegUtils.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/authz/CompareAuthorizationIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/authz/DeleteAuthorizationIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/authz/ModifyAuthorizationIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/authz/MoveRenameAuthorizationIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/authz/SearchAuthorizationIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/changelog/DefaultChangeLogIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/collective/CollectiveAttributeServiceIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/configuration/PartitionConfigurationIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/event/EventServiceIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/exception/ExceptionServiceIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/jndi/CreateContextIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/jndi/DIRSERVER169IT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/jndi/DIRSERVER759IT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/jndi/DIRSERVER783IT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/jndi/DIRSERVER791IT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/jndi/DestroyContextIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/jndi/ListIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/jndi/MixedCaseITest.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/jndi/ModifyContextIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/jndi/ObjStateFactoryIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/jndi/RFC2713IT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/jndi/ReferralIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/jndi/RootDSEIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/jndi/SearchIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/jndi/SearchWithIndicesITest.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/jndi/UniqueMemberIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/normalization/NormalizationServiceIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/operational/OperationalAttributeServiceIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/prefs/PreferencesIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/schema/MetaAttributeTypeHandlerIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/schema/MetaComparatorHandlerIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/schema/MetaMatchingRuleHandlerIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/schema/MetaNormalizerHandlerIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/schema/MetaObjectClassHandlerIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/schema/MetaSchemaHandlerIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/schema/MetaSyntaxCheckerHandlerIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/schema/MetaSyntaxHandlerIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/schema/ObjectClassCreateIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/schema/SchemaISuite.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/schema/SchemaPersistenceIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/schema/SchemaServiceIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/schema/SubschemaSubentryIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/sp/LdapClassLoaderIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/subtree/BadSubentryServiceIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/subtree/SubentryServiceEntryModificationHandlingIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/subtree/SubentryServiceIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/subtree/SubentryServiceObjectClassChangeHandlingIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/trigger/BackupUtilitiesSP.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/trigger/ListUtilsSP.java directory/sandbox/akarasulu/bigbang/apacheds/core-integ/src/test/java/org/apache/directory/server/core/trigger/SubentryServiceForTriggersIT.java directory/sandbox/akarasulu/bigbang/apacheds/core-plugin/src/main/antlr/openldap.g directory/sandbox/akarasulu/bigbang/apacheds/core-plugin/src/test/java/org/apache/directory/server/core/tools/schema/OpenLdapSchemaParserTest.java directory/sandbox/akarasulu/bigbang/apacheds/core-unit/src/main/java/org/apache/directory/server/core/unit/AbstractAdminTestCase.java directory/sandbox/akarasulu/bigbang/apacheds/core-unit/src/main/java/org/apache/directory/server/core/unit/AbstractTestCase.java directory/sandbox/akarasulu/bigbang/apacheds/core-unit/src/main/java/org/apache/directory/server/core/unit/IntegrationUtils.java directory/sandbox/akarasulu/bigbang/apacheds/core/pom.xml directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/DefaultDirectoryService.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/DirectoryService.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authn/AbstractAuthenticator.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authn/AnonymousAuthenticator.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authn/AuthenticationInterceptor.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authn/LdapPrincipal.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authn/SimpleAuthenticator.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/AciAuthorizationInterceptor.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/DefaultAuthorizationInterceptor.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/GroupCache.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/TupleCache.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/ACDFEngine.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/ACITupleFilter.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/HighestPrecedenceFilter.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/MaxImmSubFilter.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/MaxValueCountFilter.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/MicroOperationFilter.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/MostSpecificProtectedItemFilter.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/MostSpecificUserClassFilter.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/RelatedProtectedItemFilter.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/RelatedUserClassFilter.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/authz/support/RestrictedByFilter.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/changelog/ChangeLogInterceptor.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/changelog/OriginalChangeLogInterceptor.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/collective/CollectiveAttributeInterceptor.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/collective/CollectiveAttributesSchemaChecker.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/enumeration/ReferralHandlingEnumeration.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/event/EventInterceptor.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/exception/ExceptionInterceptor.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/BaseInterceptor.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/Interceptor.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/InterceptorChain.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/NextInterceptor.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/AbstractOperationContext.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/AddContextPartitionOperationContext.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/AddOperationContext.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/BindOperationContext.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/CompareOperationContext.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/DeleteOperationContext.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/EmptyOperationContext.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/EntryOperationContext.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/GetMatchedNameOperationContext.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/GetRootDSEOperationContext.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/GetSuffixOperationContext.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/ListOperationContext.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/ListSuffixOperationContext.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/LookupOperationContext.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/ModifyOperationContext.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/MoveAndRenameOperationContext.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/MoveOperationContext.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/OperationContext.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/RemoveContextPartitionOperationContext.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/RenameOperationContext.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/ReplaceOperationContext.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/SearchOperationContext.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/interceptor/context/UnbindOperationContext.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/jndi/ServerContext.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/jndi/ServerDirContext.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/jndi/ServerLdapContext.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/normalization/ExpandingVisitor.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/normalization/NormalizingVisitor.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/operational/OperationalAttributeInterceptor.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/partition/AbstractPartition.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/partition/DefaultPartitionNexus.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/partition/Partition.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/partition/PartitionNexus.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/partition/PartitionNexusProxy.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/partition/impl/btree/BTreePartition.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/partition/impl/btree/gui/PartitionFrame.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmPartition.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/referral/ReferralInterceptor.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/schema/AbstractSchemaChangeHandler.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/schema/AttributeClassLoader.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/schema/DescriptionParsers.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaAttributeTypeHandler.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaComparatorHandler.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaDitContentRuleHandler.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaDitStructureRuleHandler.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaMatchingRuleHandler.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaMatchingRuleUseHandler.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaNameFormHandler.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaNormalizerHandler.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaObjectClassHandler.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaSchemaHandler.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaSyntaxCheckerHandler.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/schema/MetaSyntaxHandler.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/schema/PartitionSchemaLoader.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaChangeHandler.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaEntityFactory.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaInterceptor.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaOperationControl.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaPartitionDao.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaService.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/schema/SchemaSubentryModifier.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/sp/LdapClassLoader.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/sp/StoredProcEngine.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/sp/StoredProcExecutionManager.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/sp/java/JavaStoredProcEngine.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/sp/java/LdapJavaStoredProcClassLoader.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/subtree/SubtreeEvaluator.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/trigger/AbstractStoredProcedureParameterInjector.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/trigger/AddStoredProcedureParameterInjector.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/trigger/DeleteStoredProcedureParameterInjector.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/trigger/ModifyDNStoredProcedureParameterInjector.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/trigger/ModifyStoredProcedureParameterInjector.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/trigger/StoredProcedureParameterInjector.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/trigger/TriggerInterceptor.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/main/java/org/apache/directory/server/core/trigger/TriggerSpecCache.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/test/java/org/apache/directory/server/core/authz/support/HighestPrecedenceFilterTest.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/test/java/org/apache/directory/server/core/authz/support/MaxImmSubFilterTest.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/test/java/org/apache/directory/server/core/authz/support/MaxValueCountFilterTest.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/test/java/org/apache/directory/server/core/authz/support/MicroOperationFilterTest.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/test/java/org/apache/directory/server/core/authz/support/MostSpecificProtectedItemFilterTest.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/test/java/org/apache/directory/server/core/authz/support/MostSpecificUserClassFilterTest.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/test/java/org/apache/directory/server/core/authz/support/RelatedProtectedItemFilterTest.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/test/java/org/apache/directory/server/core/authz/support/RelatedUserClassFilterTest.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/test/java/org/apache/directory/server/core/authz/support/RestrictedByFilterTest.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/test/java/org/apache/directory/server/core/interceptor/InterceptorChainTest.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/test/java/org/apache/directory/server/core/interceptor/MockInterceptor.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/test/java/org/apache/directory/server/core/schema/PartitionSchemaLoaderTest.java directory/sandbox/akarasulu/bigbang/apacheds/core/src/test/java/org/apache/directory/server/core/subtree/SubtreeEvaluatorTest.java directory/sandbox/akarasulu/bigbang/apacheds/interceptor-kerberos/src/main/java/org/apache/directory/server/core/kerberos/KeyDerivationInterceptor.java directory/sandbox/akarasulu/bigbang/apacheds/interceptor-kerberos/src/main/java/org/apache/directory/server/core/kerberos/PasswordPolicyInterceptor.java directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/pom.xml directory/sandbox/akarasulu/bigbang/apacheds/jdbm-store/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmStore.java directory/sandbox/akarasulu/bigbang/apacheds/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/Checksum.java directory/sandbox/akarasulu/bigbang/apacheds/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/messages/value/flags/AbstractKerberosFlags.java directory/sandbox/akarasulu/bigbang/apacheds/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/KerberosAttribute.java directory/sandbox/akarasulu/bigbang/apacheds/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/SingleBaseSearch.java directory/sandbox/akarasulu/bigbang/apacheds/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/operations/ChangePassword.java directory/sandbox/akarasulu/bigbang/apacheds/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/operations/DeletePrincipal.java directory/sandbox/akarasulu/bigbang/apacheds/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/operations/GetAllPrincipals.java directory/sandbox/akarasulu/bigbang/apacheds/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/operations/GetPrincipal.java directory/sandbox/akarasulu/bigbang/apacheds/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/operations/PrincipalObjectFactory.java directory/sandbox/akarasulu/bigbang/apacheds/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/store/operations/PrincipalStateFactory.java directory/sandbox/akarasulu/bigbang/apacheds/kerberos-shared/src/test/java/org/apache/directory/server/kerberos/shared/messages/value/ChecksumTest.java directory/sandbox/akarasulu/bigbang/apacheds/mitosis/src/main/java/org/apache/directory/mitosis/operation/AddAttributeOperation.java directory/sandbox/akarasulu/bigbang/apacheds/mitosis/src/main/java/org/apache/directory/mitosis/operation/AddEntryOperation.java directory/sandbox/akarasulu/bigbang/apacheds/mitosis/src/main/java/org/apache/directory/mitosis/operation/AttributeOperation.java directory/sandbox/akarasulu/bigbang/apacheds/mitosis/src/main/java/org/apache/directory/mitosis/operation/CompositeOperation.java directory/sandbox/akarasulu/bigbang/apacheds/mitosis/src/main/java/org/apache/directory/mitosis/operation/DeleteAttributeOperation.java directory/sandbox/akarasulu/bigbang/apacheds/mitosis/src/main/java/org/apache/directory/mitosis/operation/Operation.java directory/sandbox/akarasulu/bigbang/apacheds/mitosis/src/main/java/org/apache/directory/mitosis/operation/OperationCodec.java directory/sandbox/akarasulu/bigbang/apacheds/mitosis/src/main/java/org/apache/directory/mitosis/operation/OperationFactory.java directory/sandbox/akarasulu/bigbang/apacheds/mitosis/src/main/java/org/apache/directory/mitosis/operation/ReplaceAttributeOperation.java directory/sandbox/akarasulu/bigbang/apacheds/mitosis/src/main/java/org/apache/directory/mitosis/operation/support/EntryUtil.java directory/sandbox/akarasulu/bigbang/apacheds/mitosis/src/main/java/org/apache/directory/mitosis/service/ReplicationInterceptor.java directory/sandbox/akarasulu/bigbang/apacheds/mitosis/src/main/java/org/apache/directory/mitosis/service/protocol/handler/ReplicationClientContextHandler.java directory/sandbox/akarasulu/bigbang/apacheds/mitosis/src/main/java/org/apache/directory/mitosis/service/protocol/handler/ReplicationServerContextHandler.java directory/sandbox/akarasulu/bigbang/apacheds/mitosis/src/main/java/org/apache/directory/mitosis/store/ReplicationStore.java directory/sandbox/akarasulu/bigbang/apacheds/mitosis/src/main/java/org/apache/directory/mitosis/store/derby/DerbyReplicationStore.java directory/sandbox/akarasulu/bigbang/apacheds/mitosis/src/test/java/org/apache/directory/mitosis/service/AbstractReplicationServiceTestCase.java directory/sandbox/akarasulu/bigbang/apacheds/mitosis/src/test/java/org/apache/directory/mitosis/service/DIRSERVER1013ITest.java directory/sandbox/akarasulu/bigbang/apacheds/mitosis/src/test/java/org/apache/directory/mitosis/service/ReplicationServiceITest.java directory/sandbox/akarasulu/bigbang/apacheds/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/AbstractMessageCodecTest.java directory/sandbox/akarasulu/bigbang/apacheds/mitosis/src/test/java/org/apache/directory/mitosis/service/protocol/codec/LogEntryMessageCodecTest.java directory/sandbox/akarasulu/bigbang/apacheds/mitosis/src/test/java/org/apache/directory/mitosis/store/derby/DerbyReplicationStoreTest.java directory/sandbox/akarasulu/bigbang/apacheds/protocol-dns/src/main/java/org/apache/directory/server/dns/Main.java directory/sandbox/akarasulu/bigbang/apacheds/protocol-dns/src/main/java/org/apache/directory/server/dns/io/decoder/DnsMessageDecoder.java directory/sandbox/akarasulu/bigbang/apacheds/protocol-dns/src/main/java/org/apache/directory/server/dns/messages/RecordClass.java directory/sandbox/akarasulu/bigbang/apacheds/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/kdc/KdcServer.java directory/sandbox/akarasulu/bigbang/apacheds/protocol-kerberos/src/test/java/org/apache/directory/server/kerberos/kdc/SaslGssapiBindITest.java directory/sandbox/akarasulu/bigbang/apacheds/protocol-ldap/src/main/java/org/apache/directory/server/ldap/LdapServer.java directory/sandbox/akarasulu/bigbang/apacheds/protocol-ldap/src/main/java/org/apache/directory/server/ldap/support/BindHandler.java directory/sandbox/akarasulu/bigbang/apacheds/protocol-ldap/src/main/java/org/apache/directory/server/ldap/support/DefaultBindHandler.java directory/sandbox/akarasulu/bigbang/apacheds/protocol-ldap/src/main/java/org/apache/directory/server/ldap/support/ExtendedHandler.java directory/sandbox/akarasulu/bigbang/apacheds/protocol-ldap/src/main/java/org/apache/directory/server/ldap/support/bind/GetBindDn.java directory/sandbox/akarasulu/bigbang/apacheds/protocol-ldap/src/main/java/org/apache/directory/server/ldap/support/extended/LaunchDiagnosticUiHandler.java directory/sandbox/akarasulu/bigbang/apacheds/protocol-ldap/src/main/java/org/apache/directory/server/ldap/support/extended/StoredProcedureExtendedOperationHandler.java directory/sandbox/akarasulu/bigbang/apacheds/protocol-ldap/src/test/java/org/apache/directory/server/ldap/LdapServerTest.java directory/sandbox/akarasulu/bigbang/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/ConcreteNameComponentNormalizer.java directory/sandbox/akarasulu/bigbang/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/registries/DefaultAttributeTypeRegistry.java directory/sandbox/akarasulu/bigbang/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/registries/DefaultObjectClassRegistry.java directory/sandbox/akarasulu/bigbang/apacheds/schema-registries/src/main/java/org/apache/directory/server/schema/registries/DefaultRegistries.java directory/sandbox/akarasulu/bigbang/apacheds/server-jndi/src/main/java/org/apache/directory/server/configuration/ApacheDS.java directory/sandbox/akarasulu/bigbang/apacheds/server-tools/src/main/java/org/apache/directory/server/tools/CapacityTestCommand.java directory/sandbox/akarasulu/bigbang/apacheds/server-tools/src/main/java/org/apache/directory/server/tools/commands/dumpcmd/DumpCommandExecutor.java directory/sandbox/akarasulu/bigbang/apacheds/server-tools/src/main/java/org/apache/directory/server/tools/commands/importcmd/ImportCommandExecutor.java directory/sandbox/akarasulu/bigbang/apacheds/server-unit/src/main/java/org/apache/directory/server/unit/AbstractServerTest.java directory/sandbox/akarasulu/bigbang/apacheds/server-unit/src/test/java/org/apache/directory/server/DIRSERVER951ITest.java directory/sandbox/akarasulu/bigbang/apacheds/server-unit/src/test/java/org/apache/directory/server/KeyDerivationServiceITest.java directory/sandbox/akarasulu/bigbang/apacheds/server-unit/src/test/java/org/apache/directory/server/MiscTest.java directory/sandbox/akarasulu/bigbang/apacheds/server-unit/src/test/java/org/apache/directory/server/NegationOperatorITest.java directory/sandbox/akarasulu/bigbang/apacheds/server-unit/src/test/java/org/apache/directory/server/PasswordPolicyServiceITest.java directory/sandbox/akarasulu/bigbang/apacheds/server-unit/src/test/java/org/apache/directory/server/SaslBindITest.java directory/sandbox/akarasulu/bigbang/apacheds/server-unit/src/test/java/org/apache/directory/server/StoredProcedureExecutionITest.java directory/sandbox/akarasulu/bigbang/apacheds/server-unit/src/test/java/org/apache/directory/server/jndi/ServerContextFactoryTest.java directory/sandbox/akarasulu/bigbang/apacheds/server-xml/src/main/resources/server.xml Modified: directory/sandbox/akarasulu/bigbang/apacheds/LAST_BIG_BANG_MERGE URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/LAST_BIG_BANG_MERGE?rev=613608&r1=613607&r2=613608&view=diff ============================================================================== --- directory/sandbox/akarasulu/bigbang/apacheds/LAST_BIG_BANG_MERGE (original) +++ directory/sandbox/akarasulu/bigbang/apacheds/LAST_BIG_BANG_MERGE Sun Jan 20 08:59:10 2008 @@ -4,6 +4,7 @@ https://svn.apache.org/repos/asf/directory/apacheds/branches/bigbang/ +Sun Jan 20 11:07:38 EST 2008 ---------------------------- -svn merge -r : https://svn.apache.org/repos/asf/directory/apacheds/branches/bigbang . +svn merge -r 604350:613587 https://svn.apache.org/repos/asf/directory/apacheds/branches/bigbang . Modified: directory/sandbox/akarasulu/bigbang/apacheds/bootstrap-plugin/pom.xml URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/bootstrap-plugin/pom.xml?rev=613608&r1=613607&r2=613608&view=diff ============================================================================== --- directory/sandbox/akarasulu/bigbang/apacheds/bootstrap-plugin/pom.xml (original) +++ directory/sandbox/akarasulu/bigbang/apacheds/bootstrap-plugin/pom.xml Sun Jan 20 08:59:10 2008 @@ -65,6 +65,12 @@ org.apache.directory.server + apacheds-core-entry + ${pom.version} + + + + org.apache.directory.server apacheds-schema-bootstrap ${pom.version} Modified: directory/sandbox/akarasulu/bigbang/apacheds/bootstrap-plugin/src/main/java/org/apache/directory/server/core/bootstrap/plugin/BootstrapPlugin.java URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/bootstrap-plugin/src/main/java/org/apache/directory/server/core/bootstrap/plugin/BootstrapPlugin.java?rev=613608&r1=613607&r2=613608&view=diff ============================================================================== --- directory/sandbox/akarasulu/bigbang/apacheds/bootstrap-plugin/src/main/java/org/apache/directory/server/core/bootstrap/plugin/BootstrapPlugin.java (original) +++ directory/sandbox/akarasulu/bigbang/apacheds/bootstrap-plugin/src/main/java/org/apache/directory/server/core/bootstrap/plugin/BootstrapPlugin.java Sun Jan 20 08:59:10 2008 @@ -22,6 +22,9 @@ import org.apache.directory.server.constants.ApacheSchemaConstants; import org.apache.directory.server.constants.MetaSchemaConstants; +import org.apache.directory.server.constants.ServerDNConstants; +import org.apache.directory.server.core.entry.DefaultServerEntry; +import org.apache.directory.server.core.entry.ServerEntry; import org.apache.directory.server.core.partition.impl.btree.Index; import org.apache.directory.server.core.partition.impl.btree.IndexNotFoundException; import org.apache.directory.server.core.partition.impl.btree.jdbm.JdbmIndex; @@ -202,7 +205,16 @@ } initializeSchemas(); - initializePartition( schemaDirectory ); + + try + { + initializePartition( schemaDirectory ); + } + catch ( NamingException ne ) + { + throw new MojoFailureException( "Failed to initialize the root partition :" + + ne.getMessage() ); + } try { @@ -616,7 +628,7 @@ * * @throws MojoFailureException */ - private void initializePartition( File workingDirectory ) throws MojoFailureException + private void initializePartition( File workingDirectory ) throws MojoFailureException, NamingException { store.setCacheSize( 1000 ); store.setEnableOptimizer( false ); @@ -637,8 +649,8 @@ store.setUserIndices( userIndices ); - Attributes rootEntry = new AttributesImpl( SchemaConstants.OBJECT_CLASS_AT, - SchemaConstants.ORGANIZATIONAL_UNIT_OC, true ); + ServerEntry rootEntry = new DefaultServerEntry( registries, new LdapDN( ServerDNConstants.OU_SCHEMA_DN ) ); + rootEntry.put( SchemaConstants.OBJECT_CLASS_AT, SchemaConstants.ORGANIZATIONAL_UNIT_OC ); rootEntry.put( SchemaConstants.OU_AT, "schema" ); store.setContextEntry( rootEntry ); Modified: directory/sandbox/akarasulu/bigbang/apacheds/core-entry/pom.xml URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core-entry/pom.xml?rev=613608&r1=613607&r2=613608&view=diff ============================================================================== --- directory/sandbox/akarasulu/bigbang/apacheds/core-entry/pom.xml (original) +++ directory/sandbox/akarasulu/bigbang/apacheds/core-entry/pom.xml Sun Jan 20 08:59:10 2008 @@ -38,6 +38,18 @@ ${pom.version} apacheds-schema-registries + + ${pom.groupId} + ${pom.version} + apacheds-schema-bootstrap + test + + + ${pom.groupId} + ${pom.version} + apacheds-schema-extras + test + Modified: directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ObjectClassAttribute.java URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ObjectClassAttribute.java?rev=613608&r1=613607&r2=613608&view=diff ============================================================================== --- directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ObjectClassAttribute.java (original) +++ directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ObjectClassAttribute.java Sun Jan 20 08:59:10 2008 @@ -26,8 +26,10 @@ import org.slf4j.LoggerFactory; import javax.naming.NamingException; +import javax.naming.directory.InvalidAttributeIdentifierException; +import javax.naming.directory.InvalidAttributeValueException; + import java.util.HashSet; -import java.util.Iterator; import java.util.Set; import java.util.Collections; @@ -38,19 +40,20 @@ * @author Apache Directory Project * @version $Rev$, $Date$ */ -public class ObjectClassAttribute implements ServerAttribute +public class ObjectClassAttribute extends AbstractServerAttribute { - /** A logger */ + /** Used for serialization */ + public static final long serialVersionUID = 2L; + + /** logger for reporting errors that might not be handled properly upstream */ private static final Logger LOG = LoggerFactory.getLogger( ObjectClassAttribute.class ); - - /** An unordered set storing the values */ - private HashSet> values = new HashSet>(); - - /** The associated Attribute Type */ - private AttributeType attributeType; - /** The attribute User Provided ID */ - private String upId; + /** A speedup to get the ObjectClass attribute */ + private static transient AttributeType OBJECT_CLASS_AT; + + /** A mutex to manage synchronization*/ + private transient static Object MUTEX = new Object(); + // Sets dealing with objectClass operations private Set allObjectClasses = new HashSet(); @@ -60,20 +63,103 @@ private Set mayList = new HashSet(); private Set mustList = new HashSet(); + + /** The global registries */ + private transient Registries registries; + + /** + * This method is used to initialize the OBJECT_CLASS_AT attributeType. + * + * We want to do it only once, so it's a synchronized method. Note that + * the alternative would be to call the lookup() every time, but this won't + * be very efficient, as it will get the AT from a map, which is also + * synchronized, so here, we have a very minimal cost. + * + * We can't do it once as a static part in the body of this class, because + * the access to the registries is mandatory to get back the AttributeType. + */ + private void initObjectClassAT( Registries registries ) + { + if ( OBJECT_CLASS_AT == null ) + { + try + { + synchronized ( MUTEX ) + { + OBJECT_CLASS_AT = registries.getAttributeTypeRegistry().lookup( SchemaConstants.OBJECT_CLASS_AT ); + } + } + catch ( NamingException ne ) + { + // do nothing... + } + } + } + + + /** + * Creates a new ObjectClassAttribute with a null ID. + *

+ * We will use the default name : 'objectClass' + * + * @param registries The server registries to use + */ + public ObjectClassAttribute( Registries registries ) + { + this( registries, SchemaConstants.OBJECT_CLASS_AT ); + } - // maybe have some additional convenience constructors which take - // an initial value as a string or a byte[] - /** - * Creates a new ObjectClassAttribute with a null ID + * Creates a new ObjectClassAttribute with ServerAttribute. + *

+ * The ServerAttribute must have the ObjectClass attributeType * * @param registries The server registries to use + * @param serverAttribute The serverAttribute containing the objectClasses */ - public ObjectClassAttribute( Registries registries ) throws NamingException + public ObjectClassAttribute( Registries registries, ServerAttribute serverAttribute ) { - this( null, registries ); + this( registries, SchemaConstants.OBJECT_CLASS_AT ); + + if ( serverAttribute == null ) + { + LOG.error( "We cannot create an ObjectClassAttribute without any serverAttribute" ); + } + else + { + if ( !serverAttribute.getType().getOid().equals( SchemaConstants.OBJECT_CLASS_AT_OID ) ) + { + LOG.error( "The ServerAttribute does not represent an ObjectClass" ); + } + else + { + // Iterate through the attribute values and store them in the ObjectClass, + // if they are valid. + for ( ServerValue value:serverAttribute ) + { + if ( value instanceof ServerStringValue ) + { + String objectClassName = ((ServerStringValue)value).get(); + + + try + { + // Fond the objectClass and update the internal structures + ObjectClass objectClass = registries.getObjectClassRegistry().lookup( objectClassName ); + + addObjectClass( objectClass ); + } + catch ( NamingException ne ) + { + // We didn't found the objectClass. Just ditch it + LOG.error( "The '{}' objectclass does not exist or the associated schema is not loaded", objectClassName ); + } + } + } + } + } } @@ -81,26 +167,30 @@ * Creates a new instance of ObjectClassAttribute. * * @param upId The ObjectClass ID - * @param registries The registries to use to initialize this object + * @param registries The atRegistry to use to initialize this object * @throws NamingException If something went wrong */ - public ObjectClassAttribute( String upId, Registries registries ) throws NamingException + public ObjectClassAttribute( Registries registries, String upId ) { - setAttributeTypeAndRegistries( registries ); - setUpId( upId ); + this.registries = registries; + + initObjectClassAT( registries ); + + attributeType = OBJECT_CLASS_AT; + setUpId( upId, attributeType ); } /** * Doc me more! * - * If the value does not correspond to the same attributeType, then it's + * If the values does not correspond to the same attributeType, then it's * wrapped value is copied into a new ServerValue which uses the specified * attributeType. */ - public ObjectClassAttribute( Registries registries, ServerValue val ) throws NamingException + public ObjectClassAttribute( Registries registries, ServerValue... values ) throws NamingException { - this( null, registries, val ); + this( registries, null, values ); } @@ -111,105 +201,57 @@ * wrapped value is copied into a new ServerValue which uses the specified * attributeType. */ - public ObjectClassAttribute( String upId, Registries registries, ServerValue val ) throws NamingException + public ObjectClassAttribute( Registries registries, String upId, ServerValue... vals ) throws NamingException { - setAttributeTypeAndRegistries( registries ); + this.registries = registries; + attributeType = registries.getAttributeTypeRegistry().lookup( SchemaConstants.OBJECT_CLASS_AT_OID ); - if ( val == null ) + if ( vals == null ) { values.add( new ServerStringValue( attributeType ) ); } - else if ( ! ( val instanceof ServerStringValue ) ) - { - throw new UnsupportedOperationException( "Only String values supported for objectClass attribute" ); - } else { - values.add( val ); + for ( ServerValue val:vals ) + { + if ( ! ( val instanceof ServerStringValue ) ) + { + String message = "Only String values supported for objectClass attribute"; + LOG.error( message ); + throw new UnsupportedOperationException( message ); + } + else + { + values.add( val ); + } + } } - setUpId( upId ); + setUpId( upId, attributeType ); } - public ObjectClassAttribute( Registries registries, String val ) throws NamingException + public ObjectClassAttribute( Registries registries, String upId, String... vals ) throws NamingException { - this( null, registries, val ); - } - - - public ObjectClassAttribute( String upId, Registries registries, String val ) throws NamingException - { - setAttributeTypeAndRegistries( registries ); + this.registries = registries; + attributeType = registries.getAttributeTypeRegistry().lookup( SchemaConstants.OBJECT_CLASS_AT_OID ); - if ( val == null ) + if ( vals == null ) { values.add( new ServerStringValue( attributeType ) ); } else { - values.add( new ServerStringValue( attributeType, val ) ); - } - - setUpId( upId ); - } - - - /** - * Initialize the ObjectClass attributeType, using the ObjectClass' OID. - * - * TODO This is a strange method : we _know_ that the ObjectClass' attributeType - * will always be the same, but we can't initialize it to its default value, - * unless the server is already started, or if we call this method only once, - * but then we need to synchronize this class, which can be a burden. - * - * This is was seems the best anyway... - * - * @param registries The registries used to extract the AttributeType - * - * @throws NamingException If something went wrong (very unlikely) - */ - private void setAttributeTypeAndRegistries( Registries registries ) throws NamingException - { - synchronized ( attributeType ) - { - if ( attributeType == null ) + for ( String val:vals ) { - attributeType = registries.getAttributeTypeRegistry().lookup( SchemaConstants.OBJECT_CLASS_AT_OID ); + values.add( new ServerStringValue( attributeType, val ) ); } } - } - - /** - * Set the user provided value for this objectClass. - * - * @param upId The user provided ID - * @param attributeType - */ - private void setUpId( String upId ) - { - if ( upId == null ) - { - String name = attributeType.getName(); - - if ( name == null ) - { - this.upId = attributeType.getOid(); - } - else - { - this.upId = name; - } - } - else - { - this.upId = upId; - } + setUpId( upId, attributeType ); } - - + // ----------------------------------------------------------------------- @@ -268,9 +310,13 @@ break; default: - throw new IllegalStateException( "Unrecognized objectClass type value: " + oc.getType() ); + String message = "Unrecognized objectClass type value: " + oc.getType(); + LOG.error( message ); + throw new UnsupportedOperationException( message ); } + allObjectClasses.add( oc ); + // now go through all objectClassses to collect the must an may list attributes Collections.addAll( mayList, oc.getMayList() ); Collections.addAll( mustList, oc.getMustList() ); @@ -299,6 +345,12 @@ } + public boolean hasObjectClass( String objectClass ) + { + return allObjectClasses.contains( objectClass ); + } + + public Set getAbstractObjectClasses() { return Collections.unmodifiableSet( abstractObjectClasses ); @@ -344,145 +396,131 @@ return Collections.unmodifiableSet( mayList ); } - - /** - * Gets the attribute type associated with this ServerAttribute. - * - * @return the attributeType associated with this entry attribute - */ - public AttributeType getType() - { - return attributeType; - } - - - /** - * Get's the user provided identifier for this entry. This is the value - * that will be used as the identifier for the attribute within the - * entry. If this is a commonName attribute for example and the user - * provides "COMMONname" instead when adding the entry then this is - * the format the user will have that entry returned by the directory - * server. To do so we store this value as it was given and track it - * in the attribute using this property. - * - * @return the user provided identifier for this attribute - */ - public String getUpId() - { - return upId; - } - - + /** - * Checks to see if this attribute is valid along with the values it contains. + * Get the String value, if and only if the value is known to be a String, + * otherwise a InvalidAttributeValueException will be thrown * - * @return true if the attribute and it's values are valid, false otherwise - * @throws NamingException if there is a failure to check syntaxes of values + * @return The value as a String + * @throws InvalidAttributeValueException If the value is a byte[] */ - public boolean isValid() throws NamingException + public String getString() throws InvalidAttributeValueException { - for ( ServerValue value:values ) + ServerValue value = get(); + + if ( value instanceof ServerStringValue ) { - if ( ! value.isValid() ) - { - return false; - } + return (String)value.get(); + } + else + { + String message = "The value is expected to be a String"; + LOG.error( message ); + throw new InvalidAttributeValueException( message ); } - - return true; } /** - * Add a value to the current objectClass + * Get the byte[] value, if and only if the value is known to be Binary, + * otherwise a InvalidAttributeValueException will be thrown + * + * @return The value as a String + * @throws InvalidAttributeValueException If the value is a String */ - public boolean add( ServerValue val ) - { - return values.add( val ); - } - - - public boolean add( String val ) + public byte[] getBytes() throws InvalidAttributeValueException { - return values.add( new ServerStringValue( attributeType, val ) ); + String message = "The value for an objectClass is expected to be a String"; + LOG.error( message ); + throw new InvalidAttributeValueException( message ); } public boolean add( byte[] val ) { - throw new UnsupportedOperationException( "Binary values are not accepted by ObjectClassAttributes" ); + String message = "Binary values are not accepted by ObjectClassAttributes"; + LOG.error( message ); + throw new UnsupportedOperationException( message ); } - public void clear() + public boolean add( String val ) throws InvalidAttributeIdentifierException, NamingException { - values.clear(); - } - - - public boolean contains( ServerValue val ) - { - return values.contains( val ); - } - - - public boolean contains( String val ) - { - ServerStringValue ssv = new ServerStringValue( attributeType, val ); - return values.contains( ssv ); - } - - - public boolean contains( byte[] val ) - { - throw new UnsupportedOperationException( "There are no binary values in an ObjectClass attribute." ); + ObjectClass objectClass = registries.getObjectClassRegistry().lookup( val ); + + return addObjectClass( objectClass ); } - public ServerValue get() + public boolean add( ServerStringValue val ) throws InvalidAttributeIdentifierException, NamingException { - if ( values.isEmpty() ) + //boolean added = super.add( val ); + + ObjectClass objectClass = registries.getObjectClassRegistry().lookup( val.get() ); + + if ( objectClass == null ) { - return null; + return false; } - - return values.iterator().next(); - } - - - public Iterator> getAll() - { - return iterator(); - } - - - public int size() - { - return values.size(); + else + { + return addObjectClass( objectClass, val.get() ); + } + + //return added; } - public boolean remove( ServerValue val ) + public boolean contains( byte[] val ) { - return values.remove( val ); + String message = "There are no binary values in an ObjectClass attribute."; + LOG.error( message ); + throw new UnsupportedOperationException( message ); } public boolean remove( byte[] val ) { - throw new UnsupportedOperationException( "There are no binary values in an ObjectClass attribute." ); + String message = "There are no binary values in an ObjectClass attribute."; + LOG.error( message ); + throw new UnsupportedOperationException( message ); } - - - public boolean remove( String val ) - { - ServerStringValue ssv = new ServerStringValue( attributeType, val ); - return values.remove( ssv ); - } - - - public Iterator> iterator() + + + /** + * @see Object#toString() + */ + public String toString() { - return values.iterator(); + StringBuilder sb = new StringBuilder(); + + sb.append( " ObjectClass : " ); + + if ( ( values != null ) && ( values.size() != 0 ) ) + { + boolean isFirst = true; + + for ( ServerValue objectClass:values ) + { + if ( isFirst ) + { + isFirst = false; + } + else + { + sb.append( ", " ); + } + + sb.append( objectClass.get() ); + } + } + else + { + sb.append( "(null)" ); + } + + sb.append( '\n' ); + + return sb.toString(); } } Modified: directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerAttribute.java URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerAttribute.java?rev=613608&r1=613607&r2=613608&view=diff ============================================================================== --- directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerAttribute.java (original) +++ directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerAttribute.java Sun Jan 20 08:59:10 2008 @@ -23,21 +23,80 @@ import org.apache.directory.shared.ldap.entry.EntryAttribute; import javax.naming.NamingException; +import javax.naming.directory.InvalidAttributeValueException; /** - * Document me! + * The server specific interface extending the EntryAttribute interface. It adds + * three more methods which are Server side. * * @author Apache Directory Project * @version $Rev$, $Date$ */ -public interface ServerAttribute extends EntryAttribute>, Iterable> +public interface ServerAttribute extends EntryAttribute> { + /** + * Gets the attribute type associated with this ServerAttribute. + * + * @return the attributeType associated with this entry attribute + */ AttributeType getType(); - + /** + * Get's the user provided identifier for this entry. This is the value + * that will be used as the identifier for the attribute within the + * entry. If this is a commonName attribute for example and the user + * provides "COMMONname" instead when adding the entry then this is + * the format the user will have that entry returned by the directory + * server. To do so we store this value as it was given and track it + * in the attribute using this property. + * + * @return the user provided identifier for this attribute + */ String getUpId(); - - + + + /** + * Set the user provided ID. If we have none, the upId is assigned + * the attributetype's name. If it does not have any name, we will + * use the OID. + *

+ * If we have an upId and an AttributeType, they must be compatible. : + * - if the upId is an OID, it must be the AttributeType's OID + * - otherwise, its normalized form must be equals to ones of + * the attributeType's names. + * + * @param upId The attribute ID + * @param attributeType The associated attributeType + */ + public void setUpId( String upId, AttributeType attributeType ); + + + /** + * Checks to see if this attribute is valid along with the values it contains. + * + * @return true if the attribute and it's values are valid, false otherwise + * @throws NamingException if there is a failure to check syntaxes of values + */ boolean isValid() throws NamingException; + + + /** + * Get the String value, if and only if the value is known to be a String, + * otherwise a InvalidAttributeValueException will be thrown + * + * @return The value as a String + * @throws InvalidAttributeValueException If the value is a byte[] + */ + String getString() throws InvalidAttributeValueException; + + + /** + * Get the byte[] value, if and only if the value is known to be Binary, + * otherwise a InvalidAttributeValueException will be thrown + * + * @return The value as a String + * @throws InvalidAttributeValueException If the value is a String + */ + byte[] getBytes() throws InvalidAttributeValueException; } Modified: directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerBinaryValue.java URL: http://svn.apache.org/viewvc/directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerBinaryValue.java?rev=613608&r1=613607&r2=613608&view=diff ============================================================================== --- directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerBinaryValue.java (original) +++ directory/sandbox/akarasulu/bigbang/apacheds/core-entry/src/main/java/org/apache/directory/server/core/entry/ServerBinaryValue.java Sun Jan 20 08:59:10 2008 @@ -20,14 +20,20 @@ import org.apache.directory.shared.ldap.NotImplementedException; -import org.apache.directory.shared.ldap.entry.BinaryValue; +import org.apache.directory.shared.ldap.entry.AbstractBinaryValue; import org.apache.directory.shared.ldap.schema.AttributeType; import org.apache.directory.shared.ldap.schema.MatchingRule; import org.apache.directory.shared.ldap.schema.Normalizer; +import org.apache.directory.shared.ldap.util.StringTools; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.naming.NamingException; + +import java.io.Externalizable; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; import java.util.Arrays; import java.util.Comparator; @@ -41,8 +47,11 @@ * @author Apache Directory Project * @version $Rev$, $Date$ */ -public class ServerBinaryValue extends BinaryValue implements ServerValue +public class ServerBinaryValue extends AbstractBinaryValue implements ServerValue, Externalizable { + /** Used for serialization */ + public static final long serialVersionUID = 2L; + /** logger for reporting errors that might not be handled properly upstream */ private static final Logger LOG = LoggerFactory.getLogger( ServerBinaryValue.class ); @@ -55,6 +64,9 @@ /** the canonical representation of the wrapped binary value */ private transient byte[] normalizedValue; + + /** A flag set if the normalized data is different from the wrapped data */ + private transient boolean same; /** cached results of the isValid() method call */ private transient Boolean valid; @@ -67,10 +79,7 @@ */ public ServerBinaryValue( AttributeType attributeType ) { - if ( attributeType == null ) - { - throw new NullPointerException( "attributeType cannot be null" ); - } + assert checkAttributeType( attributeType) == null : logAssert( checkAttributeType( attributeType ) ); try { @@ -136,10 +145,40 @@ // ----------------------------------------------------------------------- - // ServerValue Methods + // ServerValue Methods // ----------------------------------------------------------------------- + public void normalize() throws NamingException + { + if ( getReference() != null ) + { + Normalizer normalizer = getNormalizer(); + + if ( normalizer == null ) + { + normalizedValue = getCopy(); + } + else + { + normalizedValue = ( byte[] ) normalizer.normalize( getCopy() ); + } + + if ( Arrays.equals( super.getReference(), normalizedValue ) ) + { + same = true; + } + else + { + same = false; + } + } + else + { + normalizedValue = null; + same = true; + } + } - + /** * Gets the normalized (cannonical) representation for the wrapped string. * If the wrapped String is null, null is returned, otherwise the normalized @@ -160,16 +199,7 @@ if ( normalizedValue == null ) { - Normalizer normalizer = getNormalizer(); - - if ( normalizer == null ) - { - normalizedValue = getCopy(); - } - else - { - normalizedValue = ( byte[] ) normalizer.normalize( getCopy() ); - } + normalize(); } return normalizedValue; @@ -252,7 +282,6 @@ try { - //noinspection unchecked return getComparator().compare( getNormalizedReference(), binaryValue.getNormalizedReference() ); } catch ( NamingException e ) @@ -285,13 +314,7 @@ return true; } - //noinspection RedundantIfStatement - if ( this.attributeType.isDescentantOf( attributeType ) ) - { - return true; - } - - return false; + return this.attributeType.isDescentantOf( attributeType ); } @@ -316,7 +339,7 @@ try { - return getNormalizedReference().hashCode(); + return Arrays.hashCode( getNormalizedReference() ); } catch ( NamingException e ) { @@ -342,11 +365,6 @@ return true; } - if ( obj == null ) - { - return false; - } - if ( ! ( obj instanceof ServerBinaryValue ) ) { return false; @@ -451,5 +469,125 @@ } return mr.getComparator(); + } + + + /** + * @return a copy of the current value + */ + public ServerBinaryValue clone() + { + ServerBinaryValue clone = (ServerBinaryValue)super.clone(); + + if ( normalizedValue != null ) + { + clone.normalizedValue = new byte[ normalizedValue.length ]; + System.arraycopy( normalizedValue, 0, clone.normalizedValue, 0, normalizedValue.length ); + } + + return clone; + } + + + /** + * @see Externalizable#writeExternal(ObjectOutput) + * + * We will write the value and the normalized value, only + * if the normalized value is different. + * + * The data will be stored following this structure : + * + * [UP value] + * [Norm value] (will be null if normValue == upValue) + */ + public void writeExternal( ObjectOutput out ) throws IOException + { + if ( getReference() != null ) + { + out.writeInt( getReference().length ); + out.write( getReference() ); + + if ( same ) + { + // If the normalized value is equal to the UP value, + // don't save it + out.writeInt( 0 ); + } + else + { + out.writeInt( normalizedValue.length ); + out.write( normalizedValue ); + } + } + else + { + out.writeInt( -1 ); + } + + out.flush(); + } + + + /** + * @see Externalizable#readExternal(ObjectInput) + */ + public void readExternal( ObjectInput in ) throws IOException, ClassNotFoundException + { + if ( in.available() == 0 ) + { + set( null ); + normalizedValue = null; + } + else + { + int wrappedLength = in.readInt(); + byte[] wrapped = null; + + switch ( wrappedLength ) + { + case -1 : + // No value, no normalized value + same = true; + break; + + case 0 : + // Empty value, so is the normalized value + wrapped = StringTools.EMPTY_BYTES; + normalizedValue = wrapped; + same = true; + break; + + default : + wrapped = new byte[wrappedLength]; + in.readFully( wrapped ); + + int normalizedLength = in.readInt(); + + // The normalized length should be either 0 or N, + // but it can't be -1 + switch ( normalizedLength ) + { + case -1 : + String message = "The normalized value cannot be null when the User Provide value is not"; + LOG.error( message ); + throw new IOException( message ); + + case 0 : + normalizedValue = StringTools.EMPTY_BYTES; + same = true; + break; + + default : + same = false; + normalizedValue = new byte[normalizedLength]; + in.readFully( normalizedValue ); + break; + } + + break; + } + + set( wrapped ); + } } }