You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ak...@apache.org on 2005/08/06 22:27:26 UTC

svn commit: r230580 - in /directory/apacheds/trunk/core/src: main/java/org/apache/ldap/server/jndi/DefaultContextFactoryService.java test/org/apache/ldap/server/jndi/ExtensibleObjectTest.java

Author: akarasulu
Date: Sat Aug  6 13:27:21 2005
New Revision: 230580

URL: http://svn.apache.org/viewcvs?rev=230580&view=rev
Log:
changes ...

 o added test case to make sure extensibleObjects can have any entries
 o added code to create configuration regions within the DIT to be populated
   later by administrative or setup UI's 

Added:
    directory/apacheds/trunk/core/src/test/org/apache/ldap/server/jndi/ExtensibleObjectTest.java
Modified:
    directory/apacheds/trunk/core/src/main/java/org/apache/ldap/server/jndi/DefaultContextFactoryService.java

Modified: directory/apacheds/trunk/core/src/main/java/org/apache/ldap/server/jndi/DefaultContextFactoryService.java
URL: http://svn.apache.org/viewcvs/directory/apacheds/trunk/core/src/main/java/org/apache/ldap/server/jndi/DefaultContextFactoryService.java?rev=230580&r1=230579&r2=230580&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/main/java/org/apache/ldap/server/jndi/DefaultContextFactoryService.java (original)
+++ directory/apacheds/trunk/core/src/main/java/org/apache/ldap/server/jndi/DefaultContextFactoryService.java Sat Aug  6 13:27:21 2005
@@ -440,6 +440,85 @@
         }
 
         // -------------------------------------------------------------------
+        // create system configuration area
+        // -------------------------------------------------------------------
+
+        if ( !partitionNexus.hasEntry( new LdapName( "ou=configuration,ou=system" ) ) )
+        {
+            firstStart = true;
+            checkPermissionToCreateBootstrapEntries();
+
+            Attributes attributes = new LockableAttributesImpl();
+            attributes.put( "objectClass", "top" );
+            attributes.put( "objectClass", "organizationalUnit" );
+            attributes.put( "ou", "configuration" );
+            attributes.put( "creatorsName", ContextPartitionNexus.ADMIN_PRINCIPAL );
+            attributes.put( "createTimestamp", DateUtils.getGeneralizedTime() );
+
+            partitionNexus.add( "ou=configuration,ou=system", new LdapName( "ou=configuration,ou=system" ), attributes );
+        }
+
+        // -------------------------------------------------------------------
+        // create system configuration area for partition information
+        // -------------------------------------------------------------------
+
+        if ( !partitionNexus.hasEntry( new LdapName( "ou=partitions,ou=configuration,ou=system" ) ) )
+        {
+            firstStart = true;
+            checkPermissionToCreateBootstrapEntries();
+
+            Attributes attributes = new LockableAttributesImpl();
+            attributes.put( "objectClass", "top" );
+            attributes.put( "objectClass", "organizationalUnit" );
+            attributes.put( "ou", "partitions" );
+            attributes.put( "creatorsName", ContextPartitionNexus.ADMIN_PRINCIPAL );
+            attributes.put( "createTimestamp", DateUtils.getGeneralizedTime() );
+
+            partitionNexus.add( "ou=partitions,ou=configuration,ou=system",
+                    new LdapName( "ou=partitions,ou=configuration,ou=system" ), attributes );
+        }
+
+        // -------------------------------------------------------------------
+        // create system configuration area for services
+        // -------------------------------------------------------------------
+
+        if ( !partitionNexus.hasEntry( new LdapName( "ou=services,ou=configuration,ou=system" ) ) )
+        {
+            firstStart = true;
+            checkPermissionToCreateBootstrapEntries();
+
+            Attributes attributes = new LockableAttributesImpl();
+            attributes.put( "objectClass", "top" );
+            attributes.put( "objectClass", "organizationalUnit" );
+            attributes.put( "ou", "services" );
+            attributes.put( "creatorsName", ContextPartitionNexus.ADMIN_PRINCIPAL );
+            attributes.put( "createTimestamp", DateUtils.getGeneralizedTime() );
+
+            partitionNexus.add( "ou=services,ou=configuration,ou=system",
+                    new LdapName( "ou=services,ou=configuration,ou=system" ), attributes );
+        }
+
+        // -------------------------------------------------------------------
+        // create system configuration area for interceptors
+        // -------------------------------------------------------------------
+
+        if ( !partitionNexus.hasEntry( new LdapName( "ou=interceptors,ou=configuration,ou=system" ) ) )
+        {
+            firstStart = true;
+            checkPermissionToCreateBootstrapEntries();
+
+            Attributes attributes = new LockableAttributesImpl();
+            attributes.put( "objectClass", "top" );
+            attributes.put( "objectClass", "organizationalUnit" );
+            attributes.put( "ou", "configuration" );
+            attributes.put( "creatorsName", ContextPartitionNexus.ADMIN_PRINCIPAL );
+            attributes.put( "createTimestamp", DateUtils.getGeneralizedTime() );
+
+            partitionNexus.add( "ou=interceptors,ou=configuration,ou=system",
+                    new LdapName( "ou=interceptors,ou=configuration,ou=system" ), attributes );
+        }
+
+        // -------------------------------------------------------------------
         // create system preferences area
         // -------------------------------------------------------------------
 

