### Eclipse Workspace Patch 1.0
#P petals-bc-soap
Index: src/main/java/org/ow2/petals/binding/soap/util/SUPropertiesHelper.java
===================================================================
--- src/main/java/org/ow2/petals/binding/soap/util/SUPropertiesHelper.java	(revision 16034)
+++ src/main/java/org/ow2/petals/binding/soap/util/SUPropertiesHelper.java	(working copy)
@@ -39,6 +39,8 @@
 import static org.ow2.petals.binding.soap.Constants.ServiceUnit.SERVICE_NAME;
 import static org.ow2.petals.binding.soap.Constants.ServiceUnit.TIMEOUT;
 import static org.ow2.petals.binding.soap.Constants.ServiceUnit.WSA_USE;
+import static org.ow2.petals.binding.soap.Constants.ServiceUnit.BASIC_AUTH_PASSWORD;
+import static org.ow2.petals.binding.soap.Constants.ServiceUnit.BASIC_AUTH_USERNAME;
 import static org.ow2.petals.binding.soap.Constants.ServiceUnit.MODE.JSON;
 import static org.ow2.petals.binding.soap.Constants.ServiceUnit.MODE.REST;
 import static org.ow2.petals.binding.soap.Constants.ServiceUnit.MODE.SOAP;
@@ -418,4 +420,24 @@
 	    String compatibility = extensions.get(COMPATIBILITY);
 	    return compatibility != null && compatibility.equals(AXIS1);
 	}	
+	
+	 /**
+     * Return the Basic Authentication username
+     * 
+     * @param extensions the SU parameters
+     * @return the Basic Authentication username
+     */
+    public static String getBasicAuthUser(final ConfigurationExtensions extensions) {
+        return extensions.get(BASIC_AUTH_USERNAME);
+    }   
+    
+    /**
+     * Return the Basic Authentication password
+     * 
+     * @param extensions the SU parameters
+     * @return the Basic Authentication password
+     */
+    public static String getBasicAuthPwd(final ConfigurationExtensions extensions) {
+        return extensions.get(BASIC_AUTH_PASSWORD);
+    }   
 }
Index: src/main/java/org/ow2/petals/binding/soap/listener/outgoing/RESTCaller.java
===================================================================
--- src/main/java/org/ow2/petals/binding/soap/listener/outgoing/RESTCaller.java	(revision 16034)
+++ src/main/java/org/ow2/petals/binding/soap/listener/outgoing/RESTCaller.java	(working copy)
@@ -264,6 +264,7 @@
 		options.setTo(new EndpointReference(epr.toString()));
 		options.setProperty(org.apache.axis2.Constants.Configuration.ENABLE_REST, org.apache.axis2.Constants.VALUE_TRUE);
 		options.setProperty(org.apache.axis2.Constants.Configuration.HTTP_METHOD, httpMethod);
