You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ka...@apache.org on 2013/12/11 19:53:34 UTC

svn commit: r1550227 - in /directory: apacheds/trunk/server-integ/src/test/java/org/apache/directory/dsml/engine/ apacheds/trunk/server-integ/src/test/resources/ shared/trunk/dsml/engine/src/main/java/org/apache/directory/api/dsmlv2/engine/

Author: kayyagari
Date: Wed Dec 11 18:53:33 2013
New Revision: 1550227

URL: http://svn.apache.org/r1550227
Log:
o fixed the missing 'requestID' attribute of BatchResponse
o updated test (DIRAPI-160)

Modified:
    directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/dsml/engine/Dsmlv2EngineIT.java
    directory/apacheds/trunk/server-integ/src/test/resources/dsml-search-req.xml
    directory/shared/trunk/dsml/engine/src/main/java/org/apache/directory/api/dsmlv2/engine/Dsmlv2Engine.java

Modified: directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/dsml/engine/Dsmlv2EngineIT.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/dsml/engine/Dsmlv2EngineIT.java?rev=1550227&r1=1550226&r2=1550227&view=diff
==============================================================================
--- directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/dsml/engine/Dsmlv2EngineIT.java (original)
+++ directory/apacheds/trunk/server-integ/src/test/java/org/apache/directory/dsml/engine/Dsmlv2EngineIT.java Wed Dec 11 18:53:33 2013
@@ -95,6 +95,8 @@ public class Dsmlv2EngineIT extends Abst
 
         assertNotNull( batchResp );
 
+        assertEquals( 101, batchResp.getRequestID() );
+        
         SearchResponse searchResp = ( SearchResponse ) batchResp.getCurrentResponse().getDecorated();
 
         assertEquals( 5, searchResp.getSearchResultEntryList().size() );
@@ -124,7 +126,9 @@ public class Dsmlv2EngineIT extends Abst
         BatchResponseDsml batchResp = respParser.getBatchResponse();
 
         assertNotNull( batchResp );
-
+        
+        assertEquals( 101, batchResp.getRequestID() );
+        
         SearchResponse searchResp = ( SearchResponse ) batchResp.getCurrentResponse().getDecorated();
 
         assertEquals( 5, searchResp.getSearchResultEntryList().size() );

Modified: directory/apacheds/trunk/server-integ/src/test/resources/dsml-search-req.xml
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/server-integ/src/test/resources/dsml-search-req.xml?rev=1550227&r1=1550226&r2=1550227&view=diff
==============================================================================
--- directory/apacheds/trunk/server-integ/src/test/resources/dsml-search-req.xml (original)
+++ directory/apacheds/trunk/server-integ/src/test/resources/dsml-search-req.xml Wed Dec 11 18:53:33 2013
@@ -17,7 +17,7 @@
   specific language governing permissions and limitations
   under the License.
 -->
-<batchRequest xmlns="urn:oasis:names:tc:DSML:2:0:core"
+<batchRequest requestID="101" xmlns="urn:oasis:names:tc:DSML:2:0:core"
 	xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 	<searchRequest dn="ou=system" scope="singleLevel"
 		derefAliases="neverDerefAliases" typesOnly="false" >

Modified: directory/shared/trunk/dsml/engine/src/main/java/org/apache/directory/api/dsmlv2/engine/Dsmlv2Engine.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/dsml/engine/src/main/java/org/apache/directory/api/dsmlv2/engine/Dsmlv2Engine.java?rev=1550227&r1=1550226&r2=1550227&view=diff
==============================================================================
--- directory/shared/trunk/dsml/engine/src/main/java/org/apache/directory/api/dsmlv2/engine/Dsmlv2Engine.java (original)
+++ directory/shared/trunk/dsml/engine/src/main/java/org/apache/directory/api/dsmlv2/engine/Dsmlv2Engine.java Wed Dec 11 18:53:33 2013
@@ -289,20 +289,6 @@ public class Dsmlv2Engine
 
                 respWriter.write( "><Body>" );
             }
