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 2014/03/19 00:43:56 UTC
svn commit: r1579091 - in /directory/shared/trunk/ldap/extras:
codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/gracefulDisconnect/
codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/certGeneration/
codec/sr...
Author: elecharny
Date: Tue Mar 18 23:43:55 2014
New Revision: 1579091
URL: http://svn.apache.org/r1579091
Log:
o Removal of useless classes
o Refactoring of the code to reflect this removal
Removed:
directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulDisconnect/GracefulAction.java
directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulDisconnect/GracefulDisconnect.java
directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulShutdown/GracefulShutdown.java
Modified:
directory/shared/trunk/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/gracefulDisconnect/GracefulDisconnectResponse.java
directory/shared/trunk/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/gracefulDisconnect/GracefulDisconnectResponseImpl.java
directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/certGeneration/CertGenerationContainer.java
directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/certGeneration/CertGenerationDecoder.java
directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/certGeneration/CertGenerationGrammar.java
directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulDisconnect/GracefulDisconnectContainer.java
directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulDisconnect/GracefulDisconnectDecoder.java
directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulDisconnect/GracefulDisconnectFactory.java
directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulDisconnect/GracefulDisconnectGrammar.java
directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulDisconnect/GracefulDisconnectResponseDecorator.java
directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulShutdown/GracefulShutdownContainer.java
directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulShutdown/GracefulShutdownDecoder.java
directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulShutdown/GracefulShutdownGrammar.java
directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulShutdown/GracefulShutdownRequestDecorator.java
directory/shared/trunk/ldap/extras/codec/src/test/java/org/apache/directory/api/ldap/extras/extended/ads_impl/CertGenerationRequestTest.java
directory/shared/trunk/ldap/extras/codec/src/test/java/org/apache/directory/api/ldap/extras/extended/ads_impl/GracefulDisconnectTest.java
directory/shared/trunk/ldap/extras/codec/src/test/java/org/apache/directory/api/ldap/extras/extended/ads_impl/GracefulShutdownTest.java
Modified: directory/shared/trunk/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/gracefulDisconnect/GracefulDisconnectResponse.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/gracefulDisconnect/GracefulDisconnectResponse.java?rev=1579091&r1=1579090&r2=1579091&view=diff
==============================================================================
--- directory/shared/trunk/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/gracefulDisconnect/GracefulDisconnectResponse.java (original)
+++ directory/shared/trunk/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/gracefulDisconnect/GracefulDisconnectResponse.java Tue Mar 18 23:43:55 2014
@@ -77,4 +77,12 @@ public interface GracefulDisconnectRespo
* @return the replicated contexts
*/
Referral getReplicatedContexts();
+
+
+ /**
+ * Add a new URL of a replicated server
+ *
+ * @param replicatedContext The replicated server to add.
+ */
+ void addReplicatedContexts( String replicatedContext );
}
\ No newline at end of file
Modified: directory/shared/trunk/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/gracefulDisconnect/GracefulDisconnectResponseImpl.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/gracefulDisconnect/GracefulDisconnectResponseImpl.java?rev=1579091&r1=1579090&r2=1579091&view=diff
==============================================================================
--- directory/shared/trunk/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/gracefulDisconnect/GracefulDisconnectResponseImpl.java (original)
+++ directory/shared/trunk/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/gracefulDisconnect/GracefulDisconnectResponseImpl.java Tue Mar 18 23:43:55 2014
@@ -107,9 +107,8 @@ public class GracefulDisconnectResponseI
// -----------------------------------------------------------------------
// Parameters of the Extended Response Value
// -----------------------------------------------------------------------
-
- /* (non-Javadoc)
- * @see org.apache.directory.api.ldap.extras.extended.GracefulDisconnectResponse#getDelay()
+ /**
+ * {@inheritDoc}
*/
public int getDelay()
{
@@ -117,8 +116,8 @@ public class GracefulDisconnectResponseI
}
- /* (non-Javadoc)
- * @see org.apache.directory.api.ldap.extras.extended.GracefulDisconnectResponse#setDelay(int)
+ /**
+ * {@inheritDoc}
*/
public void setDelay( int delay )
{
@@ -126,8 +125,8 @@ public class GracefulDisconnectResponseI
}
- /* (non-Javadoc)
- * @see org.apache.directory.api.ldap.extras.extended.GracefulDisconnectResponse#getTimeOffline()
+ /**
+ * {@inheritDoc}
*/
public int getTimeOffline()
{
@@ -135,8 +134,8 @@ public class GracefulDisconnectResponseI
}
- /* (non-Javadoc)
- * @see org.apache.directory.api.ldap.extras.extended.GracefulDisconnectResponse#setTimeOffline(int)
+ /**
+ * {@inheritDoc}
*/
public void setTimeOffline( int timeOffline )
{
@@ -144,11 +143,18 @@ public class GracefulDisconnectResponseI
}
- /* (non-Javadoc)
- * @see org.apache.directory.api.ldap.extras.extended.GracefulDisconnectResponse#getReplicatedContexts()
- */
public Referral getReplicatedContexts()
{
return replicatedContexts;
}
+
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public void addReplicatedContexts( String replicatedContext )
+ {
+ replicatedContexts.addLdapUrl( replicatedContext );
+ }
}
Modified: directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/certGeneration/CertGenerationContainer.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/certGeneration/CertGenerationContainer.java?rev=1579091&r1=1579090&r2=1579091&view=diff
==============================================================================
--- directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/certGeneration/CertGenerationContainer.java (original)
+++ directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/certGeneration/CertGenerationContainer.java Tue Mar 18 23:43:55 2014
@@ -31,7 +31,7 @@ import org.apache.directory.api.asn1.ber
public class CertGenerationContainer extends AbstractContainer
{
/** CertGenerationObject */
- private CertGenerationRequestDecorator certGenObj;
+ private CertGenerationRequestDecorator certGenerationRequest;
/**
@@ -47,23 +47,23 @@ public class CertGenerationContainer ext
/**
- * @return Returns the CertGenerationObject instance.
+ * @return Returns the CertGenerationRequest instance.
*/
- public CertGenerationRequestDecorator getCertGenerationObject()
+ public CertGenerationRequestDecorator getCertGenerationRequest()
{
- return certGenObj;
+ return certGenerationRequest;
}
/**
- * Set a CertGenerationObject Object into the container. It will be completed by
+ * Set a CertGenerationRequest instance into the container. It will be completed by
* the ldapDecoder.
*
- * @param certGenObj the CertGenerationObject to set.
+ * @param certGenerationRequest the CertGenerationRequest to set.
*/
- public void setCertGenerationObject( CertGenerationRequestDecorator certGenObj )
+ public void setCertGenerationRequest( CertGenerationRequestDecorator certGenerationRequest )
{
- this.certGenObj = certGenObj;
+ this.certGenerationRequest = certGenerationRequest;
}
@@ -73,6 +73,6 @@ public class CertGenerationContainer ext
public void clean()
{
super.clean();
- certGenObj = null;
+ certGenerationRequest = null;
}
}
Modified: directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/certGeneration/CertGenerationDecoder.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/certGeneration/CertGenerationDecoder.java?rev=1579091&r1=1579090&r2=1579091&view=diff
==============================================================================
--- directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/certGeneration/CertGenerationDecoder.java (original)
+++ directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/certGeneration/CertGenerationDecoder.java Tue Mar 18 23:43:55 2014
@@ -52,7 +52,7 @@ public class CertGenerationDecoder exten
ByteBuffer bb = ByteBuffer.wrap( stream );
CertGenerationContainer container = new CertGenerationContainer();
decoder.decode( bb, container );
- CertGenerationRequestDecorator certGenerationRequestDecorator = container.getCertGenerationObject();
+ CertGenerationRequestDecorator certGenerationRequestDecorator = container.getCertGenerationRequest();
// Clean the container for the next decoding
container.clean();
Modified: directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/certGeneration/CertGenerationGrammar.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/certGeneration/CertGenerationGrammar.java?rev=1579091&r1=1579090&r2=1579091&view=diff
==============================================================================
--- directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/certGeneration/CertGenerationGrammar.java (original)
+++ directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/certGeneration/CertGenerationGrammar.java Tue Mar 18 23:43:55 2014
@@ -91,9 +91,9 @@ public class CertGenerationGrammar exten
{
public void action( CertGenerationContainer container )
{
- CertGenerationRequestDecorator certGenerationObject = new CertGenerationRequestDecorator(
+ CertGenerationRequestDecorator certGenerationRequest = new CertGenerationRequestDecorator(
LdapApiServiceFactory.getSingleton(), new CertGenerationRequestImpl() );
- container.setCertGenerationObject( certGenerationObject );
+ container.setCertGenerationRequest( certGenerationRequest );
}
} );
@@ -133,7 +133,7 @@ public class CertGenerationGrammar exten
throw new DecoderException( msg );
}
- container.getCertGenerationObject().setTargetDN( targetDN );
+ container.getCertGenerationRequest().setTargetDN( targetDN );
}
else
{
@@ -179,7 +179,7 @@ public class CertGenerationGrammar exten
throw new DecoderException( msg );
}
- container.getCertGenerationObject().setIssuerDN( issuerDN );
+ container.getCertGenerationRequest().setIssuerDN( issuerDN );
}
}
} );
@@ -219,7 +219,7 @@ public class CertGenerationGrammar exten
throw new DecoderException( msg );
}
- container.getCertGenerationObject().setSubjectDN( subjectDN );
+ container.getCertGenerationRequest().setSubjectDN( subjectDN );
}
else
{
@@ -258,7 +258,7 @@ public class CertGenerationGrammar exten
if ( keyAlgorithm != null && ( keyAlgorithm.trim().length() > 0 ) )
{
- container.getCertGenerationObject().setKeyAlgorithm( keyAlgorithm );
+ container.getCertGenerationRequest().setKeyAlgorithm( keyAlgorithm );
}
container.setGrammarEndAllowed( true );
Modified: directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulDisconnect/GracefulDisconnectContainer.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulDisconnect/GracefulDisconnectContainer.java?rev=1579091&r1=1579090&r2=1579091&view=diff
==============================================================================
--- directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulDisconnect/GracefulDisconnectContainer.java (original)
+++ directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulDisconnect/GracefulDisconnectContainer.java Tue Mar 18 23:43:55 2014
@@ -31,7 +31,7 @@ import org.apache.directory.api.asn1.ber
public class GracefulDisconnectContainer extends AbstractContainer
{
/** GracefulShutdown */
- private GracefulDisconnect gracefulDisconnect;
+ private GracefulDisconnectResponseDecorator gracefulDisconnectResponse;
/**
@@ -47,23 +47,23 @@ public class GracefulDisconnectContainer
/**
- * @return Returns the Graceful Shutdown object.
+ * @return Returns the GracefulDisconnectResponse object.
*/
- public GracefulDisconnect getGracefulDisconnect()
+ public GracefulDisconnectResponseDecorator getGracefulDisconnectResponse()
{
- return gracefulDisconnect;
+ return gracefulDisconnectResponse;
}
/**
- * Set a GracefulDisconnect Object into the container. It will be completed
+ * Set a GracefulDisconnectResponse Object into the container. It will be completed
* by the ldapDecoder.
*
- * @param gracefulDisconnect the GracefulShutdown to set.
+ * @param gracefulDisconnectResponse the GracefulShutdown to set.
*/
- public void setGracefulDisconnect( GracefulDisconnect gracefulDisconnect )
+ public void setGracefulDisconnectResponse( GracefulDisconnectResponseDecorator gracefulDisconnectResponse )
{
- this.gracefulDisconnect = gracefulDisconnect;
+ this.gracefulDisconnectResponse = gracefulDisconnectResponse;
}
@@ -73,6 +73,6 @@ public class GracefulDisconnectContainer
public void clean()
{
super.clean();
- gracefulDisconnect = null;
+ gracefulDisconnectResponse = null;
}
}
Modified: directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulDisconnect/GracefulDisconnectDecoder.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulDisconnect/GracefulDisconnectDecoder.java?rev=1579091&r1=1579090&r2=1579091&view=diff
==============================================================================
--- directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulDisconnect/GracefulDisconnectDecoder.java (original)
+++ directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulDisconnect/GracefulDisconnectDecoder.java Tue Mar 18 23:43:55 2014
@@ -22,9 +22,9 @@ package org.apache.directory.api.ldap.ex
import java.nio.ByteBuffer;
-import org.apache.directory.api.asn1.Asn1Object;
import org.apache.directory.api.asn1.DecoderException;
import org.apache.directory.api.asn1.ber.Asn1Decoder;
+import org.apache.directory.api.ldap.extras.extended.gracefulDisconnect.GracefulDisconnectResponse;
/**
@@ -46,12 +46,12 @@ public class GracefulDisconnectDecoder e
* @return An GracefulDisconnect object
* @throws DecoderException If the decoding failed
*/
- public Asn1Object decode( byte[] stream ) throws DecoderException
+ public GracefulDisconnectResponse decode( byte[] stream ) throws DecoderException
{
ByteBuffer bb = ByteBuffer.wrap( stream );
GracefulDisconnectContainer container = new GracefulDisconnectContainer();
decoder.decode( bb, container );
- GracefulDisconnect gracefulDisconnect = container.getGracefulDisconnect();
+ GracefulDisconnectResponseDecorator gracefulDisconnect = container.getGracefulDisconnectResponse();
// Clean the container for the next decoding
container.clean();
Modified: directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulDisconnect/GracefulDisconnectFactory.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulDisconnect/GracefulDisconnectFactory.java?rev=1579091&r1=1579090&r2=1579091&view=diff
==============================================================================
--- directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulDisconnect/GracefulDisconnectFactory.java (original)
+++ directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulDisconnect/GracefulDisconnectFactory.java Tue Mar 18 23:43:55 2014
@@ -25,6 +25,7 @@ import org.apache.directory.api.ldap.cod
import org.apache.directory.api.ldap.codec.api.ExtendedRequestDecorator;
import org.apache.directory.api.ldap.codec.api.LdapApiService;
import org.apache.directory.api.ldap.extras.extended.gracefulDisconnect.GracefulDisconnectResponse;
+import org.apache.directory.api.ldap.extras.extended.gracefulDisconnect.GracefulDisconnectResponseImpl;
import org.apache.directory.api.ldap.model.message.ExtendedRequest;
import org.apache.directory.api.ldap.model.message.ExtendedResponse;
@@ -95,6 +96,10 @@ public class GracefulDisconnectFactory i
*/
public GracefulDisconnectResponse newResponse( byte[] encodedValue ) throws DecoderException
{
- return new GracefulDisconnectResponseDecorator( codec, encodedValue );
+ GracefulDisconnectResponseDecorator req = new GracefulDisconnectResponseDecorator( codec,
+ new GracefulDisconnectResponseImpl() );
+ req.setResponseValue( encodedValue );
+
+ return req;
}
}
Modified: directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulDisconnect/GracefulDisconnectGrammar.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulDisconnect/GracefulDisconnectGrammar.java?rev=1579091&r1=1579090&r2=1579091&view=diff
==============================================================================
--- directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulDisconnect/GracefulDisconnectGrammar.java (original)
+++ directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulDisconnect/GracefulDisconnectGrammar.java Tue Mar 18 23:43:55 2014
@@ -29,6 +29,8 @@ import org.apache.directory.api.asn1.ber
import org.apache.directory.api.asn1.ber.tlv.IntegerDecoderException;
import org.apache.directory.api.asn1.ber.tlv.UniversalTag;
import org.apache.directory.api.i18n.I18n;
+import org.apache.directory.api.ldap.codec.api.LdapApiServiceFactory;
+import org.apache.directory.api.ldap.extras.extended.gracefulDisconnect.GracefulDisconnectResponseImpl;
import org.apache.directory.api.ldap.model.exception.LdapURLEncodingException;
import org.apache.directory.api.ldap.model.url.LdapUrl;
import org.apache.directory.api.util.Strings;
@@ -87,7 +89,7 @@ public final class GracefulDisconnectGra
LOG.debug( "Delay = " + delay );
}
- container.getGracefulDisconnect().setDelay( delay );
+ container.getGracefulDisconnectResponse().setDelay( delay );
container.setGrammarEndAllowed( true );
}
catch ( IntegerDecoderException e )
@@ -121,7 +123,7 @@ public final class GracefulDisconnectGra
String url = Strings.utf8ToString( value.getData() );
LdapUrl ldapUrl = new LdapUrl( url );
- container.getGracefulDisconnect().addReplicatedContexts( ldapUrl );
+ container.getGracefulDisconnectResponse().addReplicatedContexts( url );
container.setGrammarEndAllowed( true );
if ( IS_DEBUG )
@@ -157,7 +159,7 @@ public final class GracefulDisconnectGra
LOG.debug( "Time Offline = " + timeOffline );
}
- container.getGracefulDisconnect().setTimeOffline( timeOffline );
+ container.getGracefulDisconnectResponse().setTimeOffline( timeOffline );
container.setGrammarEndAllowed( true );
}
catch ( IntegerDecoderException e )
@@ -196,8 +198,12 @@ public final class GracefulDisconnectGra
{
public void action( GracefulDisconnectContainer container )
{
- GracefulDisconnect gracefulDisconnect = new GracefulDisconnect();
- container.setGracefulDisconnect( gracefulDisconnect );
+ GracefulDisconnectResponseDecorator gracefulDisconnectResponse =
+ new GracefulDisconnectResponseDecorator(
+ LdapApiServiceFactory.getSingleton(),
+ new GracefulDisconnectResponseImpl()
+ );
+ container.setGracefulDisconnectResponse( gracefulDisconnectResponse );
container.setGrammarEndAllowed( true );
}
} );
Modified: directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulDisconnect/GracefulDisconnectResponseDecorator.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulDisconnect/GracefulDisconnectResponseDecorator.java?rev=1579091&r1=1579090&r2=1579091&view=diff
==============================================================================
--- directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulDisconnect/GracefulDisconnectResponseDecorator.java (original)
+++ directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulDisconnect/GracefulDisconnectResponseDecorator.java Tue Mar 18 23:43:55 2014
@@ -21,21 +21,20 @@ package org.apache.directory.api.ldap.ex
import java.nio.ByteBuffer;
+import java.util.ArrayList;
import java.util.List;
import org.apache.directory.api.asn1.DecoderException;
import org.apache.directory.api.asn1.EncoderException;
-import org.apache.directory.api.asn1.ber.Asn1Decoder;
+import org.apache.directory.api.asn1.ber.tlv.BerValue;
+import org.apache.directory.api.asn1.ber.tlv.TLV;
+import org.apache.directory.api.asn1.ber.tlv.UniversalTag;
import org.apache.directory.api.i18n.I18n;
import org.apache.directory.api.ldap.codec.api.ExtendedResponseDecorator;
import org.apache.directory.api.ldap.codec.api.LdapApiService;
import org.apache.directory.api.ldap.extras.extended.gracefulDisconnect.GracefulDisconnectResponse;
-import org.apache.directory.api.ldap.extras.extended.gracefulDisconnect.GracefulDisconnectResponseImpl;
-import org.apache.directory.api.ldap.model.exception.LdapURLEncodingException;
import org.apache.directory.api.ldap.model.message.Referral;
-import org.apache.directory.api.ldap.model.message.ReferralImpl;
-import org.apache.directory.api.ldap.model.message.ResultCodeEnum;
-import org.apache.directory.api.ldap.model.url.LdapUrl;
+import org.apache.directory.api.util.Strings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -51,6 +50,16 @@ public class GracefulDisconnectResponseD
/** The logger. */
private static final Logger LOG = LoggerFactory.getLogger( GracefulDisconnectResponseDecorator.class );
+ /** Length of the sequence */
+ private int gracefulDisconnectSequenceLength;
+
+ /** Length of the replicated contexts */
+ private int replicatedContextsLength;
+
+ /** The encoded LDAP URL list */
+ private List<byte[]> ldapUrlBytes;
+
+ private GracefulDisconnectResponse gracefulDisconnectResponse;
/**
* Creates a new instance of CancelResponseDecorator.
@@ -61,92 +70,13 @@ public class GracefulDisconnectResponseD
public GracefulDisconnectResponseDecorator( LdapApiService codec, GracefulDisconnectResponse decoratedMessage )
{
super( codec, decoratedMessage );
- responseValue = null;
- encodeResponse();
- }
-
-
- /**
- * Creates a new instance of CancelResponseDecorator.
- *
- * @param codec
- * @param responseValue
- */
- public GracefulDisconnectResponseDecorator( LdapApiService codec, byte[] responseValue ) throws DecoderException
- {
- super( codec, new GracefulDisconnectResponseImpl() );
- this.responseValue = responseValue;
- decodeValue();
- }
-
-
- private void decodeValue() throws DecoderException
- {
- GracefulDisconnectDecoder decoder = new GracefulDisconnectDecoder();
- org.apache.directory.api.ldap.extras.extended.ads_impl.gracefulDisconnect.GracefulDisconnect codec = null;
-
- try
- {
- codec = ( org.apache.directory.api.ldap.extras.extended.ads_impl.gracefulDisconnect.GracefulDisconnect ) decoder
- .decode( responseValue );
- getDecorated().setTimeOffline( codec.getTimeOffline() );
- getDecorated().setDelay( codec.getDelay() );
- getDecorated().getLdapResult().setResultCode( ResultCodeEnum.SUCCESS );
- List<LdapUrl> contexts = codec.getReplicatedContexts();
-
- for ( LdapUrl ldapUrl : contexts )
- {
- getDecorated().getLdapResult().getReferral().addLdapUrl( ldapUrl.toString() );
- }
- }
- catch ( DecoderException e )
- {
- LOG.error( I18n.err( I18n.ERR_04169 ), e );
- throw e;
- }
- }
-
-
- private void encodeResponse()
- {
- org.apache.directory.api.ldap.extras.extended.ads_impl.gracefulDisconnect.GracefulDisconnect codec =
- new org.apache.directory.api.ldap.extras.extended.ads_impl.gracefulDisconnect.GracefulDisconnect();
- codec.setTimeOffline( getDecorated().getTimeOffline() );
- codec.setDelay( getDecorated().getDelay() );
-
- for ( String ldapUrlStr : getDecorated().getLdapResult().getReferral().getLdapUrls() )
- {
- LdapUrl ldapUrl = null;
-
- try
- {
- ldapUrl = new LdapUrl( ldapUrlStr );
- }
- catch ( LdapURLEncodingException e )
- {
- LOG.error( I18n.err( I18n.ERR_04170, ldapUrlStr ), e );
- continue;
- }
-
- codec.addReplicatedContexts( ldapUrl );
- }
-
- try
- {
- super.responseValue = codec.encode().array();
- }
- catch ( EncoderException e )
- {
- LOG.error( I18n.err( I18n.ERR_04171 ), e );
- throw new RuntimeException( e );
- }
+ gracefulDisconnectResponse = decoratedMessage;
}
-
+
// ------------------------------------------------------------------------
// ExtendedResponse Interface Method Implementations
// ------------------------------------------------------------------------
-
/**
* Gets the response OID specific encoded response values.
*
@@ -156,12 +86,18 @@ public class GracefulDisconnectResponseD
{
if ( responseValue == null )
{
- encodeResponse();
+ try
+ {
+ responseValue = encode().array();
+ }
+ catch ( EncoderException e )
+ {
+ LOG.error( I18n.err( I18n.ERR_04164 ), e );
+ throw new RuntimeException( e );
+ }
}
- final byte[] copy = new byte[responseValue.length];
- System.arraycopy( responseValue, 0, copy, 0, responseValue.length );
- return copy;
+ return responseValue;
}
@@ -172,41 +108,25 @@ public class GracefulDisconnectResponseD
*/
public void setResponseValue( byte[] responseValue )
{
- if ( responseValue == null )
- {
- this.responseValue = null;
- getDecorated().setDelay( 0 );
- getDecorated().setTimeOffline( 0 );
- getDecorated().getLdapResult().setReferral( new ReferralImpl() );
- return;
- }
-
- ByteBuffer bb = ByteBuffer.wrap( responseValue );
- GracefulDisconnectContainer container = new GracefulDisconnectContainer();
- Asn1Decoder decoder = new Asn1Decoder();
+ GracefulDisconnectDecoder decoder = new GracefulDisconnectDecoder();
try
{
- decoder.decode( bb, container );
+ if ( responseValue != null )
+ {
+ decoder.decode( responseValue );
+ this.responseValue = new byte[responseValue.length];
+ System.arraycopy( responseValue, 0, this.responseValue, 0, responseValue.length );
+ }
+ else
+ {
+ this.responseValue = null;
+ }
}
catch ( DecoderException e )
{
LOG.error( I18n.err( I18n.ERR_04172 ), e );
}
-
- org.apache.directory.api.ldap.extras.extended.ads_impl.gracefulDisconnect.GracefulDisconnect codec = container
- .getGracefulDisconnect();
-
- getDecorated().setDelay( codec.getDelay() );
- getDecorated().setTimeOffline( codec.getTimeOffline() );
-
- for ( LdapUrl ldapUrl : codec.getReplicatedContexts() )
- {
- getDecorated().getLdapResult().getReferral().addLdapUrl( ldapUrl.toString() );
- }
-
- this.responseValue = new byte[responseValue.length];
- System.arraycopy( responseValue, 0, this.responseValue, 0, responseValue.length );
}
@@ -215,7 +135,7 @@ public class GracefulDisconnectResponseD
*/
public int getDelay()
{
- return getDecorated().getDelay();
+ return gracefulDisconnectResponse.getDelay();
}
@@ -224,7 +144,7 @@ public class GracefulDisconnectResponseD
*/
public void setDelay( int delay )
{
- getDecorated().setDelay( delay );
+ gracefulDisconnectResponse.setDelay( delay );
}
@@ -233,7 +153,7 @@ public class GracefulDisconnectResponseD
*/
public int getTimeOffline()
{
- return getDecorated().getTimeOffline();
+ return gracefulDisconnectResponse.getTimeOffline();
}
@@ -242,7 +162,7 @@ public class GracefulDisconnectResponseD
*/
public void setTimeOffline( int timeOffline )
{
- getDecorated().setTimeOffline( timeOffline );
+ gracefulDisconnectResponse.setTimeOffline( timeOffline );
}
@@ -251,6 +171,147 @@ public class GracefulDisconnectResponseD
*/
public Referral getReplicatedContexts()
{
- return getDecorated().getReplicatedContexts();
+ return gracefulDisconnectResponse.getReplicatedContexts();
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public void addReplicatedContexts( String replicatedContext )
+ {
+ gracefulDisconnectResponse.getReplicatedContexts().addLdapUrl( replicatedContext );
+ }
+
+
+ /**
+ * Compute the GracefulDisconnect length
+ *
+ * 0x30 L1
+ * |
+ * +--> [ 0x02 0x0(1-4) [0..720] ]
+ * +--> [ 0x80 0x0(1-3) [0..86400] ]
+ * +--> [ 0x30 L2
+ * |
+ * +--> (0x04 L3 value) + ]
+ */
+ public int computeLength()
+ {
+ gracefulDisconnectSequenceLength = 0;
+
+ if ( gracefulDisconnectResponse.getTimeOffline() != 0 )
+ {
+ gracefulDisconnectSequenceLength += 1 + 1 + BerValue.getNbBytes( gracefulDisconnectResponse.getTimeOffline() );
+ }
+
+ if ( gracefulDisconnectResponse.getDelay() != 0 )
+ {
+ gracefulDisconnectSequenceLength += 1 + 1 + BerValue.getNbBytes( gracefulDisconnectResponse.getDelay() );
+ }
+
+ if ( ( gracefulDisconnectResponse.getReplicatedContexts() != null ) &&
+ ( gracefulDisconnectResponse.getReplicatedContexts().getLdapUrls().size() != 0 ) )
+ {
+ replicatedContextsLength = 0;
+
+ ldapUrlBytes = new ArrayList<byte[]>( gracefulDisconnectResponse.getReplicatedContexts().getLdapUrls().size() );
+
+ // We may have more than one reference.
+ for ( String replicatedContext : gracefulDisconnectResponse.getReplicatedContexts().getLdapUrls() )
+ {
+ byte[] bytes = Strings.getBytesUtf8( replicatedContext );
+ ldapUrlBytes.add( bytes );
+ int ldapUrlLength = bytes.length;
+ replicatedContextsLength += 1 + TLV.getNbBytes( ldapUrlLength ) + ldapUrlLength;
+ }
+
+ gracefulDisconnectSequenceLength += 1 + TLV.getNbBytes( replicatedContextsLength )
+ + replicatedContextsLength;
+ }
+
+ return 1 + TLV.getNbBytes( gracefulDisconnectSequenceLength ) + gracefulDisconnectSequenceLength;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public ByteBuffer encode() throws EncoderException
+ {
+ // Allocate the bytes buffer.
+ ByteBuffer bb = ByteBuffer.allocate( computeLength() );
+
+ return encode( bb );
+ }
+
+
+ /**
+ * Encodes the gracefulDisconnect extended operation.
+ *
+ * @return A ByteBuffer that contains the encoded PDU
+ * @throws org.apache.directory.api.asn1.EncoderException If anything goes wrong.
+ */
+ public ByteBuffer encode( ByteBuffer bb ) throws EncoderException
+ {
+ if ( bb == null )
+ {
+ throw new EncoderException( "Null ByteBuffer, cannot encode " + this );
+ }
+
+ bb.put( UniversalTag.SEQUENCE.getValue() );
+ bb.put( TLV.getBytes( gracefulDisconnectSequenceLength ) );
+
+ if ( gracefulDisconnectResponse.getTimeOffline() != 0 )
+ {
+ BerValue.encode( bb, gracefulDisconnectResponse.getTimeOffline() );
+ }
+
+ if ( gracefulDisconnectResponse.getDelay() != 0 )
+ {
+ bb.put( ( byte ) GracefulActionConstants.GRACEFUL_ACTION_DELAY_TAG );
+ bb.put( ( byte ) TLV.getNbBytes( gracefulDisconnectResponse.getDelay() ) );
+ bb.put( BerValue.getBytes( gracefulDisconnectResponse.getDelay() ) );
+ }
+
+ if ( ( gracefulDisconnectResponse.getReplicatedContexts() != null ) &&
+ ( gracefulDisconnectResponse.getReplicatedContexts().getLdapUrls().size() != 0 ) )
+ {
+ bb.put( UniversalTag.SEQUENCE.getValue() );
+ bb.put( TLV.getBytes( replicatedContextsLength ) );
+
+ // We may have more than one reference.
+ for ( byte[] replicatedContext : ldapUrlBytes )
+ {
+ BerValue.encode( bb, replicatedContext );
+ }
+ }
+
+ return bb;
+ }
+
+
+ /**
+ * Return a string representation of the graceful disconnect
+ */
+ public String toString()
+ {
+ StringBuffer sb = new StringBuffer();
+
+ sb.append( "Graceful Disconnect extended operation" );
+ sb.append( " TimeOffline : " ).append( gracefulDisconnectResponse.getTimeOffline() ).append( '\n' );
+ sb.append( " Delay : " ).append( gracefulDisconnectResponse.getDelay() ).append( '\n' );
+
+ if ( ( gracefulDisconnectResponse.getReplicatedContexts() != null ) && ( gracefulDisconnectResponse.getReplicatedContexts().getLdapUrls().size() != 0 ) )
+ {
+ sb.append( " Replicated contexts :" );
+
+ // We may have more than one reference.
+ for ( String url : gracefulDisconnectResponse.getReplicatedContexts().getLdapUrls() )
+ {
+ sb.append( "\n " ).append( url );
+ }
+ }
+
+ return sb.toString();
}
}
Modified: directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulShutdown/GracefulShutdownContainer.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulShutdown/GracefulShutdownContainer.java?rev=1579091&r1=1579090&r2=1579091&view=diff
==============================================================================
--- directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulShutdown/GracefulShutdownContainer.java (original)
+++ directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulShutdown/GracefulShutdownContainer.java Tue Mar 18 23:43:55 2014
@@ -21,6 +21,7 @@ package org.apache.directory.api.ldap.ex
import org.apache.directory.api.asn1.ber.AbstractContainer;
+import org.apache.directory.api.ldap.extras.extended.gracefulShutdown.GracefulShutdownRequest;
/**
@@ -31,7 +32,7 @@ import org.apache.directory.api.asn1.ber
public class GracefulShutdownContainer extends AbstractContainer
{
/** GracefulShutdown */
- private GracefulShutdown gracefulShutdown;
+ private GracefulShutdownRequestDecorator gracefulShutdownRequest;
/**
@@ -49,9 +50,9 @@ public class GracefulShutdownContainer e
/**
* @return Returns the Graceful Shutdown object.
*/
- public GracefulShutdown getGracefulShutdown()
+ public GracefulShutdownRequestDecorator getGracefulShutdownRequest()
{
- return gracefulShutdown;
+ return gracefulShutdownRequest;
}
@@ -61,9 +62,9 @@ public class GracefulShutdownContainer e
*
* @param gracefulShutdown the GracefulShutdown to set.
*/
- public void setGracefulShutdown( GracefulShutdown gracefulShutdown )
+ public void setGracefulShutdownRequest( GracefulShutdownRequestDecorator gracefulShutdown )
{
- this.gracefulShutdown = gracefulShutdown;
+ this.gracefulShutdownRequest = gracefulShutdown;
}
@@ -73,6 +74,6 @@ public class GracefulShutdownContainer e
public void clean()
{
super.clean();
- gracefulShutdown = null;
+ gracefulShutdownRequest = null;
}
}
Modified: directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulShutdown/GracefulShutdownDecoder.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulShutdown/GracefulShutdownDecoder.java?rev=1579091&r1=1579090&r2=1579091&view=diff
==============================================================================
--- directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulShutdown/GracefulShutdownDecoder.java (original)
+++ directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulShutdown/GracefulShutdownDecoder.java Tue Mar 18 23:43:55 2014
@@ -25,6 +25,7 @@ import java.nio.ByteBuffer;
import org.apache.directory.api.asn1.Asn1Object;
import org.apache.directory.api.asn1.DecoderException;
import org.apache.directory.api.asn1.ber.Asn1Decoder;
+import org.apache.directory.api.ldap.extras.extended.gracefulShutdown.GracefulShutdownRequest;
/**
@@ -46,12 +47,12 @@ public class GracefulShutdownDecoder ext
* @return An GracefulShutdown object
* @throws org.apache.directory.api.asn1.DecoderException If the decoding failed
*/
- public Asn1Object decode( byte[] stream ) throws DecoderException
+ public GracefulShutdownRequest decode( byte[] stream ) throws DecoderException
{
ByteBuffer bb = ByteBuffer.wrap( stream );
GracefulShutdownContainer container = new GracefulShutdownContainer();
decoder.decode( bb, container );
- GracefulShutdown gracefulShutdown = container.getGracefulShutdown();
+ GracefulShutdownRequestDecorator gracefulShutdown = container.getGracefulShutdownRequest();
// Clean the container for the next decoding
container.clean();
Modified: directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulShutdown/GracefulShutdownGrammar.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulShutdown/GracefulShutdownGrammar.java?rev=1579091&r1=1579090&r2=1579091&view=diff
==============================================================================
--- directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulShutdown/GracefulShutdownGrammar.java (original)
+++ directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulShutdown/GracefulShutdownGrammar.java Tue Mar 18 23:43:55 2014
@@ -29,7 +29,9 @@ import org.apache.directory.api.asn1.ber
import org.apache.directory.api.asn1.ber.tlv.IntegerDecoderException;
import org.apache.directory.api.asn1.ber.tlv.UniversalTag;
import org.apache.directory.api.i18n.I18n;
+import org.apache.directory.api.ldap.codec.api.LdapApiServiceFactory;
import org.apache.directory.api.ldap.extras.extended.ads_impl.gracefulDisconnect.GracefulActionConstants;
+import org.apache.directory.api.ldap.extras.extended.gracefulShutdown.GracefulShutdownRequestImpl;
import org.apache.directory.api.util.Strings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -88,8 +90,10 @@ public final class GracefulShutdownGramm
{
public void action( GracefulShutdownContainer container )
{
- GracefulShutdown gracefulShutdown = new GracefulShutdown();
- container.setGracefulShutdown( gracefulShutdown );
+ GracefulShutdownRequestDecorator gracefulShutdownRequest = new GracefulShutdownRequestDecorator(
+ LdapApiServiceFactory.getSingleton(),
+ new GracefulShutdownRequestImpl() );
+ container.setGracefulShutdownRequest( gracefulShutdownRequest );
container.setGrammarEndAllowed( true );
}
} );
@@ -125,7 +129,7 @@ public final class GracefulShutdownGramm
LOG.debug( "Time Offline = " + timeOffline );
}
- container.getGracefulShutdown().setTimeOffline( timeOffline );
+ container.getGracefulShutdownRequest().setTimeOffline( timeOffline );
container.setGrammarEndAllowed( true );
}
catch ( IntegerDecoderException e )
@@ -167,7 +171,7 @@ public final class GracefulShutdownGramm
LOG.debug( "Delay = " + delay );
}
- container.getGracefulShutdown().setDelay( delay );
+ container.getGracefulShutdownRequest().setDelay( delay );
container.setGrammarEndAllowed( true );
}
catch ( IntegerDecoderException e )
@@ -211,7 +215,7 @@ public final class GracefulShutdownGramm
LOG.debug( "Delay = " + delay );
}
- gracefulShutdownContainer.getGracefulShutdown().setDelay( delay );
+ gracefulShutdownContainer.getGracefulShutdownRequest().setDelay( delay );
gracefulShutdownContainer.setGrammarEndAllowed( true );
}
catch ( IntegerDecoderException e )
Modified: directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulShutdown/GracefulShutdownRequestDecorator.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulShutdown/GracefulShutdownRequestDecorator.java?rev=1579091&r1=1579090&r2=1579091&view=diff
==============================================================================
--- directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulShutdown/GracefulShutdownRequestDecorator.java (original)
+++ directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/extended/ads_impl/gracefulShutdown/GracefulShutdownRequestDecorator.java Tue Mar 18 23:43:55 2014
@@ -20,11 +20,18 @@
package org.apache.directory.api.ldap.extras.extended.ads_impl.gracefulShutdown;
+import java.nio.ByteBuffer;
+
import org.apache.directory.api.asn1.DecoderException;
import org.apache.directory.api.asn1.EncoderException;
+import org.apache.directory.api.asn1.ber.tlv.BerValue;
+import org.apache.directory.api.asn1.ber.tlv.TLV;
+import org.apache.directory.api.asn1.ber.tlv.UniversalTag;
import org.apache.directory.api.i18n.I18n;
import org.apache.directory.api.ldap.codec.api.ExtendedRequestDecorator;
import org.apache.directory.api.ldap.codec.api.LdapApiService;
+import org.apache.directory.api.ldap.extras.extended.ads_impl.gracefulDisconnect.GracefulActionConstants;
+import org.apache.directory.api.ldap.extras.extended.certGeneration.CertGenerationRequest;
import org.apache.directory.api.ldap.extras.extended.gracefulShutdown.GracefulShutdownRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -40,6 +47,10 @@ public class GracefulShutdownRequestDeco
{
private static final Logger LOG = LoggerFactory.getLogger( GracefulShutdownRequestDecorator.class );
+ /** Length of the sequence */
+ private int gracefulSequenceLength;
+
+ private GracefulShutdownRequest gracefulShutdownRequest;
/**
* Creates a new instance of GracefulShutdownRequestDecorator.
@@ -50,6 +61,7 @@ public class GracefulShutdownRequestDeco
public GracefulShutdownRequestDecorator( LdapApiService codec, GracefulShutdownRequest decoratedMessage )
{
super( codec, decoratedMessage );
+ gracefulShutdownRequest = decoratedMessage;
}
@@ -62,7 +74,7 @@ public class GracefulShutdownRequestDeco
try
{
- GracefulShutdown gs = ( GracefulShutdown ) decoder.decode( requestValue );
+ gracefulShutdownRequest = decoder.decode( requestValue );
if ( requestValue != null )
{
@@ -73,9 +85,6 @@ public class GracefulShutdownRequestDeco
{
this.requestValue = null;
}
-
- setTimeOffline( gs.getTimeOffline() );
- setDelay( gs.getDelay() );
}
catch ( DecoderException e )
{
@@ -94,10 +103,7 @@ public class GracefulShutdownRequestDeco
{
try
{
- GracefulShutdown gs = new GracefulShutdown();
- gs.setDelay( getDecorated().getDelay() );
- gs.setTimeOffline( getDecorated().getTimeOffline() );
- requestValue = gs.encode().array();
+ requestValue = encode().array();
}
catch ( EncoderException e )
{
@@ -144,4 +150,90 @@ public class GracefulShutdownRequestDeco
{
getDecorated().setTimeOffline( timeOffline );
}
+
+
+ /**
+ * Compute the GracefulShutdown length
+ * 0x30 L1
+ * |
+ * +--> [0x02 0x0(1-4) [0..720] ]
+ * +--> [0x80 0x0(1-3) [0..86400] ]
+ *
+ * L1 will always be < 11.
+ */
+ public int computeLength()
+ {
+ int gracefulLength = 1 + 1;
+ gracefulSequenceLength = 0;
+
+ if ( gracefulShutdownRequest.getTimeOffline() != 0 )
+ {
+ gracefulSequenceLength += 1 + 1 + BerValue.getNbBytes( gracefulShutdownRequest.getTimeOffline() );
+ }
+
+ if ( gracefulShutdownRequest.getDelay() != 0 )
+ {
+ gracefulSequenceLength += 1 + 1 + BerValue.getNbBytes( gracefulShutdownRequest.getDelay() );
+ }
+
+ return gracefulLength + gracefulSequenceLength;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public ByteBuffer encode() throws EncoderException
+ {
+ // Allocate the bytes buffer.
+ ByteBuffer bb = ByteBuffer.allocate( computeLength() );
+
+ return encode( bb );
+ }
+
+
+ /**
+ * Encodes the gracefulShutdown extended operation.
+ *
+ * @return A ByteBuffer that contains the encoded PDU
+ * @throws org.apache.directory.api.asn1.EncoderException If anything goes wrong.
+ */
+ public ByteBuffer encode( ByteBuffer bb ) throws EncoderException
+ {
+ if ( bb == null )
+ {
+ throw new EncoderException( "Null ByteBuffer, cannot encode " + this );
+ }
+
+ bb.put( UniversalTag.SEQUENCE.getValue() );
+ bb.put( TLV.getBytes( gracefulSequenceLength ) );
+
+ if ( gracefulShutdownRequest.getTimeOffline() != 0 )
+ {
+ BerValue.encode( bb, gracefulShutdownRequest.getTimeOffline() );
+ }
+
+ if ( gracefulShutdownRequest.getDelay() != 0 )
+ {
+ bb.put( ( byte ) GracefulActionConstants.GRACEFUL_ACTION_DELAY_TAG );
+ bb.put( ( byte ) BerValue.getNbBytes( gracefulShutdownRequest.getDelay() ) );
+ bb.put( BerValue.getBytes( gracefulShutdownRequest.getDelay() ) );
+ }
+ return bb;
+ }
+
+
+ /**
+ * Return a string representation of the graceful shutdown
+ */
+ public String toString()
+ {
+ StringBuffer sb = new StringBuffer();
+
+ sb.append( "Graceful Shutdown extended operation" );
+ sb.append( " TimeOffline : " ).append( gracefulShutdownRequest.getTimeOffline() ).append( '\n' );
+ sb.append( " Delay : " ).append( gracefulShutdownRequest.getDelay() ).append( '\n' );
+
+ return sb.toString();
+ }
}
Modified: directory/shared/trunk/ldap/extras/codec/src/test/java/org/apache/directory/api/ldap/extras/extended/ads_impl/CertGenerationRequestTest.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/extras/codec/src/test/java/org/apache/directory/api/ldap/extras/extended/ads_impl/CertGenerationRequestTest.java?rev=1579091&r1=1579090&r2=1579091&view=diff
==============================================================================
--- directory/shared/trunk/ldap/extras/codec/src/test/java/org/apache/directory/api/ldap/extras/extended/ads_impl/CertGenerationRequestTest.java (original)
+++ directory/shared/trunk/ldap/extras/codec/src/test/java/org/apache/directory/api/ldap/extras/extended/ads_impl/CertGenerationRequestTest.java Tue Mar 18 23:43:55 2014
@@ -29,10 +29,8 @@ import java.nio.ByteBuffer;
import org.apache.directory.api.asn1.DecoderException;
import org.apache.directory.api.asn1.EncoderException;
import org.apache.directory.api.asn1.ber.Asn1Decoder;
-import org.apache.directory.api.ldap.codec.api.LdapApiServiceFactory;
import org.apache.directory.api.ldap.extras.extended.ads_impl.certGeneration.CertGenerationContainer;
import org.apache.directory.api.ldap.extras.extended.ads_impl.certGeneration.CertGenerationRequestDecorator;
-import org.apache.directory.api.ldap.extras.extended.certGeneration.CertGenerationRequestImpl;
import org.apache.directory.api.util.Strings;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -107,9 +105,7 @@ public class CertGenerationRequestTest
fail( e.getMessage() );
}
- CertGenerationRequestDecorator req = new CertGenerationRequestDecorator(
- LdapApiServiceFactory.getSingleton(), new CertGenerationRequestImpl() );
- req = container.getCertGenerationObject();
+ CertGenerationRequestDecorator req = container.getCertGenerationRequest();
assertEquals( dn, req.getTargetDN() );
assertEquals( dn, req.getIssuerDN() );
assertEquals( dn, req.getSubjectDN() );
Modified: directory/shared/trunk/ldap/extras/codec/src/test/java/org/apache/directory/api/ldap/extras/extended/ads_impl/GracefulDisconnectTest.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/extras/codec/src/test/java/org/apache/directory/api/ldap/extras/extended/ads_impl/GracefulDisconnectTest.java?rev=1579091&r1=1579090&r2=1579091&view=diff
==============================================================================
--- directory/shared/trunk/ldap/extras/codec/src/test/java/org/apache/directory/api/ldap/extras/extended/ads_impl/GracefulDisconnectTest.java (original)
+++ directory/shared/trunk/ldap/extras/codec/src/test/java/org/apache/directory/api/ldap/extras/extended/ads_impl/GracefulDisconnectTest.java Tue Mar 18 23:43:55 2014
@@ -25,13 +25,15 @@ import static org.junit.Assert.assertTru
import static org.junit.Assert.fail;
import java.nio.ByteBuffer;
+import java.util.Iterator;
+import java.util.List;
import org.apache.directory.api.asn1.DecoderException;
import org.apache.directory.api.asn1.EncoderException;
import org.apache.directory.api.asn1.ber.Asn1Decoder;
-import org.apache.directory.api.ldap.extras.extended.ads_impl.gracefulDisconnect.GracefulDisconnect;
import org.apache.directory.api.ldap.extras.extended.ads_impl.gracefulDisconnect.GracefulDisconnectContainer;
import org.apache.directory.api.ldap.extras.extended.ads_impl.gracefulDisconnect.GracefulDisconnectDecoder;
+import org.apache.directory.api.ldap.extras.extended.ads_impl.gracefulDisconnect.GracefulDisconnectResponseDecorator;
import org.apache.directory.api.util.Strings;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -188,13 +190,14 @@ public class GracefulDisconnectTest
fail( de.getMessage() );
}
- GracefulDisconnect gracefulDisconnect = container.getGracefulDisconnect();
+ GracefulDisconnectResponseDecorator gracefulDisconnect = container.getGracefulDisconnectResponse();
assertEquals( 1, gracefulDisconnect.getTimeOffline() );
assertEquals( 1, gracefulDisconnect.getDelay() );
- assertEquals( 2, gracefulDisconnect.getReplicatedContexts().size() );
- assertEquals( "ldap://directory.apache.org:80/", gracefulDisconnect.getReplicatedContexts().get( 0 ).toString() );
- assertEquals( "ldap://ldap.netscape.com/o=Babsco,c=US???(int=%5C00%5C00%5C00%5C04)", gracefulDisconnect
- .getReplicatedContexts().get( 1 ).toString() );
+ assertEquals( 2, gracefulDisconnect.getReplicatedContexts().getLdapUrls().size() );
+
+ Iterator<String> ldapUrls = gracefulDisconnect.getReplicatedContexts().getLdapUrls().iterator();
+ assertEquals( "ldap://directory.apache.org:80/", ldapUrls.next() );
+ assertEquals( "ldap://ldap.netscape.com/o=Babsco,c=US???(int=%5c00%5c00%5c00%5c04)", ldapUrls.next() );
// Check the length
assertEquals( 0x70, gracefulDisconnect.computeLength() );
@@ -246,10 +249,10 @@ public class GracefulDisconnectTest
fail( de.getMessage() );
}
- GracefulDisconnect gracefulDisconnect = container.getGracefulDisconnect();
+ GracefulDisconnectResponseDecorator gracefulDisconnect = container.getGracefulDisconnectResponse();
assertEquals( 1, gracefulDisconnect.getTimeOffline() );
assertEquals( 0, gracefulDisconnect.getDelay() );
- assertEquals( 0, gracefulDisconnect.getReplicatedContexts().size() );
+ assertEquals( 0, gracefulDisconnect.getReplicatedContexts().getLdapUrls().size() );
// Check the length
assertEquals( 0x05, gracefulDisconnect.computeLength() );
@@ -302,10 +305,10 @@ public class GracefulDisconnectTest
fail( de.getMessage() );
}
- GracefulDisconnect gracefulDisconnect = container.getGracefulDisconnect();
+ GracefulDisconnectResponseDecorator gracefulDisconnect = container.getGracefulDisconnectResponse();
assertEquals( 0, gracefulDisconnect.getTimeOffline() );
assertEquals( 1, gracefulDisconnect.getDelay() );
- assertEquals( 0, gracefulDisconnect.getReplicatedContexts().size() );
+ assertEquals( 0, gracefulDisconnect.getReplicatedContexts().getLdapUrls().size() );
// Check the length
assertEquals( 0x05, gracefulDisconnect.computeLength() );
@@ -361,10 +364,10 @@ public class GracefulDisconnectTest
fail( de.getMessage() );
}
- GracefulDisconnect gracefulDisconnect = container.getGracefulDisconnect();
+ GracefulDisconnectResponseDecorator gracefulDisconnect = container.getGracefulDisconnectResponse();
assertEquals( 1, gracefulDisconnect.getTimeOffline() );
assertEquals( 1, gracefulDisconnect.getDelay() );
- assertEquals( 0, gracefulDisconnect.getReplicatedContexts().size() );
+ assertEquals( 0, gracefulDisconnect.getReplicatedContexts().getLdapUrls().size() );
// Check the length
assertEquals( 0x08, gracefulDisconnect.computeLength() );
@@ -518,13 +521,14 @@ public class GracefulDisconnectTest
fail( de.getMessage() );
}
- GracefulDisconnect gracefulDisconnect = container.getGracefulDisconnect();
+ GracefulDisconnectResponseDecorator gracefulDisconnect = container.getGracefulDisconnectResponse();
assertEquals( 0, gracefulDisconnect.getTimeOffline() );
assertEquals( 0, gracefulDisconnect.getDelay() );
- assertEquals( 2, gracefulDisconnect.getReplicatedContexts().size() );
- assertEquals( "ldap://directory.apache.org:80/", gracefulDisconnect.getReplicatedContexts().get( 0 ).toString() );
- assertEquals( "ldap://ldap.netscape.com/o=Babsco,c=US???(int=%5C00%5C00%5C00%5C04)", gracefulDisconnect
- .getReplicatedContexts().get( 1 ).toString() );
+ assertEquals( 2, gracefulDisconnect.getReplicatedContexts().getLdapUrls().size() );
+
+ Iterator<String> ldapUrls = gracefulDisconnect.getReplicatedContexts().getLdapUrls().iterator();
+ assertEquals( "ldap://directory.apache.org:80/", ldapUrls.next() );
+ assertEquals( "ldap://ldap.netscape.com/o=Babsco,c=US???(int=%5c00%5c00%5c00%5c04)", ldapUrls.next() );
// Check the length
assertEquals( 0x6A, gracefulDisconnect.computeLength() );
@@ -573,10 +577,10 @@ public class GracefulDisconnectTest
fail( de.getMessage() );
}
- GracefulDisconnect gracefulDisconnect = container.getGracefulDisconnect();
+ GracefulDisconnectResponseDecorator gracefulDisconnect = container.getGracefulDisconnectResponse();
assertEquals( 0, gracefulDisconnect.getTimeOffline() );
assertEquals( 0, gracefulDisconnect.getDelay() );
- assertEquals( 0, gracefulDisconnect.getReplicatedContexts().size() );
+ assertEquals( 0, gracefulDisconnect.getReplicatedContexts().getLdapUrls().size() );
// Check the length
assertEquals( 0x02, gracefulDisconnect.computeLength() );
Modified: directory/shared/trunk/ldap/extras/codec/src/test/java/org/apache/directory/api/ldap/extras/extended/ads_impl/GracefulShutdownTest.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/extras/codec/src/test/java/org/apache/directory/api/ldap/extras/extended/ads_impl/GracefulShutdownTest.java?rev=1579091&r1=1579090&r2=1579091&view=diff
==============================================================================
--- directory/shared/trunk/ldap/extras/codec/src/test/java/org/apache/directory/api/ldap/extras/extended/ads_impl/GracefulShutdownTest.java (original)
+++ directory/shared/trunk/ldap/extras/codec/src/test/java/org/apache/directory/api/ldap/extras/extended/ads_impl/GracefulShutdownTest.java Tue Mar 18 23:43:55 2014
@@ -29,8 +29,8 @@ import java.nio.ByteBuffer;
import org.apache.directory.api.asn1.DecoderException;
import org.apache.directory.api.asn1.EncoderException;
import org.apache.directory.api.asn1.ber.Asn1Decoder;
-import org.apache.directory.api.ldap.extras.extended.ads_impl.gracefulShutdown.GracefulShutdown;
import org.apache.directory.api.ldap.extras.extended.ads_impl.gracefulShutdown.GracefulShutdownContainer;
+import org.apache.directory.api.ldap.extras.extended.ads_impl.gracefulShutdown.GracefulShutdownRequestDecorator;
import org.apache.directory.api.util.Strings;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -83,17 +83,17 @@ public class GracefulShutdownTest
fail( de.getMessage() );
}
- GracefulShutdown gracefulShutdown = container.getGracefulShutdown();
- assertEquals( 1, gracefulShutdown.getTimeOffline() );
- assertEquals( 1, gracefulShutdown.getDelay() );
+ GracefulShutdownRequestDecorator gracefulShutdownRequest = container.getGracefulShutdownRequest();
+ assertEquals( 1, gracefulShutdownRequest.getTimeOffline() );
+ assertEquals( 1, gracefulShutdownRequest.getDelay() );
// Check the length
- assertEquals( 0x08, gracefulShutdown.computeLength() );
+ assertEquals( 0x08, gracefulShutdownRequest.computeLength() );
// Check the encoding
try
{
- ByteBuffer bb1 = gracefulShutdown.encode();
+ ByteBuffer bb1 = gracefulShutdownRequest.encode();
String encodedPdu = Strings.dumpBytes( bb1.array() );
@@ -137,17 +137,17 @@ public class GracefulShutdownTest
fail( de.getMessage() );
}
- GracefulShutdown gracefulShutdown = container.getGracefulShutdown();
- assertEquals( 1, gracefulShutdown.getTimeOffline() );
- assertEquals( 0, gracefulShutdown.getDelay() );
+ GracefulShutdownRequestDecorator gracefulShutdownRequest = container.getGracefulShutdownRequest();
+ assertEquals( 1, gracefulShutdownRequest.getTimeOffline() );
+ assertEquals( 0, gracefulShutdownRequest.getDelay() );
// Check the length
- assertEquals( 0x05, gracefulShutdown.computeLength() );
+ assertEquals( 0x05, gracefulShutdownRequest.computeLength() );
// Check the encoding
try
{
- ByteBuffer bb1 = gracefulShutdown.encode();
+ ByteBuffer bb1 = gracefulShutdownRequest.encode();
String encodedPdu = Strings.dumpBytes( bb1.array() );
@@ -192,17 +192,17 @@ public class GracefulShutdownTest
fail( de.getMessage() );
}
- GracefulShutdown gracefulShutdown = container.getGracefulShutdown();
- assertEquals( 0, gracefulShutdown.getTimeOffline() );
- assertEquals( 1, gracefulShutdown.getDelay() );
+ GracefulShutdownRequestDecorator gracefulShutdownRequest = container.getGracefulShutdownRequest();
+ assertEquals( 0, gracefulShutdownRequest.getTimeOffline() );
+ assertEquals( 1, gracefulShutdownRequest.getDelay() );
// Check the length
- assertEquals( 0x05, gracefulShutdown.computeLength() );
+ assertEquals( 0x05, gracefulShutdownRequest.computeLength() );
// Check the encoding
try
{
- ByteBuffer bb1 = gracefulShutdown.encode();
+ ByteBuffer bb1 = gracefulShutdownRequest.encode();
String encodedPdu = Strings.dumpBytes( bb1.array() );
@@ -243,17 +243,17 @@ public class GracefulShutdownTest
fail( de.getMessage() );
}
- GracefulShutdown gracefulShutdown = container.getGracefulShutdown();
- assertEquals( 0, gracefulShutdown.getTimeOffline() );
- assertEquals( 0, gracefulShutdown.getDelay() );
+ GracefulShutdownRequestDecorator gracefulShutdownRequest = container.getGracefulShutdownRequest();
+ assertEquals( 0, gracefulShutdownRequest.getTimeOffline() );
+ assertEquals( 0, gracefulShutdownRequest.getDelay() );
// Check the length
- assertEquals( 0x02, gracefulShutdown.computeLength() );
+ assertEquals( 0x02, gracefulShutdownRequest.computeLength() );
// Check the encoding
try
{
- ByteBuffer bb1 = gracefulShutdown.encode();
+ ByteBuffer bb1 = gracefulShutdownRequest.encode();
String encodedPdu = Strings.dumpBytes( bb1.array() );
@@ -300,17 +300,17 @@ public class GracefulShutdownTest
fail( de.getMessage() );
}
- GracefulShutdown gracefulShutdown = container.getGracefulShutdown();
- assertEquals( 0, gracefulShutdown.getTimeOffline() );
- assertEquals( 500, gracefulShutdown.getDelay() );
+ GracefulShutdownRequestDecorator gracefulShutdownRequest = container.getGracefulShutdownRequest();
+ assertEquals( 0, gracefulShutdownRequest.getTimeOffline() );
+ assertEquals( 500, gracefulShutdownRequest.getDelay() );
// Check the length
- assertEquals( 0x06, gracefulShutdown.computeLength() );
+ assertEquals( 0x06, gracefulShutdownRequest.computeLength() );
// Check the encoding
try
{
- ByteBuffer bb1 = gracefulShutdown.encode();
+ ByteBuffer bb1 = gracefulShutdownRequest.encode();
String encodedPdu = Strings.dumpBytes( bb1.array() );
@@ -357,17 +357,17 @@ public class GracefulShutdownTest
fail( de.getMessage() );
}
- GracefulShutdown gracefulShutdown = container.getGracefulShutdown();
- assertEquals( 0, gracefulShutdown.getTimeOffline() );
- assertEquals( 32767, gracefulShutdown.getDelay() );
+ GracefulShutdownRequestDecorator gracefulShutdownRequest = container.getGracefulShutdownRequest();
+ assertEquals( 0, gracefulShutdownRequest.getTimeOffline() );
+ assertEquals( 32767, gracefulShutdownRequest.getDelay() );
// Check the length
- assertEquals( 0x06, gracefulShutdown.computeLength() );
+ assertEquals( 0x06, gracefulShutdownRequest.computeLength() );
// Check the encoding
try
{
- ByteBuffer bb1 = gracefulShutdown.encode();
+ ByteBuffer bb1 = gracefulShutdownRequest.encode();
String encodedPdu = Strings.dumpBytes( bb1.array() );
@@ -417,17 +417,17 @@ public class GracefulShutdownTest
fail( de.getMessage() );
}
- GracefulShutdown gracefulShutdown = container.getGracefulShutdown();
- assertEquals( 0, gracefulShutdown.getTimeOffline() );
- assertEquals( 32768, gracefulShutdown.getDelay() );
+ GracefulShutdownRequestDecorator gracefulShutdownRequest = container.getGracefulShutdownRequest();
+ assertEquals( 0, gracefulShutdownRequest.getTimeOffline() );
+ assertEquals( 32768, gracefulShutdownRequest.getDelay() );
// Check the length
- assertEquals( 0x07, gracefulShutdown.computeLength() );
+ assertEquals( 0x07, gracefulShutdownRequest.computeLength() );
// Check the encoding
try
{
- ByteBuffer bb1 = gracefulShutdown.encode();
+ ByteBuffer bb1 = gracefulShutdownRequest.encode();
String encodedPdu = Strings.dumpBytes( bb1.array() );