From 48e73e27e5a6b254471fabeefa3a197dd071c1b8 Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Mon, 02 Oct 2006 16:32:07 +0000
Subject: [PATCH] Perform significant refactoring in the core and plugin code in order to help make it easier for external developers to extend OpenDS. In particular, this is a big step towards eliminating the need for developers to reference anything in the core package, and it's also a signficant simplification to the plugin API because it helps expose which operation methods are safe to call at various points in the plugin processing.
---
opends/tests/unit-tests-testng/src/server/org/opends/server/plugins/DisconnectClientPlugin.java | 275 +++++++++++++++++++++++++++++++++---------------------
1 files changed, 168 insertions(+), 107 deletions(-)
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/plugins/DisconnectClientPlugin.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/plugins/DisconnectClientPlugin.java
index bea935b..fb80627 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/plugins/DisconnectClientPlugin.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/plugins/DisconnectClientPlugin.java
@@ -32,6 +32,7 @@
import java.util.List;
import java.util.Set;
+import org.opends.server.api.ClientConnection;
import org.opends.server.api.plugin.DirectoryServerPlugin;
import org.opends.server.api.plugin.PluginType;
import org.opends.server.api.plugin.PostOperationPluginResult;
@@ -40,22 +41,12 @@
import org.opends.server.api.plugin.PreParsePluginResult;
import org.opends.server.config.ConfigEntry;
import org.opends.server.config.ConfigException;
-import org.opends.server.core.AbandonOperation;
-import org.opends.server.core.AddOperation;
-import org.opends.server.core.BindOperation;
-import org.opends.server.core.CompareOperation;
-import org.opends.server.core.DeleteOperation;
import org.opends.server.core.DirectoryServer;
-import org.opends.server.core.ExtendedOperation;
-import org.opends.server.core.ModifyOperation;
-import org.opends.server.core.ModifyDNOperation;
-import org.opends.server.core.Operation;
-import org.opends.server.core.SearchOperation;
-import org.opends.server.core.UnbindOperation;
import org.opends.server.protocols.asn1.ASN1OctetString;
import org.opends.server.protocols.ldap.LDAPControl;
import org.opends.server.types.Control;
import org.opends.server.types.DisconnectReason;
+import org.opends.server.types.operation.*;
@@ -166,9 +157,11 @@
* {@inheritDoc}
*/
@Override()
- public PreParsePluginResult doPreParse(AbandonOperation abandonOperation)
+ public PreParsePluginResult
+ doPreParse(PreParseAbandonOperation abandonOperation)
{
- if (disconnectInternal(abandonOperation, "PreParse"))
+ if (disconnectInternal(abandonOperation.getClientConnection(),
+ abandonOperation.getRequestControls(), "PreParse"))
{
return new PreParsePluginResult(true, false, false);
}
@@ -184,9 +177,10 @@
* {@inheritDoc}
*/
@Override()
- public PreParsePluginResult doPreParse(AddOperation addOperation)
+ public PreParsePluginResult doPreParse(PreParseAddOperation addOperation)
{
- if (disconnectInternal(addOperation, "PreParse"))
+ if (disconnectInternal(addOperation.getClientConnection(),
+ addOperation.getRequestControls(), "PreParse"))
{
return new PreParsePluginResult(true, false, false);
}
@@ -202,9 +196,10 @@
* {@inheritDoc}
*/
@Override()
- public PreParsePluginResult doPreParse(BindOperation bindOperation)
+ public PreParsePluginResult doPreParse(PreParseBindOperation bindOperation)
{
- if (disconnectInternal(bindOperation, "PreParse"))
+ if (disconnectInternal(bindOperation.getClientConnection(),
+ bindOperation.getRequestControls(), "PreParse"))
{
return new PreParsePluginResult(true, false, false);
}
@@ -220,9 +215,11 @@
* {@inheritDoc}
*/
@Override()
- public PreParsePluginResult doPreParse(CompareOperation compareOperation)
+ public PreParsePluginResult
+ doPreParse(PreParseCompareOperation compareOperation)
{
- if (disconnectInternal(compareOperation, "PreParse"))
+ if (disconnectInternal(compareOperation.getClientConnection(),
+ compareOperation.getRequestControls(), "PreParse"))
{
return new PreParsePluginResult(true, false, false);
}
@@ -238,9 +235,11 @@
* {@inheritDoc}
*/
@Override()
- public PreParsePluginResult doPreParse(DeleteOperation deleteOperation)
+ public PreParsePluginResult
+ doPreParse(PreParseDeleteOperation deleteOperation)
{
- if (disconnectInternal(deleteOperation, "PreParse"))
+ if (disconnectInternal(deleteOperation.getClientConnection(),
+ deleteOperation.getRequestControls(), "PreParse"))
{
return new PreParsePluginResult(true, false, false);
}
@@ -256,9 +255,11 @@
* {@inheritDoc}
*/
@Override()
- public PreParsePluginResult doPreParse(ExtendedOperation extendedOperation)
+ public PreParsePluginResult
+ doPreParse(PreParseExtendedOperation extendedOperation)
{
- if (disconnectInternal(extendedOperation, "PreParse"))
+ if (disconnectInternal(extendedOperation.getClientConnection(),
+ extendedOperation.getRequestControls(), "PreParse"))
{
return new PreParsePluginResult(true, false, false);
}
@@ -274,9 +275,11 @@
* {@inheritDoc}
*/
@Override()
- public PreParsePluginResult doPreParse(ModifyOperation modifyOperation)
+ public PreParsePluginResult
+ doPreParse(PreParseModifyOperation modifyOperation)
{
- if (disconnectInternal(modifyOperation, "PreParse"))
+ if (disconnectInternal(modifyOperation.getClientConnection(),
+ modifyOperation.getRequestControls(), "PreParse"))
{
return new PreParsePluginResult(true, false, false);
}
@@ -292,9 +295,11 @@
* {@inheritDoc}
*/
@Override()
- public PreParsePluginResult doPreParse(ModifyDNOperation modifyDNOperation)
+ public PreParsePluginResult
+ doPreParse(PreParseModifyDNOperation modifyDNOperation)
{
- if (disconnectInternal(modifyDNOperation, "PreParse"))
+ if (disconnectInternal(modifyDNOperation.getClientConnection(),
+ modifyDNOperation.getRequestControls(), "PreParse"))
{
return new PreParsePluginResult(true, false, false);
}
@@ -310,9 +315,11 @@
* {@inheritDoc}
*/
@Override()
- public PreParsePluginResult doPreParse(SearchOperation searchOperation)
+ public PreParsePluginResult
+ doPreParse(PreParseSearchOperation searchOperation)
{
- if (disconnectInternal(searchOperation, "PreParse"))
+ if (disconnectInternal(searchOperation.getClientConnection(),
+ searchOperation.getRequestControls(), "PreParse"))
{
return new PreParsePluginResult(true, false, false);
}
@@ -328,9 +335,11 @@
* {@inheritDoc}
*/
@Override()
- public PreParsePluginResult doPreParse(UnbindOperation unbindOperation)
+ public PreParsePluginResult
+ doPreParse(PreParseUnbindOperation unbindOperation)
{
- if (disconnectInternal(unbindOperation, "PreParse"))
+ if (disconnectInternal(unbindOperation.getClientConnection(),
+ unbindOperation.getRequestControls(), "PreParse"))
{
return new PreParsePluginResult(true, false, false);
}
@@ -346,9 +355,11 @@
* {@inheritDoc}
*/
@Override()
- public PreOperationPluginResult doPreOperation(AddOperation addOperation)
+ public PreOperationPluginResult
+ doPreOperation(PreOperationAddOperation addOperation)
{
- if (disconnectInternal(addOperation, "PreOperation"))
+ if (disconnectInternal(addOperation.getClientConnection(),
+ addOperation.getRequestControls(), "PreOperation"))
{
return new PreOperationPluginResult(true, false, false);
}
@@ -364,9 +375,11 @@
* {@inheritDoc}
*/
@Override()
- public PreOperationPluginResult doPreOperation(BindOperation bindOperation)
+ public PreOperationPluginResult
+ doPreOperation(PreOperationBindOperation bindOperation)
{
- if (disconnectInternal(bindOperation, "PreOperation"))
+ if (disconnectInternal(bindOperation.getClientConnection(),
+ bindOperation.getRequestControls(), "PreOperation"))
{
return new PreOperationPluginResult(true, false, false);
}
@@ -382,10 +395,12 @@
* {@inheritDoc}
*/
@Override()
- public PreOperationPluginResult doPreOperation(CompareOperation
- compareOperation)
+ public PreOperationPluginResult
+ doPreOperation(PreOperationCompareOperation compareOperation)
{
- if (disconnectInternal(compareOperation, "PreOperation"))
+ if (disconnectInternal(compareOperation.getClientConnection(),
+ compareOperation.getRequestControls(),
+ "PreOperation"))
{
return new PreOperationPluginResult(true, false, false);
}
@@ -401,10 +416,12 @@
* {@inheritDoc}
*/
@Override()
- public PreOperationPluginResult doPreOperation(DeleteOperation
- deleteOperation)
+ public PreOperationPluginResult
+ doPreOperation(PreOperationDeleteOperation deleteOperation)
{
- if (disconnectInternal(deleteOperation, "PreOperation"))
+ if (disconnectInternal(deleteOperation.getClientConnection(),
+ deleteOperation.getRequestControls(),
+ "PreOperation"))
{
return new PreOperationPluginResult(true, false, false);
}
@@ -420,10 +437,12 @@
* {@inheritDoc}
*/
@Override()
- public PreOperationPluginResult doPreOperation(ExtendedOperation
- extendedOperation)
+ public PreOperationPluginResult
+ doPreOperation(PreOperationExtendedOperation extendedOperation)
{
- if (disconnectInternal(extendedOperation, "PreOperation"))
+ if (disconnectInternal(extendedOperation.getClientConnection(),
+ extendedOperation.getRequestControls(),
+ "PreOperation"))
{
return new PreOperationPluginResult(true, false, false);
}
@@ -439,10 +458,12 @@
* {@inheritDoc}
*/
@Override()
- public PreOperationPluginResult doPreOperation(ModifyOperation
- modifyOperation)
+ public PreOperationPluginResult
+ doPreOperation(PreOperationModifyOperation modifyOperation)
{
- if (disconnectInternal(modifyOperation, "PreOperation"))
+ if (disconnectInternal(modifyOperation.getClientConnection(),
+ modifyOperation.getRequestControls(),
+ "PreOperation"))
{
return new PreOperationPluginResult(true, false, false);
}
@@ -458,10 +479,12 @@
* {@inheritDoc}
*/
@Override()
- public PreOperationPluginResult doPreOperation(ModifyDNOperation
- modifyDNOperation)
+ public PreOperationPluginResult
+ doPreOperation(PreOperationModifyDNOperation modifyDNOperation)
{
- if (disconnectInternal(modifyDNOperation, "PreOperation"))
+ if (disconnectInternal(modifyDNOperation.getClientConnection(),
+ modifyDNOperation.getRequestControls(),
+ "PreOperation"))
{
return new PreOperationPluginResult(true, false, false);
}
@@ -477,10 +500,12 @@
* {@inheritDoc}
*/
@Override()
- public PreOperationPluginResult doPreOperation(SearchOperation
- searchOperation)
+ public PreOperationPluginResult
+ doPreOperation(PreOperationSearchOperation searchOperation)
{
- if (disconnectInternal(searchOperation, "PreOperation"))
+ if (disconnectInternal(searchOperation.getClientConnection(),
+ searchOperation.getRequestControls(),
+ "PreOperation"))
{
return new PreOperationPluginResult(true, false, false);
}
@@ -496,10 +521,12 @@
* {@inheritDoc}
*/
@Override()
- public PostOperationPluginResult doPostOperation(AbandonOperation
- abandonOperation)
+ public PostOperationPluginResult
+ doPostOperation(PostOperationAbandonOperation abandonOperation)
{
- if (disconnectInternal(abandonOperation, "PreOperation"))
+ if (disconnectInternal(abandonOperation.getClientConnection(),
+ abandonOperation.getRequestControls(),
+ "PreOperation"))
{
return new PostOperationPluginResult(true, false);
}
@@ -515,9 +542,11 @@
* {@inheritDoc}
*/
@Override()
- public PostOperationPluginResult doPostOperation(AddOperation addOperation)
+ public PostOperationPluginResult
+ doPostOperation(PostOperationAddOperation addOperation)
{
- if (disconnectInternal(addOperation, "PostOperation"))
+ if (disconnectInternal(addOperation.getClientConnection(),
+ addOperation.getRequestControls(), "PostOperation"))
{
return new PostOperationPluginResult(true, false);
}
@@ -533,9 +562,11 @@
* {@inheritDoc}
*/
@Override()
- public PostOperationPluginResult doPostOperation(BindOperation bindOperation)
+ public PostOperationPluginResult
+ doPostOperation(PostOperationBindOperation bindOperation)
{
- if (disconnectInternal(bindOperation, "PostOperation"))
+ if (disconnectInternal(bindOperation.getClientConnection(),
+ bindOperation.getRequestControls(), "PostOperation"))
{
return new PostOperationPluginResult(true, false);
}
@@ -551,10 +582,12 @@
* {@inheritDoc}
*/
@Override()
- public PostOperationPluginResult doPostOperation(CompareOperation
- compareOperation)
+ public PostOperationPluginResult
+ doPostOperation(PostOperationCompareOperation compareOperation)
{
- if (disconnectInternal(compareOperation, "PostOperation"))
+ if (disconnectInternal(compareOperation.getClientConnection(),
+ compareOperation.getRequestControls(),
+ "PostOperation"))
{
return new PostOperationPluginResult(true, false);
}
@@ -570,10 +603,12 @@
* {@inheritDoc}
*/
@Override()
- public PostOperationPluginResult doPostOperation(DeleteOperation
- deleteOperation)
+ public PostOperationPluginResult
+ doPostOperation(PostOperationDeleteOperation deleteOperation)
{
- if (disconnectInternal(deleteOperation, "PostOperation"))
+ if (disconnectInternal(deleteOperation.getClientConnection(),
+ deleteOperation.getRequestControls(),
+ "PostOperation"))
{
return new PostOperationPluginResult(true, false);
}
@@ -589,10 +624,12 @@
* {@inheritDoc}
*/
@Override()
- public PostOperationPluginResult doPostOperation(ExtendedOperation
- extendedOperation)
+ public PostOperationPluginResult
+ doPostOperation(PostOperationExtendedOperation extendedOperation)
{
- if (disconnectInternal(extendedOperation, "PostOperation"))
+ if (disconnectInternal(extendedOperation.getClientConnection(),
+ extendedOperation.getRequestControls(),
+ "PostOperation"))
{
return new PostOperationPluginResult(true, false);
}
@@ -608,10 +645,12 @@
* {@inheritDoc}
*/
@Override()
- public PostOperationPluginResult doPostOperation(ModifyOperation
- modifyOperation)
+ public PostOperationPluginResult
+ doPostOperation(PostOperationModifyOperation modifyOperation)
{
- if (disconnectInternal(modifyOperation, "PostOperation"))
+ if (disconnectInternal(modifyOperation.getClientConnection(),
+ modifyOperation.getRequestControls(),
+ "PostOperation"))
{
return new PostOperationPluginResult(true, false);
}
@@ -627,10 +666,12 @@
* {@inheritDoc}
*/
@Override()
- public PostOperationPluginResult doPostOperation(ModifyDNOperation
- modifyDNOperation)
+ public PostOperationPluginResult
+ doPostOperation(PostOperationModifyDNOperation modifyDNOperation)
{
- if (disconnectInternal(modifyDNOperation, "PostOperation"))
+ if (disconnectInternal(modifyDNOperation.getClientConnection(),
+ modifyDNOperation.getRequestControls(),
+ "PostOperation"))
{
return new PostOperationPluginResult(true, false);
}
@@ -646,10 +687,12 @@
* {@inheritDoc}
*/
@Override()
- public PostOperationPluginResult doPostOperation(SearchOperation
- searchOperation)
+ public PostOperationPluginResult
+ doPostOperation(PostOperationSearchOperation searchOperation)
{
- if (disconnectInternal(searchOperation, "PostOperation"))
+ if (disconnectInternal(searchOperation.getClientConnection(),
+ searchOperation.getRequestControls(),
+ "PostOperation"))
{
return new PostOperationPluginResult(true, false);
}
@@ -665,10 +708,12 @@
* {@inheritDoc}
*/
@Override()
- public PostOperationPluginResult doPostOperation(UnbindOperation
- unbindOperation)
+ public PostOperationPluginResult
+ doPostOperation(PostOperationUnbindOperation unbindOperation)
{
- if (disconnectInternal(unbindOperation, "PostOperation"))
+ if (disconnectInternal(unbindOperation.getClientConnection(),
+ unbindOperation.getRequestControls(),
+ "PostOperation"))
{
return new PostOperationPluginResult(true, false);
}
@@ -684,9 +729,11 @@
* {@inheritDoc}
*/
@Override()
- public PostResponsePluginResult doPostResponse(AddOperation addOperation)
+ public PostResponsePluginResult
+ doPostResponse(PostResponseAddOperation addOperation)
{
- if (disconnectInternal(addOperation, "PostResponse"))
+ if (disconnectInternal(addOperation.getClientConnection(),
+ addOperation.getRequestControls(), "PostResponse"))
{
return new PostResponsePluginResult(true, false);
}
@@ -702,9 +749,11 @@
* {@inheritDoc}
*/
@Override()
- public PostResponsePluginResult doPostResponse(BindOperation bindOperation)
+ public PostResponsePluginResult
+ doPostResponse(PostResponseBindOperation bindOperation)
{
- if (disconnectInternal(bindOperation, "PostResponse"))
+ if (disconnectInternal(bindOperation.getClientConnection(),
+ bindOperation.getRequestControls(), "PostResponse"))
{
return new PostResponsePluginResult(true, false);
}
@@ -720,10 +769,12 @@
* {@inheritDoc}
*/
@Override()
- public PostResponsePluginResult doPostResponse(CompareOperation
- compareOperation)
+ public PostResponsePluginResult
+ doPostResponse(PostResponseCompareOperation compareOperation)
{
- if (disconnectInternal(compareOperation, "PostResponse"))
+ if (disconnectInternal(compareOperation.getClientConnection(),
+ compareOperation.getRequestControls(),
+ "PostResponse"))
{
return new PostResponsePluginResult(true, false);
}
@@ -739,10 +790,12 @@
* {@inheritDoc}
*/
@Override()
- public PostResponsePluginResult doPostResponse(DeleteOperation
- deleteOperation)
+ public PostResponsePluginResult
+ doPostResponse(PostResponseDeleteOperation deleteOperation)
{
- if (disconnectInternal(deleteOperation, "PostResponse"))
+ if (disconnectInternal(deleteOperation.getClientConnection(),
+ deleteOperation.getRequestControls(),
+ "PostResponse"))
{
return new PostResponsePluginResult(true, false);
}
@@ -758,10 +811,12 @@
* {@inheritDoc}
*/
@Override()
- public PostResponsePluginResult doPostResponse(ExtendedOperation
- extendedOperation)
+ public PostResponsePluginResult
+ doPostResponse(PostResponseExtendedOperation extendedOperation)
{
- if (disconnectInternal(extendedOperation, "PostResponse"))
+ if (disconnectInternal(extendedOperation.getClientConnection(),
+ extendedOperation.getRequestControls(),
+ "PostResponse"))
{
return new PostResponsePluginResult(true, false);
}
@@ -777,10 +832,12 @@
* {@inheritDoc}
*/
@Override()
- public PostResponsePluginResult doPostResponse(ModifyOperation
- modifyOperation)
+ public PostResponsePluginResult
+ doPostResponse(PostResponseModifyOperation modifyOperation)
{
- if (disconnectInternal(modifyOperation, "PostResponse"))
+ if (disconnectInternal(modifyOperation.getClientConnection(),
+ modifyOperation.getRequestControls(),
+ "PostResponse"))
{
return new PostResponsePluginResult(true, false);
}
@@ -796,10 +853,12 @@
* {@inheritDoc}
*/
@Override()
- public PostResponsePluginResult doPostResponse(ModifyDNOperation
- modifyDNOperation)
+ public PostResponsePluginResult
+ doPostResponse(PostResponseModifyDNOperation modifyDNOperation)
{
- if (disconnectInternal(modifyDNOperation, "PostResponse"))
+ if (disconnectInternal(modifyDNOperation.getClientConnection(),
+ modifyDNOperation.getRequestControls(),
+ "PostResponse"))
{
return new PostResponsePluginResult(true, false);
}
@@ -815,10 +874,12 @@
* {@inheritDoc}
*/
@Override()
- public PostResponsePluginResult doPostResponse(SearchOperation
- searchOperation)
+ public PostResponsePluginResult
+ doPostResponse(PostResponseSearchOperation searchOperation)
{
- if (disconnectInternal(searchOperation, "PostResponse"))
+ if (disconnectInternal(searchOperation.getClientConnection(),
+ searchOperation.getRequestControls(),
+ "PostResponse"))
{
return new PostResponsePluginResult(true, false);
}
@@ -840,9 +901,10 @@
* @return <CODE>true</CODE> if the client connection was terminated, or
* <CODE>false</CODE> if it was not.
*/
- private boolean disconnectInternal(Operation operation, String section)
+ private boolean disconnectInternal(ClientConnection clientConnection,
+ List<Control> requestControls,
+ String section)
{
- List<Control> requestControls = operation.getRequestControls();
if (requestControls != null)
{
for (Control c : requestControls)
@@ -851,8 +913,7 @@
{
if (c.getValue().stringValue().equalsIgnoreCase(section))
{
- operation.getClientConnection().disconnect(
- DisconnectReason.CLOSED_BY_PLUGIN, true,
+ clientConnection.disconnect(DisconnectReason.CLOSED_BY_PLUGIN, true,
"Closed by disconnect client plugin (section " + section + ")",
-1);
--
Gitblit v1.10.0