+        AbstractExternalServiceCaller.setBasicAuthentication(extensions, options);
 		final long timeout = SUPropertiesHelper.retrieveTimeout(extensions);
 		if (timeout != -1L) {
 			options.setTimeOutInMilliSeconds(timeout);
Index: src/main/java/org/ow2/petals/binding/soap/Constants.java
===================================================================
--- src/main/java/org/ow2/petals/binding/soap/Constants.java	(revision 16034)
+++ src/main/java/org/ow2/petals/binding/soap/Constants.java	(working copy)
@@ -259,12 +259,12 @@
 		/**
 		 * Basic authentication username
 		 */
-		public static final String BASIC_AUTH_USERNAME = "authentication-basic-username";
+		public static final String BASIC_AUTH_USERNAME = "basic-auth-username";
 
 		/**
 		 * Basic authentication password
 		 */
-		public static final String BASIC_AUTH_PASSWORD = "authentication-basic-password";
+		public static final String BASIC_AUTH_PASSWORD = "basic-auth-password";
 
 		/**
 		 * The HTTP method to be used for outgoing calls (Possible values are
Index: src/main/java/org/ow2/petals/binding/soap/listener/outgoing/AbstractExternalServiceCaller.java
===================================================================
--- src/main/java/org/ow2/petals/binding/soap/listener/outgoing/AbstractExternalServiceCaller.java	(revision 16034)
+++ src/main/java/org/ow2/petals/binding/soap/listener/outgoing/AbstractExternalServiceCaller.java	(working copy)
@@ -21,20 +21,6 @@
 
 package org.ow2.petals.binding.soap.listener.outgoing;
 
-import static org.ow2.petals.binding.soap.Constants.ServiceUnit.BASIC_AUTH_PASSWORD;
-import static org.ow2.petals.binding.soap.Constants.ServiceUnit.BASIC_AUTH_USERNAME;
-import static org.ow2.petals.binding.soap.Constants.ServiceUnit.CHUNKED_MODE;
-import static org.ow2.petals.binding.soap.Constants.ServiceUnit.CLEANUP_TRANSPORT;
-import static org.ow2.petals.binding.soap.Constants.ServiceUnit.PROXY_DOMAIN;
-import static org.ow2.petals.binding.soap.Constants.ServiceUnit.PROXY_HOST;
-import static org.ow2.petals.binding.soap.Constants.ServiceUnit.PROXY_PASSWORD;
-import static org.ow2.petals.binding.soap.Constants.ServiceUnit.PROXY_PORT;
-import static org.ow2.petals.binding.soap.Constants.ServiceUnit.PROXY_USER;
-import static org.ow2.petals.binding.soap.Constants.ServiceUnit.SOAP_ACTION;
-import static org.ow2.petals.binding.soap.Constants.ServiceUnit.SOAP_VERSION;
-
-import java.util.ArrayList;
-import java.util.List;
 import java.util.logging.Logger;
 
 import javax.jbi.messaging.MessagingException;
@@ -44,14 +30,23 @@
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.client.Options;
 import org.apache.axis2.transport.http.HttpTransportProperties;
-import org.apache.commons.httpclient.auth.AuthPolicy;
-
 import org.ow2.petals.binding.soap.SoapComponentContext;
+import org.ow2.petals.binding.soap.util.SUPropertiesHelper;
 import org.ow2.petals.commons.exception.ExceptionUtil;
 import org.ow2.petals.component.framework.api.configuration.ConfigurationExtensions;
 import org.ow2.petals.component.framework.api.message.Exchange;
 import org.ow2.petals.component.framework.jbidescriptor.generated.Provides;
 
+import static org.ow2.petals.binding.soap.Constants.ServiceUnit.CHUNKED_MODE;
+import static org.ow2.petals.binding.soap.Constants.ServiceUnit.CLEANUP_TRANSPORT;
+import static org.ow2.petals.binding.soap.Constants.ServiceUnit.PROXY_DOMAIN;
+import static org.ow2.petals.binding.soap.Constants.ServiceUnit.PROXY_HOST;
+import static org.ow2.petals.binding.soap.Constants.ServiceUnit.PROXY_PASSWORD;
+import static org.ow2.petals.binding.soap.Constants.ServiceUnit.PROXY_PORT;
+import static org.ow2.petals.binding.soap.Constants.ServiceUnit.PROXY_USER;
+import static org.ow2.petals.binding.soap.Constants.ServiceUnit.SOAP_ACTION;
+import static org.ow2.petals.binding.soap.Constants.ServiceUnit.SOAP_VERSION;
+
 /**
  * Abstract class for dispatchers. Dispatchers are used to send JBI message to
  * external Web Services.
@@ -93,12 +88,11 @@
      * @param options
      * @return
      */
-    @SuppressWarnings("unchecked")
-    protected final static HttpTransportProperties.Authenticator retrieveBasicAuthentication(
+    protected final static void setBasicAuthentication(
             final ConfigurationExtensions extensions, final Options options) {
         HttpTransportProperties.Authenticator basicAuthentication = null;
-        final String username = extensions.get(BASIC_AUTH_USERNAME);
-        String password = extensions.get(BASIC_AUTH_PASSWORD);
+        final String username = SUPropertiesHelper.getBasicAuthUser(extensions);
+        String password = SUPropertiesHelper.getBasicAuthPwd(extensions);
 
         if (username != null) {
             if (password == null) {
@@ -106,17 +100,15 @@
             }
 
             basicAuthentication = new HttpTransportProperties.Authenticator();
-            final List schemes = new ArrayList();
-            schemes.add(AuthPolicy.BASIC);
-            basicAuthentication.setAuthSchemes(schemes);
+//            final List<String> schemes = new ArrayList<String>();
+//            schemes.add(AuthPolicy.BASIC);
+//            basicAuthentication.setAuthSchemes(schemes);
             basicAuthentication.setUsername(username);
             basicAuthentication.setPassword(password);
             basicAuthentication.setPreemptiveAuthentication(true);
             options.setProperty(org.apache.axis2.transport.http.HTTPConstants.AUTHENTICATE,
                     basicAuthentication);
         }
-
-        return basicAuthentication;
     }
 
     /**
Index: src/main/resources/SOAPextensions.xsd
===================================================================
--- src/main/resources/SOAPextensions.xsd	(revision 16034)
+++ src/main/resources/SOAPextensions.xsd	(working copy)
@@ -232,6 +232,16 @@
 			<xs:documentation>Set of XML headers (CDATA) to be injected into the outgoing SOAP message (in SOAP Header)</xs:documentation>
 		</xs:annotation>
 	</xs:element>
+	<xs:element name="basic-auth-username" type="xs:string">
+		<xs:annotation>
+			<xs:documentation>Username for Basic Authentication</xs:documentation>
+		</xs:annotation>
+	</xs:element>
+	<xs:element name="basic-auth-password" type="xs:string">
+		<xs:annotation>
+			<xs:documentation>Password for Basic Authentication</xs:documentation>
+		</xs:annotation>
+	</xs:element>		
 	<xs:element name="enable-compatibility-for" type="soap:Compatibility">
 		<xs:annotation>
 			<xs:documentation>Set a customized transport sender (Axis 2)</xs:documentation>
Index: src/main/resources/SOAPjbi.xsd
===================================================================
--- src/main/resources/SOAPjbi.xsd	(revision 16034)
+++ src/main/resources/SOAPjbi.xsd	(working copy)
@@ -52,6 +52,10 @@
 							minOccurs="0" />
 						<xs:element ref="soap:headers-to-inject" maxOccurs="1"
 							minOccurs="0" />
+						<xs:element ref="basic-auth-username" maxOccurs="1"
+							minOccurs="0" />
+						<xs:element ref="basic-auth-password" maxOccurs="1"
+							minOccurs="0" />	
 						<xs:element ref="enable-compatibility-for" maxOccurs="1"
 							minOccurs="0" />			
 					</xs:sequence>
Index: src/main/java/org/ow2/petals/binding/soap/listener/outgoing/ServiceClientPoolObjectFactory.java
===================================================================
--- src/main/java/org/ow2/petals/binding/soap/listener/outgoing/ServiceClientPoolObjectFactory.java	(revision 16034)
+++ src/main/java/org/ow2/petals/binding/soap/listener/outgoing/ServiceClientPoolObjectFactory.java	(working copy)
@@ -124,6 +124,7 @@
             options.setCallTransportCleanup(AbstractExternalServiceCaller
                     .retrieveCleanupTransport(extensions));
 
+            AbstractExternalServiceCaller.setBasicAuthentication(extensions, options);
         } else if (SUPropertiesHelper.isRESTMode(extensions)) {
 
             // TODO: Move here options from RESTCaller.java when optimizing REST
