You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2019/01/01 11:17:43 UTC
[directory-server] 01/02: Fixed the server compilation issues
following the changes in the LDA API
This is an automated email from the ASF dual-hosted git repository.
elecharny pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/directory-server.git
commit f28f4aa854d1e924f19375d4c5cfdccdd03bd2ec
Author: Emmanuel Lecharny <el...@apache.org>
AuthorDate: Thu Dec 27 17:49:51 2018 +0100
Fixed the server compilation issues following the changes in the LDA API
---
.../core/api/LdapCoreSessionConnectionTest.java | 14 +--
.../server/core/subtree/SubentryServiceIT.java | 9 +-
.../directory/server/core/jndi/ServerContext.java | 110 ++++-----------------
.../core/authn/AuthenticationInterceptor.java | 34 +++----
.../server/core/subtree/SubentryInterceptor.java | 6 +-
protocol-ldap/pom.xml | 1 -
.../directory/server/ldap/LdapProtocolHandler.java | 7 +-
.../extended/CertGenerationRequestHandler.java | 6 ++
.../handlers/extended/EndTransactionHandler.java | 3 +-
.../handlers/extended/GracefulShutdownHandler.java | 2 +-
.../StoredProcedureExtendedOperationHandler.java | 11 ++-
.../ldap/handlers/extended/WhoAmIHandler.java | 5 +-
.../handlers/request/SearchRequestHandler.java | 24 ++---
.../consumer/ReplicationConsumerImpl.java | 13 +--
.../provider/SyncReplRequestHandler.java | 16 ++-
.../provider/SyncReplSearchListener.java | 4 +-
.../server/operations/bind/SaslBindIT.java | 9 +-
.../operations/extended/DitUtilitiesProcedure.java | 2 +-
.../server/operations/extended/PwdModifyIT.java | 19 ++--
.../server/operations/search/PagedSearchApiIT.java | 3 +-
.../server/operations/search/PagedSearchIT.java | 8 +-
.../operations/search/PersistentSearchApiIT.java | 19 ++--
.../operations/search/PersistentSearchIT.java | 17 ++--
.../directory/server/ppolicy/PasswordPolicyIT.java | 3 +-
.../server/replication/MockSyncReplConsumer.java | 14 +--
.../server/core/integ/FrameworkRunner.java | 1 +
26 files changed, 123 insertions(+), 237 deletions(-)
diff --git a/core-integ/src/test/java/org/apache/directory/server/core/api/LdapCoreSessionConnectionTest.java b/core-integ/src/test/java/org/apache/directory/server/core/api/LdapCoreSessionConnectionTest.java
index b22789c..9de0bd4 100755
--- a/core-integ/src/test/java/org/apache/directory/server/core/api/LdapCoreSessionConnectionTest.java
+++ b/core-integ/src/test/java/org/apache/directory/server/core/api/LdapCoreSessionConnectionTest.java
@@ -22,13 +22,8 @@ package org.apache.directory.server.core.api;
import static org.junit.Assert.assertNotNull;
-import org.apache.directory.api.ldap.codec.api.LdapApiService;
-import org.apache.directory.api.ldap.codec.api.LdapApiServiceFactory;
-import org.apache.directory.api.ldap.extras.controls.ppolicy.PasswordPolicyRequest;
-import org.apache.directory.api.ldap.extras.controls.ppolicy.PasswordPolicyRequestImpl;
import org.apache.directory.api.ldap.extras.controls.ppolicy.PasswordPolicyResponse;
import org.apache.directory.api.ldap.extras.controls.ppolicy.PasswordPolicyResponseImpl;
-import org.apache.directory.api.ldap.extras.controls.ppolicy_impl.PasswordPolicyResponseDecorator;
import org.apache.directory.api.ldap.model.exception.LdapException;
import org.apache.directory.api.ldap.model.message.BindRequest;
import org.apache.directory.api.ldap.model.message.BindRequestImpl;
@@ -79,9 +74,8 @@ import org.slf4j.LoggerFactory;
public class LdapCoreSessionConnectionTest extends AbstractLdapTestUnit
{
private static Logger logger = LoggerFactory.getLogger( LdapCoreSessionConnection.class );
- private static final LdapApiService codec = LdapApiServiceFactory.getSingleton();
- private static final PasswordPolicyResponseDecorator passwordPolicyRequestControl =
- new PasswordPolicyResponseDecorator( codec, new PasswordPolicyResponseImpl() );
+ private static final PasswordPolicyResponse passwordPolicyRequestControl =
+ new PasswordPolicyResponseImpl();
@Before
@@ -119,7 +113,7 @@ public class LdapCoreSessionConnectionTest extends AbstractLdapTestUnit
BindResponse bindResponse = connection.bind( bindRequest );
Control responseControl = bindResponse.getControls().get( passwordPolicyRequestControl.getOid() );
assertNotNull( responseControl );
- PasswordPolicyResponse passwordPolicy = ( ( PasswordPolicyResponseDecorator ) responseControl ).getDecorated();
+ PasswordPolicyResponse passwordPolicy = ( PasswordPolicyResponse ) responseControl;
assertNotNull( passwordPolicy );
}
finally
@@ -147,7 +141,7 @@ public class LdapCoreSessionConnectionTest extends AbstractLdapTestUnit
BindResponse bindResponse = connection.bind( bindRequest );
Control responseControl = bindResponse.getControls().get( passwordPolicyRequestControl.getOid() );
assertNotNull( responseControl );
- PasswordPolicyResponse passwordPolicy = ( ( PasswordPolicyResponseDecorator ) responseControl ).getDecorated();
+ PasswordPolicyResponse passwordPolicy = ( PasswordPolicyResponse ) responseControl;
assertNotNull( passwordPolicy );
}
finally
diff --git a/core-integ/src/test/java/org/apache/directory/server/core/subtree/SubentryServiceIT.java b/core-integ/src/test/java/org/apache/directory/server/core/subtree/SubentryServiceIT.java
index 69cf53a..2d9eb79 100644
--- a/core-integ/src/test/java/org/apache/directory/server/core/subtree/SubentryServiceIT.java
+++ b/core-integ/src/test/java/org/apache/directory/server/core/subtree/SubentryServiceIT.java
@@ -43,7 +43,6 @@ import javax.naming.ldap.LdapContext;
import org.apache.directory.api.ldap.codec.api.LdapApiService;
import org.apache.directory.api.ldap.codec.api.LdapApiServiceFactory;
-import org.apache.directory.api.ldap.codec.controls.search.subentries.SubentriesDecorator;
import org.apache.directory.api.ldap.model.cursor.EntryCursor;
import org.apache.directory.api.ldap.model.entry.Attribute;
import org.apache.directory.api.ldap.model.entry.DefaultEntry;
@@ -56,6 +55,7 @@ import org.apache.directory.api.ldap.model.message.ModifyRequest;
import org.apache.directory.api.ldap.model.message.ModifyRequestImpl;
import org.apache.directory.api.ldap.model.message.SearchScope;
import org.apache.directory.api.ldap.model.message.controls.Subentries;
+import org.apache.directory.api.ldap.model.message.controls.SubentriesImpl;
import org.apache.directory.api.ldap.model.name.Dn;
import org.apache.directory.api.ldap.util.JndiUtils;
import org.apache.directory.ldap.client.api.LdapConnection;
@@ -1302,10 +1302,8 @@ public class SubentryServiceIT extends AbstractLdapTestUnit
// except subentries disappear
LdapApiService codec = LdapApiServiceFactory.getSingleton();
- SubentriesDecorator decorator = new SubentriesDecorator( codec );
- Subentries ctl = decorator.getDecorated();
+ Subentries ctl = new SubentriesImpl();
ctl.setVisibility( true );
- decorator.getValue();
sysRoot.setRequestControls( JndiUtils.toJndiControls( codec, new Control[]
{ ctl } ) );
list = sysRoot.search( "", "(objectClass=*)", searchControls );
@@ -1419,8 +1417,7 @@ public class SubentryServiceIT extends AbstractLdapTestUnit
connection.add( getTestSubentryWithExclusion( "cn=testsubentry,ou=system" ) );
Entry result = connection.lookup( "cn=testsubentry,ou=system", new Control[]
- {
- new SubentriesDecorator( connection.getCodecService() ) }, "subtreeSpecification" );
+ { new SubentriesImpl() }, "subtreeSpecification" );
assertNotNull( result );
String ss = result.get( "SubtreeSpecification" ).getString();
diff --git a/core-jndi/src/main/java/org/apache/directory/server/core/jndi/ServerContext.java b/core-jndi/src/main/java/org/apache/directory/server/core/jndi/ServerContext.java
index bfa8f35..5dea15d 100644
--- a/core-jndi/src/main/java/org/apache/directory/server/core/jndi/ServerContext.java
+++ b/core-jndi/src/main/java/org/apache/directory/server/core/jndi/ServerContext.java
@@ -47,24 +47,11 @@ import javax.naming.spi.DirStateFactory;
import javax.naming.spi.DirectoryManager;
import org.apache.directory.api.asn1.DecoderException;
-import org.apache.directory.api.ldap.codec.api.CodecControl;
-import org.apache.directory.api.ldap.codec.controls.cascade.CascadeDecorator;
-import org.apache.directory.api.ldap.codec.controls.manageDsaIT.ManageDsaITDecorator;
-import org.apache.directory.api.ldap.codec.controls.search.entryChange.EntryChangeDecorator;
-import org.apache.directory.api.ldap.codec.controls.search.pagedSearch.PagedResultsDecorator;
-import org.apache.directory.api.ldap.codec.controls.search.persistentSearch.PersistentSearchDecorator;
-import org.apache.directory.api.ldap.codec.controls.search.subentries.SubentriesDecorator;
+import org.apache.directory.api.ldap.codec.api.ControlFactory;
import org.apache.directory.api.ldap.extras.controls.ppolicy.PasswordPolicyRequest;
-import org.apache.directory.api.ldap.extras.controls.ppolicy.PasswordPolicyRequestImpl;
-import org.apache.directory.api.ldap.extras.controls.ppolicy.PasswordPolicyResponseImpl;
-import org.apache.directory.api.ldap.extras.controls.ppolicy_impl.PasswordPolicyRequestDecorator;
-import org.apache.directory.api.ldap.extras.controls.ppolicy_impl.PasswordPolicyResponseDecorator;
import org.apache.directory.api.ldap.extras.controls.syncrepl.syncDone.SyncDoneValue;
import org.apache.directory.api.ldap.extras.controls.syncrepl.syncRequest.SyncRequestValue;
import org.apache.directory.api.ldap.extras.controls.syncrepl.syncState.SyncStateValue;
-import org.apache.directory.api.ldap.extras.controls.syncrepl_impl.SyncDoneValueDecorator;
-import org.apache.directory.api.ldap.extras.controls.syncrepl_impl.SyncRequestValueDecorator;
-import org.apache.directory.api.ldap.extras.controls.syncrepl_impl.SyncStateValueDecorator;
import org.apache.directory.api.ldap.extras.intermediate.syncrepl.SyncInfoValue;
import org.apache.directory.api.ldap.model.constants.JndiPropertyConstants;
import org.apache.directory.api.ldap.model.constants.SchemaConstants;
@@ -83,10 +70,8 @@ import org.apache.directory.api.ldap.model.filter.PresenceNode;
import org.apache.directory.api.ldap.model.message.AliasDerefMode;
import org.apache.directory.api.ldap.model.message.SearchScope;
import org.apache.directory.api.ldap.model.message.controls.Cascade;
-import org.apache.directory.api.ldap.model.message.controls.CascadeImpl;
import org.apache.directory.api.ldap.model.message.controls.EntryChange;
import org.apache.directory.api.ldap.model.message.controls.ManageDsaIT;
-import org.apache.directory.api.ldap.model.message.controls.ManageDsaITImpl;
import org.apache.directory.api.ldap.model.message.controls.PagedResults;
import org.apache.directory.api.ldap.model.message.controls.PersistentSearch;
import org.apache.directory.api.ldap.model.message.controls.Subentries;
@@ -386,87 +371,30 @@ public abstract class ServerContext implements EventContext
private org.apache.directory.api.ldap.model.message.Control convertControl( boolean isRequest,
Control jndiControl ) throws DecoderException
{
- String controlIDStr = jndiControl.getID();
- CodecControl<? extends org.apache.directory.api.ldap.model.message.Control> control = null;
-
- ControlEnum controlId = ADS_CONTROLS.get( controlIDStr );
-
- switch ( controlId )
+ String controlIdStr = jndiControl.getID();
+
+ ControlFactory<?> controlFactory;
+
+ if ( isRequest )
{
- case CASCADE_CONTROL:
- control = new CascadeDecorator( getDirectoryService().getLdapCodecService(), new CascadeImpl() );
-
- break;
-
- case ENTRY_CHANGE_CONTROL:
- control = new EntryChangeDecorator( getDirectoryService().getLdapCodecService() );
-
- break;
-
- case MANAGE_DSA_IT_CONTROL:
- control = new ManageDsaITDecorator( getDirectoryService().getLdapCodecService(), new ManageDsaITImpl() );
-
- break;
-
- case PAGED_RESULTS_CONTROL:
- control = new PagedResultsDecorator( getDirectoryService().getLdapCodecService() );
-
- break;
-
- case PASSWORD_POLICY_REQUEST_CONTROL:
- if ( isRequest )
- {
- control = new PasswordPolicyRequestDecorator( getDirectoryService().getLdapCodecService(),
- new PasswordPolicyRequestImpl() );
- }
- else
- {
- control = new PasswordPolicyResponseDecorator( getDirectoryService().getLdapCodecService(),
- new PasswordPolicyResponseImpl() );
- }
-
- break;
-
- case PERSISTENT_SEARCH_CONTROL:
- control = new PersistentSearchDecorator( getDirectoryService().getLdapCodecService() );
-
- break;
-
- case SUBENTRIES_CONTROL:
- control = new SubentriesDecorator( getDirectoryService().getLdapCodecService() );
-
- break;
-
- case SYNC_DONE_VALUE_CONTROL:
- control = new SyncDoneValueDecorator( getDirectoryService().getLdapCodecService() );
-
- break;
-
- case SYNC_REQUEST_VALUE_CONTROL:
- control = new SyncRequestValueDecorator( getDirectoryService().getLdapCodecService() );
-
- break;
-
- case SYNC_STATE_VALUE_CONTROL:
- control = new SyncStateValueDecorator( getDirectoryService().getLdapCodecService() );
-
- break;
-
- default:
- throw new IllegalArgumentException( "Unsupported control " + controlIDStr );
+ controlFactory = service.getLdapCodecService().getRequestControlFactories().get( controlIdStr );
+ }
+ else
+ {
+ controlFactory = service.getLdapCodecService().getResponseControlFactories().get( controlIdStr );
}
- control.setCritical( jndiControl.isCritical() );
- control.setValue( jndiControl.getEncodedValue() );
-
- byte[] value = jndiControl.getEncodedValue();
-
- if ( !Strings.isEmpty( value ) )
+ if ( controlFactory == null )
{
- control.decode( value );
+ throw new IllegalArgumentException( "Unsupported control " + controlIdStr );
}
- return control;
+ org.apache.directory.api.ldap.model.message.Control apiControl = controlFactory.newControl();
+
+ apiControl.setCritical( jndiControl.isCritical() );
+ controlFactory.decodeValue( apiControl, jndiControl.getEncodedValue() );
+
+ return apiControl;
}
diff --git a/interceptors/authn/src/main/java/org/apache/directory/server/core/authn/AuthenticationInterceptor.java b/interceptors/authn/src/main/java/org/apache/directory/server/core/authn/AuthenticationInterceptor.java
index bff1122..01f8328 100644
--- a/interceptors/authn/src/main/java/org/apache/directory/server/core/authn/AuthenticationInterceptor.java
+++ b/interceptors/authn/src/main/java/org/apache/directory/server/core/authn/AuthenticationInterceptor.java
@@ -48,8 +48,9 @@ import java.util.List;
import java.util.Set;
import org.apache.directory.api.ldap.extras.controls.ppolicy.PasswordPolicyRequest;
+import org.apache.directory.api.ldap.extras.controls.ppolicy.PasswordPolicyResponse;
+import org.apache.directory.api.ldap.extras.controls.ppolicy.PasswordPolicyResponseImpl;
import org.apache.directory.api.ldap.extras.controls.ppolicy.PasswordPolicyErrorEnum;
-import org.apache.directory.api.ldap.extras.controls.ppolicy_impl.PasswordPolicyResponseDecorator;
import org.apache.directory.api.ldap.model.constants.AuthenticationLevel;
import org.apache.directory.api.ldap.model.constants.LdapSecurityConstants;
import org.apache.directory.api.ldap.model.constants.SchemaConstants;
@@ -370,8 +371,7 @@ public class AuthenticationInterceptor extends BaseInterceptor
{
if ( isPPolicyReqCtrlPresent )
{
- PasswordPolicyResponseDecorator responseControl =
- new PasswordPolicyResponseDecorator( directoryService.getLdapCodecService() );
+ PasswordPolicyResponse responseControl = new PasswordPolicyResponseImpl();
responseControl.setPasswordPolicyError(
PasswordPolicyErrorEnum.get( e.getErrorCode() ) );
addContext.addResponseControl( responseControl );
@@ -561,8 +561,7 @@ public class AuthenticationInterceptor extends BaseInterceptor
PasswordPolicyException ppe = null;
boolean isPPolicyReqCtrlPresent = bindContext.hasRequestControl( PasswordPolicyRequest.OID );
- PasswordPolicyResponseDecorator pwdRespCtrl =
- new PasswordPolicyResponseDecorator( directoryService.getLdapCodecService() );
+ PasswordPolicyResponse pwdRespCtrl = new PasswordPolicyResponseImpl();
boolean authenticated = false;
Authenticator authenticator = selectAuthenticator( bindDn, level );
@@ -1018,8 +1017,7 @@ public class AuthenticationInterceptor extends BaseInterceptor
{
if ( isPPolicyReqCtrlPresent )
{
- PasswordPolicyResponseDecorator responseControl =
- new PasswordPolicyResponseDecorator( directoryService.getLdapCodecService() );
+ PasswordPolicyResponse responseControl = new PasswordPolicyResponseImpl();
responseControl.setPasswordPolicyError(
PasswordPolicyErrorEnum.PASSWORD_TOO_YOUNG );
modifyContext.addResponseControl( responseControl );
@@ -1039,8 +1037,7 @@ public class AuthenticationInterceptor extends BaseInterceptor
{
if ( isPPolicyReqCtrlPresent )
{
- PasswordPolicyResponseDecorator responseControl =
- new PasswordPolicyResponseDecorator( directoryService.getLdapCodecService() );
+ PasswordPolicyResponse responseControl = new PasswordPolicyResponseImpl();
responseControl.setPasswordPolicyError(
PasswordPolicyErrorEnum.get( e.getErrorCode() ) );
modifyContext.addResponseControl( responseControl );
@@ -1168,8 +1165,7 @@ public class AuthenticationInterceptor extends BaseInterceptor
{
if ( isPPolicyReqCtrlPresent )
{
- PasswordPolicyResponseDecorator responseControl =
- new PasswordPolicyResponseDecorator( directoryService.getLdapCodecService() );
+ PasswordPolicyResponse responseControl = new PasswordPolicyResponseImpl();
responseControl.setPasswordPolicyError(
PasswordPolicyErrorEnum.PASSWORD_IN_HISTORY );
modifyContext.addResponseControl( responseControl );
@@ -1263,8 +1259,7 @@ public class AuthenticationInterceptor extends BaseInterceptor
{
if ( isPPolicyReqCtrlPresent )
{
- PasswordPolicyResponseDecorator responseControl =
- new PasswordPolicyResponseDecorator( directoryService.getLdapCodecService() );
+ PasswordPolicyResponse responseControl = new PasswordPolicyResponseImpl();
responseControl.setPasswordPolicyError(
PasswordPolicyErrorEnum.CHANGE_AFTER_RESET );
modifyContext.addResponseControl( responseControl );
@@ -1290,8 +1285,7 @@ public class AuthenticationInterceptor extends BaseInterceptor
if ( isPPolicyReqCtrlPresent )
{
- PasswordPolicyResponseDecorator responseControl =
- new PasswordPolicyResponseDecorator( directoryService.getLdapCodecService() );
+ PasswordPolicyResponse responseControl = new PasswordPolicyResponseImpl();
responseControl.setPasswordPolicyError(
PasswordPolicyErrorEnum.MUST_SUPPLY_OLD_PASSWORD );
modifyContext.addResponseControl( responseControl );
@@ -1314,8 +1308,7 @@ public class AuthenticationInterceptor extends BaseInterceptor
{
if ( isPPolicyReqCtrlPresent )
{
- PasswordPolicyResponseDecorator responseControl =
- new PasswordPolicyResponseDecorator( directoryService.getLdapCodecService() );
+ PasswordPolicyResponse responseControl = new PasswordPolicyResponseImpl();
responseControl.setPasswordPolicyError(
PasswordPolicyErrorEnum.PASSWORD_MOD_NOT_ALLOWED );
modifyContext.addResponseControl( responseControl );
@@ -1715,10 +1708,9 @@ public class AuthenticationInterceptor extends BaseInterceptor
if ( isPPolicyReqCtrlPresent )
{
- PasswordPolicyResponseDecorator pwdRespCtrl =
- new PasswordPolicyResponseDecorator( directoryService.getLdapCodecService() );
- pwdRespCtrl.setPasswordPolicyError( PasswordPolicyErrorEnum.CHANGE_AFTER_RESET );
- opContext.addResponseControl( pwdRespCtrl );
+ PasswordPolicyResponse responseControl = new PasswordPolicyResponseImpl();
+ responseControl.setPasswordPolicyError( PasswordPolicyErrorEnum.CHANGE_AFTER_RESET );
+ opContext.addResponseControl( responseControl );
}
throw new LdapNoPermissionException( "password needs to be reset before performing this operation" );
diff --git a/interceptors/subtree/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java b/interceptors/subtree/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java
index 48c5907..7acc649 100644
--- a/interceptors/subtree/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java
+++ b/interceptors/subtree/src/main/java/org/apache/directory/server/core/subtree/SubentryInterceptor.java
@@ -27,7 +27,6 @@ import java.util.Set;
import javax.naming.directory.SearchControls;
-import org.apache.directory.api.ldap.codec.controls.search.subentries.SubentriesDecorator;
import org.apache.directory.api.ldap.model.constants.SchemaConstants;
import org.apache.directory.api.ldap.model.entry.Attribute;
import org.apache.directory.api.ldap.model.entry.DefaultAttribute;
@@ -344,9 +343,8 @@ public class SubentryInterceptor extends BaseInterceptor
// found the subentry request control so we return its value
if ( opContext.hasRequestControl( SUBENTRY_CONTROL ) )
{
- SubentriesDecorator subentriesDecorator = ( SubentriesDecorator ) opContext
- .getRequestControl( SUBENTRY_CONTROL );
- return subentriesDecorator.getDecorated().isVisible();
+ Subentries subentries = ( Subentries ) opContext.getRequestControl( SUBENTRY_CONTROL );
+ return subentries.isVisible();
}
return false;
diff --git a/protocol-ldap/pom.xml b/protocol-ldap/pom.xml
index 6369550..050b810 100644
--- a/protocol-ldap/pom.xml
+++ b/protocol-ldap/pom.xml
@@ -217,7 +217,6 @@
org.apache.directory.api.ldap.codec.api;version=${org.apache.directory.api.version},
org.apache.directory.api.ldap.codec.controls.manageDsaIT;version=${org.apache.directory.api.version},
org.apache.directory.api.ldap.codec.controls.search.pagedSearch;version=${org.apache.directory.api.version},
- org.apache.directory.api.ldap.codec.decorators;version=${org.apache.directory.api.version},
org.apache.directory.api.ldap.extras.controls;version=${org.apache.directory.api.version},
org.apache.directory.api.ldap.extras.controls.ppolicy;version=${org.apache.directory.api.version},
org.apache.directory.api.ldap.extras.controls.syncrepl.syncDone;version=${org.apache.directory.api.version},
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/LdapProtocolHandler.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/LdapProtocolHandler.java
index c4d0223..82d98b6 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/LdapProtocolHandler.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/LdapProtocolHandler.java
@@ -20,9 +20,8 @@
package org.apache.directory.server.ldap;
-import org.apache.directory.api.ldap.codec.api.AbstractMessageDecorator;
import org.apache.directory.api.ldap.codec.api.LdapDecoder;
-import org.apache.directory.api.ldap.codec.api.LdapMessageContainer;
+import org.apache.directory.api.ldap.codec.api.LdapMessageContainerDirect;
import org.apache.directory.api.ldap.codec.api.SchemaBinaryAttributeDetector;
import org.apache.directory.api.ldap.model.exception.ResponseCarryingMessageException;
import org.apache.directory.api.ldap.model.message.Control;
@@ -87,8 +86,8 @@ class LdapProtocolHandler extends DemuxingIoHandler
session.setAttribute( LdapDecoder.MAX_PDU_SIZE_ATTR, ldapServer.getDirectoryService().getMaxPDUSize() );
// Last, store the message container
- LdapMessageContainer<? extends AbstractMessageDecorator<Message>> ldapMessageContainer =
- new LdapMessageContainer<>(
+ LdapMessageContainerDirect<Message> ldapMessageContainer =
+ new LdapMessageContainerDirect<>(
ldapServer.getDirectoryService().getLdapCodecService(),
new SchemaBinaryAttributeDetector(
ldapServer.getDirectoryService().getSchemaManager() ) );
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/CertGenerationRequestHandler.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/CertGenerationRequestHandler.java
index d1d43fe..6d81110 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/CertGenerationRequestHandler.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/CertGenerationRequestHandler.java
@@ -26,6 +26,7 @@ import java.util.Set;
import org.apache.directory.api.ldap.extras.extended.certGeneration.CertGenerationRequest;
import org.apache.directory.api.ldap.extras.extended.certGeneration.CertGenerationResponse;
+import org.apache.directory.api.ldap.extras.extended.certGeneration.CertGenerationResponseImpl;
import org.apache.directory.api.ldap.model.entry.Entry;
import org.apache.directory.api.ldap.model.name.Dn;
import org.apache.directory.server.core.api.entry.ClonedServerEntry;
@@ -87,6 +88,11 @@ public class CertGenerationRequestHandler
req.getSubjectDN(),
req.getKeyAlgorithm() );
}
+
+ CertGenerationResponse certGenerationResponse = new CertGenerationResponseImpl( req.getMessageId() );
+
+ // write the response
+ session.getIoSession().write( certGenerationResponse );
}
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/EndTransactionHandler.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/EndTransactionHandler.java
index ab30426..d2580c5 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/EndTransactionHandler.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/EndTransactionHandler.java
@@ -24,7 +24,6 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
-import org.apache.directory.api.ldap.extras.extended.ads_impl.endTransaction.EndTransactionRequestDecorator;
import org.apache.directory.api.ldap.extras.extended.endTransaction.EndTransactionRequest;
import org.apache.directory.api.ldap.extras.extended.endTransaction.EndTransactionResponse;
import org.apache.directory.api.ldap.extras.extended.endTransaction.EndTransactionResponseImpl;
@@ -76,7 +75,7 @@ public class EndTransactionHandler implements ExtendedOperationHandler<ExtendedR
// We need to create a new transaction ID for the current session.
// If the current session is already processing a transaction, we will return an error
CoreSession coreSession = session.getCoreSession();
- coreSession.endSessionTransaction( ( ( EndTransactionRequestDecorator ) req ).getCommit() );
+ coreSession.endSessionTransaction( ( ( EndTransactionRequest ) req ).getCommit() );
EndTransactionResponse endTransactionResponse = new EndTransactionResponseImpl( req.getMessageId() );
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/GracefulShutdownHandler.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/GracefulShutdownHandler.java
index 4980392..d127cb5 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/GracefulShutdownHandler.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/GracefulShutdownHandler.java
@@ -259,7 +259,7 @@ public class GracefulShutdownHandler implements
try
{
future.awaitUninterruptibly( 1000 );
- sessionIt.next().close( true );
+ sessionIt.next().closeNow();
}
catch ( Exception e )
{
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/StoredProcedureExtendedOperationHandler.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/StoredProcedureExtendedOperationHandler.java
index ffe92c2..905a867 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/StoredProcedureExtendedOperationHandler.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/StoredProcedureExtendedOperationHandler.java
@@ -28,7 +28,8 @@ import java.util.List;
import java.util.Set;
import org.apache.commons.lang3.SerializationUtils;
-import org.apache.directory.api.ldap.codec.api.LdapApiServiceFactory;
+import org.apache.directory.api.ldap.codec.api.LdapApiService;
+import org.apache.directory.api.ldap.extras.extended.ads_impl.storedProcedure.StoredProcedureFactory;
import org.apache.directory.api.ldap.extras.extended.storedProcedure.StoredProcedureRequest;
import org.apache.directory.api.ldap.extras.extended.storedProcedure.StoredProcedureResponse;
import org.apache.directory.api.ldap.model.entry.Entry;
@@ -94,9 +95,11 @@ public class StoredProcedureExtendedOperationHandler implements
Object[] values = valueList.toArray( EMPTY_CLASS_ARRAY );
Object response = engine.invokeProcedure( session.getCoreSession(), procedure, values );
byte[] serializedResponse = SerializationUtils.serialize( ( Serializable ) response );
- StoredProcedureResponse resp =
- LdapApiServiceFactory.getSingleton().newExtendedResponse( req.getRequestName(), req.getMessageId(),
- serializedResponse );
+ LdapApiService codec = session.getLdapServer().getDirectoryService().getLdapCodecService();
+ StoredProcedureFactory factory = ( StoredProcedureFactory ) codec.getExtendedResponseFactories().get( req.getRequestName() );
+ StoredProcedureResponse resp = ( StoredProcedureResponse ) factory.newResponse( serializedResponse );
+ resp.setMessageId( req.getMessageId() );
+
session.getIoSession().write( resp );
}
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/WhoAmIHandler.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/WhoAmIHandler.java
index 32ecb81..f8982c9 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/WhoAmIHandler.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/extended/WhoAmIHandler.java
@@ -24,6 +24,7 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
+import org.apache.directory.api.ldap.extras.extended.ads_impl.whoAmI.WhoAmIFactory;
import org.apache.directory.api.ldap.extras.extended.whoAmI.WhoAmIRequest;
import org.apache.directory.api.ldap.extras.extended.whoAmI.WhoAmIResponse;
import org.apache.directory.api.ldap.extras.extended.whoAmI.WhoAmIResponseImpl;
@@ -74,9 +75,11 @@ public class WhoAmIHandler implements ExtendedOperationHandler<WhoAmIRequest, Wh
LdapPrincipal ldapPrincipal = requestor.getCoreSession().getAuthenticatedPrincipal();
- WhoAmIResponse whoAmIResponse = new WhoAmIResponseImpl( req.getMessageId(), ResultCodeEnum.SUCCESS );
+ WhoAmIResponseImpl whoAmIResponse = new WhoAmIResponseImpl( req.getMessageId(), ResultCodeEnum.SUCCESS );
String authzId = "dn:" + ldapPrincipal.getDn();
+
+ WhoAmIFactory.decode( whoAmIResponse, Strings.getBytesUtf8( authzId ) );
whoAmIResponse.setAuthzId( Strings.getBytesUtf8( authzId ) );
// write the response
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/request/SearchRequestHandler.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/request/SearchRequestHandler.java
index e627017..82bb76e 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/request/SearchRequestHandler.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/request/SearchRequestHandler.java
@@ -29,7 +29,6 @@ import java.util.Map;
import java.util.concurrent.TimeUnit;
import org.apache.commons.lang3.exception.ExceptionUtils;
-import org.apache.directory.api.ldap.codec.controls.search.pagedSearch.PagedResultsDecorator;
import org.apache.directory.api.ldap.extras.controls.syncrepl.syncRequest.SyncRequestValue;
import org.apache.directory.api.ldap.model.constants.SchemaConstants;
import org.apache.directory.api.ldap.model.cursor.Cursor;
@@ -62,6 +61,7 @@ import org.apache.directory.api.ldap.model.message.SearchResultReferenceImpl;
import org.apache.directory.api.ldap.model.message.SearchScope;
import org.apache.directory.api.ldap.model.message.controls.ManageDsaIT;
import org.apache.directory.api.ldap.model.message.controls.PagedResults;
+import org.apache.directory.api.ldap.model.message.controls.PagedResultsImpl;
import org.apache.directory.api.ldap.model.message.controls.PersistentSearch;
import org.apache.directory.api.ldap.model.name.Dn;
import org.apache.directory.api.ldap.model.schema.AttributeType;
@@ -437,7 +437,7 @@ public class SearchRequestHandler extends LdapRequestHandler<SearchRequest>
private void readPagedResults( LdapSession session, SearchRequest req, LdapResult ldapResult,
Cursor<Entry> cursor, long sizeLimit, int pagedLimit, PagedSearchContext pagedContext,
- PagedResultsDecorator pagedResultsControl ) throws Exception
+ PagedResults pagedResultsControl ) throws Exception
{
req.addAbandonListener( new SearchAbandonListener( ldapServer, cursor ) );
setTimeLimitsOnCursor( req, session, cursor );
@@ -496,8 +496,7 @@ public class SearchRequestHandler extends LdapRequestHandler<SearchRequest>
}
}
- pagedResultsControl = new PagedResultsDecorator( ldapServer.getDirectoryService()
- .getLdapCodecService() );
+ pagedResultsControl = new PagedResultsImpl();
pagedResultsControl.setCritical( true );
pagedResultsControl.setSize( 0 );
req.getResultResponse().addControl( pagedResultsControl );
@@ -591,11 +590,11 @@ public class SearchRequestHandler extends LdapRequestHandler<SearchRequest>
/**
* Handle a Paged Search request.
*/
- private SearchResultDone doPagedSearch( LdapSession session, SearchRequest req, PagedResultsDecorator control )
+ private SearchResultDone doPagedSearch( LdapSession session, SearchRequest req, PagedResults control )
throws Exception
{
- PagedResultsDecorator pagedSearchControl = control;
- PagedResultsDecorator pagedResultsControl = null;
+ PagedResults pagedSearchControl = control;
+ PagedResults pagedResultsControl = null;
// Get the size limits
// Don't bother setting size limits for administrators that don't ask for it
@@ -676,8 +675,7 @@ public class SearchRequestHandler extends LdapRequestHandler<SearchRequest>
session.addPagedSearchContext( pagedContext );
cookie = pagedContext.getCookie();
- pagedResultsControl = new PagedResultsDecorator( ldapServer.getDirectoryService()
- .getLdapCodecService() );
+ pagedResultsControl = new PagedResultsImpl();
pagedResultsControl.setCookie( cookie );
pagedResultsControl.setSize( 0 );
pagedResultsControl.setCritical( true );
@@ -710,8 +708,7 @@ public class SearchRequestHandler extends LdapRequestHandler<SearchRequest>
// get the cookie
cookie = pagedContext.getCookie();
- pagedResultsControl = new PagedResultsDecorator( ldapServer.getDirectoryService()
- .getLdapCodecService() );
+ pagedResultsControl = new PagedResultsImpl();
pagedResultsControl.setCookie( cookie );
pagedResultsControl.setSize( 0 );
pagedResultsControl.setCritical( true );
@@ -734,8 +731,7 @@ public class SearchRequestHandler extends LdapRequestHandler<SearchRequest>
session.addPagedSearchContext( pagedContext );
cookie = pagedContext.getCookie();
- pagedResultsControl = new PagedResultsDecorator( ldapServer.getDirectoryService()
- .getLdapCodecService() );
+ pagedResultsControl = new PagedResultsImpl();
pagedResultsControl.setCookie( cookie );
pagedResultsControl.setSize( 0 );
pagedResultsControl.setCritical( true );
@@ -792,7 +788,7 @@ public class SearchRequestHandler extends LdapRequestHandler<SearchRequest>
if ( control != null )
{
// Let's deal with the pagedControl
- return doPagedSearch( session, req, ( PagedResultsDecorator ) control );
+ return doPagedSearch( session, req, ( PagedResults ) control );
}
// A normal search
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/consumer/ReplicationConsumerImpl.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/consumer/ReplicationConsumerImpl.java
index 0a1983d..37759c5 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/consumer/ReplicationConsumerImpl.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/consumer/ReplicationConsumerImpl.java
@@ -27,15 +27,14 @@ import java.util.List;
import java.util.Map;
import org.apache.commons.collections4.map.LRUMap;
-import org.apache.directory.api.ldap.codec.controls.manageDsaIT.ManageDsaITDecorator;
import org.apache.directory.api.ldap.extras.controls.SynchronizationModeEnum;
import org.apache.directory.api.ldap.extras.controls.syncrepl.syncDone.SyncDoneValue;
import org.apache.directory.api.ldap.extras.controls.syncrepl.syncRequest.SyncRequestValue;
+import org.apache.directory.api.ldap.extras.controls.syncrepl.syncRequest.SyncRequestValueImpl;
import org.apache.directory.api.ldap.extras.controls.syncrepl.syncState.SyncStateTypeEnum;
import org.apache.directory.api.ldap.extras.controls.syncrepl.syncState.SyncStateValue;
-import org.apache.directory.api.ldap.extras.controls.syncrepl_impl.SyncRequestValueDecorator;
import org.apache.directory.api.ldap.extras.intermediate.syncrepl.SyncInfoValue;
-import org.apache.directory.api.ldap.extras.intermediate.syncrepl_impl.SyncInfoValueDecorator;
+import org.apache.directory.api.ldap.extras.intermediate.syncrepl.SyncInfoValueImpl;
import org.apache.directory.api.ldap.model.constants.Loggers;
import org.apache.directory.api.ldap.model.constants.SchemaConstants;
import org.apache.directory.api.ldap.model.csn.Csn;
@@ -296,8 +295,7 @@ public class ReplicationConsumerImpl implements ConnectionClosedEventListener, R
if ( !config.isChaseReferrals() )
{
- searchRequest.addControl( new ManageDsaITDecorator( directoryService.getLdapCodecService(),
- new ManageDsaITImpl() ) );
+ searchRequest.addControl( new ManageDsaITImpl() );
}
if ( CONSUMER_LOG.isDebugEnabled() )
@@ -488,8 +486,7 @@ public class ReplicationConsumerImpl implements ConnectionClosedEventListener, R
return;
}
- SyncInfoValueDecorator decorator = new SyncInfoValueDecorator( directoryService.getLdapCodecService() );
- SyncInfoValue syncInfoValue = ( SyncInfoValue ) decorator.decode( syncInfoBytes );
+ SyncInfoValue syncInfoValue = new SyncInfoValueImpl();
byte[] cookie = syncInfoValue.getCookie();
@@ -751,7 +748,7 @@ public class ReplicationConsumerImpl implements ConnectionClosedEventListener, R
{
CONSUMER_LOG.debug( "Starting synchronization mode {}, reloadHint {}", syncType, reloadHint );
// Prepare the Syncrepl Request
- SyncRequestValue syncReq = new SyncRequestValueDecorator( directoryService.getLdapCodecService() );
+ SyncRequestValue syncReq = new SyncRequestValueImpl();
syncReq.setMode( syncType );
syncReq.setReloadHint( reloadHint );
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/provider/SyncReplRequestHandler.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/provider/SyncReplRequestHandler.java
index 0edac1f..154ab4c 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/provider/SyncReplRequestHandler.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/provider/SyncReplRequestHandler.java
@@ -40,11 +40,11 @@ import java.util.concurrent.atomic.AtomicInteger;
import org.apache.directory.api.ldap.extras.controls.SynchronizationModeEnum;
import org.apache.directory.api.ldap.extras.controls.syncrepl.syncDone.SyncDoneValue;
+import org.apache.directory.api.ldap.extras.controls.syncrepl.syncDone.SyncDoneValueImpl;
import org.apache.directory.api.ldap.extras.controls.syncrepl.syncRequest.SyncRequestValue;
import org.apache.directory.api.ldap.extras.controls.syncrepl.syncState.SyncStateTypeEnum;
import org.apache.directory.api.ldap.extras.controls.syncrepl.syncState.SyncStateValue;
-import org.apache.directory.api.ldap.extras.controls.syncrepl_impl.SyncDoneValueDecorator;
-import org.apache.directory.api.ldap.extras.controls.syncrepl_impl.SyncStateValueDecorator;
+import org.apache.directory.api.ldap.extras.controls.syncrepl.syncState.SyncStateValueImpl;
import org.apache.directory.api.ldap.extras.intermediate.syncrepl.SyncInfoValue;
import org.apache.directory.api.ldap.extras.intermediate.syncrepl.SyncInfoValueImpl;
import org.apache.directory.api.ldap.extras.intermediate.syncrepl.SynchronizationInfoEnum;
@@ -464,8 +464,7 @@ public class SyncReplRequestHandler implements ReplicationRequestHandler
{
SearchResultDone searchDoneResp = ( SearchResultDone ) req.getResultResponse();
searchDoneResp.getLdapResult().setResultCode( ResultCodeEnum.SUCCESS );
- SyncDoneValue syncDone = new SyncDoneValueDecorator(
- ldapServer.getDirectoryService().getLdapCodecService() );
+ SyncDoneValue syncDone = new SyncDoneValueImpl();
syncDone.setCookie( cookie );
searchDoneResp.addControl( syncDone );
@@ -608,8 +607,7 @@ public class SyncReplRequestHandler implements ReplicationRequestHandler
byte[] cookie = LdapProtocolUtils.createCookie( replicaLog.getId(), contextCsn );
// no need to send from the log, that will be done in the next refreshOnly session
- SyncDoneValue syncDone = new SyncDoneValueDecorator(
- ldapServer.getDirectoryService().getLdapCodecService() );
+ SyncDoneValue syncDone = new SyncDoneValueImpl();
syncDone.setCookie( cookie );
searchDoneResp.addControl( syncDone );
PROVIDER_LOG.info( "Sending the searchResultDone response to consumer {}, {}", replicaLog,
@@ -763,8 +761,7 @@ public class SyncReplRequestHandler implements ReplicationRequestHandler
Attribute uuid = entry.get( SchemaConstants.ENTRY_UUID_AT );
// Create the SyncState control
- SyncStateValue syncStateControl = new SyncStateValueDecorator(
- ldapServer.getDirectoryService().getLdapCodecService() );
+ SyncStateValue syncStateControl = new SyncStateValueImpl();
syncStateControl.setSyncStateType( syncStateType );
syncStateControl.setEntryUUID( Strings.uuidToBytes( uuid.getString() ) );
@@ -1157,8 +1154,7 @@ public class SyncReplRequestHandler implements ReplicationRequestHandler
{
SearchResultDone searchDoneResp = ( SearchResultDone ) req.getResultResponse();
searchDoneResp.getLdapResult().setResultCode( ResultCodeEnum.E_SYNC_REFRESH_REQUIRED );
- SyncDoneValue syncDone = new SyncDoneValueDecorator(
- ldapServer.getDirectoryService().getLdapCodecService() );
+ SyncDoneValue syncDone = new SyncDoneValueImpl();
searchDoneResp.addControl( syncDone );
session.getIoSession().write( searchDoneResp );
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/provider/SyncReplSearchListener.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/provider/SyncReplSearchListener.java
index 4f6ebe8..8cef693 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/provider/SyncReplSearchListener.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/replication/provider/SyncReplSearchListener.java
@@ -22,7 +22,7 @@ package org.apache.directory.server.ldap.replication.provider;
import org.apache.directory.api.ldap.extras.controls.syncrepl.syncState.SyncStateTypeEnum;
import org.apache.directory.api.ldap.extras.controls.syncrepl.syncState.SyncStateValue;
-import org.apache.directory.api.ldap.extras.controls.syncrepl_impl.SyncStateValueDecorator;
+import org.apache.directory.api.ldap.extras.controls.syncrepl.syncState.SyncStateValueImpl;
import org.apache.directory.api.ldap.model.constants.SchemaConstants;
import org.apache.directory.api.ldap.model.entry.Entry;
import org.apache.directory.api.ldap.model.exception.LdapInvalidAttributeValueException;
@@ -175,7 +175,7 @@ public class SyncReplSearchListener implements DirectoryListener, AbandonListene
private SyncStateValue createControl( DirectoryService directoryService, SyncStateTypeEnum operation, Entry entry )
throws LdapInvalidAttributeValueException
{
- SyncStateValue syncStateValue = new SyncStateValueDecorator( directoryService.getLdapCodecService() );
+ SyncStateValue syncStateValue = new SyncStateValueImpl();
syncStateValue.setSyncStateType( operation );
String uuidStr = entry.get( SchemaConstants.ENTRY_UUID_AT ).getString();
diff --git a/server-integ/src/test/java/org/apache/directory/server/operations/bind/SaslBindIT.java b/server-integ/src/test/java/org/apache/directory/server/operations/bind/SaslBindIT.java
index 1f46b07..3aa3a9a 100644
--- a/server-integ/src/test/java/org/apache/directory/server/operations/bind/SaslBindIT.java
+++ b/server-integ/src/test/java/org/apache/directory/server/operations/bind/SaslBindIT.java
@@ -36,10 +36,9 @@ import javax.naming.directory.InitialDirContext;
import org.apache.commons.net.SocketClient;
import org.apache.directory.api.asn1.util.Asn1Buffer;
-import org.apache.directory.api.ldap.codec.api.AbstractMessageDecorator;
import org.apache.directory.api.ldap.codec.api.LdapDecoder;
import org.apache.directory.api.ldap.codec.api.LdapEncoder;
-import org.apache.directory.api.ldap.codec.api.LdapMessageContainer;
+import org.apache.directory.api.ldap.codec.api.LdapMessageContainerDirect;
import org.apache.directory.api.ldap.model.constants.SaslQoP;
import org.apache.directory.api.ldap.model.constants.SchemaConstants;
import org.apache.directory.api.ldap.model.constants.SupportedSaslMechanisms;
@@ -728,8 +727,9 @@ public class SaslBindIT extends AbstractLdapTestUnit
}
// Retrieve the response back from server to my last request.
- LdapMessageContainer<AbstractMessageDecorator<? extends Message>> container = new LdapMessageContainer(
+ LdapMessageContainerDirect<? extends Message> container = new LdapMessageContainerDirect(
ldapServer.getDirectoryService().getLdapCodecService() );
+
return ( BindResponse ) decoder.decode( _input_, container );
}
@@ -767,8 +767,9 @@ public class SaslBindIT extends AbstractLdapTestUnit
}
// Retrieve the response back from server to my last request.
- LdapMessageContainer<AbstractMessageDecorator<? extends Message>> container = new LdapMessageContainer(
+ LdapMessageContainerDirect<? extends Message> container = new LdapMessageContainerDirect(
ldapServer.getDirectoryService().getLdapCodecService() );
+
return ( BindResponse ) decoder.decode( _input_, container );
}
}
diff --git a/server-integ/src/test/java/org/apache/directory/server/operations/extended/DitUtilitiesProcedure.java b/server-integ/src/test/java/org/apache/directory/server/operations/extended/DitUtilitiesProcedure.java
index bdf56eb..8b91285 100644
--- a/server-integ/src/test/java/org/apache/directory/server/operations/extended/DitUtilitiesProcedure.java
+++ b/server-integ/src/test/java/org/apache/directory/server/operations/extended/DitUtilitiesProcedure.java
@@ -29,7 +29,7 @@ import org.slf4j.LoggerFactory;
public class DitUtilitiesProcedure
{
- private static final Logger log = LoggerFactory.getLogger( DitUtilitiesProcedure.class );
+ private static final Logger LOG = LoggerFactory.getLogger( DitUtilitiesProcedure.class );
/**
diff --git a/server-integ/src/test/java/org/apache/directory/server/operations/extended/PwdModifyIT.java b/server-integ/src/test/java/org/apache/directory/server/operations/extended/PwdModifyIT.java
index 71df9b4..7dd5397 100644
--- a/server-integ/src/test/java/org/apache/directory/server/operations/extended/PwdModifyIT.java
+++ b/server-integ/src/test/java/org/apache/directory/server/operations/extended/PwdModifyIT.java
@@ -28,14 +28,10 @@ import static org.junit.Assert.assertNotEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
-import org.apache.directory.api.ldap.codec.api.LdapApiService;
import org.apache.directory.api.ldap.codec.api.LdapApiServiceFactory;
-import org.apache.directory.api.ldap.extras.controls.ppolicy.PasswordPolicyRequest;
import org.apache.directory.api.ldap.extras.controls.ppolicy.PasswordPolicyErrorEnum;
-import org.apache.directory.api.ldap.extras.controls.ppolicy.PasswordPolicyRequestImpl;
import org.apache.directory.api.ldap.extras.controls.ppolicy.PasswordPolicyResponse;
import org.apache.directory.api.ldap.extras.controls.ppolicy.PasswordPolicyResponseImpl;
-import org.apache.directory.api.ldap.extras.controls.ppolicy_impl.PasswordPolicyResponseDecorator;
import org.apache.directory.api.ldap.extras.extended.pwdModify.PasswordModifyRequest;
import org.apache.directory.api.ldap.extras.extended.pwdModify.PasswordModifyRequestImpl;
import org.apache.directory.api.ldap.extras.extended.pwdModify.PasswordModifyResponse;
@@ -90,10 +86,7 @@ import org.junit.runner.RunWith;
{ Sha512PasswordHashingInterceptor.class })
public class PwdModifyIT extends AbstractLdapTestUnit
{
- private static final LdapApiService codec = LdapApiServiceFactory.getSingleton();
-
- private static final PasswordPolicyResponseDecorator PP_REQ_CTRL =
- new PasswordPolicyResponseDecorator( codec, new PasswordPolicyResponseImpl() );
+ private static final PasswordPolicyResponse PP_REQ_CTRL = new PasswordPolicyResponseImpl();
/** The passwordPolicy configuration */
private PasswordPolicyConfiguration policyConfig;
@@ -111,7 +104,7 @@ public class PwdModifyIT extends AbstractLdapTestUnit
return null;
}
- return ( ( PasswordPolicyResponseDecorator ) control ).getDecorated();
+ return ( PasswordPolicyResponse ) control;
}
@@ -517,8 +510,8 @@ public class PwdModifyIT extends AbstractLdapTestUnit
Dn userDn = new Dn( "cn=UserXY,ou=system" );
userConnection = getNetworkConnectionAs( ldapServer, userDn.toString(), "secret3" );
- PasswordPolicyResponseDecorator passwordPolicyRequestControl =
- new PasswordPolicyResponseDecorator( LdapApiServiceFactory.getSingleton(), new PasswordPolicyResponseImpl() );
+ PasswordPolicyResponse passwordPolicyRequestControl =
+ new PasswordPolicyResponseImpl();
PasswordModifyRequest selfPwdModifyRequest = new PasswordModifyRequestImpl();
selfPwdModifyRequest.setUserIdentity( Strings.getBytesUtf8( userDn.getNormName() ) );
selfPwdModifyRequest.setOldPassword( Strings.getBytesUtf8( "secret3" ) );
@@ -533,8 +526,8 @@ public class PwdModifyIT extends AbstractLdapTestUnit
.getControl( passwordPolicyRequestControl.getOid() );
assertNotNull( passwordPolicyResponseControl );
assertEquals( PasswordPolicyErrorEnum.PASSWORD_TOO_YOUNG,
- ( ( PasswordPolicyResponseDecorator ) passwordPolicyResponseControl )
- .getDecorated().getPasswordPolicyError() );
+ ( ( PasswordPolicyResponse ) passwordPolicyResponseControl )
+ .getPasswordPolicyError() );
addUser( adminConnection, "UserZZ", "secret4" );
Dn otherUserDn = new Dn( "cn=UserZZ,ou=system" );
diff --git a/server-integ/src/test/java/org/apache/directory/server/operations/search/PagedSearchApiIT.java b/server-integ/src/test/java/org/apache/directory/server/operations/search/PagedSearchApiIT.java
index 09ebd90..8bd4b3a 100644
--- a/server-integ/src/test/java/org/apache/directory/server/operations/search/PagedSearchApiIT.java
+++ b/server-integ/src/test/java/org/apache/directory/server/operations/search/PagedSearchApiIT.java
@@ -33,7 +33,6 @@ import java.util.Set;
import org.apache.directory.api.asn1.EncoderException;
import org.apache.directory.api.ldap.codec.api.LdapApiService;
import org.apache.directory.api.ldap.codec.api.LdapApiServiceFactory;
-import org.apache.directory.api.ldap.codec.controls.search.pagedSearch.PagedResultsDecorator;
import org.apache.directory.api.ldap.model.cursor.CursorException;
import org.apache.directory.api.ldap.model.cursor.EntryCursor;
import org.apache.directory.api.ldap.model.cursor.SearchCursor;
@@ -1036,7 +1035,7 @@ public class PagedSearchApiIT extends AbstractLdapTestUnit
{
connection.bind( "uid=admin,ou=system", "secret" );
- PagedResults pagedSearchControl = new PagedResultsDecorator( codec );
+ PagedResults pagedSearchControl = new PagedResultsImpl();
pagedSearchControl.setSize( 3 );
SearchRequest searchRequest = new SearchRequestImpl();
diff --git a/server-integ/src/test/java/org/apache/directory/server/operations/search/PagedSearchIT.java b/server-integ/src/test/java/org/apache/directory/server/operations/search/PagedSearchIT.java
index c28ea18..d3e174f 100644
--- a/server-integ/src/test/java/org/apache/directory/server/operations/search/PagedSearchIT.java
+++ b/server-integ/src/test/java/org/apache/directory/server/operations/search/PagedSearchIT.java
@@ -41,7 +41,6 @@ import javax.naming.ldap.PagedResultsResponseControl;
import org.apache.directory.api.asn1.EncoderException;
import org.apache.directory.api.ldap.codec.api.LdapApiService;
import org.apache.directory.api.ldap.codec.api.LdapApiServiceFactory;
-import org.apache.directory.api.ldap.codec.controls.search.pagedSearch.PagedResultsDecorator;
import org.apache.directory.api.ldap.model.cursor.EntryCursor;
import org.apache.directory.api.ldap.model.entry.Entry;
import org.apache.directory.api.ldap.model.message.Control;
@@ -51,6 +50,7 @@ import org.apache.directory.api.ldap.model.message.SearchRequestImpl;
import org.apache.directory.api.ldap.model.message.SearchResultDone;
import org.apache.directory.api.ldap.model.message.SearchScope;
import org.apache.directory.api.ldap.model.message.controls.PagedResults;
+import org.apache.directory.api.ldap.model.message.controls.PagedResultsImpl;
import org.apache.directory.api.ldap.model.name.Dn;
import org.apache.directory.api.ldap.util.JndiUtils;
import org.apache.directory.api.util.Network;
@@ -220,7 +220,7 @@ public class PagedSearchIT extends AbstractLdapTestUnit
SearchControls controls = new SearchControls();
controls.setCountLimit( sizeLimit );
controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
- PagedResultsDecorator pagedSearchControl = new PagedResultsDecorator( codec );
+ PagedResults pagedSearchControl = new PagedResultsImpl();
pagedSearchControl.setSize( pagedSize );
( ( LdapContext ) ctx ).setRequestControls( JndiUtils.toJndiControls( codec, new Control[]
@@ -237,7 +237,7 @@ public class PagedSearchIT extends AbstractLdapTestUnit
private void createNextSearchControls( DirContext ctx, byte[] cookie, int pagedSize )
throws NamingException, EncoderException
{
- PagedResultsDecorator pagedSearchControl = new PagedResultsDecorator( codec );
+ PagedResults pagedSearchControl = new PagedResultsImpl();
pagedSearchControl.setCookie( cookie );
pagedSearchControl.setSize( pagedSize );
( ( LdapContext ) ctx ).setRequestControls( JndiUtils.toJndiControls( codec, new Control[]
@@ -1040,7 +1040,7 @@ public class PagedSearchIT extends AbstractLdapTestUnit
SearchControls controls = new SearchControls();
controls.setCountLimit( ( int ) LdapServer.NO_SIZE_LIMIT );
controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
- PagedResults pagedSearchControl = new PagedResultsDecorator( codec );
+ PagedResults pagedSearchControl = new PagedResultsImpl();
pagedSearchControl.setSize( 3 );
// Loop over all the elements
diff --git a/server-integ/src/test/java/org/apache/directory/server/operations/search/PersistentSearchApiIT.java b/server-integ/src/test/java/org/apache/directory/server/operations/search/PersistentSearchApiIT.java
index 52035d5..7811358 100644
--- a/server-integ/src/test/java/org/apache/directory/server/operations/search/PersistentSearchApiIT.java
+++ b/server-integ/src/test/java/org/apache/directory/server/operations/search/PersistentSearchApiIT.java
@@ -44,10 +44,8 @@ import javax.naming.event.ObjectChangeListener;
import javax.naming.ldap.HasControls;
import javax.naming.ldap.LdapContext;
-import org.apache.directory.api.ldap.codec.api.CodecControl;
import org.apache.directory.api.ldap.codec.api.LdapApiService;
-import org.apache.directory.api.ldap.codec.controls.search.entryChange.EntryChangeDecorator;
-import org.apache.directory.api.ldap.codec.controls.search.persistentSearch.PersistentSearchDecorator;
+import org.apache.directory.api.ldap.codec.controls.search.entryChange.EntryChangeFactory;
import org.apache.directory.api.ldap.model.cursor.SearchCursor;
import org.apache.directory.api.ldap.model.entry.DefaultEntry;
import org.apache.directory.api.ldap.model.entry.Entry;
@@ -605,23 +603,22 @@ public class PersistentSearchApiIT extends AbstractLdapTestUnit
{
boolean isReady = false;
PSearchNotification result;
- final PersistentSearchDecorator persistentSearch;
+ final PersistentSearch persistentSearch;
LdapContext ctx;
NamingEnumeration<SearchResult> list;
PSearchListener()
{
- persistentSearch = new PersistentSearchDecorator( getLdapServer().getDirectoryService()
- .getLdapCodecService() );
+ persistentSearch = new PersistentSearchImpl();
}
PSearchListener( PersistentSearch persistentSearch )
{
- CodecControl<? extends Control> wrapped =
- getLdapServer().getDirectoryService().getLdapCodecService().newRequestControl( persistentSearch );
- this.persistentSearch = ( PersistentSearchDecorator ) wrapped;
+ LdapApiService codec = getLdapServer().getDirectoryService().getLdapCodecService();
+
+ this.persistentSearch = ( PersistentSearch ) codec.getRequestControlFactories().get( PersistentSearch.OID ).newControl();
}
@@ -660,8 +657,8 @@ public class PersistentSearchApiIT extends AbstractLdapTestUnit
{
LOG.debug( "PSearchListener.run() called." );
LdapApiService codec = getLdapServer().getDirectoryService().getLdapCodecService();
+ EntryChangeFactory factory = ( EntryChangeFactory ) codec.getResponseControlFactories().get( EntryChange.OID );
persistentSearch.setCritical( true );
- persistentSearch.setValue( persistentSearch.getValue() );
Control[] ctxCtls = new Control[]
{ persistentSearch };
@@ -694,7 +691,7 @@ public class PersistentSearchApiIT extends AbstractLdapTestUnit
EntryChange.OID ) )
{
ecControl = ( EntryChange ) JndiUtils.fromJndiResponseControl( codec, jndiControl );
- ( ( EntryChangeDecorator ) ecControl ).decode( jndiControl.getEncodedValue() );
+ factory.decodeValue( ecControl, jndiControl.getEncodedValue() );
}
}
}
diff --git a/server-integ/src/test/java/org/apache/directory/server/operations/search/PersistentSearchIT.java b/server-integ/src/test/java/org/apache/directory/server/operations/search/PersistentSearchIT.java
index 866446f..467bfbd 100644
--- a/server-integ/src/test/java/org/apache/directory/server/operations/search/PersistentSearchIT.java
+++ b/server-integ/src/test/java/org/apache/directory/server/operations/search/PersistentSearchIT.java
@@ -44,10 +44,8 @@ import javax.naming.event.ObjectChangeListener;
import javax.naming.ldap.HasControls;
import javax.naming.ldap.LdapContext;
-import org.apache.directory.api.ldap.codec.api.CodecControl;
import org.apache.directory.api.ldap.codec.api.LdapApiService;
-import org.apache.directory.api.ldap.codec.controls.search.entryChange.EntryChangeDecorator;
-import org.apache.directory.api.ldap.codec.controls.search.persistentSearch.PersistentSearchDecorator;
+import org.apache.directory.api.ldap.codec.controls.search.entryChange.EntryChangeFactory;
import org.apache.directory.api.ldap.model.cursor.SearchCursor;
import org.apache.directory.api.ldap.model.entry.DefaultEntry;
import org.apache.directory.api.ldap.model.entry.Entry;
@@ -605,23 +603,20 @@ public class PersistentSearchIT extends AbstractLdapTestUnit
{
boolean isReady = false;
PSearchNotification result;
- final PersistentSearchDecorator persistentSearch;
+ final PersistentSearch persistentSearch;
LdapContext ctx;
NamingEnumeration<SearchResult> list;
PSearchListener()
{
- persistentSearch = new PersistentSearchDecorator( getLdapServer().getDirectoryService()
- .getLdapCodecService() );
+ persistentSearch = new PersistentSearchImpl();
}
PSearchListener( PersistentSearch persistentSearch )
{
- CodecControl<? extends Control> wrapped =
- getLdapServer().getDirectoryService().getLdapCodecService().newRequestControl( persistentSearch );
- this.persistentSearch = ( PersistentSearchDecorator ) wrapped;
+ this.persistentSearch = persistentSearch;
}
@@ -660,8 +655,8 @@ public class PersistentSearchIT extends AbstractLdapTestUnit
{
LOG.debug( "PSearchListener.run() called." );
LdapApiService codec = getLdapServer().getDirectoryService().getLdapCodecService();
+ EntryChangeFactory factory = ( EntryChangeFactory ) codec.getResponseControlFactories().get( EntryChange.OID );
persistentSearch.setCritical( true );
- persistentSearch.setValue( persistentSearch.getValue() );
Control[] ctxCtls = new Control[]
{ persistentSearch };
@@ -694,7 +689,7 @@ public class PersistentSearchIT extends AbstractLdapTestUnit
EntryChange.OID ) )
{
ecControl = ( EntryChange ) JndiUtils.fromJndiResponseControl( codec, jndiControl );
- ( ( EntryChangeDecorator ) ecControl ).decode( jndiControl.getEncodedValue() );
+ factory.decodeValue( ecControl, jndiControl.getEncodedValue() );
}
}
}
diff --git a/server-integ/src/test/java/org/apache/directory/server/ppolicy/PasswordPolicyIT.java b/server-integ/src/test/java/org/apache/directory/server/ppolicy/PasswordPolicyIT.java
index 2f0c14f..6d61ea5 100644
--- a/server-integ/src/test/java/org/apache/directory/server/ppolicy/PasswordPolicyIT.java
+++ b/server-integ/src/test/java/org/apache/directory/server/ppolicy/PasswordPolicyIT.java
@@ -45,7 +45,6 @@ import org.apache.directory.api.ldap.extras.controls.ppolicy.PasswordPolicyReque
import org.apache.directory.api.ldap.extras.controls.ppolicy.PasswordPolicyErrorEnum;
import org.apache.directory.api.ldap.extras.controls.ppolicy.PasswordPolicyRequestImpl;
import org.apache.directory.api.ldap.extras.controls.ppolicy.PasswordPolicyResponse;
-import org.apache.directory.api.ldap.extras.controls.ppolicy_impl.PasswordPolicyResponseDecorator;
import org.apache.directory.api.ldap.model.constants.LdapSecurityConstants;
import org.apache.directory.api.ldap.model.constants.PasswordPolicySchemaConstants;
import org.apache.directory.api.ldap.model.constants.SchemaConstants;
@@ -167,7 +166,7 @@ public class PasswordPolicyIT extends AbstractLdapTestUnit
return null;
}
- return ( ( PasswordPolicyResponseDecorator ) control ).getDecorated();
+ return ( PasswordPolicyResponse) control;
}
diff --git a/server-integ/src/test/java/org/apache/directory/server/replication/MockSyncReplConsumer.java b/server-integ/src/test/java/org/apache/directory/server/replication/MockSyncReplConsumer.java
index 5e43043..a4717bd 100644
--- a/server-integ/src/test/java/org/apache/directory/server/replication/MockSyncReplConsumer.java
+++ b/server-integ/src/test/java/org/apache/directory/server/replication/MockSyncReplConsumer.java
@@ -32,17 +32,15 @@ import java.util.Map;
import java.util.Set;
import java.util.concurrent.atomic.AtomicInteger;
-import org.apache.directory.api.ldap.codec.api.LdapApiService;
-import org.apache.directory.api.ldap.codec.api.LdapApiServiceFactory;
import org.apache.directory.api.ldap.extras.controls.SyncModifyDnType;
import org.apache.directory.api.ldap.extras.controls.SynchronizationModeEnum;
import org.apache.directory.api.ldap.extras.controls.syncrepl.syncDone.SyncDoneValue;
import org.apache.directory.api.ldap.extras.controls.syncrepl.syncRequest.SyncRequestValue;
+import org.apache.directory.api.ldap.extras.controls.syncrepl.syncRequest.SyncRequestValueImpl;
import org.apache.directory.api.ldap.extras.controls.syncrepl.syncState.SyncStateTypeEnum;
import org.apache.directory.api.ldap.extras.controls.syncrepl.syncState.SyncStateValue;
-import org.apache.directory.api.ldap.extras.controls.syncrepl_impl.SyncRequestValueDecorator;
import org.apache.directory.api.ldap.extras.intermediate.syncrepl.SyncInfoValue;
-import org.apache.directory.api.ldap.extras.intermediate.syncrepl_impl.SyncInfoValueDecorator;
+import org.apache.directory.api.ldap.extras.intermediate.syncrepl_impl.SyncInfoValueFactory;
import org.apache.directory.api.ldap.model.constants.Loggers;
import org.apache.directory.api.ldap.model.constants.SchemaConstants;
import org.apache.directory.api.ldap.model.cursor.EntryCursor;
@@ -103,9 +101,6 @@ public class MockSyncReplConsumer implements ConnectionClosedEventListener, Repl
/** A dedicated logger for the consumer */
private static final Logger CONSUMER_LOG = LoggerFactory.getLogger( Loggers.CONSUMER_LOG.getName() );
- /** The codec */
- private LdapApiService ldapCodecService = LdapApiServiceFactory.getSingleton();
-
/** the syncrepl configuration */
private SyncReplConfiguration config;
@@ -414,8 +409,7 @@ public class MockSyncReplConsumer implements ConnectionClosedEventListener, Repl
return;
}
- SyncInfoValueDecorator decorator = new SyncInfoValueDecorator( ldapCodecService );
- SyncInfoValue syncInfoValue = ( SyncInfoValue ) decorator.decode( syncInfoBytes );
+ SyncInfoValue syncInfoValue = new SyncInfoValueFactory().newResponse( syncInfoBytes );
byte[] cookie = syncInfoValue.getCookie();
@@ -667,7 +661,7 @@ public class MockSyncReplConsumer implements ConnectionClosedEventListener, Repl
*/
private ReplicationStatusEnum doSyncSearch( SynchronizationModeEnum syncType, boolean reloadHint ) throws Exception
{
- SyncRequestValue syncReq = new SyncRequestValueDecorator( ldapCodecService );
+ SyncRequestValue syncReq = new SyncRequestValueImpl();
syncReq.setMode( syncType );
syncReq.setReloadHint( reloadHint );
diff --git a/test-framework/src/main/java/org/apache/directory/server/core/integ/FrameworkRunner.java b/test-framework/src/main/java/org/apache/directory/server/core/integ/FrameworkRunner.java
index 52d73e4..fa73e97 100644
--- a/test-framework/src/main/java/org/apache/directory/server/core/integ/FrameworkRunner.java
+++ b/test-framework/src/main/java/org/apache/directory/server/core/integ/FrameworkRunner.java
@@ -192,6 +192,7 @@ public class FrameworkRunner extends BlockJUnit4ClassRunner
}
catch ( Exception e )
{
+ e.printStackTrace();
LOG.error( I18n.err( I18n.ERR_181, getTestClass().getName() ) );
LOG.error( e.getLocalizedMessage() );
notifier.fireTestFailure( new Failure( getDescription(), e ) );