Added: directory/apacheds/trunk/core/src/test/org/apache/ldap/server/jndi/ExtensibleObjectTest.java
URL: http://svn.apache.org/viewcvs/directory/apacheds/trunk/core/src/test/org/apache/ldap/server/jndi/ExtensibleObjectTest.java?rev=230580&view=auto
==============================================================================
--- directory/apacheds/trunk/core/src/test/org/apache/ldap/server/jndi/ExtensibleObjectTest.java (added)
+++ directory/apacheds/trunk/core/src/test/org/apache/ldap/server/jndi/ExtensibleObjectTest.java Sat Aug  6 13:27:21 2005
@@ -0,0 +1,102 @@
+/*
+ * Copyright (c) 2004 Solarsis Group LLC.
+ *
+ * Licensed under the Open Software License, Version 2.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://opensource.org/licenses/osl-2.1.php
+ *
+ * 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.ldap.server.jndi;
+
+
+import org.apache.ldap.server.AbstractAdminTestCase;
+
+import javax.naming.directory.*;
+
+
+/**
+ * @author <a href="mailto:akarasulu@safehaus.org">Alex Karasulu</a>
+ * @version $Rev$
+ */
+public class ExtensibleObjectTest extends AbstractAdminTestCase
+{
+    public void testExtensibleObjectModify() throws Exception
+    {
+        Attributes attributes = new BasicAttributes();
+        Attribute attribute = new BasicAttribute( "objectClass" );
+        attribute.add( "top" );
+        attribute.add( "organizationalUnit" );
+        attributes.put( attribute );
+        attributes.put( "ou", "testing00" );
+        DirContext ctx = sysRoot.createSubcontext( "ou=testing00", attributes );
+        assertNotNull( ctx );
+
+        ctx = ( DirContext ) sysRoot.lookup( "ou=testing00" );
+        assertNotNull( ctx );
+
+        attributes = ctx.getAttributes( "" );
+        assertNotNull( attributes );
+        assertEquals( "testing00", attributes.get( "ou" ).get() );
+        attribute = attributes.get( "objectClass" );
+        assertNotNull( attribute );
+        assertTrue( attribute.contains( "top" ) );
+        assertTrue( attribute.contains( "organizationalUnit" ) );
+        
+        Attributes newattribs = new BasicAttributes();
+        Attribute freeform = new BasicAttribute( "freeform" );
+        freeform.add( "testing" );
+        newattribs.put( freeform );
+        Attribute objectClass = new BasicAttribute( "objectClass" );
+        objectClass.add( "top" );
+        objectClass.add( "extensibleObject" );
+        objectClass.add( "organizationalUnit" );
+        newattribs.put( objectClass );
+        ctx.modifyAttributes( "", DirContext.REPLACE_ATTRIBUTE, newattribs );
+
+        attributes = ctx.getAttributes( "" );
+        assertNotNull( attributes );
+        assertEquals( "testing00", attributes.get( "ou" ).get() );
+        attribute = attributes.get( "objectClass" );
+        assertNotNull( attribute );
+        assertTrue( attribute.contains( "top" ) );
+        assertTrue( attribute.contains( "organizationalUnit" ) );
+        assertTrue( attribute.contains( "extensibleObject" ) );
+        attribute = attributes.get( "freeform" );
+        assertTrue( attribute.contains( "testing" ) );
+    }
+
+    public void testExtensibleObjectAdd() throws Exception
+    {
+        Attributes attributes = new BasicAttributes();
+        Attribute attribute = new BasicAttribute( "objectClass" );
+        attribute.add( "top" );
+        attribute.add( "extensibleObject" );
+        attribute.add( "organizationalUnit" );
+        attributes.put( attribute );
+        attributes.put( "ou", "testing00" );
+        attributes.put( "freeform", "testing" );
+        DirContext ctx = sysRoot.createSubcontext( "ou=testing00", attributes );
+        assertNotNull( ctx );
+
+        ctx = ( DirContext ) sysRoot.lookup( "ou=testing00" );
+        assertNotNull( ctx );
+
+        attributes = ctx.getAttributes( "" );
+        assertNotNull( attributes );
+        assertEquals( "testing00", attributes.get( "ou" ).get() );
+        attribute = attributes.get( "objectClass" );
+        assertNotNull( attribute );
+        assertTrue( attribute.contains( "top" ) );
+        assertTrue( attribute.contains( "extensibleObject" ) );
+        assertTrue( attribute.contains( "organizationalUnit" ) );
+        attribute = attributes.get( "freeform" );
+        assertTrue( attribute.contains( "testing" ) );
+    }
+}