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 2004/11/27 17:30:19 UTC
svn commit: r106731 - /incubator/directory/eve/trunk/protocol/src/java/org/apache/eve/protocol/DeleteHandler.java
Author: akarasulu
Date: Sat Nov 27 08:30:18 2004
New Revision: 106731
URL: http://svn.apache.org/viewcvs?view=rev&rev=106731
Log:
added and confirmed correct operation of delete request handler
Modified:
incubator/directory/eve/trunk/protocol/src/java/org/apache/eve/protocol/DeleteHandler.java
Modified: incubator/directory/eve/trunk/protocol/src/java/org/apache/eve/protocol/DeleteHandler.java
Url: http://svn.apache.org/viewcvs/incubator/directory/eve/trunk/protocol/src/java/org/apache/eve/protocol/DeleteHandler.java?view=diff&rev=106731&p1=incubator/directory/eve/trunk/protocol/src/java/org/apache/eve/protocol/DeleteHandler.java&r1=106730&p2=incubator/directory/eve/trunk/protocol/src/java/org/apache/eve/protocol/DeleteHandler.java&r2=106731
==============================================================================
--- incubator/directory/eve/trunk/protocol/src/java/org/apache/eve/protocol/DeleteHandler.java (original)
+++ incubator/directory/eve/trunk/protocol/src/java/org/apache/eve/protocol/DeleteHandler.java Sat Nov 27 08:30:18 2004
@@ -17,10 +17,16 @@
package org.apache.eve.protocol;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.naming.directory.DirContext;
+
import org.apache.seda.listener.ClientKey;
import org.apache.seda.protocol.AbstractSingleReplyHandler;
import org.apache.ldap.common.NotImplementedException;
+import org.apache.ldap.common.util.ExceptionUtils;
+import org.apache.ldap.common.message.*;
/**
@@ -36,6 +42,33 @@
*/
public Object handle( ClientKey key, Object request )
{
- throw new NotImplementedException( "handle in org.apache.eve.protocol.DeleteHandler not implemented!" );
+ DeleteRequest req = ( DeleteRequest ) request;
+ DeleteResponse resp = new DeleteResponseImpl( req.getMessageId() );
+ resp.setLdapResult( new LdapResultImpl( resp ) );
+ InitialContext ictx = SessionRegistry.getSingleton( null ).get( key );
+
+ try
+ {
+ DirContext ctx = ( DirContext ) ictx.lookup( "" );
+ ctx.destroySubcontext( req.getName() );
+ }
+ catch ( NamingException e )
+ {
+ String msg = "failed to add entry " + req.getName() + ":\n";
+ msg += ExceptionUtils.getStackTrace( e );
+ ResultCodeEnum code;
+ code = ResultCodeEnum.getBestEstimate( e, req.getType() );
+ resp.getLdapResult().setResultCode( code );
+ resp.getLdapResult().setErrorMessage( msg );
+
+ if ( e.getResolvedName() != null )
+ {
+ resp.getLdapResult().setMatchedDn( e.getResolvedName().toString() );
+ }
+ }
+
+ resp.getLdapResult().setResultCode( ResultCodeEnum.SUCCESS );
+ resp.getLdapResult().setMatchedDn( req.getName() );
+ return resp;
}
}