From 97491bcdb796a35879477018ea768c1be2c989e4 Mon Sep 17 00:00:00 2001
From: Ludovic Poitou <ludovic.poitou@forgerock.com>
Date: Fri, 22 Oct 2010 06:52:25 +0000
Subject: [PATCH] Sync commit by matthew_swift Expose Grizzly transport configuration in LDAPOptions and LDAPListenerOptions in order to allow better customization of transport.
---
sdk/src/org/opends/sdk/LDAPOptions.java | 50 ++
sdk/src/com/sun/opends/sdk/tools/ModRate.java | 16
sdk/src/com/sun/opends/sdk/tools/ArgumentParser.java | 82 +---
sdk/src/com/sun/opends/sdk/tools/LDAPSearch.java | 16
sdk/src/com/sun/opends/sdk/ldap/LDAPConnectionFactoryImpl.java | 12
/dev/null | 116 -------
sdk/src/com/sun/opends/sdk/tools/AuthRate.java | 59 +-
sdk/src/com/sun/opends/sdk/tools/LDAPModify.java | 16
sdk/src/com/sun/opends/sdk/tools/LDAPPasswordModify.java | 16
sdk/src/com/sun/opends/sdk/ldap/LDAPListenerImpl.java | 12
sdk/src/com/sun/opends/sdk/tools/LDAPCompare.java | 16
sdk/src/com/sun/opends/sdk/tools/SearchRate.java | 16
sdk/src/org/opends/sdk/ServerConnection.java | 215 ------------
sdk/src/org/opends/sdk/RequestHandler.java | 245 +++++++++++++++
sdk/src/com/sun/opends/sdk/messages/messages.properties | 2
sdk/src/org/opends/sdk/LDAPListenerOptions.java | 48 ++
sdk/tests/unit-tests-testng/src/org/opends/sdk/LDAPServer.java | 3
17 files changed, 468 insertions(+), 472 deletions(-)
diff --git a/sdk/src/com/sun/opends/sdk/ldap/GrizzlyLDAPListenerOptions.java b/sdk/src/com/sun/opends/sdk/ldap/GrizzlyLDAPListenerOptions.java
deleted file mode 100644
index ed2de71..0000000
--- a/sdk/src/com/sun/opends/sdk/ldap/GrizzlyLDAPListenerOptions.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
- *
- * You can obtain a copy of the license at
- * trunk/opends/resource/legal-notices/OpenDS.LICENSE
- * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at
- * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
- * add the following below this CDDL HEADER, with the fields enclosed
- * by brackets "[]" replaced with your own identifying information:
- * Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- *
- *
- * Copyright 2010 Sun Microsystems, Inc.
- */
-
-package com.sun.opends.sdk.ldap;
-
-
-
-import org.opends.sdk.LDAPListenerOptions;
-
-import org.glassfish.grizzly.nio.transport.TCPNIOTransport;
-
-
-
-/**
- * Common options for LDAP listeners, including the Grizzly TCP transport.
- */
-public final class GrizzlyLDAPListenerOptions extends LDAPListenerOptions
-{
- private TCPNIOTransport transport = null;
-
-
-
- /**
- * Creates a new set of listener options with default settings. SSL will not
- * be enabled, a default set of decode options will be used, and the
- * {@link GlobalTransportFactory} should be used to obtain a TCP transport.
- */
- public GrizzlyLDAPListenerOptions()
- {
- // Nothing to do.
- }
-
-
-
- /**
- * Creates a new set of listener options having the same initial set of
- * options as the provided set of connection options.
- *
- * @param options
- * The set of connection options to be copied.
- */
- public GrizzlyLDAPListenerOptions(final LDAPListenerOptions options)
- {
- super(options);
- if (options instanceof GrizzlyLDAPListenerOptions)
- {
- this.transport = ((GrizzlyLDAPListenerOptions) options)
- .getTCPNIOTransport();
- }
- }
-
-
-
- /**
- * Returns the Grizzly TCP transport which will be used when initiating
- * connections with the Directory Server. By default this method will return
- * {@code null} indicating that the {@link GlobalTransportFactory} should be
- * used to obtain a TCP transport.
- *
- * @return The Grizzly TCP transport which will be used when initiating
- * connections with the Directory Server, or {@code null} if the
- * {@link GlobalTransportFactory} should be used to obtain a TCP
- * transport.
- */
- public final TCPNIOTransport getTCPNIOTransport()
- {
- return transport;
- }
-
-
-
- /**
- * Sets the Grizzly TCP transport which will be used when initiating
- * connections with the Directory Server. By default this method will return
- * {@code null} indicating that the {@link GlobalTransportFactory} should be
- * used to obtain a TCP transport.
- *
- * @param transport
- * The Grizzly TCP transport which will be used when initiating
- * connections with the Directory Server, or {@code null} if the
- * {@link GlobalTransportFactory} should be used to obtain a TCP
- * transport.
- * @return A reference to this connection options.
- */
- public final GrizzlyLDAPListenerOptions setTCPNIOTransport(
- final TCPNIOTransport transport)
- {
- this.transport = transport;
- return this;
- }
-
-}
diff --git a/sdk/src/com/sun/opends/sdk/ldap/GrizzlyLDAPOptions.java b/sdk/src/com/sun/opends/sdk/ldap/GrizzlyLDAPOptions.java
deleted file mode 100644
index d6f76ec..0000000
--- a/sdk/src/com/sun/opends/sdk/ldap/GrizzlyLDAPOptions.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License"). You may not use this file except in compliance
- * with the License.
- *
- * You can obtain a copy of the license at
- * trunk/opends/resource/legal-notices/OpenDS.LICENSE
- * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at
- * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
- * add the following below this CDDL HEADER, with the fields enclosed
- * by brackets "[]" replaced with your own identifying information:
- * Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- *
- *
- * Copyright 2010 Sun Microsystems, Inc.
- */
-
-package com.sun.opends.sdk.ldap;
-
-
-
-import org.opends.sdk.LDAPOptions;
-
-import org.glassfish.grizzly.nio.transport.TCPNIOTransport;
-
-
-
-/**
- * Common options for LDAP client connections, including the Grizzly TCP
- * transport.
- */
-public final class GrizzlyLDAPOptions extends LDAPOptions
-{
- private TCPNIOTransport transport = null;
-
-
-
- /**
- * Creates a new set of connection options with default settings. SSL will not
- * be enabled, a default set of decode options will be used, and the
- * {@link GlobalTransportFactory} should be used to obtain a TCP transport.
- */
- public GrizzlyLDAPOptions()
- {
- // Nothing to do.
- }
-
-
-
- /**
- * Creates a new set of connection options having the same initial set of
- * options as the provided set of connection options.
- *
- * @param options
- * The set of connection options to be copied.
- */
- public GrizzlyLDAPOptions(final LDAPOptions options)
- {
- super(options);
- if (options instanceof GrizzlyLDAPOptions)
- {
- this.transport = ((GrizzlyLDAPOptions) options).getTCPNIOTransport();
- }
- }
-
-
-
- /**
- * Returns the Grizzly TCP transport which will be used when initiating
- * connections with the Directory Server. By default this method will return
- * {@code null} indicating that the {@link GlobalTransportFactory} should be
- * used to obtain a TCP transport.
- *
- * @return The Grizzly TCP transport which will be used when initiating
- * connections with the Directory Server, or {@code null} if the
- * {@link GlobalTransportFactory} should be used to obtain a TCP
- * transport.
- */
- public final TCPNIOTransport getTCPNIOTransport()
- {
- return transport;
- }
-
-
-
- /**
- * Sets the Grizzly TCP transport which will be used when initiating
- * connections with the Directory Server. By default this method will return
- * {@code null} indicating that the {@link GlobalTransportFactory} should be
- * used to obtain a TCP transport.
- *
- * @param transport
- * The Grizzly TCP transport which will be used when initiating
- * connections with the Directory Server, or {@code null} if the
- * {@link GlobalTransportFactory} should be used to obtain a TCP
- * transport.
- * @return A reference to this connection options.
- */
- public final GrizzlyLDAPOptions setTCPNIOTransport(
- final TCPNIOTransport transport)
- {
- this.transport = transport;
- return this;
- }
-
-}
diff --git a/sdk/src/com/sun/opends/sdk/ldap/LDAPConnectionFactoryImpl.java b/sdk/src/com/sun/opends/sdk/ldap/LDAPConnectionFactoryImpl.java
index 6610745..fc08a15 100644
--- a/sdk/src/com/sun/opends/sdk/ldap/LDAPConnectionFactoryImpl.java
+++ b/sdk/src/com/sun/opends/sdk/ldap/LDAPConnectionFactoryImpl.java
@@ -253,17 +253,15 @@
public LDAPConnectionFactoryImpl(final SocketAddress address,
final LDAPOptions options)
{
- TCPNIOTransport tmpTransport = null;
- if (options instanceof GrizzlyLDAPOptions)
+ if (options.getTCPNIOTransport() == null)
{
- tmpTransport = ((GrizzlyLDAPOptions) options).getTCPNIOTransport();
+ this.transport = GlobalTransportFactory.getInstance()
+ .createTCPTransport();
}
- if (tmpTransport == null)
+ else
{
- tmpTransport = GlobalTransportFactory.getInstance().createTCPTransport();
+ this.transport = options.getTCPNIOTransport();
}
- this.transport = tmpTransport;
-
this.socketAddress = address;
this.options = new LDAPOptions(options);
this.clientFilter = new LDAPClientFilter(new LDAPReader(
diff --git a/sdk/src/com/sun/opends/sdk/ldap/LDAPListenerImpl.java b/sdk/src/com/sun/opends/sdk/ldap/LDAPListenerImpl.java
index 90dd3a3..67833c4 100644
--- a/sdk/src/com/sun/opends/sdk/ldap/LDAPListenerImpl.java
+++ b/sdk/src/com/sun/opends/sdk/ldap/LDAPListenerImpl.java
@@ -83,17 +83,15 @@
final ServerConnectionFactory<LDAPClientContext, Integer> factory,
final LDAPListenerOptions options) throws IOException
{
- TCPNIOTransport tmpTransport = null;
- if (options instanceof GrizzlyLDAPListenerOptions)
+ if (options.getTCPNIOTransport() == null)
{
- tmpTransport = ((GrizzlyLDAPListenerOptions) options)
- .getTCPNIOTransport();
+ this.transport = GlobalTransportFactory.getInstance()
+ .createTCPTransport();
}
- if (tmpTransport == null)
+ else
{
- tmpTransport = GlobalTransportFactory.getInstance().createTCPTransport();
+ this.transport = options.getTCPNIOTransport();
}
- this.transport = tmpTransport;
this.connectionFactory = factory;
this.defaultFilterChain = new DefaultFilterChain();
this.defaultFilterChain.add(new TransportFilter());
diff --git a/sdk/src/com/sun/opends/sdk/messages/messages.properties b/sdk/src/com/sun/opends/sdk/messages/messages.properties
index 1c85685..99aa95f 100755
--- a/sdk/src/com/sun/opends/sdk/messages/messages.properties
+++ b/sdk/src/com/sun/opends/sdk/messages/messages.properties
@@ -3041,7 +3041,7 @@
be started because it is already running
INFO_SUBCMDPARSER_OPTIONS={options}
INFO_SUBCMDPARSER_SUBCMD_AND_OPTIONS={subcommand} {options}
-INFO_SUBCMDPARSER_WHERE_OPTIONS_INCLUDE=\ where {options} include:
+INFO_SUBCMDPARSER_WHERE_OPTIONS_INCLUDE=Where {options} include:
INFO_EMAIL_TOOL_DESCRIPTION=Send an e-mail message via SMTP
INFO_EMAIL_HOST_DESCRIPTION=The address of the SMTP server to use to send \
the message
diff --git a/sdk/src/com/sun/opends/sdk/tools/ArgumentParser.java b/sdk/src/com/sun/opends/sdk/tools/ArgumentParser.java
index a6488ed..a96f75f 100644
--- a/sdk/src/com/sun/opends/sdk/tools/ArgumentParser.java
+++ b/sdk/src/com/sun/opends/sdk/tools/ArgumentParser.java
@@ -84,13 +84,11 @@
private final ArrayList<String> trailingArguments;
// Indicates whether this parser will allow additional unnamed
- // arguments at
- // the end of the list.
+ // arguments at the end of the list.
private final boolean allowsTrailingArguments;
// Indicates whether long arguments should be treated in a
- // case-sensitive
- // manner.
+ // case-sensitive manner.
private final boolean longArgumentsCaseSensitive;
// Indicates whether the usage or version information has been
@@ -127,18 +125,15 @@
private OutputStream usageOutputStream;
// The fully-qualified name of the Java class that should be invoked
- // to launch
- // the program with which this argument parser is associated.
+ // to launch the program with which this argument parser is associated.
private final String mainClassName;
// A human-readable description for the tool, which will be included
- // when
- // displaying usage information.
+ // when displaying usage information.
private final LocalizableMessage toolDescription;
// The display name that will be used for the trailing arguments in
- // the usage
- // information.
+ // the usage information.
private final String trailingArgsDisplayName;
// The raw set of command-line arguments that were provided.
@@ -855,6 +850,7 @@
}
}
buffer.append(EOL);
+ buffer.append(EOL);
buffer.append(INFO_SUBCMDPARSER_WHERE_OPTIONS_INCLUDE.get());
buffer.append(EOL);
buffer.append(EOL);
@@ -1021,17 +1017,14 @@
if (arg.equals("--"))
{
// This is a special indicator that we have reached the end of
- // the named
- // arguments and that everything that follows after this should
- // be
- // considered trailing arguments.
+ // the named arguments and that everything that follows after this
+ // should be considered trailing arguments.
inTrailingArgs = true;
}
else if (arg.startsWith("--"))
{
// This indicates that we are using the long name to reference
- // the
- // argument. It may be in any of the following forms:
+ // the argument. It may be in any of the following forms:
// --name
// --name value
// --name=value
@@ -1088,8 +1081,7 @@
else if (argName.equals(OPTION_LONG_PRODUCT_VERSION))
{
// "--version" will always be interpreted as requesting
- // version
- // information.
+ // version information.
usageOrVersionDisplayed = true;
versionPresent = true;
try
@@ -1116,8 +1108,7 @@
a.setPresent(true);
// If this is the usage argument, then immediately stop and
- // print
- // usage information.
+ // print usage information.
if ((usageArgument != null)
&& usageArgument.getName().equals(a.getName()))
{
@@ -1134,8 +1125,7 @@
}
// See if the argument takes a value. If so, then make sure one
- // was
- // provided. If not, then make sure none was provided.
+ // was provided. If not, then make sure none was provided.
if (a.needsValue())
{
if (argValue == null)
@@ -1182,8 +1172,7 @@
else if (arg.startsWith("-"))
{
// This indicates that we are using the 1-character name to
- // reference
- // the argument. It may be in any of the following forms:
+ // reference the argument. It may be in any of the following forms:
// -n
// -nvalue
// -n value
@@ -1228,8 +1217,7 @@
{
// "-V" will always be interpreted as requesting
// version information except if it's already defined (e.g
- // in
- // ldap tools).
+ // in ldap tools).
usageOrVersionDisplayed = true;
versionPresent = true;
try
@@ -1255,8 +1243,7 @@
a.setPresent(true);
// If this is the usage argument, then immediately stop and
- // print
- // usage information.
+ // print usage information.
if ((usageArgument != null)
&& usageArgument.getName().equals(a.getName()))
{
@@ -1273,8 +1260,7 @@
}
// See if the argument takes a value. If so, then make sure one
- // was
- // provided. If not, then make sure none was provided.
+ // was provided. If not, then make sure none was provided.
if (a.needsValue())
{
if (argValue == null)
@@ -1313,15 +1299,11 @@
{
if (argValue != null)
{
- // If we've gotten here, then it means that we're in a
- // scenario like
+ // If we've gotten here, then it means that we're in a scenario like
// "-abc" where "a" is a valid argument that doesn't take a
- // value.
- // However, this could still be valid if all remaining
- // characters in
- // the value are also valid argument characters that don't
- // take
- // values.
+ // value. However, this could still be valid if all remaining
+ // characters in the value are also valid argument characters that
+ // don't take values.
final int valueLength = argValue.length();
for (int j = 0; j < valueLength; j++)
{
@@ -1337,8 +1319,7 @@
else if (b.needsValue())
{
// This means we're in a scenario like "-abc" where b is
- // a
- // valid argument that takes a value. We don't support
+ // a valid argument that takes a value. We don't support
// that.
final LocalizableMessage message = ERR_ARGPARSER_CANT_MIX_ARGS_WITH_VALUES
.get(String.valueOf(argCharacter), argValue, String
@@ -1350,8 +1331,7 @@
b.setPresent(true);
// If this is the usage argument, then immediately stop
- // and
- // print usage information.
+ // and print usage information.
if ((usageArgument != null)
&& usageArgument.getName().equals(b.getName()))
{
@@ -1373,16 +1353,14 @@
else if (allowsTrailingArguments)
{
// It doesn't start with a dash, so it must be a trailing
- // argument if
- // that is acceptable.
+ // argument if that is acceptable.
inTrailingArgs = true;
trailingArguments.add(arg);
}
else
{
// It doesn't start with a dash and we don't allow trailing
- // arguments,
- // so this is illegal.
+ // arguments, so this is illegal.
final LocalizableMessage message = ERR_ARGPARSER_DISALLOWED_TRAILING_ARGUMENT
.get(arg);
throw new ArgumentException(message);
@@ -1390,8 +1368,7 @@
}
// If we allow trailing arguments and there is a minimum number,
- // then make
- // sure at least that many were provided.
+ // then make sure at least that many were provided.
if (allowsTrailingArguments && (minTrailingArguments > 0))
{
if (trailingArguments.size() < minTrailingArguments)
@@ -1410,10 +1387,8 @@
}
// Iterate through all of the arguments. For any that were not
- // provided on
- // the command line, see if there is an alternate default that can
- // be used.
- // For cases where there is not, see that argument is required.
+ // provided on the command line, see if there is an alternate default that
+ // can be used. For cases where there is not, see that argument is required.
for (final Argument a : argumentList)
{
if (!a.isPresent())
@@ -1453,8 +1428,7 @@
}
// If there is still no value and the argument is required, then
- // that's
- // a problem.
+ // that's a problem.
if ((!a.hasValue()) && a.isRequired())
{
final LocalizableMessage message = ERR_ARGPARSER_NO_VALUE_FOR_REQUIRED_ARG
diff --git a/sdk/src/com/sun/opends/sdk/tools/AuthRate.java b/sdk/src/com/sun/opends/sdk/tools/AuthRate.java
index 7965437..e6a4890 100644
--- a/sdk/src/com/sun/opends/sdk/tools/AuthRate.java
+++ b/sdk/src/com/sun/opends/sdk/tools/AuthRate.java
@@ -65,10 +65,11 @@
- private BindStatsThread()
+ private BindStatsThread(boolean extraFieldRequired)
{
- super(new String[] { "bind time %" });
- extraColumn = new String[1];
+ super(extraFieldRequired ? new String[] { "bind time %" }
+ : new String[0]);
+ extraColumn = new String[extraFieldRequired ? 1 : 0];
}
@@ -77,9 +78,12 @@
String[] getAdditionalColumns()
{
invalidCredRecentCount.set(0);
- final long searchWaitTime = searchWaitRecentTime.getAndSet(0);
- extraColumn[0] = String.format("%.1f",
- ((float)(waitTime - searchWaitTime) / waitTime) * 100.0);
+ if (extraColumn.length != 0)
+ {
+ final long searchWaitTime = searchWaitRecentTime.getAndSet(0);
+ extraColumn[0] = String.format("%.1f",
+ ((float) (waitTime - searchWaitTime) / waitTime) * 100.0);
+ }
return extraColumn;
}
}
@@ -183,7 +187,7 @@
else
{
return performBind(connection, data,
- new UpdateStatsResultHandler<BindResult>(startTime));
+ new BindUpdateStatsResultHandler(startTime));
}
}
@@ -383,11 +387,7 @@
@Override
StatsThread newStatsThread()
{
- if(filter != null && baseDN != null)
- {
- return new BindStatsThread();
- }
- return new StatsThread(new String[0]);
+ return new BindStatsThread(filter != null && baseDN != null);
}
@@ -400,7 +400,7 @@
}
}
/**
- * The main method for SearchRate tool.
+ * The main method for AuthRate tool.
*
* @param args
* The command-line arguments provided to this program.
@@ -408,7 +408,7 @@
public static void main(final String[] args)
{
- final int retCode = mainSearchRate(args, System.in, System.out, System.err);
+ final int retCode = mainAuthRate(args, System.in, System.out, System.err);
System.exit(filterExitCode(retCode));
}
@@ -416,23 +416,23 @@
/**
* Parses the provided command-line arguments and uses that information to run
- * the ldapsearch tool.
+ * the tool.
*
* @param args
* The command-line arguments provided to this program.
* @return The error code.
*/
- static int mainSearchRate(final String[] args)
+ static int mainAuthRate(final String[] args)
{
- return mainSearchRate(args, System.in, System.out, System.err);
+ return mainAuthRate(args, System.in, System.out, System.err);
}
/**
* Parses the provided command-line arguments and uses that information to run
- * the ldapsearch tool.
+ * the tool.
*
* @param args
* The command-line arguments provided to this program.
@@ -448,7 +448,7 @@
* @return The error code.
*/
- static int mainSearchRate(final String[] args, final InputStream inStream,
+ static int mainAuthRate(final String[] args, final InputStream inStream,
final OutputStream outStream, final OutputStream errStream)
{
@@ -654,6 +654,14 @@
try
{
argParser.parseArguments(args);
+
+ // If we should just display usage or version information,
+ // then print it and exit.
+ if (argParser.usageOrVersionDisplayed())
+ {
+ return 0;
+ }
+
connectionFactory =
connectionFactoryProvider.getConnectionFactory();
runner.validate();
@@ -670,26 +678,19 @@
final LocalizableMessage message = ERR_ERROR_PARSING_ARGS.get(ae
.getMessage());
println(message);
- println(argParser.getUsageMessage());
return ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue();
}
- // If we should just display usage or version information,
- // then print it and exit.
- if (argParser.usageOrVersionDisplayed())
- {
- return 0;
- }
-
final List<String> attributes = new LinkedList<String>();
final ArrayList<String> filterAndAttributeStrings = argParser
.getTrailingArguments();
if (filterAndAttributeStrings.size() > 0)
{
// the list of trailing arguments should be structured as follow:
- // the first trailing argument is
- // considered the filter, the other as attributes.
+ // the first trailing argument is considered the filter, the other as
+ // attributes.
runner.filter = filterAndAttributeStrings.remove(0);
+
// The rest are attributes
for (final String s : filterAndAttributeStrings)
{
diff --git a/sdk/src/com/sun/opends/sdk/tools/LDAPCompare.java b/sdk/src/com/sun/opends/sdk/tools/LDAPCompare.java
index a861219..6012150 100644
--- a/sdk/src/com/sun/opends/sdk/tools/LDAPCompare.java
+++ b/sdk/src/com/sun/opends/sdk/tools/LDAPCompare.java
@@ -381,6 +381,14 @@
try
{
argParser.parseArguments(args);
+
+ // If we should just display usage or version information,
+ // then print it and exit.
+ if (argParser.usageOrVersionDisplayed())
+ {
+ return 0;
+ }
+
connectionFactory =
connectionFactoryProvider.getAuthenticatedConnectionFactory();
}
@@ -389,17 +397,9 @@
final LocalizableMessage message = ERR_ERROR_PARSING_ARGS.get(ae
.getMessage());
println(message);
- println(argParser.getUsageMessage());
return ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue();
}
- // If we should just display usage or version information,
- // then print it and exit.
- if (argParser.usageOrVersionDisplayed())
- {
- return 0;
- }
-
try
{
final int versionNumber = version.getIntValue();
diff --git a/sdk/src/com/sun/opends/sdk/tools/LDAPModify.java b/sdk/src/com/sun/opends/sdk/tools/LDAPModify.java
index aa9d4e1..beedc3a 100644
--- a/sdk/src/com/sun/opends/sdk/tools/LDAPModify.java
+++ b/sdk/src/com/sun/opends/sdk/tools/LDAPModify.java
@@ -599,6 +599,14 @@
try
{
argParser.parseArguments(args);
+
+ // If we should just display usage or version information,
+ // then print it and exit.
+ if (argParser.usageOrVersionDisplayed())
+ {
+ return 0;
+ }
+
connectionFactory =
connectionFactoryProvider.getAuthenticatedConnectionFactory();
}
@@ -607,17 +615,9 @@
final LocalizableMessage message = ERR_ERROR_PARSING_ARGS.get(ae
.getMessage());
println(message);
- println(argParser.getUsageMessage());
return ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue();
}
- // If we should just display usage or version information,
- // then print it and exit.
- if (argParser.usageOrVersionDisplayed())
- {
- return 0;
- }
-
try
{
final int versionNumber = version.getIntValue();
diff --git a/sdk/src/com/sun/opends/sdk/tools/LDAPPasswordModify.java b/sdk/src/com/sun/opends/sdk/tools/LDAPPasswordModify.java
index d87d5b7..3c960fb 100644
--- a/sdk/src/com/sun/opends/sdk/tools/LDAPPasswordModify.java
+++ b/sdk/src/com/sun/opends/sdk/tools/LDAPPasswordModify.java
@@ -321,6 +321,14 @@
try
{
argParser.parseArguments(args);
+
+ // If we should just display usage or version information,
+ // then print it and exit.
+ if (argParser.usageOrVersionDisplayed())
+ {
+ return 0;
+ }
+
connectionFactory =
connectionFactoryProvider.getAuthenticatedConnectionFactory();
}
@@ -329,17 +337,9 @@
final LocalizableMessage message = ERR_ERROR_PARSING_ARGS.get(ae
.getMessage());
println(message);
- println(argParser.getUsageMessage());
return ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue();
}
- // If we should just display usage or version information,
- // then print it and exit.
- if (argParser.usageOrVersionDisplayed())
- {
- return 0;
- }
-
final PasswordModifyExtendedRequest request = Requests
.newPasswordModifyExtendedRequest();
try
diff --git a/sdk/src/com/sun/opends/sdk/tools/LDAPSearch.java b/sdk/src/com/sun/opends/sdk/tools/LDAPSearch.java
index 5c5daa5..eb00b38 100644
--- a/sdk/src/com/sun/opends/sdk/tools/LDAPSearch.java
+++ b/sdk/src/com/sun/opends/sdk/tools/LDAPSearch.java
@@ -609,6 +609,14 @@
try
{
argParser.parseArguments(args);
+
+ // If we should just display usage or version information,
+ // then print it and exit.
+ if (argParser.usageOrVersionDisplayed())
+ {
+ return 0;
+ }
+
connectionFactory =
connectionFactoryProvider.getAuthenticatedConnectionFactory();
}
@@ -617,17 +625,9 @@
final LocalizableMessage message = ERR_ERROR_PARSING_ARGS.get(ae
.getMessage());
println(message);
- println(argParser.getUsageMessage());
return ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue();
}
- // If we should just display usage or version information,
- // then print it and exit.
- if (argParser.usageOrVersionDisplayed())
- {
- return 0;
- }
-
final List<Filter> filters = new LinkedList<Filter>();
final List<String> attributes = new LinkedList<String>();
final ArrayList<String> filterAndAttributeStrings = argParser
diff --git a/sdk/src/com/sun/opends/sdk/tools/ModRate.java b/sdk/src/com/sun/opends/sdk/tools/ModRate.java
index 8ad7a38..68d78fb 100644
--- a/sdk/src/com/sun/opends/sdk/tools/ModRate.java
+++ b/sdk/src/com/sun/opends/sdk/tools/ModRate.java
@@ -374,6 +374,14 @@
try
{
argParser.parseArguments(args);
+
+ // If we should just display usage or version information,
+ // then print it and exit.
+ if (argParser.usageOrVersionDisplayed())
+ {
+ return 0;
+ }
+
connectionFactory =
connectionFactoryProvider.getAuthenticatedConnectionFactory();
runner.validate();
@@ -383,17 +391,9 @@
final LocalizableMessage message = ERR_ERROR_PARSING_ARGS.get(ae
.getMessage());
println(message);
- println(argParser.getUsageMessage());
return ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue();
}
- // If we should just display usage or version information,
- // then print it and exit.
- if (argParser.usageOrVersionDisplayed())
- {
- return 0;
- }
-
runner.modStrings = argParser.getTrailingArguments().toArray(
new String[argParser.getTrailingArguments().size()]);
runner.baseDN = baseDN.getValue();
diff --git a/sdk/src/com/sun/opends/sdk/tools/SearchRate.java b/sdk/src/com/sun/opends/sdk/tools/SearchRate.java
index ddc81ae..183a7bc 100644
--- a/sdk/src/com/sun/opends/sdk/tools/SearchRate.java
+++ b/sdk/src/com/sun/opends/sdk/tools/SearchRate.java
@@ -447,6 +447,14 @@
try
{
argParser.parseArguments(args);
+
+ // If we should just display usage or version information,
+ // then print it and exit.
+ if (argParser.usageOrVersionDisplayed())
+ {
+ return 0;
+ }
+
connectionFactory =
connectionFactoryProvider.getAuthenticatedConnectionFactory();
runner.validate();
@@ -456,17 +464,9 @@
final LocalizableMessage message = ERR_ERROR_PARSING_ARGS.get(ae
.getMessage());
println(message);
- println(argParser.getUsageMessage());
return ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue();
}
- // If we should just display usage or version information,
- // then print it and exit.
- if (argParser.usageOrVersionDisplayed())
- {
- return 0;
- }
-
final List<String> attributes = new LinkedList<String>();
final ArrayList<String> filterAndAttributeStrings = argParser
.getTrailingArguments();
diff --git a/sdk/src/org/opends/sdk/LDAPListenerOptions.java b/sdk/src/org/opends/sdk/LDAPListenerOptions.java
index 472688d..a2b5815 100644
--- a/sdk/src/org/opends/sdk/LDAPListenerOptions.java
+++ b/sdk/src/org/opends/sdk/LDAPListenerOptions.java
@@ -31,6 +31,8 @@
import javax.net.ssl.SSLContext;
+import org.glassfish.grizzly.nio.transport.TCPNIOTransport;
+
import com.sun.opends.sdk.util.Validator;
@@ -38,7 +40,7 @@
/**
* Common options for LDAP listeners.
*/
-public class LDAPListenerOptions
+public final class LDAPListenerOptions
{
private SSLContext sslContext;
@@ -47,6 +49,8 @@
private int backlog;
+ private TCPNIOTransport transport;
+
/**
@@ -58,6 +62,7 @@
this.sslContext = null;
this.backlog = 0;
this.decodeOptions = new DecodeOptions();
+ this.transport = null;
}
@@ -74,6 +79,7 @@
this.sslContext = options.sslContext;
this.backlog = options.backlog;
this.decodeOptions = new DecodeOptions(options.decodeOptions);
+ this.transport = options.transport;
}
@@ -125,6 +131,24 @@
/**
+ * Returns the Grizzly TCP transport which will be used when initiating
+ * connections with the Directory Server. By default this method will return
+ * {@code null} indicating that the default transport factory should be
+ * used to obtain a TCP transport.
+ *
+ * @return The Grizzly TCP transport which will be used when initiating
+ * connections with the Directory Server, or {@code null} if the
+ * default transport factory should be used to obtain a TCP
+ * transport.
+ */
+ public final TCPNIOTransport getTCPNIOTransport()
+ {
+ return transport;
+ }
+
+
+
+ /**
* Sets the maximum queue length for incoming connections requests. If a
* connection request arrives when the queue is full, the connection is
* refused. If the backlog is less than {@code 1} then a default value of
@@ -180,4 +204,26 @@
this.sslContext = sslContext;
return this;
}
+
+
+
+ /**
+ * Sets the Grizzly TCP transport which will be used when initiating
+ * connections with the Directory Server. By default this method will return
+ * {@code null} indicating that the default transport factory should be
+ * used to obtain a TCP transport.
+ *
+ * @param transport
+ * The Grizzly TCP transport which will be used when initiating
+ * connections with the Directory Server, or {@code null} if the
+ * default transport factory should be used to obtain a TCP
+ * transport.
+ * @return A reference to this connection options.
+ */
+ public final LDAPListenerOptions setTCPNIOTransport(
+ final TCPNIOTransport transport)
+ {
+ this.transport = transport;
+ return this;
+ }
}
diff --git a/sdk/src/org/opends/sdk/LDAPOptions.java b/sdk/src/org/opends/sdk/LDAPOptions.java
index 6e5a5d7..ac0acaa 100644
--- a/sdk/src/org/opends/sdk/LDAPOptions.java
+++ b/sdk/src/org/opends/sdk/LDAPOptions.java
@@ -29,11 +29,14 @@
-import java.util.*;
+import java.util.LinkedList;
+import java.util.List;
import java.util.concurrent.TimeUnit;
import javax.net.ssl.SSLContext;
+import org.glassfish.grizzly.nio.transport.TCPNIOTransport;
+
import com.sun.opends.sdk.util.Validator;
@@ -41,7 +44,7 @@
/**
* Common options for LDAP client connections.
*/
-public class LDAPOptions
+public final class LDAPOptions
{
private SSLContext sslContext;
@@ -61,6 +64,8 @@
*/
private List<String> enabledProtocols = new LinkedList<String>();
+ private TCPNIOTransport transport;
+
/**
@@ -69,11 +74,11 @@
*/
public LDAPOptions()
{
- super();
this.sslContext = null;
this.timeoutInMillis = 0;
this.useStartTLS = false;
this.decodeOptions = new DecodeOptions();
+ this.transport = null;
}
@@ -93,6 +98,7 @@
this.decodeOptions = new DecodeOptions(options.decodeOptions);
this.enabledCipherSuites.addAll(options.getEnabledCipherSuites());
this.enabledProtocols.addAll(options.getEnabledProtocols());
+ this.transport = options.transport;
}
@@ -130,6 +136,23 @@
/**
+ * Returns the Grizzly TCP transport which will be used when initiating
+ * connections with the Directory Server. By default this method will return
+ * {@code null} indicating that the default transport factory should be used
+ * to obtain a TCP transport.
+ *
+ * @return The Grizzly TCP transport which will be used when initiating
+ * connections with the Directory Server, or {@code null} if the
+ * default transport factory should be used to obtain a TCP transport.
+ */
+ public final TCPNIOTransport getTCPNIOTransport()
+ {
+ return transport;
+ }
+
+
+
+ /**
* Returns the operation timeout in the specified unit.
*
* @param unit
@@ -186,6 +209,27 @@
/**
+ * Sets the Grizzly TCP transport which will be used when initiating
+ * connections with the Directory Server. By default this method will return
+ * {@code null} indicating that the default transport factory will be used to
+ * obtain a TCP transport.
+ *
+ * @param transport
+ * The Grizzly TCP transport which will be used when initiating
+ * connections with the Directory Server, or {@code null} if the
+ * default transport factory should be used to obtain a TCP
+ * transport.
+ * @return A reference to this LDAP connection options.
+ */
+ public final LDAPOptions setTCPNIOTransport(final TCPNIOTransport transport)
+ {
+ this.transport = transport;
+ return this;
+ }
+
+
+
+ /**
* Sets the operation timeout. If the response is not received from the
* Directory Server in the timeout period, the operation will be abandoned and
* an error result returned. A timeout setting of 0 disables timeout limits.
diff --git a/sdk/src/org/opends/sdk/RequestHandler.java b/sdk/src/org/opends/sdk/RequestHandler.java
new file mode 100644
index 0000000..3287721
--- /dev/null
+++ b/sdk/src/org/opends/sdk/RequestHandler.java
@@ -0,0 +1,245 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License"). You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+ * add the following below this CDDL HEADER, with the fields enclosed
+ * by brackets "[]" replaced with your own identifying information:
+ * Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ * Copyright 2010 Sun Microsystems, Inc.
+ */
+
+package org.opends.sdk;
+
+
+
+import org.opends.sdk.requests.*;
+import org.opends.sdk.responses.BindResult;
+import org.opends.sdk.responses.CompareResult;
+import org.opends.sdk.responses.ExtendedResult;
+import org.opends.sdk.responses.Result;
+
+
+
+/**
+ * A handler interface for processing client requests.
+ * <p>
+ * Implementations must always return results using the provided
+ * {@link ResultHandler} unless explicitly permitted.
+ * <p>
+ * For example, an {@link LDAPListener} does not require {@code RequestHandler}
+ * implementations to return results, which may be useful when implementing
+ * abandon operation functionality. Conversely, an access logger implemented as
+ * a {@code RequestHandler} wrapper will require wrapped {@code RequestHandler}s
+ * to always return results, even abandoned results, in order for it to log the
+ * result status.
+ *
+ * @param <C>
+ * The type of request context.
+ * @see ServerConnectionFactory
+ */
+public interface RequestHandler<C>
+{
+
+ /**
+ * Invoked when an add request is received from a client.
+ *
+ * @param requestContext
+ * The request context.
+ * @param request
+ * The add request.
+ * @param resultHandler
+ * The handler which should be used to send back the result to the
+ * client.
+ * @param intermediateResponseHandler
+ * The handler which should be used to send back any intermediate
+ * responses to the client.
+ * @throws UnsupportedOperationException
+ * If this request handler does not handle add requests.
+ */
+ void handleAdd(C requestContext, AddRequest request,
+ ResultHandler<? super Result> resultHandler,
+ IntermediateResponseHandler intermediateResponseHandler)
+ throws UnsupportedOperationException;
+
+
+
+ /**
+ * Invoked when a bind request is received from a client.
+ *
+ * @param requestContext
+ * The request context.
+ * @param version
+ * The protocol version included with the bind request.
+ * @param request
+ * The bind request.
+ * @param resultHandler
+ * The handler which should be used to send back the result to the
+ * client.
+ * @param intermediateResponseHandler
+ * The handler which should be used to send back any intermediate
+ * responses to the client.
+ * @throws UnsupportedOperationException
+ * If this request handler does not handle bind requests.
+ */
+ void handleBind(C requestContext, int version, BindRequest request,
+ ResultHandler<? super BindResult> resultHandler,
+ IntermediateResponseHandler intermediateResponseHandler)
+ throws UnsupportedOperationException;
+
+
+
+ /**
+ * Invoked when a compare request is received from a client.
+ *
+ * @param requestContext
+ * The request context.
+ * @param request
+ * The compare request.
+ * @param resultHandler
+ * The handler which should be used to send back the result to the
+ * client.
+ * @param intermediateResponseHandler
+ * The handler which should be used to send back any intermediate
+ * responses to the client.
+ * @throws UnsupportedOperationException
+ * If this request handler does not handle compare requests.
+ */
+ void handleCompare(C requestContext, CompareRequest request,
+ ResultHandler<? super CompareResult> resultHandler,
+ IntermediateResponseHandler intermediateResponseHandler)
+ throws UnsupportedOperationException;
+
+
+
+ /**
+ * Invoked when a delete request is received from a client.
+ *
+ * @param requestContext
+ * The request context.
+ * @param request
+ * The delete request.
+ * @param resultHandler
+ * The handler which should be used to send back the result to the
+ * client.
+ * @param intermediateResponseHandler
+ * The handler which should be used to send back any intermediate
+ * responses to the client.
+ * @throws UnsupportedOperationException
+ * If this request handler does not handle delete requests.
+ */
+ void handleDelete(C requestContext, DeleteRequest request,
+ ResultHandler<? super Result> resultHandler,
+ IntermediateResponseHandler intermediateResponseHandler)
+ throws UnsupportedOperationException;
+
+
+
+ /**
+ * Invoked when an extended request is received from a client.
+ *
+ * @param <R>
+ * The type of result returned by the extended request.
+ * @param requestContext
+ * The request context.
+ * @param request
+ * The extended request.
+ * @param resultHandler
+ * The handler which should be used to send back the result to the
+ * client.
+ * @param intermediateResponseHandler
+ * The handler which should be used to send back any intermediate
+ * responses to the client.
+ * @throws UnsupportedOperationException
+ * If this request handler does not handle extended requests.
+ */
+ <R extends ExtendedResult> void handleExtendedRequest(C requestContext,
+ ExtendedRequest<R> request, ResultHandler<? super R> resultHandler,
+ IntermediateResponseHandler intermediateResponseHandler)
+ throws UnsupportedOperationException;
+
+
+
+ /**
+ * Invoked when a modify request is received from a client.
+ *
+ * @param requestContext
+ * The request context.
+ * @param request
+ * The modify request.
+ * @param resultHandler
+ * The handler which should be used to send back the result to the
+ * client.
+ * @param intermediateResponseHandler
+ * The handler which should be used to send back any intermediate
+ * responses to the client.
+ * @throws UnsupportedOperationException
+ * If this request handler does not handle modify requests.
+ */
+ void handleModify(C requestContext, ModifyRequest request,
+ ResultHandler<? super Result> resultHandler,
+ IntermediateResponseHandler intermediateResponseHandler)
+ throws UnsupportedOperationException;
+
+
+
+ /**
+ * Invoked when a modify DN request is received from a client.
+ *
+ * @param requestContext
+ * The request context.
+ * @param request
+ * The modify DN request.
+ * @param resultHandler
+ * The handler which should be used to send back the result to the
+ * client.
+ * @param intermediateResponseHandler
+ * The handler which should be used to send back any intermediate
+ * responses to the client.
+ * @throws UnsupportedOperationException
+ * If this request handler does not handle modify DN requests.
+ */
+ void handleModifyDN(C requestContext, ModifyDNRequest request,
+ ResultHandler<? super Result> resultHandler,
+ IntermediateResponseHandler intermediateResponseHandler)
+ throws UnsupportedOperationException;
+
+
+
+ /**
+ * Invoked when a search request is received from a client.
+ *
+ * @param requestContext
+ * The request context.
+ * @param request
+ * The search request.
+ * @param resultHandler
+ * The handler which should be used to send back the search results
+ * to the client.
+ * @param intermediateResponseHandler
+ * The handler which should be used to send back any intermediate
+ * responses to the client.
+ * @throws UnsupportedOperationException
+ * If this request handler does not handle search requests.
+ */
+ void handleSearch(C requestContext, SearchRequest request,
+ SearchResultHandler resultHandler,
+ IntermediateResponseHandler intermediateResponseHandler)
+ throws UnsupportedOperationException;
+}
diff --git a/sdk/src/org/opends/sdk/ServerConnection.java b/sdk/src/org/opends/sdk/ServerConnection.java
index b7c560d..b0cea92 100644
--- a/sdk/src/org/opends/sdk/ServerConnection.java
+++ b/sdk/src/org/opends/sdk/ServerConnection.java
@@ -29,33 +29,27 @@
-import org.opends.sdk.requests.*;
-import org.opends.sdk.responses.BindResult;
-import org.opends.sdk.responses.CompareResult;
-import org.opends.sdk.responses.ExtendedResult;
-import org.opends.sdk.responses.Result;
+import org.opends.sdk.requests.AbandonRequest;
+import org.opends.sdk.requests.UnbindRequest;
/**
- * A handler interface for processing requests from clients.
+ * A handler interface for interacting with client connections. A
+ * {@code ServerConnection} is associated with a client connection when the
+ * {@link ServerConnectionFactory#handleAccept(Object) handleAccept} method is
+ * invoked against a {@code ServerConnectionFactory}.
* <p>
- * Implementations should always return results via the provided
- * {@code RequestHandler} when processing requests unless otherwise indicated by
- * the component passing requests to the {@code ServerConnection}. For example,
- * an {@link LDAPListener} does not require {@code ServerConnection}
- * implementations to return results, which may be useful when implementing
- * abandon operation functionality.
- * <p>
- * Note that {@code ServerConnection}s may be stacked, and that a lower
- * {@code ServerConnection} implementation, such as a logger, may require upper
- * {@code ServerConnection} implementations to always return results.
+ * Implementations are responsible for handling connection life-cycle as well as
+ * request life-cycle. In particular, a {@code ServerConnection} is responsible
+ * for processing abandon and unbind requests, as well as extended operations
+ * such as {@code StartTLS} and {@code Cancel} operations.
*
* @param <C>
* The type of request context.
* @see ServerConnectionFactory
*/
-public interface ServerConnection<C>
+public interface ServerConnection<C> extends RequestHandler<C>
{
/**
@@ -74,77 +68,6 @@
/**
- * Invoked when an add request is received from a client.
- *
- * @param requestContext
- * The request context.
- * @param request
- * The add request.
- * @param resultHandler
- * The handler which should be used to send back the result to the
- * client.
- * @param intermediateResponseHandler
- * The handler which should be used to send back any intermediate
- * responses to the client.
- * @throws UnsupportedOperationException
- * If this server connection does not handle add requests.
- */
- void handleAdd(C requestContext, AddRequest request,
- ResultHandler<? super Result> resultHandler,
- IntermediateResponseHandler intermediateResponseHandler)
- throws UnsupportedOperationException;
-
-
-
- /**
- * Invoked when a bind request is received from a client.
- *
- * @param requestContext
- * The request context.
- * @param version
- * The protocol version included with the bind request.
- * @param request
- * The bind request.
- * @param resultHandler
- * The handler which should be used to send back the result to the
- * client.
- * @param intermediateResponseHandler
- * The handler which should be used to send back any intermediate
- * responses to the client.
- * @throws UnsupportedOperationException
- * If this server connection does not handle bind requests.
- */
- void handleBind(C requestContext, int version, BindRequest request,
- ResultHandler<? super BindResult> resultHandler,
- IntermediateResponseHandler intermediateResponseHandler)
- throws UnsupportedOperationException;
-
-
-
- /**
- * Invoked when a compare request is received from a client.
- *
- * @param requestContext
- * The request context.
- * @param request
- * The compare request.
- * @param resultHandler
- * The handler which should be used to send back the result to the
- * client.
- * @param intermediateResponseHandler
- * The handler which should be used to send back any intermediate
- * responses to the client.
- * @throws UnsupportedOperationException
- * If this server connection does not handle compare requests.
- */
- void handleCompare(C requestContext, CompareRequest request,
- ResultHandler<? super CompareResult> resultHandler,
- IntermediateResponseHandler intermediateResponseHandler)
- throws UnsupportedOperationException;
-
-
-
- /**
* Invoked when the client closes the connection, possibly using an unbind
* request.
*
@@ -183,120 +106,4 @@
*/
void handleConnectionError(Throwable error);
-
-
- /**
- * Invoked when a delete request is received from a client.
- *
- * @param requestContext
- * The request context.
- * @param request
- * The delete request.
- * @param resultHandler
- * The handler which should be used to send back the result to the
- * client.
- * @param intermediateResponseHandler
- * The handler which should be used to send back any intermediate
- * responses to the client.
- * @throws UnsupportedOperationException
- * If this server connection does not handle delete requests.
- */
- void handleDelete(C requestContext, DeleteRequest request,
- ResultHandler<? super Result> resultHandler,
- IntermediateResponseHandler intermediateResponseHandler)
- throws UnsupportedOperationException;
-
-
-
- /**
- * Invoked when an extended request is received from a client.
- *
- * @param <R>
- * The type of result returned by the extended request.
- * @param requestContext
- * The request context.
- * @param request
- * The extended request.
- * @param resultHandler
- * The handler which should be used to send back the result to the
- * client.
- * @param intermediateResponseHandler
- * The handler which should be used to send back any intermediate
- * responses to the client.
- * @throws UnsupportedOperationException
- * If this server connection does not handle extended requests.
- */
- <R extends ExtendedResult> void handleExtendedRequest(C requestContext,
- ExtendedRequest<R> request, ResultHandler<? super R> resultHandler,
- IntermediateResponseHandler intermediateResponseHandler)
- throws UnsupportedOperationException;
-
-
-
- /**
- * Invoked when a modify request is received from a client.
- *
- * @param requestContext
- * The request context.
- * @param request
- * The modify request.
- * @param resultHandler
- * The handler which should be used to send back the result to the
- * client.
- * @param intermediateResponseHandler
- * The handler which should be used to send back any intermediate
- * responses to the client.
- * @throws UnsupportedOperationException
- * If this server connection does not handle modify requests.
- */
- void handleModify(C requestContext, ModifyRequest request,
- ResultHandler<? super Result> resultHandler,
- IntermediateResponseHandler intermediateResponseHandler)
- throws UnsupportedOperationException;
-
-
-
- /**
- * Invoked when a modify DN request is received from a client.
- *
- * @param requestContext
- * The request context.
- * @param request
- * The modify DN request.
- * @param resultHandler
- * The handler which should be used to send back the result to the
- * client.
- * @param intermediateResponseHandler
- * The handler which should be used to send back any intermediate
- * responses to the client.
- * @throws UnsupportedOperationException
- * If this server connection does not handle modify DN requests.
- */
- void handleModifyDN(C requestContext, ModifyDNRequest request,
- ResultHandler<? super Result> resultHandler,
- IntermediateResponseHandler intermediateResponseHandler)
- throws UnsupportedOperationException;
-
-
-
- /**
- * Invoked when a search request is received from a client.
- *
- * @param requestContext
- * The request context.
- * @param request
- * The search request.
- * @param resultHandler
- * The handler which should be used to send back the search results
- * to the client.
- * @param intermediateResponseHandler
- * The handler which should be used to send back any intermediate
- * responses to the client.
- * @throws UnsupportedOperationException
- * If this server connection does not handle search requests.
- */
- void handleSearch(C requestContext, SearchRequest request,
- SearchResultHandler resultHandler,
- IntermediateResponseHandler intermediateResponseHandler)
- throws UnsupportedOperationException;
}
diff --git a/sdk/tests/unit-tests-testng/src/org/opends/sdk/LDAPServer.java b/sdk/tests/unit-tests-testng/src/org/opends/sdk/LDAPServer.java
index a11c5d5..140dab6 100644
--- a/sdk/tests/unit-tests-testng/src/org/opends/sdk/LDAPServer.java
+++ b/sdk/tests/unit-tests-testng/src/org/opends/sdk/LDAPServer.java
@@ -51,7 +51,6 @@
import org.glassfish.grizzly.nio.transport.TCPNIOTransport;
import com.sun.opends.sdk.controls.AccountUsabilityRequestControl;
import com.sun.opends.sdk.controls.AccountUsabilityResponseControl;
-import com.sun.opends.sdk.ldap.GrizzlyLDAPListenerOptions;
@@ -758,7 +757,7 @@
transport.setSelectorRunnersCount(2);
listener = new LDAPListener(port, getInstance(),
- new GrizzlyLDAPListenerOptions().setTCPNIOTransport(transport)
+ new LDAPListenerOptions().setTCPNIOTransport(transport)
.setBacklog(4096));
transport.start();
isRunning = true;
--
Gitblit v1.10.0