Merged trunk into the codec branch
git-svn-id: https://svn.apache.org/repos/asf/directory/shared/branches/shared-codec-merge@987483 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/ldap-schema-manager-tests/src/test/java/org/apache/directory/shared/ldap/schema/loader/ldif/SchemaManagerAddTest.java b/ldap-schema-manager-tests/src/test/java/org/apache/directory/shared/ldap/schema/loader/ldif/SchemaManagerAddTest.java
index 768c36f..ed2c76b 100644
--- a/ldap-schema-manager-tests/src/test/java/org/apache/directory/shared/ldap/schema/loader/ldif/SchemaManagerAddTest.java
+++ b/ldap-schema-manager-tests/src/test/java/org/apache/directory/shared/ldap/schema/loader/ldif/SchemaManagerAddTest.java
@@ -92,6 +92,9 @@
workingDirectory = path.substring( 0, targetPos + 6 );
}
+ // Make sure every test class has its own schema directory
+ workingDirectory = new File( workingDirectory, "SchemaManagerAddTest" ).getAbsolutePath();
+
schemaRepository = new File( workingDirectory, "schema" );
// Cleanup the target directory
@@ -106,7 +109,7 @@
public static void cleanup() throws IOException
{
// Cleanup the target directory
- FileUtils.deleteDirectory( schemaRepository );
+ FileUtils.deleteDirectory( schemaRepository.getParentFile() );
}
diff --git a/ldap-schema-manager-tests/src/test/java/org/apache/directory/shared/ldap/schema/loader/ldif/SchemaManagerDelTest.java b/ldap-schema-manager-tests/src/test/java/org/apache/directory/shared/ldap/schema/loader/ldif/SchemaManagerDelTest.java
index 2b2e52b..9896264 100644
--- a/ldap-schema-manager-tests/src/test/java/org/apache/directory/shared/ldap/schema/loader/ldif/SchemaManagerDelTest.java
+++ b/ldap-schema-manager-tests/src/test/java/org/apache/directory/shared/ldap/schema/loader/ldif/SchemaManagerDelTest.java
@@ -83,6 +83,9 @@
workingDirectory = path.substring( 0, targetPos + 6 );
}
+ // Make sure every test class has its own schema directory
+ workingDirectory = new File( workingDirectory, "SchemaManagerDelTest" ).getAbsolutePath();
+
schemaRepository = new File( workingDirectory, "schema" );
// Cleanup the target directory
@@ -97,7 +100,7 @@
public static void cleanup() throws IOException
{
// Cleanup the target directory
- FileUtils.deleteDirectory( schemaRepository );
+ FileUtils.deleteDirectory( schemaRepository.getParentFile() );
}
diff --git a/ldap-schema-manager-tests/src/test/java/org/apache/directory/shared/ldap/schema/loader/ldif/SchemaManagerEnableDisableLoadTest.java b/ldap-schema-manager-tests/src/test/java/org/apache/directory/shared/ldap/schema/loader/ldif/SchemaManagerEnableDisableLoadTest.java
index 36951f0..a492970 100644
--- a/ldap-schema-manager-tests/src/test/java/org/apache/directory/shared/ldap/schema/loader/ldif/SchemaManagerEnableDisableLoadTest.java
+++ b/ldap-schema-manager-tests/src/test/java/org/apache/directory/shared/ldap/schema/loader/ldif/SchemaManagerEnableDisableLoadTest.java
@@ -90,6 +90,9 @@
workingDirectory = path.substring( 0, targetPos + 6 );
}
+ // Make sure every test class has its own schema directory
+ workingDirectory = new File( workingDirectory, "SchemaManagerEnableDisableLoadTest" ).getAbsolutePath();
+
schemaRepository = new File( workingDirectory, "schema" );
// Cleanup the target directory
@@ -112,7 +115,7 @@
public static void cleanup() throws IOException
{
// Cleanup the target directory
- FileUtils.deleteDirectory( schemaRepository );
+ FileUtils.deleteDirectory( schemaRepository.getParentFile() );
}
diff --git a/ldap-schema-manager-tests/src/test/java/org/apache/directory/shared/ldap/schema/loader/ldif/SchemaManagerLoadTest.java b/ldap-schema-manager-tests/src/test/java/org/apache/directory/shared/ldap/schema/loader/ldif/SchemaManagerLoadTest.java
index 74991ae..b36f1d8 100644
--- a/ldap-schema-manager-tests/src/test/java/org/apache/directory/shared/ldap/schema/loader/ldif/SchemaManagerLoadTest.java
+++ b/ldap-schema-manager-tests/src/test/java/org/apache/directory/shared/ldap/schema/loader/ldif/SchemaManagerLoadTest.java
@@ -31,9 +31,8 @@
import java.io.IOException;
import org.apache.commons.io.FileUtils;
-import org.apache.directory.junit.tools.Concurrent;
-import org.apache.directory.junit.tools.ConcurrentJunitRunner;
import org.apache.directory.shared.ldap.exception.LdapUnwillingToPerformException;
+import org.apache.directory.shared.ldap.schema.AttributeType;
import org.apache.directory.shared.ldap.schema.SchemaManager;
import org.apache.directory.shared.ldap.schema.ldif.extractor.SchemaLdifExtractor;
import org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor;
@@ -42,8 +41,8 @@
import org.apache.directory.shared.ldap.schema.registries.Schema;
import org.junit.AfterClass;
import org.junit.BeforeClass;
+import org.junit.Ignore;
import org.junit.Test;
-import org.junit.runner.RunWith;
/**
@@ -167,8 +166,8 @@
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
*/
-@RunWith(ConcurrentJunitRunner.class)
-@Concurrent()
+//@RunWith(ConcurrentJunitRunner.class)
+//@Concurrent()
public class SchemaManagerLoadTest
{
// A directory in which the ldif files will be stored
@@ -176,7 +175,7 @@
// The schema repository
private static File schemaRepository;
-
+
@BeforeClass
public static void setup() throws Exception
@@ -190,6 +189,9 @@
workingDirectory = path.substring( 0, targetPos + 6 );
}
+ // Make sure every test class has its own schema directory
+ workingDirectory = new File( workingDirectory, "SchemaManagerLoadTest" ).getAbsolutePath();
+
schemaRepository = new File( workingDirectory, "schema" );
// Cleanup the target directory
@@ -204,7 +206,7 @@
public static void cleanup() throws IOException
{
// Cleanup the target directory
- FileUtils.deleteDirectory( schemaRepository );
+ FileUtils.deleteDirectory( schemaRepository.getParentFile() );
}
@@ -524,7 +526,11 @@
assertTrue( schemaManager.load( "system" ) );
assertTrue( schemaManager.load( "core" ) );
assertTrue( schemaManager.load( "cosine" ) );
- assertTrue( schemaManager.load( "nis" ) );
+ assertFalse( schemaManager.load( "nis" ) );
+
+ AttributeType at = schemaManager.getAttributeType( "uidNumber" );
+ // if nis schema was loaded then the at will not be null
+ assertNull( at );
assertTrue( schemaManager.getErrors().isEmpty() );
assertEquals( 133, schemaManager.getAttributeTypeRegistry().size() );
@@ -676,6 +682,7 @@
assertEquals( 1, schemaManager.getRegistries().getLoadedSchemas().size() );
assertNotNull( schemaManager.getRegistries().getLoadedSchema( "system" ) );
+ assertNull( schemaManager.getRegistries().getLoadedSchema( "nis" ) );
assertNull( schemaManager.getRegistries().getLoadedSchema( "core" ) );
assertNull( schemaManager.getRegistries().getLoadedSchema( "cosine" ) );
assertNull( schemaManager.getRegistries().getLoadedSchema( "InetOrgPerson" ) );
@@ -777,4 +784,21 @@
assertEquals( 0, schemaManager.getRegistries().getLoadedSchemas().size() );
assertNull( schemaManager.getRegistries().getLoadedSchema( "dummy" ) );
}
+
+
+ @Ignore( "loadDisabled() method need to be fixed" )
+ @Test
+ public void testLoadDisabled() throws Exception
+ {
+ LdifSchemaLoader loader = new LdifSchemaLoader( schemaRepository );
+ SchemaManager schemaManager = new DefaultSchemaManager( loader );
+
+ assertTrue( schemaManager.loadDisabled( "nis" ) );
+
+ assertFalse( schemaManager.getErrors().isEmpty() );
+
+ AttributeType at = schemaManager.getAttributeType( "uidNumber" );
+ // if nis schema was loaded then the at will not be null
+ assertNotNull( at );
+ }
}
diff --git a/ldap-schema-manager-tests/src/test/java/org/apache/directory/shared/ldap/schema/loader/ldif/SchemaManagerLoadWithDepsTest.java b/ldap-schema-manager-tests/src/test/java/org/apache/directory/shared/ldap/schema/loader/ldif/SchemaManagerLoadWithDepsTest.java
index 8c15294..172e6a3 100644
--- a/ldap-schema-manager-tests/src/test/java/org/apache/directory/shared/ldap/schema/loader/ldif/SchemaManagerLoadWithDepsTest.java
+++ b/ldap-schema-manager-tests/src/test/java/org/apache/directory/shared/ldap/schema/loader/ldif/SchemaManagerLoadWithDepsTest.java
@@ -81,6 +81,9 @@
workingDirectory = path.substring( 0, targetPos + 6 );
}
+ // Make sure every test class has its own schema directory
+ workingDirectory = new File( workingDirectory, "SchemaManagerLoadWithDepsTest" ).getAbsolutePath();
+
schemaRepository = new File( workingDirectory, "schema" );
// Cleanup the target directory
@@ -95,7 +98,7 @@
public static void cleanup() throws IOException
{
// Cleanup the target directory
- FileUtils.deleteDirectory( schemaRepository );
+ FileUtils.deleteDirectory( schemaRepository.getParentFile() );
}
diff --git a/ldap-schema-manager/src/main/java/org/apache/directory/shared/ldap/schema/manager/impl/DefaultSchemaManager.java b/ldap-schema-manager/src/main/java/org/apache/directory/shared/ldap/schema/manager/impl/DefaultSchemaManager.java
index 6d73ffe..7ad0a34 100644
--- a/ldap-schema-manager/src/main/java/org/apache/directory/shared/ldap/schema/manager/impl/DefaultSchemaManager.java
+++ b/ldap-schema-manager/src/main/java/org/apache/directory/shared/ldap/schema/manager/impl/DefaultSchemaManager.java
@@ -543,7 +543,10 @@
// Load the schemas
for ( Schema schema : schemas )
{
- if ( !load( clonedRegistries, schema ) && ( !errors.isEmpty() ) )
+ boolean singleSchemaLoaded = load( clonedRegistries, schema );
+
+ // return false if the schema was not loaded in the first place
+ if ( !singleSchemaLoaded )
{
return false;
}
@@ -1043,24 +1046,16 @@
if ( errors.isEmpty() )
{
// We are golden : let's apply the schema in the real registries
- registries.setRelaxed();
-
- // Load the schemas
- for ( Schema schema : schemas )
- {
- loadDepsFirst( registries, schema );
- }
-
- // Build the cross references
- errors = registries.buildReferences();
+ registries = clonedRegistries;
registries.setStrict();
-
loaded = true;
}
}
-
- // clear the cloned registries
- clonedRegistries.clear();
+ else
+ {
+ // clear the cloned registries
+ clonedRegistries.clear();
+ }
return loaded;
}
diff --git a/ldap-schema/src/main/resources/schema/ou=schema/cn=adsconfig/ou=objectclasses/m-oid=1.3.6.1.4.1.18060.0.4.1.3.260.ldif b/ldap-schema/src/main/resources/schema/ou=schema/cn=adsconfig/ou=objectclasses/m-oid=1.3.6.1.4.1.18060.0.4.1.3.260.ldif
index 15ac46c..108f4a8 100644
--- a/ldap-schema/src/main/resources/schema/ou=schema/cn=adsconfig/ou=objectclasses/m-oid=1.3.6.1.4.1.18060.0.4.1.3.260.ldif
+++ b/ldap-schema/src/main/resources/schema/ou=schema/cn=adsconfig/ou=objectclasses/m-oid=1.3.6.1.4.1.18060.0.4.1.3.260.ldif
@@ -2,7 +2,7 @@
dn: m-oid=1.3.6.1.4.1.18060.0.4.1.3.260, ou=objectClasses, cn=adsconfig, ou=sche
ma
createtimestamp: 20100111145218Z
-m-must: ads-serverDS
+m-may: ads-serverDS
m-oid: 1.3.6.1.4.1.18060.0.4.1.3.260
entrycsn: 20100111202218.087000Z#000000#000#000000
m-supobjectclass: ads-server