Return-Path: X-Original-To: apmail-directory-commits-archive@www.apache.org Delivered-To: apmail-directory-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 456877EC6 for ; Mon, 24 Oct 2011 12:35:31 +0000 (UTC) Received: (qmail 85089 invoked by uid 500); 24 Oct 2011 12:35:31 -0000 Delivered-To: apmail-directory-commits-archive@directory.apache.org Received: (qmail 85036 invoked by uid 500); 24 Oct 2011 12:35:31 -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 85029 invoked by uid 99); 24 Oct 2011 12:35:31 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 24 Oct 2011 12:35:31 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 24 Oct 2011 12:35:20 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id D7E5E23888EA for ; Mon, 24 Oct 2011 12:34:57 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r1188117 [1/2] - in /directory/shared/branches/shared-osgi: ./ ipojo-manager/ ipojo-manager/src/ ipojo-manager/src/main/ ipojo-manager/src/main/java/ ipojo-manager/src/main/java/org/ ipojo-manager/src/main/java/org/apache/ ipojo-manager/src... Date: Mon, 24 Oct 2011 12:34:56 -0000 To: commits@directory.apache.org From: pamarcelot@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20111024123457.D7E5E23888EA@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: pamarcelot Date: Mon Oct 24 12:34:54 2011 New Revision: 1188117 URL: http://svn.apache.org/viewvc?rev=1188117&view=rev Log: Part of a fix for DIRSERVER-1672 (Making Comparators extendable). Applied patch sent by Göktürk Gezer. Added: directory/shared/branches/shared-osgi/ipojo-manager/ directory/shared/branches/shared-osgi/ipojo-manager/pom.xml directory/shared/branches/shared-osgi/ipojo-manager/src/ directory/shared/branches/shared-osgi/ipojo-manager/src/main/ directory/shared/branches/shared-osgi/ipojo-manager/src/main/java/ directory/shared/branches/shared-osgi/ipojo-manager/src/main/java/org/ directory/shared/branches/shared-osgi/ipojo-manager/src/main/java/org/apache/ directory/shared/branches/shared-osgi/ipojo-manager/src/main/java/org/apache/directory/ directory/shared/branches/shared-osgi/ipojo-manager/src/main/java/org/apache/directory/shared/ directory/shared/branches/shared-osgi/ipojo-manager/src/main/java/org/apache/directory/shared/ipojo/ directory/shared/branches/shared-osgi/ipojo-manager/src/main/java/org/apache/directory/shared/ipojo/helpers/ directory/shared/branches/shared-osgi/ipojo-manager/src/main/java/org/apache/directory/shared/ipojo/helpers/IPojoHelper.java directory/shared/branches/shared-osgi/ipojo-manager/src/main/java/org/apache/directory/shared/ipojo/helpers/OSGIHelper.java directory/shared/branches/shared-osgi/ipojo-manager/src/main/java/org/apache/directory/shared/ipojo/helpers/OSGIHelpersActivator.java directory/shared/branches/shared-osgi/ipojo-manager/src/main/java/org/apache/directory/shared/ipojo/schema/ directory/shared/branches/shared-osgi/ipojo-manager/src/main/java/org/apache/directory/shared/ipojo/schema/SchemaElementsManager.java directory/shared/branches/shared-osgi/ldap/schema/data/src/main/java/org/apache/directory/shared/ldap/schemamanager/impl/OSGISchemaManager.java Modified: directory/shared/branches/shared-osgi/ldap/model/pom.xml directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/EntityFactory.java directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/BitStringComparator.java directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/BooleanComparator.java directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/ByteArrayComparator.java directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/ComparableComparator.java directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/CsnComparator.java directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/CsnSidComparator.java directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/DeepTrimCachingNormalizingComparator.java directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/DeepTrimToLowerCachingNormalizingComparator.java directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/DnComparator.java directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/GeneralizedTimeComparator.java directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/IntegerComparator.java directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/LongComparator.java directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/NormalizingComparator.java directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/NumericStringComparator.java directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/ObjectClassTypeComparator.java directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/ObjectIdentifierComparator.java directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/ObjectIdentifierFirstComponentComparator.java directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/SerializableComparator.java directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/StringComparator.java directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/TelephoneNumberComparator.java directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/UUIDComparator.java directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/UniqueMemberComparator.java directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/WordComparator.java directory/shared/branches/shared-osgi/ldap/schema/data/pom.xml directory/shared/branches/shared-osgi/ldap/schema/data/src/main/java/org/apache/directory/shared/ldap/schemaloader/SchemaEntityFactory.java directory/shared/branches/shared-osgi/pom.xml Added: directory/shared/branches/shared-osgi/ipojo-manager/pom.xml URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-osgi/ipojo-manager/pom.xml?rev=1188117&view=auto ============================================================================== --- directory/shared/branches/shared-osgi/ipojo-manager/pom.xml (added) +++ directory/shared/branches/shared-osgi/ipojo-manager/pom.xml Mon Oct 24 12:34:54 2011 @@ -0,0 +1,89 @@ + + + + + + 4.0.0 + + org.apache.directory.shared + shared-parent + 1.0.0-M9-SNAPSHOT + + + shared-ipojo-manager + ApacheDS Shared OSGI/IPOJO Manager + bundle + + Provides main facility for handling IPojo component management + + + + org.apache.felix + org.apache.felix.ipojo.annotations + 1.8.0 + + + + org.apache.felix + org.apache.felix.ipojo.handler.whiteboard + 1.6.0 + + + + ${project.groupId} + shared-ldap-model + + + + + + + org.apache.felix + maven-bundle-plugin + true + true + + + ${project.groupId}.${project.artifactId} + org.apache.directory.shared.ipojo.helpers.OSGIHelpersActivator + + {local-packages};version=${project.version};-noimport:=true + + + + + + + org.apache.felix + maven-ipojo-plugin + 1.8.0 + + + + ipojo-bundle + + + + + + + + + Added: directory/shared/branches/shared-osgi/ipojo-manager/src/main/java/org/apache/directory/shared/ipojo/helpers/IPojoHelper.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-osgi/ipojo-manager/src/main/java/org/apache/directory/shared/ipojo/helpers/IPojoHelper.java?rev=1188117&view=auto ============================================================================== --- directory/shared/branches/shared-osgi/ipojo-manager/src/main/java/org/apache/directory/shared/ipojo/helpers/IPojoHelper.java (added) +++ directory/shared/branches/shared-osgi/ipojo-manager/src/main/java/org/apache/directory/shared/ipojo/helpers/IPojoHelper.java Mon Oct 24 12:34:54 2011 @@ -0,0 +1,98 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +package org.apache.directory.shared.ipojo.helpers; + + +import java.util.Dictionary; +import java.util.Hashtable; +import java.util.List; + +import org.apache.felix.ipojo.ComponentFactory; +import org.apache.felix.ipojo.ComponentInstance; +import org.apache.felix.ipojo.ConfigurationException; +import org.apache.felix.ipojo.Factory; +import org.apache.felix.ipojo.InstanceManager; +import org.apache.felix.ipojo.MissingHandlerException; +import org.apache.felix.ipojo.UnacceptableConfiguration; + + +public class IPojoHelper +{ + public static ComponentFactory getFactory( String factoryName ) + { + try + { + String filter = "(factory.name=" + factoryName + ")"; + List factories = ( List ) OSGIHelper.getServices( Factory.class.getName(), filter ); + if ( factories == null ) + { + return null; + } + return factories.get( 0 ); + } + catch ( ClassCastException e ) + { + return null; + } + } + + + public static Object createIPojoComponent( String factoryName, String instanceName, Dictionary props ) + { + ComponentFactory factory = IPojoHelper.getFactory( factoryName ); + if ( factory == null ) + { + return null; + } + + if ( instanceName != null ) + { + if ( props == null ) + { + props = new Hashtable(); + } + props.put( "instance.name", instanceName ); + } + + try + { + ComponentInstance comp = factory.createComponentInstance( props ); + Object instance = ( ( InstanceManager ) comp ).getPojoObject(); + + return instance; + } + catch ( UnacceptableConfiguration e ) + { + e.printStackTrace(); + return null; + } + catch ( MissingHandlerException e ) + { + e.printStackTrace(); + return null; + } + catch ( ConfigurationException e ) + { + e.printStackTrace(); + return null; + } + + } +} Added: directory/shared/branches/shared-osgi/ipojo-manager/src/main/java/org/apache/directory/shared/ipojo/helpers/OSGIHelper.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-osgi/ipojo-manager/src/main/java/org/apache/directory/shared/ipojo/helpers/OSGIHelper.java?rev=1188117&view=auto ============================================================================== --- directory/shared/branches/shared-osgi/ipojo-manager/src/main/java/org/apache/directory/shared/ipojo/helpers/OSGIHelper.java (added) +++ directory/shared/branches/shared-osgi/ipojo-manager/src/main/java/org/apache/directory/shared/ipojo/helpers/OSGIHelper.java Mon Oct 24 12:34:54 2011 @@ -0,0 +1,115 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +package org.apache.directory.shared.ipojo.helpers; + + +import java.util.ArrayList; +import java.util.List; + +import org.osgi.framework.InvalidSyntaxException; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceReference; + + +public class OSGIHelper +{ + /** BundleContext reference which will be assigned through BundleActivator */ + public static BundleContext bundleCtx; + + + private static boolean checkOSGIContext() + { + if ( bundleCtx == null ) + { + return false; + } + + return true; + } + + + public static List getServices( String serviceClassName, String filter ) + { + if ( !checkOSGIContext() ) + { + return null; + } + + try + { + ServiceReference[] serviceReferences = bundleCtx.getServiceReferences( serviceClassName, filter ); + List services = new ArrayList(); + for ( ServiceReference ref : serviceReferences ) + { + services.add( bundleCtx.getService( ref ) ); + } + + return services; + } + catch ( InvalidSyntaxException e ) + { + e.printStackTrace(); + return null; + } + catch ( IllegalStateException e ) + { + e.printStackTrace(); + return null; + } + } + + + public static Object getService( String serviceClassName ) + { + if ( !checkOSGIContext() ) + { + return null; + } + + ServiceReference ref = bundleCtx.getServiceReference( serviceClassName ); + if ( ref == null ) + { + return null; + } + + try + { + return bundleCtx.getService( ref ); + } + catch ( IllegalStateException e ) + { + e.printStackTrace(); + return null; + } + } + + public static Object getServiceObject(ServiceReference ref) + { + try + { + return bundleCtx.getService( ref ); + } + catch ( IllegalStateException e ) + { + e.printStackTrace(); + return null; + } + } +} Added: directory/shared/branches/shared-osgi/ipojo-manager/src/main/java/org/apache/directory/shared/ipojo/helpers/OSGIHelpersActivator.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-osgi/ipojo-manager/src/main/java/org/apache/directory/shared/ipojo/helpers/OSGIHelpersActivator.java?rev=1188117&view=auto ============================================================================== --- directory/shared/branches/shared-osgi/ipojo-manager/src/main/java/org/apache/directory/shared/ipojo/helpers/OSGIHelpersActivator.java (added) +++ directory/shared/branches/shared-osgi/ipojo-manager/src/main/java/org/apache/directory/shared/ipojo/helpers/OSGIHelpersActivator.java Mon Oct 24 12:34:54 2011 @@ -0,0 +1,47 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +package org.apache.directory.shared.ipojo.helpers; + + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; + + +/** + * BundleActivator to keep and release BundleContext reference for further uses by helper classes. + * + * @author Apache Directory Project + */ +public class OSGIHelpersActivator implements BundleActivator +{ + + public void start( BundleContext context ) throws Exception + { + //Save the BundleContext reference + OSGIHelper.bundleCtx = context; + } + + + public void stop( BundleContext context ) throws Exception + { + //Null the BundleContext reference + OSGIHelper.bundleCtx = null; + } +} Added: directory/shared/branches/shared-osgi/ipojo-manager/src/main/java/org/apache/directory/shared/ipojo/schema/SchemaElementsManager.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-osgi/ipojo-manager/src/main/java/org/apache/directory/shared/ipojo/schema/SchemaElementsManager.java?rev=1188117&view=auto ============================================================================== --- directory/shared/branches/shared-osgi/ipojo-manager/src/main/java/org/apache/directory/shared/ipojo/schema/SchemaElementsManager.java (added) +++ directory/shared/branches/shared-osgi/ipojo-manager/src/main/java/org/apache/directory/shared/ipojo/schema/SchemaElementsManager.java Mon Oct 24 12:34:54 2011 @@ -0,0 +1,54 @@ +package org.apache.directory.shared.ipojo.schema; + + +import java.util.Dictionary; +import java.util.Hashtable; + +import org.apache.directory.shared.ipojo.helpers.IPojoHelper; +import org.apache.directory.shared.ldap.model.schema.LdapComparator; +import org.apache.directory.shared.ldap.model.schema.Normalizer; +import org.apache.directory.shared.ldap.model.schema.SyntaxChecker; + + +public class SchemaElementsManager +{ + public LdapComparator getLdapComparator( String factoryName, String oid ) throws Exception + { + Dictionary props = new Hashtable(); + props.put( "ads.comp.comparator.oid", oid ); + + LdapComparator comparator = ( LdapComparator ) IPojoHelper + .createIPojoComponent( factoryName, null, props ); + + if ( comparator == null ) + { + throw new Exception( "Required Comparator is not registered" ); + } + + return comparator; + } + + /* + public Normalizer getNormalizer( String factoryName ) throws Exception + { + Normalizer comparator = activeNormalizers.get( factoryName ); + if ( comparator == null ) + { + throw new Exception( "Required Normalizer is not registered" ); + } + + return comparator; + } + + + public SyntaxChecker getSyntaxChecker( String factoryName ) throws Exception + { + SyntaxChecker comparator = activeSyntaxCheckers.get( factoryName ); + if ( comparator == null ) + { + throw new Exception( "Required SyntaxChecker is not registered" ); + } + + return comparator; + }*/ +} Modified: directory/shared/branches/shared-osgi/ldap/model/pom.xml URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-osgi/ldap/model/pom.xml?rev=1188117&r1=1188116&r2=1188117&view=diff ============================================================================== --- directory/shared/branches/shared-osgi/ldap/model/pom.xml (original) +++ directory/shared/branches/shared-osgi/ldap/model/pom.xml Mon Oct 24 12:34:54 2011 @@ -76,6 +76,12 @@ commons-collections commons-collections + + + org.apache.felix + org.apache.felix.ipojo.annotations + 1.8.0 + @@ -144,6 +150,19 @@ + + + org.apache.felix + maven-ipojo-plugin + 1.8.0 + + + + ipojo-bundle + + + + Modified: directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/EntityFactory.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/EntityFactory.java?rev=1188117&r1=1188116&r2=1188117&view=diff ============================================================================== --- directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/EntityFactory.java (original) +++ directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/EntityFactory.java Mon Oct 24 12:34:54 2011 @@ -19,6 +19,7 @@ */ package org.apache.directory.shared.ldap.model.schema; + import org.apache.directory.shared.ldap.model.entry.Entry; import org.apache.directory.shared.ldap.model.exception.LdapException; import org.apache.directory.shared.ldap.model.schema.parsers.LdapComparatorDescription; @@ -27,6 +28,7 @@ import org.apache.directory.shared.ldap. import org.apache.directory.shared.ldap.model.schema.parsers.SyntaxCheckerDescription; import org.apache.directory.shared.ldap.model.schema.registries.Registries; + public interface EntityFactory { /** @@ -37,8 +39,8 @@ public interface EntityFactory * @throws Exception If the instance can't be created */ Schema getSchema( Entry entry ) throws Exception; - - + + /** * Construct an AttributeType from an entry representing an AttributeType. * @@ -49,9 +51,10 @@ public interface EntityFactory * @return An AttributeType SchemaObject * @throws LdapException If the AttributeType is invalid */ - AttributeType getAttributeType( SchemaManager schemaManager, Entry entry, Registries targetRegistries, String schemaName ) throws LdapException; + AttributeType getAttributeType( SchemaManager schemaManager, Entry entry, Registries targetRegistries, + String schemaName ) throws LdapException; + - /** * Construct a LdapComparator from a description of a comparator. * @@ -62,11 +65,11 @@ public interface EntityFactory * @return A new instance of a LdapComparator * @throws Exception If the creation has failed */ - LdapComparator getLdapComparator( SchemaManager schemaManager, + LdapComparator getLdapComparator( SchemaManager schemaManager, LdapComparatorDescription comparatorDescription, Registries targetRegistries, String schemaName ) throws Exception; - - + + /** * Retrieve and load a Comparator class from the DIT. * @@ -77,9 +80,23 @@ public interface EntityFactory * @return the loaded Comparator * @throws LdapException if anything fails during loading */ - LdapComparator getLdapComparator( SchemaManager schemaManager, Entry entry, + LdapComparator getLdapComparator( SchemaManager schemaManager, Entry entry, Registries targetRegistries, String schemaName ) throws LdapException; - + + + /** + * Retrieve and load a Comparator class through OSGI from the DIT. + * + * @param schemaManager The Schema Manager + * @param entry The entry containing all the informations to build a LdapComparator + * @param targetRegistries The registries containing all the enabled SchemaObjects + * @param schemaName The schema this SchemaObject will be part of + * @return the loaded Comparator + * @throws LdapException if anything fails during loading + */ + LdapComparator getLdapComparatorOSGI( SchemaManager schemaManager, Entry entry, + Registries targetRegistries, String schemaName ) throws LdapException; + /** * Construct an MatchingRule from an entry get from the Dit @@ -91,7 +108,8 @@ public interface EntityFactory * @return A MatchingRule SchemaObject * @throws LdapException If the MatchingRule is invalid */ - MatchingRule getMatchingRule( SchemaManager schemaManager, Entry entry, Registries targetRegistries, String schemaName ) throws LdapException; + MatchingRule getMatchingRule( SchemaManager schemaManager, Entry entry, Registries targetRegistries, + String schemaName ) throws LdapException; /** @@ -106,8 +124,8 @@ public interface EntityFactory */ Normalizer getNormalizer( SchemaManager schemaManager, NormalizerDescription normalizerDescription, Registries targetRegistries, String schemaName ) throws Exception; - - + + /** * Retrieve and load a Normalizer class from the DIT. * @@ -120,8 +138,8 @@ public interface EntityFactory */ Normalizer getNormalizer( SchemaManager schemaManager, Entry entry, Registries targetRegistries, String schemaName ) throws LdapException; - - + + /** * * @param schemaManager The Schema Manager @@ -131,9 +149,10 @@ public interface EntityFactory * @return * @throws Exception */ - ObjectClass getObjectClass( SchemaManager schemaManager, Entry entry, Registries targetRegistries, String schemaName ) throws LdapException; - - + ObjectClass getObjectClass( SchemaManager schemaManager, Entry entry, Registries targetRegistries, String schemaName ) + throws LdapException; + + /** * * @param schemaManager The Schema Manager @@ -143,9 +162,10 @@ public interface EntityFactory * @return * @throws LdapException */ - LdapSyntax getSyntax( SchemaManager schemaManager, Entry entry, Registries targetRegistries, String schemaName ) throws LdapException; - - + LdapSyntax getSyntax( SchemaManager schemaManager, Entry entry, Registries targetRegistries, String schemaName ) + throws LdapException; + + /** * Retrieve and load a syntaxChecker class from the DIT. * @@ -156,8 +176,9 @@ public interface EntityFactory * @return the loaded SyntaxChecker * @throws LdapException if anything fails during loading */ - SyntaxChecker getSyntaxChecker( SchemaManager schemaManager, Entry entry, Registries targetRegistries, String schemaName ) throws LdapException; - + SyntaxChecker getSyntaxChecker( SchemaManager schemaManager, Entry entry, Registries targetRegistries, + String schemaName ) throws LdapException; + /** * Create a new instance of a SyntaxChecker @@ -169,6 +190,6 @@ public interface EntityFactory * @return A new instance of a syntaxChecker * @throws Exception If the creation has failed */ - SyntaxChecker getSyntaxChecker( SchemaManager schemaManager, SyntaxCheckerDescription syntaxCheckerDescription, + SyntaxChecker getSyntaxChecker( SchemaManager schemaManager, SyntaxCheckerDescription syntaxCheckerDescription, Registries targetRegistries, String schemaName ) throws Exception; } Modified: directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/BitStringComparator.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/BitStringComparator.java?rev=1188117&r1=1188116&r2=1188117&view=diff ============================================================================== --- directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/BitStringComparator.java (original) +++ directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/BitStringComparator.java Mon Oct 24 12:34:54 2011 @@ -21,6 +21,9 @@ package org.apache.directory.shared.ldap import org.apache.directory.shared.ldap.model.schema.LdapComparator; +import org.apache.felix.ipojo.annotations.Component; +import org.apache.felix.ipojo.annotations.Property; +import org.apache.felix.ipojo.annotations.Provides; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -30,19 +33,29 @@ import org.slf4j.LoggerFactory; * * @author Apache Directory Project */ +@Component +@Provides public class BitStringComparator extends LdapComparator { + /** + * Property to specify factory type. + * TODO:This is temporary. Will be vanished after introducing custom annotations + */ + @Property(name = "ads.comp.type", value = "comparator") + public String compType; + /** The serial version UID */ private static final long serialVersionUID = 2L; /** A logger for this class */ private static final Logger LOG = LoggerFactory.getLogger( BitStringComparator.class ); + /** * The BitStringComparator constructor. Its OID is the IntegerOrderingMatch matching * rule OID. */ - public BitStringComparator( String oid ) + public BitStringComparator( @Property(name = "ads.comp.comparator.oid") String oid ) { super( oid ); } @@ -52,7 +65,7 @@ public class BitStringComparator extends * Implementation of the Compare method */ @edu.umd.cs.findbugs.annotations.SuppressWarnings(value = "ES_COMPARING_PARAMETER_STRING_WITH_EQ", - justification ="false positive") + justification = "false positive") public int compare( String bs1, String bs2 ) { LOG.debug( "comparing BitString objects '{}' with '{}'", bs1, bs2 ); Modified: directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/BooleanComparator.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/BooleanComparator.java?rev=1188117&r1=1188116&r2=1188117&view=diff ============================================================================== --- directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/BooleanComparator.java (original) +++ directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/BooleanComparator.java Mon Oct 24 12:34:54 2011 @@ -21,6 +21,9 @@ package org.apache.directory.shared.ldap import org.apache.directory.shared.ldap.model.schema.LdapComparator; +import org.apache.felix.ipojo.annotations.Component; +import org.apache.felix.ipojo.annotations.Property; +import org.apache.felix.ipojo.annotations.Provides; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -30,19 +33,29 @@ import org.slf4j.LoggerFactory; * * @author Apache Directory Project */ +@Component +@Provides public class BooleanComparator extends LdapComparator { + /** + * Property to specify factory type. + * TODO:This is temporary. Will be vanished after introducing custom annotations + */ + @Property(name = "ads.comp.type", value = "comparator") + public String compType; + /** The serial version UID */ private static final long serialVersionUID = 2L; /** A logger for this class */ private static final Logger LOG = LoggerFactory.getLogger( BooleanComparator.class ); + /** * The BooleanComparator constructor. Its OID is the BooleanMatch matching * rule OID. */ - public BooleanComparator( String oid ) + public BooleanComparator( @Property(name = "ads.comp.comparator.oid") String oid ) { super( oid ); } Modified: directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/ByteArrayComparator.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/ByteArrayComparator.java?rev=1188117&r1=1188116&r2=1188117&view=diff ============================================================================== --- directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/ByteArrayComparator.java (original) +++ directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/ByteArrayComparator.java Mon Oct 24 12:34:54 2011 @@ -22,6 +22,9 @@ package org.apache.directory.shared.ldap import org.apache.directory.shared.ldap.model.schema.LdapComparator; import org.apache.directory.shared.util.Strings; +import org.apache.felix.ipojo.annotations.Component; +import org.apache.felix.ipojo.annotations.Property; +import org.apache.felix.ipojo.annotations.Provides; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -31,30 +34,41 @@ import org.slf4j.LoggerFactory; * * @author Apache Directory Project */ +@Component +@Provides public class ByteArrayComparator extends LdapComparator { + /** + * Property to specify factory type. + * TODO:This is temporary. Will be vanished after introducing custom annotations + */ + @Property(name = "ads.comp.type", value = "comparator") + public String compType; + /** The serial version UID */ private static final long serialVersionUID = 2L; /** A logger for this class */ private static final Logger LOG = LoggerFactory.getLogger( ByteArrayComparator.class ); + /** * The ByteArrayComparator constructor. Its OID is the OctetStringMatch matching * rule OID. */ - public ByteArrayComparator( String oid ) + public ByteArrayComparator( @Property(name = "ads.comp.comparator.oid") String oid ) { super( oid ); } + /** * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) */ public int compare( byte[] b1, byte[] b2 ) { - LOG.debug( "comparing OctetString objects '{}' with '{}'", - Strings.dumpBytes(b1), Strings.dumpBytes(b2) ); + LOG.debug( "comparing OctetString objects '{}' with '{}'", + Strings.dumpBytes( b1 ), Strings.dumpBytes( b2 ) ); // ------------------------------------------------------------------- // Handle some basis cases @@ -64,12 +78,12 @@ public class ByteArrayComparator extends { return ( b2 == null ) ? 0 : -1; } - + if ( b2 == null ) { return 1; } - + if ( b1.length == b2.length ) { for ( int i = 0; i < b1.length; i++ ) @@ -83,12 +97,12 @@ public class ByteArrayComparator extends return -1; } } - + return 0; } - + int minLength = Math.min( b1.length, b2.length ); - + for ( int i = 0; i < minLength; i++ ) { if ( b1[i] > b2[i] ) @@ -100,19 +114,19 @@ public class ByteArrayComparator extends return -1; } } - + // b2 is longer w/ b1 as prefix if ( b1.length == minLength ) { return -1; } - + // b1 is longer w/ b2 as prefix if ( b2.length == minLength ) { return 1; } - + return 0; } } Modified: directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/ComparableComparator.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/ComparableComparator.java?rev=1188117&r1=1188116&r2=1188117&view=diff ============================================================================== --- directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/ComparableComparator.java (original) +++ directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/ComparableComparator.java Mon Oct 24 12:34:54 2011 @@ -22,6 +22,9 @@ package org.apache.directory.shared.ldap import org.apache.directory.shared.i18n.I18n; import org.apache.directory.shared.ldap.model.schema.LdapComparator; +import org.apache.felix.ipojo.annotations.Component; +import org.apache.felix.ipojo.annotations.Property; +import org.apache.felix.ipojo.annotations.Provides; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -32,20 +35,30 @@ import org.slf4j.LoggerFactory; * @author Apache Directory Project * @param the type, must extend {@link Comparable} */ +@Component +@Provides public class ComparableComparator extends LdapComparator> { + /** + * Property to specify factory type. + * TODO:This is temporary. Will be vanished after introducing custom annotations + */ + @Property(name = "ads.comp.type", value = "comparator") + public String compType; + /** The serial version UID */ private static final long serialVersionUID = 2L; /** A logger for this class */ private static final Logger LOG = LoggerFactory.getLogger( ComparableComparator.class ); + /** * The ComparableComparator constructor. * * @param oid the comparator OID */ - public ComparableComparator( String oid ) + public ComparableComparator( @Property(name = "ads.comp.comparator.oid") String oid ) { super( oid ); } Modified: directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/CsnComparator.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/CsnComparator.java?rev=1188117&r1=1188116&r2=1188117&view=diff ============================================================================== --- directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/CsnComparator.java (original) +++ directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/CsnComparator.java Mon Oct 24 12:34:54 2011 @@ -22,6 +22,9 @@ package org.apache.directory.shared.ldap import org.apache.directory.shared.ldap.model.entry.StringValue; import org.apache.directory.shared.ldap.model.schema.LdapComparator; +import org.apache.felix.ipojo.annotations.Component; +import org.apache.felix.ipojo.annotations.Property; +import org.apache.felix.ipojo.annotations.Provides; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -37,19 +40,29 @@ import org.slf4j.LoggerFactory; * * @author Apache Directory Project */ +@Component +@Provides public class CsnComparator extends LdapComparator { + /** + * Property to specify factory type. + * TODO:This is temporary. Will be vanished after introducing custom annotations + */ + @Property(name = "ads.comp.type", value = "comparator") + public String compType; + /** The serial version UID */ private static final long serialVersionUID = 2L; /** A logger for this class */ private static final Logger LOG = LoggerFactory.getLogger( CsnComparator.class ); + /** * The CsnComparator constructor. Its OID is the CsnMatch matching * rule OID. */ - public CsnComparator( String oid ) + public CsnComparator( @Property(name = "ads.comp.comparator.oid") String oid ) { super( oid ); } @@ -61,7 +74,7 @@ public class CsnComparator extends LdapC public int compare( Object csnObj1, Object csnObj2 ) { LOG.debug( "comparing CSN objects '{}' with '{}'", csnObj1, csnObj2 ); - + if ( csnObj1 == csnObj2 ) { return 0; @@ -74,15 +87,15 @@ public class CsnComparator extends LdapC { return ( csnObj2 == null ) ? 0 : -1; } - + if ( csnObj2 == null ) { return 1; } - + String csnStr1 = null; String csnStr2 = null; - + if ( csnObj1 instanceof StringValue ) { csnStr1 = ( ( StringValue ) csnObj1 ).getValue(); @@ -94,13 +107,13 @@ public class CsnComparator extends LdapC if ( csnObj2 instanceof StringValue ) { - csnStr2 = ( (StringValue) csnObj2 ).getValue(); + csnStr2 = ( ( StringValue ) csnObj2 ).getValue(); } else { csnStr2 = csnObj2.toString(); } - + return csnStr1.compareTo( csnStr2 ); } } Modified: directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/CsnSidComparator.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/CsnSidComparator.java?rev=1188117&r1=1188116&r2=1188117&view=diff ============================================================================== --- directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/CsnSidComparator.java (original) +++ directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/CsnSidComparator.java Mon Oct 24 12:34:54 2011 @@ -21,6 +21,9 @@ package org.apache.directory.shared.ldap import org.apache.directory.shared.ldap.model.schema.LdapComparator; +import org.apache.felix.ipojo.annotations.Component; +import org.apache.felix.ipojo.annotations.Property; +import org.apache.felix.ipojo.annotations.Provides; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -32,24 +35,34 @@ import org.slf4j.LoggerFactory; * * @author Apache Directory Project */ +@Component +@Provides public class CsnSidComparator extends LdapComparator { + /** + * Property to specify factory type. + * TODO:This is temporary. Will be vanished after introducing custom annotations + */ + @Property(name = "ads.comp.type", value = "comparator") + public String compType; + /** The serial version UID */ private static final long serialVersionUID = 2L; /** A logger for this class */ private static final Logger LOG = LoggerFactory.getLogger( CsnSidComparator.class ); + /** * The CsnSidComparator constructor. Its OID is the CsnSidMatch matching * rule OID. */ - public CsnSidComparator( String oid ) + public CsnSidComparator( @Property(name = "ads.comp.comparator.oid") String oid ) { super( oid ); } - - + + /** * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) */ @@ -64,15 +77,15 @@ public class CsnSidComparator extends Ld { return ( sidStr2 == null ) ? 0 : -1; } - + if ( sidStr2 == null ) { return 1; } - + int sid1 = 0; int sid2 = 0; - + try { sid1 = Integer.parseInt( sidStr1, 16 ); @@ -81,7 +94,7 @@ public class CsnSidComparator extends Ld { return -1; } - + try { sid2 = Integer.parseInt( sidStr2, 16 ); @@ -90,7 +103,7 @@ public class CsnSidComparator extends Ld { return 1; } - + if ( sid1 > sid2 ) { return 1; @@ -99,7 +112,7 @@ public class CsnSidComparator extends Ld { return -1; } - + return 0; } } Modified: directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/DeepTrimCachingNormalizingComparator.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/DeepTrimCachingNormalizingComparator.java?rev=1188117&r1=1188116&r2=1188117&view=diff ============================================================================== --- directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/DeepTrimCachingNormalizingComparator.java (original) +++ directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/DeepTrimCachingNormalizingComparator.java Mon Oct 24 12:34:54 2011 @@ -22,6 +22,9 @@ package org.apache.directory.shared.ldap import org.apache.directory.shared.ldap.model.schema.normalizers.CachingNormalizer; import org.apache.directory.shared.ldap.model.schema.normalizers.DeepTrimNormalizer; +import org.apache.felix.ipojo.annotations.Component; +import org.apache.felix.ipojo.annotations.Property; +import org.apache.felix.ipojo.annotations.Provides; /** @@ -29,13 +32,24 @@ import org.apache.directory.shared.ldap. * * @author Apache Directory Project */ +@Component +@Provides public class DeepTrimCachingNormalizingComparator extends NormalizingComparator { + /** + * Property to specify factory type. + * TODO:This is temporary. Will be vanished after introducing custom annotations + */ + @Property(name = "ads.comp.type", value = "comparator") + public String compType; + /** The serial version UID */ private static final long serialVersionUID = 2L; - @SuppressWarnings({ "rawtypes", "unchecked" }) - public DeepTrimCachingNormalizingComparator( String oid ) + + @SuppressWarnings( + { "rawtypes", "unchecked" }) + public DeepTrimCachingNormalizingComparator( @Property(name = "ads.comp.comparator.oid") String oid ) { super( oid, new CachingNormalizer( new DeepTrimNormalizer( oid ), 10 ), new ComparableComparator( oid ) ); Modified: directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/DeepTrimToLowerCachingNormalizingComparator.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/DeepTrimToLowerCachingNormalizingComparator.java?rev=1188117&r1=1188116&r2=1188117&view=diff ============================================================================== --- directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/DeepTrimToLowerCachingNormalizingComparator.java (original) +++ directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/DeepTrimToLowerCachingNormalizingComparator.java Mon Oct 24 12:34:54 2011 @@ -22,6 +22,9 @@ package org.apache.directory.shared.ldap import org.apache.directory.shared.ldap.model.schema.normalizers.CachingNormalizer; import org.apache.directory.shared.ldap.model.schema.normalizers.DeepTrimToLowerNormalizer; +import org.apache.felix.ipojo.annotations.Component; +import org.apache.felix.ipojo.annotations.Property; +import org.apache.felix.ipojo.annotations.Provides; /** @@ -29,13 +32,24 @@ import org.apache.directory.shared.ldap. * * @author Apache Directory Project */ +@Component +@Provides public class DeepTrimToLowerCachingNormalizingComparator extends NormalizingComparator { + /** + * Property to specify factory type. + * TODO:This is temporary. Will be vanished after introducing custom annotations + */ + @Property(name = "ads.comp.type", value = "comparator") + public String compType; + /** The serial version UID */ private static final long serialVersionUID = 2L; - @SuppressWarnings({ "rawtypes", "unchecked" }) - public DeepTrimToLowerCachingNormalizingComparator( String oid ) + + @SuppressWarnings( + { "rawtypes", "unchecked" }) + public DeepTrimToLowerCachingNormalizingComparator( @Property(name = "ads.comp.comparator.oid") String oid ) { super( oid, new CachingNormalizer( new DeepTrimToLowerNormalizer( oid ), 10 ), new ComparableComparator( oid ) ); Modified: directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/DnComparator.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/DnComparator.java?rev=1188117&r1=1188116&r2=1188117&view=diff ============================================================================== --- directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/DnComparator.java (original) +++ directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/DnComparator.java Mon Oct 24 12:34:54 2011 @@ -26,6 +26,9 @@ import org.apache.directory.shared.ldap. import org.apache.directory.shared.ldap.model.name.Dn; import org.apache.directory.shared.ldap.model.schema.LdapComparator; import org.apache.directory.shared.ldap.model.schema.SchemaManager; +import org.apache.felix.ipojo.annotations.Component; +import org.apache.felix.ipojo.annotations.Property; +import org.apache.felix.ipojo.annotations.Provides; /** @@ -33,29 +36,39 @@ import org.apache.directory.shared.ldap. * * @author Apache Directory Project */ +@Component +@Provides public class DnComparator extends LdapComparator { + /** + * Property to specify factory type. + * TODO:This is temporary. Will be vanished after introducing custom annotations + */ + @Property(name = "ads.comp.type", value = "comparator") + public String compType; + /** The serial version UID */ private static final long serialVersionUID = 2L; - /** A reference to the schema manager */ + /** A reference to the schema manager */ private SchemaManager schemaManager; - - public DnComparator( String oid ) + + + public DnComparator( @Property(name = "ads.comp.comparator.oid") String oid ) { super( oid ); } - - + + /** * {@inheritDoc} */ - public int compare( Object obj0, Object obj1 ) + public int compare( Object obj0, Object obj1 ) { Dn dn0 = null; Dn dn1 = null; - - try + + try { dn0 = getDn( obj0 ); dn1 = getDn( obj1 ); @@ -65,7 +78,7 @@ public class DnComparator extends LdapCo // -- what do we do here ? return -1; } - + if ( dn0.equals( dn1 ) ) { return 0; @@ -80,11 +93,11 @@ public class DnComparator extends LdapCo private Dn getDn( Object obj ) throws LdapInvalidDnException { Dn dn = null; - - if ( obj instanceof Dn) + + if ( obj instanceof Dn ) { - dn = (Dn)obj; - + dn = ( Dn ) obj; + dn = ( dn.isSchemaAware() ? dn : dn.apply( schemaManager ) ); } else if ( obj instanceof String ) @@ -93,9 +106,9 @@ public class DnComparator extends LdapCo } else { - throw new IllegalStateException( I18n.err( I18n.ERR_04218, (obj == null ? null : obj.getClass() ) ) ); + throw new IllegalStateException( I18n.err( I18n.ERR_04218, ( obj == null ? null : obj.getClass() ) ) ); } - + return dn; } Modified: directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/GeneralizedTimeComparator.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/GeneralizedTimeComparator.java?rev=1188117&r1=1188116&r2=1188117&view=diff ============================================================================== --- directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/GeneralizedTimeComparator.java (original) +++ directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/GeneralizedTimeComparator.java Mon Oct 24 12:34:54 2011 @@ -27,6 +27,9 @@ import org.apache.directory.shared.i18n. import org.apache.directory.shared.ldap.model.schema.LdapComparator; import org.apache.directory.shared.ldap.model.schema.PrepareString; import org.apache.directory.shared.util.GeneralizedTime; +import org.apache.felix.ipojo.annotations.Component; +import org.apache.felix.ipojo.annotations.Property; +import org.apache.felix.ipojo.annotations.Provides; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -36,19 +39,29 @@ import org.slf4j.LoggerFactory; * * @author Apache Directory Project */ +@Component +@Provides public class GeneralizedTimeComparator extends LdapComparator { + /** + * Property to specify factory type. + * TODO:This is temporary. Will be vanished after introducing custom annotations + */ + @Property(name = "ads.comp.type", value = "comparator") + public String compType; + /** The serial version UID */ private static final long serialVersionUID = 2L; /** A logger for this class */ private static final Logger LOG = LoggerFactory.getLogger( GeneralizedTimeComparator.class ); + /** * The GeneralizedTimeComparator constructor. Its OID is the * generalizedTimeOrderingMatch matching rule OID. */ - public GeneralizedTimeComparator( String oid ) + public GeneralizedTimeComparator( @Property(name = "ads.comp.comparator.oid") String oid ) { super( oid ); } @@ -58,7 +71,7 @@ public class GeneralizedTimeComparator e * Implementation of the Compare method */ @edu.umd.cs.findbugs.annotations.SuppressWarnings(value = "ES_COMPARING_PARAMETER_STRING_WITH_EQ", - justification ="false positive") + justification = "false positive") public int compare( String backendValue, String assertValue ) { LOG.debug( "comparing generalizedTimeOrdering objects '{}' with '{}'", backendValue, assertValue ); Modified: directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/IntegerComparator.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/IntegerComparator.java?rev=1188117&r1=1188116&r2=1188117&view=diff ============================================================================== --- directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/IntegerComparator.java (original) +++ directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/IntegerComparator.java Mon Oct 24 12:34:54 2011 @@ -27,6 +27,9 @@ import java.math.BigInteger; import org.apache.directory.shared.i18n.I18n; import org.apache.directory.shared.ldap.model.schema.LdapComparator; import org.apache.directory.shared.ldap.model.schema.PrepareString; +import org.apache.felix.ipojo.annotations.Component; +import org.apache.felix.ipojo.annotations.Property; +import org.apache.felix.ipojo.annotations.Provides; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -36,19 +39,29 @@ import org.slf4j.LoggerFactory; * * @author Apache Directory Project */ +@Component +@Provides public class IntegerComparator extends LdapComparator implements Serializable { + /** + * Property to specify factory type. + * TODO:This is temporary. Will be vanished after introducing custom annotations + */ + @Property(name = "ads.comp.type", value = "comparator") + public String compType; + /** The serial version UID */ private static final long serialVersionUID = 2L; /** A logger for this class */ private static final Logger LOG = LoggerFactory.getLogger( IntegerComparator.class ); + /** * The IntegerComparator constructor. Its OID is the IntegerOrderingMatch matching * rule OID. */ - public IntegerComparator( String oid ) + public IntegerComparator( @Property(name = "ads.comp.comparator.oid") String oid ) { super( oid ); } @@ -74,7 +87,7 @@ public class IntegerComparator extends L * Implementation of the Compare method */ @edu.umd.cs.findbugs.annotations.SuppressWarnings(value = "RC_REF_COMPARISON", - justification ="false positive") + justification = "false positive") private int compare( Long backendValue, Long assertValue ) { LOG.debug( "comparing Integer objects '{}' with '{}'", backendValue, assertValue ); @@ -103,7 +116,7 @@ public class IntegerComparator extends L * Implementation of the Compare method */ @edu.umd.cs.findbugs.annotations.SuppressWarnings(value = "ES_COMPARING_PARAMETER_STRING_WITH_EQ", - justification ="false positive") + justification = "false positive") private int compare( String backendValue, String assertValue ) { LOG.debug( "comparing Integer objects '{}' with '{}'", backendValue, assertValue ); Modified: directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/LongComparator.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/LongComparator.java?rev=1188117&r1=1188116&r2=1188117&view=diff ============================================================================== --- directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/LongComparator.java (original) +++ directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/LongComparator.java Mon Oct 24 12:34:54 2011 @@ -24,6 +24,9 @@ import java.io.Serializable; import org.apache.directory.shared.i18n.I18n; import org.apache.directory.shared.ldap.model.schema.LdapComparator; +import org.apache.felix.ipojo.annotations.Component; +import org.apache.felix.ipojo.annotations.Property; +import org.apache.felix.ipojo.annotations.Provides; /** @@ -31,16 +34,26 @@ import org.apache.directory.shared.ldap. * * @author Apache Directory Project */ +@Component +@Provides public class LongComparator extends LdapComparator implements Serializable { + /** + * Property to specify factory type. + * TODO:This is temporary. Will be vanished after introducing custom annotations + */ + @Property(name = "ads.comp.type", value = "comparator") + public String compType; + /** The serial version UID */ private static final long serialVersionUID = 2L; + /** * The LongComparator constructor. Its OID is the IntegerOrderingMatch matching * rule OID. */ - public LongComparator( String oid ) + public LongComparator( @Property(name = "ads.comp.comparator.oid") String oid ) { super( oid ); } @@ -54,7 +67,7 @@ public class LongComparator extends Ldap * @return 1 if obj1 > obj2, 0 if obj1 == obj2, -1 if obj1 < obj2 */ @edu.umd.cs.findbugs.annotations.SuppressWarnings(value = "RC_REF_COMPARISON", - justification ="false positive") + justification = "false positive") public int compare( Long obj1, Long obj2 ) { if ( obj1 == obj2 ) Modified: directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/NormalizingComparator.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/NormalizingComparator.java?rev=1188117&r1=1188116&r2=1188117&view=diff ============================================================================== --- directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/NormalizingComparator.java (original) +++ directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/NormalizingComparator.java Mon Oct 24 12:34:54 2011 @@ -42,10 +42,10 @@ import org.slf4j.LoggerFactory; private static final Logger LOG = LoggerFactory.getLogger( NormalizingComparator.class ); /** the Normalizer to normalize values with before comparing */ - private Normalizer normalizer; + protected Normalizer normalizer; /** the underlying comparator to use for comparisons */ - private LdapComparator comparator; + protected LdapComparator comparator; /** Modified: directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/NumericStringComparator.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/NumericStringComparator.java?rev=1188117&r1=1188116&r2=1188117&view=diff ============================================================================== --- directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/NumericStringComparator.java (original) +++ directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/NumericStringComparator.java Mon Oct 24 12:34:54 2011 @@ -25,6 +25,9 @@ import java.io.IOException; import org.apache.directory.shared.i18n.I18n; import org.apache.directory.shared.ldap.model.schema.LdapComparator; import org.apache.directory.shared.ldap.model.schema.PrepareString; +import org.apache.felix.ipojo.annotations.Component; +import org.apache.felix.ipojo.annotations.Property; +import org.apache.felix.ipojo.annotations.Provides; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -34,19 +37,29 @@ import org.slf4j.LoggerFactory; * * @author Apache Directory Project */ +@Component +@Provides public class NumericStringComparator extends LdapComparator { + /** + * Property to specify factory type. + * TODO:This is temporary. Will be vanished after introducing custom annotations + */ + @Property(name = "ads.comp.type", value = "comparator") + public String compType; + /** The serial version UID */ private static final long serialVersionUID = 2L; /** A logger for this class */ private static final Logger LOG = LoggerFactory.getLogger( NumericStringComparator.class ); + /** * The IntegerComparator constructor. Its OID is the numericStringOrderingMatch matching * rule OID. */ - public NumericStringComparator( String oid ) + public NumericStringComparator( @Property(name = "ads.comp.comparator.oid") String oid ) { super( oid ); } @@ -56,7 +69,7 @@ public class NumericStringComparator ext * Implementation of the Compare method */ @edu.umd.cs.findbugs.annotations.SuppressWarnings(value = "ES_COMPARING_PARAMETER_STRING_WITH_EQ", - justification ="false positive") + justification = "false positive") public int compare( String backendValue, String assertValue ) { LOG.debug( "comparing numericStringOrdering objects '{}' with '{}'", backendValue, assertValue ); Modified: directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/ObjectClassTypeComparator.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/ObjectClassTypeComparator.java?rev=1188117&r1=1188116&r2=1188117&view=diff ============================================================================== --- directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/ObjectClassTypeComparator.java (original) +++ directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/ObjectClassTypeComparator.java Mon Oct 24 12:34:54 2011 @@ -22,6 +22,9 @@ package org.apache.directory.shared.ldap import org.apache.directory.shared.ldap.model.schema.LdapComparator; import org.apache.directory.shared.util.Strings; +import org.apache.felix.ipojo.annotations.Component; +import org.apache.felix.ipojo.annotations.Property; +import org.apache.felix.ipojo.annotations.Provides; /** @@ -30,40 +33,51 @@ import org.apache.directory.shared.util. * * @author Apache Directory Project */ -public class ObjectClassTypeComparator extends LdapComparator +@Component +@Provides +public class ObjectClassTypeComparator extends LdapComparator { + /** + * Property to specify factory type. + * TODO:This is temporary. Will be vanished after introducing custom annotations + */ + @Property(name = "ads.comp.type", value = "comparator") + public String compType; + /** The serial version UID */ private static final long serialVersionUID = 2L; - public ObjectClassTypeComparator( String oid ) + + public ObjectClassTypeComparator( @Property(name = "ads.comp.comparator.oid") String oid ) { super( oid ); } - + + public int compare( T o1, T o2 ) { String s1 = getString( o1 ); String s2 = getString( o2 ); - + if ( s1 == null && s2 == null ) { return 0; } - + if ( s1 == null ) { return -1; } - + if ( s2 == null ) { return 1; } - + return s1.compareTo( s2 ); } - - + + String getString( T obj ) { String strValue; @@ -72,14 +86,14 @@ public class ObjectClassTypeComparatorApache Directory Project */ +@Component +@Provides public class ObjectIdentifierComparator extends LdapComparator { + /** + * Property to specify factory type. + * TODO:This is temporary. Will be vanished after introducing custom annotations + */ + @Property(name = "ads.comp.type", value = "comparator") + public String compType; + /** The serial version UID */ private static final long serialVersionUID = 2L; /** A logger for this class */ private static final Logger LOG = LoggerFactory.getLogger( ObjectIdentifierComparator.class ); + /** * The ObjectIdentifierComparator constructor. Its OID is the ObjectIdentifierMatch matching * rule OID. */ - public ObjectIdentifierComparator( String oid ) + public ObjectIdentifierComparator( @Property(name = "ads.comp.comparator.oid") String oid ) { super( oid ); } @@ -84,6 +97,6 @@ public class ObjectIdentifierComparator } // Here, we should leverage the SchemaManager to compare the String and teh OID - return ((String)o1).compareToIgnoreCase( (String)o2 ); + return ( ( String ) o1 ).compareToIgnoreCase( ( String ) o2 ); } } Modified: directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/ObjectIdentifierFirstComponentComparator.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/ObjectIdentifierFirstComponentComparator.java?rev=1188117&r1=1188116&r2=1188117&view=diff ============================================================================== --- directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/ObjectIdentifierFirstComponentComparator.java (original) +++ directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/ObjectIdentifierFirstComponentComparator.java Mon Oct 24 12:34:54 2011 @@ -24,6 +24,9 @@ import org.apache.directory.shared.asn1. import org.apache.directory.shared.ldap.model.schema.LdapComparator; import org.apache.directory.shared.util.Chars; import org.apache.directory.shared.util.Strings; +import org.apache.felix.ipojo.annotations.Component; +import org.apache.felix.ipojo.annotations.Property; +import org.apache.felix.ipojo.annotations.Provides; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -33,24 +36,34 @@ import org.slf4j.LoggerFactory; * * @author Apache Directory Project */ +@Component +@Provides public class ObjectIdentifierFirstComponentComparator extends LdapComparator { + /** + * Property to specify factory type. + * TODO:This is temporary. Will be vanished after introducing custom annotations + */ + @Property(name = "ads.comp.type", value = "comparator") + public String compType; + /** The serial version UID */ private static final long serialVersionUID = 2L; /** A logger for this class */ private static final Logger LOG = LoggerFactory.getLogger( ObjectIdentifierFirstComponentComparator.class ); + /** * The ObjectIdentifierFirstComponentComparator constructor. Its OID is the * ObjectIdentifierFirstComponentMatch matching rule OID. */ - public ObjectIdentifierFirstComponentComparator( String oid ) + public ObjectIdentifierFirstComponentComparator( @Property(name = "ads.comp.comparator.oid") String oid ) { super( oid ); } - + /** * Get the OID from the SchemaObject description */ @@ -58,27 +71,27 @@ public class ObjectIdentifierFirstCompon { // Get the OID from the strings now int pos = 0; - + if ( !Strings.isCharASCII( s, pos++, '(' ) ) { return null; } - + while ( Strings.isCharASCII( s, pos, ' ' ) ) { pos++; } - + int start = pos; - - while ( Chars.isDigit(s, pos) || Strings.isCharASCII( s, pos, '.' ) ) + + while ( Chars.isDigit( s, pos ) || Strings.isCharASCII( s, pos, '.' ) ) { pos++; } - + String numericOid = s.substring( start, pos ); - - if ( Oid.isOid(numericOid) ) + + if ( Oid.isOid( numericOid ) ) { return numericOid; } @@ -87,7 +100,8 @@ public class ObjectIdentifierFirstCompon return null; } } - + + /** * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) */ @@ -102,7 +116,7 @@ public class ObjectIdentifierFirstCompon { return ( s2 == null ) ? 0 : -1; } - + if ( s2 == null ) { return -1; @@ -113,22 +127,22 @@ public class ObjectIdentifierFirstCompon { return 0; } - + // Get the OID from the strings now String oid1 = getNumericOid( s1 ); - + if ( oid1 == null ) { return -1; } - + String oid2 = getNumericOid( s2 ); if ( oid2 == null ) { return -1; } - + if ( oid1.equals( oid2 ) ) { return 0; Modified: directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/SerializableComparator.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/SerializableComparator.java?rev=1188117&r1=1188116&r2=1188117&view=diff ============================================================================== --- directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/SerializableComparator.java (original) +++ directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/SerializableComparator.java Mon Oct 24 12:34:54 2011 @@ -27,6 +27,10 @@ import org.apache.directory.shared.i18n. import org.apache.directory.shared.ldap.model.exception.LdapException; import org.apache.directory.shared.ldap.model.schema.LdapComparator; import org.apache.directory.shared.ldap.model.schema.SchemaManager; +import org.apache.felix.ipojo.annotations.Component; +import org.apache.felix.ipojo.annotations.Property; +import org.apache.felix.ipojo.annotations.Provides; +import org.apache.felix.ipojo.annotations.Validate; /** @@ -43,13 +47,14 @@ public class SerializableComparator e /** the OID of the matchingRule for this comparator */ private String matchingRuleOid; - + /** the transient wrapped comparator */ private transient Comparator wrapped; - /** A reference to the schema manager */ + /** A reference to the schema manager */ private transient SchemaManager schemaManager; - + + // ------------------------------------------------------------------------ // C O N T R U C T O R S // ------------------------------------------------------------------------ @@ -74,7 +79,7 @@ public class SerializableComparator e { try { - wrapped = (Comparator)schemaManager.lookupComparatorRegistry( matchingRuleOid ); + wrapped = ( Comparator ) schemaManager.lookupComparatorRegistry( matchingRuleOid ); } catch ( LdapException e ) { @@ -96,18 +101,18 @@ public class SerializableComparator e { try { - wrapped = ( Comparator ) + wrapped = ( Comparator ) schemaManager.lookupComparatorRegistry( matchingRuleOid ); } catch ( LdapException ne ) { // Not found : get the default comparator - wrapped = ( Comparator ) + wrapped = ( Comparator ) new ComparableComparator>( matchingRuleOid ); } } - ((LdapComparator)wrapped).setSchemaManager( schemaManager ); + ( ( LdapComparator ) wrapped ).setSchemaManager( schemaManager ); super.setSchemaManager( schemaManager ); } } Modified: directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/StringComparator.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/StringComparator.java?rev=1188117&r1=1188116&r2=1188117&view=diff ============================================================================== --- directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/StringComparator.java (original) +++ directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/StringComparator.java Mon Oct 24 12:34:54 2011 @@ -23,6 +23,9 @@ package org.apache.directory.shared.ldap import java.io.Serializable; import org.apache.directory.shared.ldap.model.schema.LdapComparator; +import org.apache.felix.ipojo.annotations.Component; +import org.apache.felix.ipojo.annotations.Property; +import org.apache.felix.ipojo.annotations.Provides; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -32,12 +35,20 @@ import org.slf4j.LoggerFactory; * * @author Apache Directory Project */ +@Component +@Provides public class StringComparator extends LdapComparator implements Serializable { + /** + * Property to specify factory type. + * TODO:This is temporary. Will be vanished after introducing custom annotations + */ + @Property(name = "ads.comp.type", value = "comparator") + public String compType; + /** The serial version UID */ private static final long serialVersionUID = 2L; - /** A logger for this class */ private static final Logger LOG = LoggerFactory.getLogger( StringComparator.class ); @@ -46,7 +57,7 @@ public class StringComparator extends Ld * The StringComparator constructor. Its OID is the StringMatch matching * rule OID. */ - public StringComparator( String oid ) + public StringComparator( @Property(name = "ads.comp.comparator.oid") String oid ) { super( oid ); } @@ -56,7 +67,7 @@ public class StringComparator extends Ld * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) */ @edu.umd.cs.findbugs.annotations.SuppressWarnings(value = "ES_COMPARING_PARAMETER_STRING_WITH_EQ", - justification ="false positive") + justification = "false positive") public int compare( String s1, String s2 ) { LOG.debug( "comparing String objects '{}' with '{}'", s1, s2 ); Modified: directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/TelephoneNumberComparator.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/TelephoneNumberComparator.java?rev=1188117&r1=1188116&r2=1188117&view=diff ============================================================================== --- directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/TelephoneNumberComparator.java (original) +++ directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/TelephoneNumberComparator.java Mon Oct 24 12:34:54 2011 @@ -21,6 +21,9 @@ package org.apache.directory.shared.ldap import org.apache.directory.shared.ldap.model.schema.LdapComparator; +import org.apache.felix.ipojo.annotations.Component; +import org.apache.felix.ipojo.annotations.Property; +import org.apache.felix.ipojo.annotations.Provides; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -33,24 +36,34 @@ import org.slf4j.LoggerFactory; * * @author Apache Directory Project */ +@Component +@Provides public class TelephoneNumberComparator extends LdapComparator { + /** + * Property to specify factory type. + * TODO:This is temporary. Will be vanished after introducing custom annotations + */ + @Property(name = "ads.comp.type", value = "comparator") + public String compType; + /** The serial version UID */ private static final long serialVersionUID = 2L; /** A logger for this class */ private static final Logger LOG = LoggerFactory.getLogger( TelephoneNumberComparator.class ); + /** * The TelephoneNumberComparator constructor. Its OID is the TelephoneNumberMatch matching * rule OID. */ - public TelephoneNumberComparator( String oid ) + public TelephoneNumberComparator( @Property(name = "ads.comp.comparator.oid") String oid ) { super( oid ); } - + /** * Remove all spaces and '-' from the telephone number */ @@ -58,21 +71,21 @@ public class TelephoneNumberComparator e { char[] telephoneNumberArray = telephoneNumber.toCharArray(); int pos = 0; - - for ( char c:telephoneNumberArray ) + + for ( char c : telephoneNumberArray ) { if ( ( c == ' ' ) || ( c == '-' ) ) - { + { continue; } - + telephoneNumberArray[pos++] = c; } - + return new String( telephoneNumberArray, 0, pos ); } - + /** * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) */ @@ -87,18 +100,18 @@ public class TelephoneNumberComparator e { return ( telephoneNumber2 == null ) ? 0 : -1; } - + if ( telephoneNumber2 == null ) { return 1; } - + // ------------------------------------------------------------------- // Remove all spaces and '-' // ------------------------------------------------------------------- String strippedTelephoneNumber1 = strip( telephoneNumber1 ); String strippedTelephoneNumber2 = strip( telephoneNumber2 ); - + return ( strippedTelephoneNumber1.compareToIgnoreCase( strippedTelephoneNumber2 ) ); } } Modified: directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/UUIDComparator.java URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/UUIDComparator.java?rev=1188117&r1=1188116&r2=1188117&view=diff ============================================================================== --- directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/UUIDComparator.java (original) +++ directory/shared/branches/shared-osgi/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/schema/comparators/UUIDComparator.java Mon Oct 24 12:34:54 2011 @@ -21,6 +21,9 @@ package org.apache.directory.shared.ldap import org.apache.directory.shared.ldap.model.schema.LdapComparator; +import org.apache.felix.ipojo.annotations.Component; +import org.apache.felix.ipojo.annotations.Property; +import org.apache.felix.ipojo.annotations.Provides; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -30,24 +33,34 @@ import org.slf4j.LoggerFactory; * * @author Apache Directory Project */ +@Component +@Provides public class UUIDComparator extends LdapComparator { + /** + * Property to specify factory type. + * TODO:This is temporary. Will be vanished after introducing custom annotations + */ + @Property(name = "ads.comp.type", value = "comparator") + public String compType; + /** The serial version UID */ private static final long serialVersionUID = 2L; /** A logger for this class */ private static final Logger LOG = LoggerFactory.getLogger( UUIDComparator.class ); + /** * The UUIDComparator constructor. Its OID is the UUIDMatch matching * rule OID. */ - public UUIDComparator( String oid ) + public UUIDComparator( @Property(name = "ads.comp.comparator.oid") String oid ) { super( oid ); } - + /** * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) */ @@ -62,12 +75,12 @@ public class UUIDComparator extends Ldap { return ( uuid2 == null ) ? 0 : -1; } - + if ( uuid2 == null ) { return 1; } - + return uuid1.compareTo( uuid2 ); } }