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 2008/08/08 07:19:09 UTC
svn commit: r683854 - in /directory/apacheds/branches/bigbang: server-integ/
server-integ/src/test/java/org/apache/directory/server/operations/extended/
server-unit/src/test/java/org/apache/directory/server/
server-unit/src/test/java/org/apache/directo...
Author: akarasulu
Date: Thu Aug 7 22:19:08 2008
New Revision: 683854
URL: http://svn.apache.org/viewvc?rev=683854&view=rev
Log:
moved stored procedure test to extend ops area in server-integ and removed some useless/redundant tests
Added:
directory/apacheds/branches/bigbang/server-integ/src/test/java/org/apache/directory/server/operations/extended/DITUtilitiesSP.java
- copied, changed from r683791, directory/apacheds/branches/bigbang/server-unit/src/test/java/org/apache/directory/server/DITUtilitiesSP.java
directory/apacheds/branches/bigbang/server-integ/src/test/java/org/apache/directory/server/operations/extended/HelloWorldProcedure.java
- copied, changed from r683791, directory/apacheds/branches/bigbang/server-unit/src/test/java/org/apache/directory/server/HelloWorldProcedure.java
directory/apacheds/branches/bigbang/server-integ/src/test/java/org/apache/directory/server/operations/extended/StoredProcedureIT.java
Removed:
directory/apacheds/branches/bigbang/server-unit/src/test/java/org/apache/directory/server/CascadeControlITest.java
directory/apacheds/branches/bigbang/server-unit/src/test/java/org/apache/directory/server/ChangeListener.java
directory/apacheds/branches/bigbang/server-unit/src/test/java/org/apache/directory/server/DITUtilitiesSP.java
directory/apacheds/branches/bigbang/server-unit/src/test/java/org/apache/directory/server/HelloWorldProcedure.java
directory/apacheds/branches/bigbang/server-unit/src/test/java/org/apache/directory/server/StoredProcedureExecutionITest.java
directory/apacheds/branches/bigbang/server-unit/src/test/java/org/apache/directory/server/jndi/
Modified:
directory/apacheds/branches/bigbang/server-integ/pom.xml
directory/apacheds/branches/bigbang/server-unit/src/test/java/org/apache/directory/server/KeyDerivationServiceITest.java
Modified: directory/apacheds/branches/bigbang/server-integ/pom.xml
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/server-integ/pom.xml?rev=683854&r1=683853&r2=683854&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/server-integ/pom.xml (original)
+++ directory/apacheds/branches/bigbang/server-integ/pom.xml Thu Aug 7 22:19:08 2008
@@ -88,6 +88,7 @@
<include>**/*IndexedNegationSearchIT.java</include>
<include>**/*LdapsIT.java</include>
<include>**/*MiscBindIT.java</include>
+ <include>**/*StoredProcedureIT.java</include>
</includes>
</configuration>
</plugin>
Copied: directory/apacheds/branches/bigbang/server-integ/src/test/java/org/apache/directory/server/operations/extended/DITUtilitiesSP.java (from r683791, directory/apacheds/branches/bigbang/server-unit/src/test/java/org/apache/directory/server/DITUtilitiesSP.java)
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/server-integ/src/test/java/org/apache/directory/server/operations/extended/DITUtilitiesSP.java?p2=directory/apacheds/branches/bigbang/server-integ/src/test/java/org/apache/directory/server/operations/extended/DITUtilitiesSP.java&p1=directory/apacheds/branches/bigbang/server-unit/src/test/java/org/apache/directory/server/DITUtilitiesSP.java&r1=683791&r2=683854&rev=683854&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/server-unit/src/test/java/org/apache/directory/server/DITUtilitiesSP.java (original)
+++ directory/apacheds/branches/bigbang/server-integ/src/test/java/org/apache/directory/server/operations/extended/DITUtilitiesSP.java Thu Aug 7 22:19:08 2008
@@ -17,7 +17,7 @@
* under the License.
*
*/
-package org.apache.directory.server;
+package org.apache.directory.server.operations.extended;
import javax.naming.Name;
import javax.naming.NamingException;
Copied: directory/apacheds/branches/bigbang/server-integ/src/test/java/org/apache/directory/server/operations/extended/HelloWorldProcedure.java (from r683791, directory/apacheds/branches/bigbang/server-unit/src/test/java/org/apache/directory/server/HelloWorldProcedure.java)
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/server-integ/src/test/java/org/apache/directory/server/operations/extended/HelloWorldProcedure.java?p2=directory/apacheds/branches/bigbang/server-integ/src/test/java/org/apache/directory/server/operations/extended/HelloWorldProcedure.java&p1=directory/apacheds/branches/bigbang/server-unit/src/test/java/org/apache/directory/server/HelloWorldProcedure.java&r1=683791&r2=683854&rev=683854&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/server-unit/src/test/java/org/apache/directory/server/HelloWorldProcedure.java (original)
+++ directory/apacheds/branches/bigbang/server-integ/src/test/java/org/apache/directory/server/operations/extended/HelloWorldProcedure.java Thu Aug 7 22:19:08 2008
@@ -17,7 +17,7 @@
* under the License.
*
*/
-package org.apache.directory.server;
+package org.apache.directory.server.operations.extended;
public class HelloWorldProcedure
Added: directory/apacheds/branches/bigbang/server-integ/src/test/java/org/apache/directory/server/operations/extended/StoredProcedureIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/server-integ/src/test/java/org/apache/directory/server/operations/extended/StoredProcedureIT.java?rev=683854&view=auto
==============================================================================
--- directory/apacheds/branches/bigbang/server-integ/src/test/java/org/apache/directory/server/operations/extended/StoredProcedureIT.java (added)
+++ directory/apacheds/branches/bigbang/server-integ/src/test/java/org/apache/directory/server/operations/extended/StoredProcedureIT.java Thu Aug 7 22:19:08 2008
@@ -0,0 +1,227 @@
+/*
+ * 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.server.operations.extended;
+
+
+import org.apache.directory.server.core.DefaultDirectoryService;
+import org.apache.directory.server.core.DirectoryService;
+import org.apache.directory.server.core.integ.IntegrationUtils;
+import org.apache.directory.server.core.integ.Level;
+import org.apache.directory.server.core.integ.annotations.CleanupLevel;
+import org.apache.directory.server.core.integ.annotations.Factory;
+import org.apache.directory.server.integ.LdapServerFactory;
+import org.apache.directory.server.integ.SiRunner;
+import org.apache.directory.server.newldap.ExtendedOperationHandler;
+import org.apache.directory.server.newldap.LdapServer;
+import org.apache.directory.server.newldap.handlers.bind.MechanismHandler;
+import org.apache.directory.server.newldap.handlers.bind.SimpleMechanismHandler;
+import org.apache.directory.server.newldap.handlers.bind.cramMD5.CramMd5MechanismHandler;
+import org.apache.directory.server.newldap.handlers.bind.digestMD5.DigestMd5MechanismHandler;
+import org.apache.directory.server.newldap.handlers.bind.gssapi.GssapiMechanismHandler;
+import org.apache.directory.server.newldap.handlers.bind.ntlm.NtlmMechanismHandler;
+import org.apache.directory.server.newldap.handlers.extended.StoredProcedureExtendedOperationHandler;
+import org.apache.directory.server.protocol.shared.SocketAcceptor;
+import org.apache.directory.shared.ldap.constants.SupportedSaslMechanisms;
+import org.apache.directory.shared.ldap.message.AttributesImpl;
+import org.apache.directory.shared.ldap.schema.DeepTrimToLowerNormalizer;
+import org.apache.directory.shared.ldap.schema.OidNormalizer;
+import org.apache.directory.shared.ldap.sp.JavaStoredProcUtils;
+import org.apache.mina.util.AvailablePortFinder;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import javax.naming.directory.Attributes;
+import javax.naming.ldap.InitialLdapContext;
+import javax.naming.ldap.LdapContext;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.Map;
+import java.util.Set;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+
+/**
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev:$
+ */
+@RunWith ( SiRunner.class )
+@CleanupLevel ( Level.CLASS )
+@Factory ( StoredProcedureIT.Factory.class )
+public class StoredProcedureIT
+{
+ private LdapContext ctx;
+ private LdapContext spCtx;
+ private Map<String, OidNormalizer> oids;
+
+
+ public static LdapServer ldapServer;
+
+
+ public static class Factory implements LdapServerFactory
+ {
+ public LdapServer newInstance() throws Exception
+ {
+ DirectoryService service = new DefaultDirectoryService();
+ IntegrationUtils.doDelete( service.getWorkingDirectory() );
+ service.getChangeLog().setEnabled( true );
+ service.setShutdownHookEnabled( false );
+
+ // change the working directory to something that is unique
+ // on the system and somewhere either under target directory
+ // or somewhere in a temp area of the machine.
+
+ LdapServer ldapServer = new LdapServer();
+ ldapServer.setDirectoryService( service );
+ ldapServer.setSocketAcceptor( new SocketAcceptor( null ) );
+ ldapServer.setIpPort( AvailablePortFinder.getNextAvailable( 1024 ) );
+ ldapServer.setEnabled( true );
+ ldapServer.addExtendedOperationHandler( new StoredProcedureExtendedOperationHandler() );
+
+ // Setup SASL Mechanisms
+
+ Map<String, MechanismHandler> mechanismHandlerMap = new HashMap<String,MechanismHandler>();
+ mechanismHandlerMap.put( SupportedSaslMechanisms.PLAIN, new SimpleMechanismHandler() );
+
+ CramMd5MechanismHandler cramMd5MechanismHandler = new CramMd5MechanismHandler();
+ mechanismHandlerMap.put( SupportedSaslMechanisms.CRAM_MD5, cramMd5MechanismHandler );
+
+ DigestMd5MechanismHandler digestMd5MechanismHandler = new DigestMd5MechanismHandler();
+ mechanismHandlerMap.put( SupportedSaslMechanisms.DIGEST_MD5, digestMd5MechanismHandler );
+
+ GssapiMechanismHandler gssapiMechanismHandler = new GssapiMechanismHandler();
+ mechanismHandlerMap.put( SupportedSaslMechanisms.GSSAPI, gssapiMechanismHandler );
+
+ NtlmMechanismHandler ntlmMechanismHandler = new NtlmMechanismHandler();
+ mechanismHandlerMap.put( SupportedSaslMechanisms.NTLM, ntlmMechanismHandler );
+ mechanismHandlerMap.put( SupportedSaslMechanisms.GSS_SPNEGO, ntlmMechanismHandler );
+
+ ldapServer.setSaslMechanismHandlers( mechanismHandlerMap );
+
+ Set<ExtendedOperationHandler> handlers = new HashSet<ExtendedOperationHandler>( ldapServer.getExtendedOperationHandlers() );
+ handlers.add( new StoredProcedureExtendedOperationHandler() );
+ ldapServer.setExtendedOperationHandlers( handlers );
+
+ return ldapServer;
+ }
+ }
+
+
+ @Before
+ public void setUp() throws Exception
+ {
+ Hashtable<String, Object> env = new Hashtable<String, Object>();
+ env.put( "java.naming.factory.initial", "com.sun.jndi.ldap.LdapCtxFactory" );
+ env.put( "java.naming.provider.url", "ldap://localhost:" + ldapServer.getIpPort() + "/ou=system" );
+ env.put( "java.naming.security.principal", "uid=admin,ou=system" );
+ env.put( "java.naming.security.credentials", "secret" );
+ env.put( "java.naming.security.authentication", "simple" );
+ ctx = new InitialLdapContext( env, null );
+
+ Attributes spContainer = new AttributesImpl( "objectClass", "top", true );
+ spContainer.get( "objectClass" ).add( "organizationalUnit" );
+ spContainer.put( "ou", "Stored Procedures" );
+ spCtx = ( LdapContext ) ctx.createSubcontext( "ou=Stored Procedures", spContainer );
+ assertNotNull( spCtx );
+
+ // Initialize OIDs maps for normalization
+ oids = new HashMap<String, OidNormalizer>();
+
+ oids.put( "ou", new OidNormalizer( "ou", new DeepTrimToLowerNormalizer() ) );
+ oids.put( "organizationalUnitName", new OidNormalizer( "ou", new DeepTrimToLowerNormalizer() ) );
+ oids.put( "2.5.4.11", new OidNormalizer( "ou", new DeepTrimToLowerNormalizer() ) );
+ }
+
+
+ @Test
+ public void testExecuteProcedureWithReturnValue() throws Exception
+ {
+ String procedureName = HelloWorldProcedure.class.getName() + ":sayHello";
+ JavaStoredProcUtils.loadStoredProcedureClass( spCtx, HelloWorldProcedure.class );
+ Object response = JavaStoredProcUtils.callStoredProcedure( ctx, procedureName, new Object[] { } );
+ assertEquals( "Hello World!", response );
+ }
+
+
+ @Test
+ public void testExecuteProcedureWithParametersAndReturnValue() throws Exception
+ {
+ String procedureName = HelloWorldProcedure.class.getName() + ":sayHelloTo";
+ JavaStoredProcUtils.loadStoredProcedureClass( spCtx, HelloWorldProcedure.class );
+ Object response = JavaStoredProcUtils.callStoredProcedure( ctx, procedureName, new Object[] { "Ersin" } );
+ assertEquals( "Hello Ersin!", response );
+ }
+
+
+ /*
+ @Test public void testSPDeleteSubtree() throws Exception
+ {
+ String ldif =
+ "version: 1\n" +
+ "\n" +
+ "dn: ou=People,ou=system\n" +
+ "ou: People\n" +
+ "objectclass: organizationalUnit\n" +
+ "objectclass: top\n" +
+ "\n" +
+ "dn: cn=John,ou=People,ou=system\n" +
+ "objectclass: person\n" +
+ "objectclass: top\n" +
+ "sn: John\n" +
+ "cn: John\n" +
+ "\n" +
+ "dn: cn=Jane,ou=People,ou=system\n" +
+ "objectclass: person\n" +
+ "objectclass: top\n" +
+ "sn: Jane\n" +
+ "cn: Jane\n";
+
+ injectEntries( ldif );
+
+ JavaStoredProcUtils.loadStoredProcedureClass( spCtx, DITUtilitiesSP.class );
+
+ LdapDN people = new LdapDN( "ou=People" );
+ people = LdapDN.normalize( people, oids );
+
+ String spName = DITUtilitiesSP.class.getName() + ":deleteSubtree";
+ Object[] params = new Object[] { new LdapContextParameter( "ou=system" ),
+ people };
+
+
+ JavaStoredProcUtils.callStoredProcedure( ctx, spName, params );
+
+ try
+ {
+ sysRoot.lookup( "cn=Jane,ou=People" );
+ sysRoot.lookup( "cn=John,ou=People" );
+ sysRoot.lookup( "ou=People" );
+ fail( "We should not have come here." );
+ }
+ catch ( NameNotFoundException e )
+ {
+ // Expected
+ }
+ }
+ */
+}
Modified: directory/apacheds/branches/bigbang/server-unit/src/test/java/org/apache/directory/server/KeyDerivationServiceITest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/server-unit/src/test/java/org/apache/directory/server/KeyDerivationServiceITest.java?rev=683854&r1=683853&r2=683854&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/server-unit/src/test/java/org/apache/directory/server/KeyDerivationServiceITest.java (original)
+++ directory/apacheds/branches/bigbang/server-unit/src/test/java/org/apache/directory/server/KeyDerivationServiceITest.java Thu Aug 7 22:19:08 2008
@@ -131,9 +131,9 @@
partition.setSuffix( "dc=example,dc=com" );
Set<Index<?,ServerEntry>> indexedAttrs = new HashSet<Index<?,ServerEntry>>();
- indexedAttrs.add( new JdbmIndex( "ou" ) );
- indexedAttrs.add( new JdbmIndex( "dc" ) );
- indexedAttrs.add( new JdbmIndex( "objectClass" ) );
+ indexedAttrs.add( new JdbmIndex<String,ServerEntry>( "ou" ) );
+ indexedAttrs.add( new JdbmIndex<String,ServerEntry>( "dc" ) );
+ indexedAttrs.add( new JdbmIndex<String,ServerEntry>( "objectClass" ) );
partition.setIndexedAttributes( indexedAttrs );
LdapDN exampleDn = new LdapDN( "dc=example,dc=com" );