You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2015/09/17 12:34:06 UTC
svn commit: r1703557 - in /directory/shared/trunk/ldap:
client/api/src/main/java/org/apache/directory/ldap/client/api/
model/src/main/java/org/apache/directory/api/ldap/model/schema/
model/src/main/java/org/apache/directory/api/ldap/model/schema/regist...
Author: elecharny
Date: Thu Sep 17 10:34:04 2015
New Revision: 1703557
URL: http://svn.apache.org/r1703557
Log:
o Hidden the quirksMode, which is now included into the relaxed mode
o Added some method in LdapConnection that allow users to load a schema in relaxed mode : loadSchemaRelaxed()
o Added the STRICT and RELAXED flags in the SchemaManager, instead of the DefaultSchemaManager
o Added the isRelaxed(), isStrict() and setRelaxed( boolean ) methods in the SchemaLoader interface, implementing those methods in the classes implementing this interface
Modified:
directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/DefaultSchemaLoader.java
directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapConnection.java
directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapConnectionConfig.java
directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapConnectionWrapper.java
directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java
directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/SchemaManager.java
directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/registries/AbstractSchemaLoader.java
directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/registries/SchemaLoader.java
directory/shared/trunk/ldap/schema/data/src/main/java/org/apache/directory/api/ldap/schema/manager/impl/DefaultSchemaManager.java
Modified: directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/DefaultSchemaLoader.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/DefaultSchemaLoader.java?rev=1703557&r1=1703556&r2=1703557&view=diff
==============================================================================
--- directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/DefaultSchemaLoader.java (original)
+++ directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/DefaultSchemaLoader.java Thu Sep 17 10:34:04 2015
@@ -121,11 +121,11 @@ public class DefaultSchemaLoader extends
* Creates a new instance of DefaultSchemaLoader.
*
* @param connection the LDAP connection
- * @param initial setting for the quirks mode
+ * @param initial setting for the relaxed mode
* @throws Exception if the connection is not authenticated or if there are any problems
* while loading the schema entries
*/
- public DefaultSchemaLoader( LdapConnection connection, boolean quirksMode ) throws LdapException
+ public DefaultSchemaLoader( LdapConnection connection, boolean relaxed ) throws LdapException
{
if ( connection == null )
{
@@ -133,7 +133,8 @@ public class DefaultSchemaLoader extends
}
this.connection = connection;
- setQuirksMode( quirksMode );
+ setRelaxed( relaxed );
+ setQuirksMode( relaxed );
// Flagging if the connection was already connected
boolean wasConnected = connection.isConnected();
Modified: directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapConnection.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapConnection.java?rev=1703557&r1=1703556&r2=1703557&view=diff
==============================================================================
--- directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapConnection.java (original)
+++ directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapConnection.java Thu Sep 17 10:34:04 2015
@@ -792,6 +792,16 @@ public interface LdapConnection extends
/**
+ * Loads all the default schemas that are bundled with the API, in a relaxed mode.<br><br>
+ * <b>Note:</b> This method enables <b>all</b> schemas prior to loading.<br/>
+ * The relaxed mode will allow inconsistencies in the schema.
+ *
+ * @throws LdapException in case of problems while loading the schema
+ */
+ void loadSchemaRelaxed() throws LdapException;
+
+
+ /**
* @return The SchemaManager associated with this LdapConection if any
*/
SchemaManager getSchemaManager();
Modified: directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapConnectionConfig.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapConnectionConfig.java?rev=1703557&r1=1703556&r2=1703557&view=diff
==============================================================================
--- directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapConnectionConfig.java (original)
+++ directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapConnectionConfig.java Thu Sep 17 10:34:04 2015
@@ -21,6 +21,7 @@
package org.apache.directory.ldap.client.api;
+import java.net.InetAddress;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
@@ -54,7 +55,19 @@ public class LdapConnectionConfig
public static final int DEFAULT_LDAPS_PORT = 636;
/** The default host : localhost */
- public static final String DEFAULT_LDAP_HOST = "127.0.0.1";
+ public static String DEFAULT_LDAP_HOST;
+
+ static
+ {
+ try
+ {
+ DEFAULT_LDAP_HOST = InetAddress.getLocalHost().getHostName();//"127.0.0.1";
+ }
+ catch ( Exception e )
+ {
+
+ }
+ }
/** The LDAP version */
public static final int LDAP_V3 = 3;
Modified: directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapConnectionWrapper.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapConnectionWrapper.java?rev=1703557&r1=1703556&r2=1703557&view=diff
==============================================================================
--- directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapConnectionWrapper.java (original)
+++ directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapConnectionWrapper.java Thu Sep 17 10:34:04 2015
@@ -566,4 +566,14 @@ public class LdapConnectionWrapper imple
{
connection.setSchemaManager( schemaManager );
}
+
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public void loadSchemaRelaxed() throws LdapException
+ {
+ connection.loadSchemaRelaxed();
+ }
}
\ No newline at end of file
Modified: directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java?rev=1703557&r1=1703556&r2=1703557&view=diff
==============================================================================
--- directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java (original)
+++ directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdapNetworkConnection.java Thu Sep 17 10:34:04 2015
@@ -3506,6 +3506,15 @@ public class LdapNetworkConnection exten
/**
+ * {@inheritDoc}
+ */
+ public void loadSchemaRelaxed() throws LdapException
+ {
+ loadSchema( new DefaultSchemaLoader( this, true ) );
+ }
+
+
+ /**
* loads schema using the specified schema loader
*
* @param loader the {@link SchemaLoader} to be used to load schema
@@ -3519,7 +3528,7 @@ public class LdapNetworkConnection exten
tmp.loadAllEnabled();
- if ( !tmp.getErrors().isEmpty() )
+ if ( !tmp.getErrors().isEmpty() && loader.isStrict() )
{
String msg = "there are errors while loading the schema";
LOG.error( msg + " {}", tmp.getErrors() );
Modified: directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/SchemaManager.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/SchemaManager.java?rev=1703557&r1=1703556&r2=1703557&view=diff
==============================================================================
--- directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/SchemaManager.java (original)
+++ directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/SchemaManager.java Thu Sep 17 10:34:04 2015
@@ -52,6 +52,12 @@ import org.apache.directory.api.ldap.mod
*/
public interface SchemaManager
{
+ /** Two flags for RELAXED and STRICT, this is STRICT */
+ boolean STRICT = false;
+
+ /** Two flags for RELAXED and STRICT, this is RELAXED */
+ boolean RELAXED = true;
+
//---------------------------------------------------------------------------------
// Schema loading methods
//---------------------------------------------------------------------------------
Modified: directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/registries/AbstractSchemaLoader.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/registries/AbstractSchemaLoader.java?rev=1703557&r1=1703556&r2=1703557&view=diff
==============================================================================
--- directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/registries/AbstractSchemaLoader.java (original)
+++ directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/registries/AbstractSchemaLoader.java Thu Sep 17 10:34:04 2015
@@ -34,6 +34,7 @@ import org.apache.directory.api.ldap.mod
import org.apache.directory.api.ldap.model.entry.Attribute;
import org.apache.directory.api.ldap.model.entry.Entry;
import org.apache.directory.api.ldap.model.entry.Value;
+import org.apache.directory.api.ldap.model.schema.SchemaManager;
import org.apache.directory.api.util.StringConstants;
import org.apache.directory.api.util.Strings;
@@ -51,6 +52,9 @@ public abstract class AbstractSchemaLoad
* the LDIF based schema repository.
*/
protected final Map<String, Schema> schemaMap = new LowerCaseKeyMap();
+
+ /** The flag that tells about the SchemaLoader mode : relaxed or strict */
+ private boolean relaxed;
/**
* a map implementation which converts the keys to lower case before inserting
@@ -111,7 +115,7 @@ public abstract class AbstractSchemaLoad
*/
public Schema getSchema( String schemaName )
{
- return schemaMap.get( Strings.toLowerCase( schemaName ) );
+ return schemaMap.get( Strings.toLowerCaseAscii( schemaName ) );
}
@@ -129,7 +133,7 @@ public abstract class AbstractSchemaLoad
*/
public void removeSchema( Schema schema )
{
- schemaMap.remove( Strings.toLowerCase( schema.getSchemaName() ) );
+ schemaMap.remove( Strings.toLowerCaseAscii( schema.getSchemaName() ) );
}
@@ -377,4 +381,31 @@ public abstract class AbstractSchemaLoad
return loadSyntaxCheckers( buildSchemaArray( schemaNames ) );
}
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean isRelaxed()
+ {
+ return SchemaManager.RELAXED;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean isStrict()
+ {
+ return relaxed == SchemaManager.STRICT;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public void setRelaxed( boolean relaxed )
+ {
+ this.relaxed = relaxed;
+ }
}
Modified: directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/registries/SchemaLoader.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/registries/SchemaLoader.java?rev=1703557&r1=1703556&r2=1703557&view=diff
==============================================================================
--- directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/registries/SchemaLoader.java (original)
+++ directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/registries/SchemaLoader.java Thu Sep 17 10:34:04 2015
@@ -286,6 +286,29 @@ public interface SchemaLoader
/**
* Remove a schema from the schema's list
+ *
+ * @param schema The schema to remove
*/
void removeSchema( Schema schema );
+
+
+ /**
+ * @return Tells if the SchemaLoader is in RELAXED mode
+ */
+ boolean isRelaxed();
+
+
+ /**
+ * @return Tells if the SchemaLoader is in STRICT mode
+ */
+ boolean isStrict();
+
+
+ /**
+ * Set the SchemzLoader in STRICT or RELAXED mode.
+ *
+ * @param relaxed if <code>true</code>, the SchemaLoader will be in relaxed mode, otherwise
+ * it will be in strict mode (the default)
+ */
+ void setRelaxed( boolean relaxed );
}
Modified: directory/shared/trunk/ldap/schema/data/src/main/java/org/apache/directory/api/ldap/schema/manager/impl/DefaultSchemaManager.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/schema/data/src/main/java/org/apache/directory/api/ldap/schema/manager/impl/DefaultSchemaManager.java?rev=1703557&r1=1703556&r2=1703557&view=diff
==============================================================================
--- directory/shared/trunk/ldap/schema/data/src/main/java/org/apache/directory/api/ldap/schema/manager/impl/DefaultSchemaManager.java (original)
+++ directory/shared/trunk/ldap/schema/data/src/main/java/org/apache/directory/api/ldap/schema/manager/impl/DefaultSchemaManager.java Thu Sep 17 10:34:04 2015
@@ -117,13 +117,6 @@ public class DefaultSchemaManager implem
/** A flag indicating that the SchemaManager is relaxed or not */
private boolean isRelaxed = STRICT;
- /** Two flags for RELAXED and STRICT, this is STRICT */
- public static final boolean STRICT = false;
-
- /** Two flags for RELAXED and STRICT, this is RELAXED */
- public static final boolean RELAXED = true;
-
-
/**
* Creates a new instance of DefaultSchemaManager with the default schema schemaLoader
*
@@ -155,7 +148,7 @@ public class DefaultSchemaManager implem
errors = new ArrayList<Throwable>();
registries = new Registries();
factory = new SchemaEntityFactory();
- isRelaxed = STRICT;
+ isRelaxed = loader.isRelaxed();
}
@@ -173,7 +166,7 @@ public class DefaultSchemaManager implem
errors = new ArrayList<Throwable>();
registries = new Registries();
factory = new SchemaEntityFactory();
- isRelaxed = STRICT;
+ isRelaxed = loader.isRelaxed();
}
@@ -270,7 +263,7 @@ public class DefaultSchemaManager implem
private void deleteSchemaObjects( Schema schema, Registries registries ) throws LdapException
{
Map<String, Set<SchemaObjectWrapper>> schemaObjects = registries.getObjectBySchemaName();
- Set<SchemaObjectWrapper> content = schemaObjects.get( Strings.toLowerCase( schema.getSchemaName() ) );
+ Set<SchemaObjectWrapper> content = schemaObjects.get( Strings.toLowerCaseAscii( schema.getSchemaName() ) );
List<SchemaObject> toBeDeleted = new ArrayList<SchemaObject>();
@@ -1103,11 +1096,18 @@ public class DefaultSchemaManager implem
loaded = true;
}
}
- else
+ else if ( isStrict() )
{
// clear the cloned registries
clonedRegistries.clear();
}
+ else
+ {
+ // Relaxed mode
+ registries = clonedRegistries;
+ registries.setRelaxed();
+ loaded = true;
+ }
return loaded;
}
@@ -1599,7 +1599,7 @@ public class DefaultSchemaManager implem
*/
public AttributeType lookupAttributeTypeRegistry( String oid ) throws LdapException
{
- String oidTrimmed = Strings.toLowerCase( oid ).trim();
+ String oidTrimmed = Strings.toLowerCaseAscii( oid ).trim();
String oidNoOption = stripOptions( oidTrimmed );
return registries.getAttributeTypeRegistry().lookup( oidNoOption );
}
@@ -1612,7 +1612,7 @@ public class DefaultSchemaManager implem
{
try
{
- return registries.getAttributeTypeRegistry().lookup( Strings.toLowerCase( oid ).trim() );
+ return registries.getAttributeTypeRegistry().lookup( Strings.toLowerCaseAscii( oid ).trim() );
}
catch ( LdapException lnsae )
{
@@ -1635,7 +1635,7 @@ public class DefaultSchemaManager implem
*/
public MatchingRule lookupMatchingRuleRegistry( String oid ) throws LdapException
{
- return registries.getMatchingRuleRegistry().lookup( Strings.toLowerCase( oid ).trim() );
+ return registries.getMatchingRuleRegistry().lookup( Strings.toLowerCaseAscii( oid ).trim() );
}
@@ -1653,7 +1653,7 @@ public class DefaultSchemaManager implem
*/
public ObjectClass lookupObjectClassRegistry( String oid ) throws LdapException
{
- return registries.getObjectClassRegistry().lookup( Strings.toLowerCase( oid ).trim() );
+ return registries.getObjectClassRegistry().lookup( Strings.toLowerCaseAscii( oid ).trim() );
}
@@ -1662,7 +1662,7 @@ public class DefaultSchemaManager implem
*/
public LdapSyntax lookupLdapSyntaxRegistry( String oid ) throws LdapException
{
- return registries.getLdapSyntaxRegistry().lookup( Strings.toLowerCase( oid ).trim() );
+ return registries.getLdapSyntaxRegistry().lookup( Strings.toLowerCaseAscii( oid ).trim() );
}
@@ -1725,7 +1725,7 @@ public class DefaultSchemaManager implem
*/
private String getSchemaName( SchemaObject schemaObject )
{
- String schemaName = Strings.toLowerCase( schemaObject.getSchemaName() );
+ String schemaName = Strings.toLowerCaseAscii( schemaObject.getSchemaName() );
if ( Strings.isEmpty( schemaName ) )
{