-
-            respWriter.write( "<batchResponse " );
-
-            ParserUtils.DSML_NAMESPACE.write( respWriter );
-
-            respWriter.write( " " ); // a space to separate the namespace declarations
-
-            ParserUtils.XSD_NAMESPACE.write( respWriter );
-
-            respWriter.write( " " ); // a space to separate the namespace declarations
-
-            ParserUtils.XSI_NAMESPACE.write( respWriter );
-
-            respWriter.write( '>' ); // the end tag
         }
 
         // Binding to LDAP Server
@@ -319,16 +305,18 @@ public class Dsmlv2Engine
             ErrorResponse errorResponse = new ErrorResponse( 0, ErrorResponseType.COULD_NOT_CONNECT, e
                 .getLocalizedMessage() );
 
+            batchResponse.addResponse( errorResponse );
+
             if ( respWriter != null )
             {
-                writeResponse( respWriter, errorResponse );
-                respWriter.write( "</batchResponse>" );
+                respWriter.write( batchResponse.toDsml() );
+                if( generateSoapResp )
+                {
+                    respWriter.write( "</Body></Envelope>" );
+                }
+                
                 respWriter.flush();
             }
-            else
-            {
-                batchResponse.addResponse( errorResponse );
-            }
 
             return;
         }
@@ -346,20 +334,45 @@ public class Dsmlv2Engine
             ErrorResponse errorResponse = new ErrorResponse( 0, ErrorResponseType.MALFORMED_REQUEST, I18n.err(
                 I18n.ERR_03001, e.getLocalizedMessage(), e.getLineNumber(), e.getColumnNumber() ) );
 
+            batchResponse.addResponse( errorResponse );
+
             if ( respWriter != null )
             {
-                writeResponse( respWriter, errorResponse );
-                respWriter.write( "</batchResponse>" );
+                respWriter.write( batchResponse.toDsml() );
+                if( generateSoapResp )
+                {
+                    respWriter.write( "</Body></Envelope>" );
+                }
+                
                 respWriter.flush();
             }
-            else
-            {
-                batchResponse.addResponse( errorResponse );
-            }
 
             return;
         }
 
+        if( respWriter != null )
+        {
+            StringBuilder sb = new StringBuilder();
+            
+            sb.append( "<batchResponse " );
+
+            sb.append( ParserUtils.DSML_NAMESPACE.asXML() );
+
+            sb.append( " " ); // a space to separate the namespace declarations
+
+            sb.append( ParserUtils.XSD_NAMESPACE.asXML() );
+
+            sb.append( " " ); // a space to separate the namespace declarations
+
+            sb.append( ParserUtils.XSI_NAMESPACE.asXML() );
+
+            sb.append( " requestID=\"" );
+            sb.append( batchRequest.getRequestID() );
+            sb.append( "\">" );
+            
+            respWriter.write( sb.toString() );
+        }
+        
         // Processing each request:
         //    - Getting a new request
         //    - Checking if the request is well formed
@@ -382,16 +395,19 @@ public class Dsmlv2Engine
             ErrorResponse errorResponse = new ErrorResponse( reqId, ErrorResponseType.MALFORMED_REQUEST, I18n.err(
                 I18n.ERR_03001, e.getLocalizedMessage(), e.getLineNumber(), e.getColumnNumber() ) );
 
+            batchResponse.addResponse( errorResponse );
+
             if ( respWriter != null )
             {
-                writeResponse( respWriter, errorResponse );
-                respWriter.write( "</batchResponse>" );
+                respWriter.write( batchResponse.toDsml() );
+
+                if( generateSoapResp )
+                {
+                    respWriter.write( "</Body></Envelope>" );
+                }
+                
                 respWriter.flush();
             }
-            else
-            {
-                batchResponse.addResponse( errorResponse );
-            }
 
             return;
         }
@@ -480,8 +496,7 @@ public class Dsmlv2Engine
 
             if ( generateSoapResp )
             {
-                respWriter.write( "</Body>" );
-                respWriter.write( "</Envelope>" );
+                respWriter.write( "</Body></Envelope>" );
             }
 
             respWriter.flush();