Return-Path: Delivered-To: apmail-directory-commits-archive@www.apache.org Received: (qmail 36799 invoked from network); 15 Feb 2011 13:26:40 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 15 Feb 2011 13:26:40 -0000 Received: (qmail 78006 invoked by uid 500); 15 Feb 2011 13:26:40 -0000 Delivered-To: apmail-directory-commits-archive@directory.apache.org Received: (qmail 77006 invoked by uid 500); 15 Feb 2011 13:26:38 -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 76063 invoked by uid 99); 15 Feb 2011 13:26:36 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 15 Feb 2011 13:26:36 +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; Tue, 15 Feb 2011 13:26:35 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 7832E2388A36; Tue, 15 Feb 2011 13:26:15 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1070883 - /directory/shared/branches/m1/ldap-schema/src/main/java/org/apache/directory/shared/ldap/schemaloader/JarLdifSchemaLoader.java Date: Tue, 15 Feb 2011 13:26:15 -0000 To: commits@directory.apache.org From: elecharny@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110215132615.7832E2388A36@eris.apache.org> Author: elecharny Date: Tue Feb 15 13:26:15 2011 New Revision: 1070883 URL: http://svn.apache.org/viewvc?rev=1070883&view=rev Log: Sped up the schema loading by getting rid of Pattern matching. It goes twice faster now. Modified: directory/shared/branches/m1/ldap-schema/src/main/java/org/apache/directory/shared/ldap/schemaloader/JarLdifSchemaLoader.java Modified: directory/shared/branches/m1/ldap-schema/src/main/java/org/apache/directory/shared/ldap/schemaloader/JarLdifSchemaLoader.java URL: http://svn.apache.org/viewvc/directory/shared/branches/m1/ldap-schema/src/main/java/org/apache/directory/shared/ldap/schemaloader/JarLdifSchemaLoader.java?rev=1070883&r1=1070882&r2=1070883&view=diff ============================================================================== --- directory/shared/branches/m1/ldap-schema/src/main/java/org/apache/directory/shared/ldap/schemaloader/JarLdifSchemaLoader.java (original) +++ directory/shared/branches/m1/ldap-schema/src/main/java/org/apache/directory/shared/ldap/schemaloader/JarLdifSchemaLoader.java Tue Feb 15 13:26:15 2011 @@ -71,7 +71,7 @@ public class JarLdifSchemaLoader extends /** a map of all the resources in this jar */ private static final Map RESOURCE_MAP = ResourceMap.getResources( Pattern - .compile( ".*schema" + SEPARATOR_PATTERN + "ou=schema.*" ) ); + .compile( "schema" + SEPARATOR_PATTERN + "ou=schema.*" ) ); /** @@ -114,7 +114,7 @@ public class JarLdifSchemaLoader extends LOG.debug( "Initializing schema" ); } - Pattern pat = Pattern.compile( ".*schema" + SEPARATOR_PATTERN + "ou=schema" + Pattern pat = Pattern.compile( "schema" + SEPARATOR_PATTERN + "ou=schema" + SEPARATOR_PATTERN + "cn=[a-z0-9-_]*\\." + LDIF_EXT ); for ( String file : RESOURCE_MAP.keySet() ) @@ -157,10 +157,10 @@ public class JarLdifSchemaLoader extends * @param schema the schema to get the path for * @return the regex.Pattern fragment for the path for the specified schema directory */ - private String getSchemaDirectory( Schema schema ) + private String getSchemaDirectoryString( Schema schema ) { - return "schema" + SEPARATOR_PATTERN + "ou=schema" + SEPARATOR_PATTERN - + "cn=" + Strings.lowerCase(schema.getSchemaName()) + SEPARATOR_PATTERN; + return "schema" + File.separator + "ou=schema" + File.separator + + "cn=" + Strings.lowerCase(schema.getSchemaName()) + File.separator; } @@ -178,12 +178,13 @@ public class JarLdifSchemaLoader extends for ( Schema schema : schemas ) { - Pattern regex = Pattern.compile( ".*" + getSchemaDirectory( schema ) - + SchemaConstants.COMPARATORS_PATH + SEPARATOR_PATTERN + "m-oid=.*\\." + LDIF_EXT ); + String start = getSchemaDirectoryString( schema ) + + SchemaConstants.COMPARATORS_PATH + File.separator + "m-oid="; + String end = "." + LDIF_EXT; for ( String resourcePath : RESOURCE_MAP.keySet() ) { - if ( regex.matcher( resourcePath ).matches() ) + if ( resourcePath.startsWith( start ) && resourcePath.endsWith( end ) ) { URL resource = getResource( resourcePath, "comparator LDIF file" ); LdifReader reader = new LdifReader( resource.openStream() ); @@ -213,12 +214,13 @@ public class JarLdifSchemaLoader extends for ( Schema schema : schemas ) { - Pattern regex = Pattern.compile( ".*" + getSchemaDirectory( schema ) - + SchemaConstants.SYNTAX_CHECKERS_PATH + SEPARATOR_PATTERN + "m-oid=.*\\." + LDIF_EXT ); + String start = getSchemaDirectoryString( schema ) + + SchemaConstants.SYNTAX_CHECKERS_PATH + File.separator + "m-oid="; + String end = "." + LDIF_EXT; for ( String resourcePath : RESOURCE_MAP.keySet() ) { - if ( regex.matcher( resourcePath ).matches() ) + if ( resourcePath.startsWith( start ) && resourcePath.endsWith( end ) ) { URL resource = getResource( resourcePath, "syntaxChecker LDIF file" ); LdifReader reader = new LdifReader( resource.openStream() ); @@ -248,12 +250,13 @@ public class JarLdifSchemaLoader extends for ( Schema schema : schemas ) { - Pattern regex = Pattern.compile( ".*" + getSchemaDirectory( schema ) - + SchemaConstants.NORMALIZERS_PATH + SEPARATOR_PATTERN + "m-oid=.*\\." + LDIF_EXT ); + String start = getSchemaDirectoryString( schema ) + + SchemaConstants.NORMALIZERS_PATH + File.separator + "m-oid="; + String end = "." + LDIF_EXT; for ( String resourcePath : RESOURCE_MAP.keySet() ) { - if ( regex.matcher( resourcePath ).matches() ) + if ( resourcePath.startsWith( start ) && resourcePath.endsWith( end ) ) { URL resource = getResource( resourcePath, "normalizer LDIF file" ); LdifReader reader = new LdifReader( resource.openStream() ); @@ -283,12 +286,13 @@ public class JarLdifSchemaLoader extends for ( Schema schema : schemas ) { - Pattern regex = Pattern.compile( ".*" + getSchemaDirectory( schema ) - + SchemaConstants.MATCHING_RULES_PATH + SEPARATOR_PATTERN + "m-oid=.*\\." + LDIF_EXT ); + String start = getSchemaDirectoryString( schema ) + + SchemaConstants.MATCHING_RULES_PATH + File.separator + "m-oid="; + String end = "." + LDIF_EXT; for ( String resourcePath : RESOURCE_MAP.keySet() ) { - if ( regex.matcher( resourcePath ).matches() ) + if ( resourcePath.startsWith( start ) && resourcePath.endsWith( end ) ) { URL resource = getResource( resourcePath, "matchingRules LDIF file" ); LdifReader reader = new LdifReader( resource.openStream() ); @@ -318,12 +322,13 @@ public class JarLdifSchemaLoader extends for ( Schema schema : schemas ) { - Pattern regex = Pattern.compile( ".*" + getSchemaDirectory( schema ) - + SchemaConstants.SYNTAXES_PATH + SEPARATOR_PATTERN + "m-oid=.*\\." + LDIF_EXT ); + String start = getSchemaDirectoryString( schema ) + + SchemaConstants.SYNTAXES_PATH + File.separator + "m-oid="; + String end = "." + LDIF_EXT; for ( String resourcePath : RESOURCE_MAP.keySet() ) { - if ( regex.matcher( resourcePath ).matches() ) + if ( resourcePath.startsWith( start ) && resourcePath.endsWith( end ) ) { URL resource = getResource( resourcePath, "syntax LDIF file" ); LdifReader reader = new LdifReader( resource.openStream() ); @@ -354,13 +359,14 @@ public class JarLdifSchemaLoader extends for ( Schema schema : schemas ) { // check that the attributeTypes directory exists for the schema - Pattern regex = Pattern.compile( ".*" + getSchemaDirectory( schema ) - + SchemaConstants.ATTRIBUTES_TYPE_PATH + SEPARATOR_PATTERN + "m-oid=.*\\." + LDIF_EXT ); - + String start = getSchemaDirectoryString( schema ) + + SchemaConstants.ATTRIBUTES_TYPE_PATH + File.separator + "m-oid="; + String end = "." + LDIF_EXT; + // get list of attributeType LDIF schema files in attributeTypes for ( String resourcePath : RESOURCE_MAP.keySet() ) { - if ( regex.matcher( resourcePath ).matches() ) + if ( resourcePath.startsWith( start ) && resourcePath.endsWith( end ) ) { URL resource = getResource( resourcePath, "attributeType LDIF file" ); LdifReader reader = new LdifReader( resource.openStream() ); @@ -390,12 +396,13 @@ public class JarLdifSchemaLoader extends for ( Schema schema : schemas ) { - Pattern regex = Pattern.compile( ".*" + getSchemaDirectory( schema ) - + SchemaConstants.MATCHING_RULE_USE_PATH + SEPARATOR_PATTERN + "m-oid=.*\\." + LDIF_EXT ); + String start = getSchemaDirectoryString( schema ) + + SchemaConstants.MATCHING_RULE_USE_PATH + File.separator + "m-oid="; + String end = "." + LDIF_EXT; for ( String resourcePath : RESOURCE_MAP.keySet() ) { - if ( regex.matcher( resourcePath ).matches() ) + if ( resourcePath.startsWith( start ) && resourcePath.endsWith( end ) ) { URL resource = getResource( resourcePath, "matchingRuleUse LDIF file" ); LdifReader reader = new LdifReader( resource.openStream() ); @@ -425,12 +432,13 @@ public class JarLdifSchemaLoader extends for ( Schema schema : schemas ) { - Pattern regex = Pattern.compile( ".*" + getSchemaDirectory( schema ) - + SchemaConstants.NAME_FORMS_PATH + SEPARATOR_PATTERN + "m-oid=.*\\." + LDIF_EXT ); + String start = getSchemaDirectoryString( schema ) + + SchemaConstants.NAME_FORMS_PATH + File.separator + "m-oid="; + String end = "." + LDIF_EXT; for ( String resourcePath : RESOURCE_MAP.keySet() ) { - if ( regex.matcher( resourcePath ).matches() ) + if ( resourcePath.startsWith( start ) && resourcePath.endsWith( end ) ) { URL resource = getResource( resourcePath, "nameForm LDIF file" ); LdifReader reader = new LdifReader( resource.openStream() ); @@ -460,12 +468,13 @@ public class JarLdifSchemaLoader extends for ( Schema schema : schemas ) { - Pattern regex = Pattern.compile( ".*" + getSchemaDirectory( schema ) - + SchemaConstants.DIT_CONTENT_RULES_PATH + SEPARATOR_PATTERN + "m-oid=.*\\." + LDIF_EXT ); + String start = getSchemaDirectoryString( schema ) + + SchemaConstants.DIT_CONTENT_RULES_PATH + File.separator + "m-oid="; + String end = "." + LDIF_EXT; for ( String resourcePath : RESOURCE_MAP.keySet() ) { - if ( regex.matcher( resourcePath ).matches() ) + if ( resourcePath.startsWith( start ) && resourcePath.endsWith( end ) ) { URL resource = getResource( resourcePath, "ditContentRule LDIF file" ); LdifReader reader = new LdifReader( resource.openStream() ); @@ -495,13 +504,13 @@ public class JarLdifSchemaLoader extends for ( Schema schema : schemas ) { - Pattern regex = Pattern.compile( ".*" + getSchemaDirectory( schema ) - + SchemaConstants.DIT_STRUCTURE_RULES_PATH - + SEPARATOR_PATTERN + "m-oid=.*\\." + LDIF_EXT ); + String start = getSchemaDirectoryString( schema ) + + SchemaConstants.DIT_STRUCTURE_RULES_PATH + File.separator + "m-oid="; + String end = "." + LDIF_EXT; for ( String resourcePath : RESOURCE_MAP.keySet() ) { - if ( regex.matcher( resourcePath ).matches() ) + if ( resourcePath.startsWith( start ) && resourcePath.endsWith( end ) ) { URL resource = getResource( resourcePath, "ditStructureRule LDIF file" ); LdifReader reader = new LdifReader( resource.openStream() ); @@ -532,12 +541,13 @@ public class JarLdifSchemaLoader extends for ( Schema schema : schemas ) { // get objectClasses directory, check if exists, return if not - Pattern regex = Pattern.compile( ".*" + getSchemaDirectory( schema ) - + SchemaConstants.OBJECT_CLASSES_PATH + SEPARATOR_PATTERN + "m-oid=.*\\." + LDIF_EXT ); + String start = getSchemaDirectoryString( schema ) + + SchemaConstants.OBJECT_CLASSES_PATH + File.separator + "m-oid="; + String end = "." + LDIF_EXT; for ( String resourcePath : RESOURCE_MAP.keySet() ) { - if ( regex.matcher( resourcePath ).matches() ) + if ( resourcePath.startsWith( start ) && resourcePath.endsWith( end ) ) { URL resource = getResource( resourcePath, "objectClass LDIF file" ); LdifReader reader = new LdifReader( resource.openStream() );