<?xml version="1.0"?>
<deployment name="defaultServerConfig" xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing" xmlns:wsnt="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd" xmlns:wsrp="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema">



    <globalConfiguration>
        
        <parameter name="usageStatisticsTargets" value="usage-stats.globus.org:4810"/>
	    <parameter name="logicalHost" value="localhost"/>
	    <parameter name="publishHostName" value="true"/>
	    <parameter name="containerThreads" value="2"/>
	    <parameter name="containerThreadsMax" value="100"/>

        <parameter name="sendXsiTypes" value="true"/>

        <!-- @CONTAINER_SECURITY_DESCRIPTOR@ -->


	<!--         <parameter name="defaultSecurityConfiguration" value="etc/globus_wsrf_core/security_configuration.properties"/> 
		<parameter name="containerSecDesc" value="etc/globus_wsrf_core/global_security_descriptor.xml"/> -->
        

        <!-- OPERATION PROVIDERS -->

		<parameter name="GCUBEProvider" value="org.gcube.common.core.porttypes.GCUBEProvider"/>
		<parameter name="GCUBENotificationProvider" value="org.gcube.common.core.porttypes.GCUBENotificationProvider"/>

        <parameter name="DestroyProvider" value="org.globus.wsrf.impl.lifetime.DestroyProvider"/>
        <parameter name="SetTerminationTimeProvider" value="org.globus.wsrf.impl.lifetime.SetTerminationTimeProvider"/>
        <parameter name="GetRPProvider" value="org.globus.wsrf.impl.properties.GetResourcePropertyProvider"/>
        <parameter name="GetMRPProvider" value="org.globus.wsrf.impl.properties.GetMultipleResourcePropertiesProvider"/>
        <parameter name="SetRPProvider" value="org.globus.wsrf.impl.properties.SetResourcePropertiesProvider"/>
        <parameter name="QueryRPProvider" value="org.globus.wsrf.impl.properties.QueryResourcePropertiesProvider"/>
        <parameter name="SubscribeProvider" value="org.globus.wsrf.impl.notification.SubscribeProvider"/>

        <parameter name="GetCurrentMessageProvider" value="org.globus.wsrf.impl.notification.GetCurrentMessageProvider"/>

        <parameter name="PauseSubscriptionProvider" value="org.globus.wsrf.impl.notification.PauseSubscriptionProvider"/>

        <parameter name="ResumeSubscriptionProvider" value="org.globus.wsrf.impl.notification.ResumeSubscriptionProvider"/>

        <parameter name="NotificationConsumerProvider" value="org.globus.wsrf.impl.notification.NotificationConsumerProvider"/>
        <!-- WS Secure Conversation service -->
        <parameter name="authenticationService" value="gsi/AuthenticationService"/>

        <requestFlow>
            <!-- The AddressingHandler must be first -->
            <handler type="java:org.globus.wsrf.handlers.AddressingHandler"/>
            <!-- The URLMapper must be second -->
            <handler type="java:org.globus.wsrf.handlers.URLMapper"/>
            <!-- @TOMCAT_SEC_HANDLER@ -->
            <!-- The AuthenticationServiceHandler must be third -->
            <handler type="AuthenticationServiceHandler"/>

           
            <handler type="java:org.globus.wsrf.handlers.JAXRPCHandler">
		    <parameter name="className" value="org.globus.wsrf.impl.security.authentication.wssec.WSSecurityHandler"/>
 	    	</handler>
	    	<handler type="java:org.globus.wsrf.impl.security.authentication.SecurityPolicyHandler"/>
	    	<handler type="java:org.globus.wsrf.impl.security.authorization.AuthorizationHandler"/>
	    	<handler type="java:org.gcube.common.handlers.GCUBEHandler"/>
            <!-- The FaultHandler must be last -->
            <handler type="java:org.globus.wsrf.handlers.FaultHandler"/>
        </requestFlow>

        <responseFlow>
            <!-- The WSDLHandler must be first -->
            <handler type="java:org.globus.wsrf.handlers.WSDLHandler"/>
            <handler type="java:org.globus.wsrf.handlers.AddressingHandler"/>
            <handler type="java:org.apache.axis.handlers.JAXRPCHandler">
		<parameter name="className" value="org.globus.wsrf.impl.security.authentication.securemsg.X509EncryptHandler"/>
 	    </handler>
            <handler type="java:org.apache.axis.handlers.JAXRPCHandler">
		<parameter name="className" value="org.globus.wsrf.impl.security.authentication.securemsg.X509SignHandler"/>
 	    </handler>
            <handler type="java:org.apache.axis.handlers.JAXRPCHandler">
		<parameter name="className" value="org.globus.wsrf.impl.security.authentication.UsernameHandler"/>
 	    </handler>
            <handler type="java:org.apache.axis.handlers.JAXRPCHandler">
               <parameter name="className" value="org.globus.wsrf.impl.security.authentication.secureconv.GSSHandler"/>
            </handler>
            <handler type="java:org.globus.wsrf.handlers.MessageLoggingHandler"/>
	   <handler type="java:org.gcube.common.handlers.GCUBEHandler"/>
        </responseFlow>

    </globalConfiguration>

    <handler name="RPCDispatcher" type="java:org.apache.axis.providers.java.RPCProvider"/>
    <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
    <handler name="MsgDispatcher" type="java:org.apache.axis.providers.java.MsgProvider"/>
    <handler name="LocalRequester" type="java:org.globus.axis.transport.local.LocalRequester"/>
    <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
    <handler name="logger" type="java:org.apache.axis.handlers.LogHandler"/>
    <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
    <handler name="AuthenticationServiceHandler" type="java:org.globus.wsrf.impl.security.authentication.secureconv.service.AuthenticationServiceHandler"/>

    <!--<service name="AdminService" provider="java:MSG">
        <namespace>http://xml.apache.org/axis/wsdd/</namespace>
        <parameter name="allowedMethods" value="AdminService"/>
        <parameter name="enableRemoteAdmin" value="false"/>
        <parameter name="className" value="org.apache.axis.utils.Admin"/>
    </service>-->
 
    <!--<service name="Version" provider="java:RPC">
        <parameter name="allowedMethods" value="getVersion"/>
        <parameter name="className" value="org.apache.axis.Version"/>
    </service>-->

    <service name="NotificationConsumerService" provider="Handler" style="document" use="literal">
        <parameter name="allowedMethods" value="*"/>
        <parameter name="handlerClass" value="org.globus.axis.providers.RPCProvider"/>
        <parameter name="className" value="org.globus.wsrf.impl.notification.NotificationConsumerProvider"/>
        <wsdlFile>share/schema/core/notification/notification_consumer_service.wsdl</wsdlFile>
        <typeMapping deserializer="org.apache.axis.encoding.ser.ElementDeserializerFactory" encodingStyle="" qname="xsd:anyType" type="java:java.lang.Object" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>
        <typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" name="ResourcePropertyValueChangeNotificationElementType" qname="ns1:ResourcePropertyValueChangeNotificationElementType" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.globus.wsrf.core.notification.ResourcePropertyValueChangeNotificationElementType" xmlns:ns1="http://wsrf.globus.org/core/notification"/>
    </service>


    <service name="SubscriptionManagerService" provider="Handler" style="document" use="literal">
        <parameter name="allowedMethods" value="*"/>
        <parameter name="scope" value="Application"/>
        <parameter name="providers" value="DestroyProvider SetTerminationTimeProvider             GetRPProvider PauseSubscriptionProvider"/>
        <parameter name="handlerClass" value="org.globus.axis.providers.RPCProvider"/>
        <parameter name="className" value="org.globus.wsrf.impl.notification.ResumeSubscriptionProvider"/>
        <wsdlFile>share/schema/core/notification/subscription_manager_service.wsdl</wsdlFile>
    </service>

    <service name="gsi/AuthenticationService" provider="Handler" style="document" use="literal">
        <parameter name="handlerClass" value="org.globus.axis.providers.RPCProvider"/>
        <parameter name="allowedMethods" value="*"/>
        <parameter name="className" value="org.globus.wsrf.impl.security.authentication.secureconv.service.AuthenticationServiceImpl"/>
        <wsdlFile>share/schema/core/security/secconv/secure_conversation_service.wsdl</wsdlFile>
    </service>

    <!--<service name="ShutdownService" provider="java:RPC" style="document" use="literal">
        <parameter name="allowedMethods" value="*"/>
        <parameter name="className" value="org.globus.wsrf.container.ShutdownService"/>
        <wsdlFile>share/schema/core/management/shutdown_service.wsdl</wsdlFile>
        <parameter name="securityDescriptor" value="org/globus/wsrf/impl/security/descriptor/gsi-security-config.xml"/>
    </service>-->

    <transport name="http">
        <parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/>
        <parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/>
        <parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
        <requestFlow>
            <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
        </requestFlow>
    </transport>

    <transport name="local">
        <requestFlow>
            <handler type="LocalRequester"/>
        </requestFlow>
        <responseFlow>
            <handler type="LocalResponder"/>
        </responseFlow>
    </transport>

    <transport name="SimpleHTTP">
        <requestFlow/>
    </transport>

    <typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" name="DeleteType" qname="wsrp:DeleteType" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.oasis.wsrf.properties.DeleteType"/>

    <typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" name="InsertType" qname="wsrp:InsertType" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.oasis.wsrf.properties.InsertType"/>

    <typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" name="UpdateType" qname="wsrp:UpdateType" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.oasis.wsrf.properties.UpdateType"/>

    <typeMapping deserializer="org.globus.wsrf.encoding.TopicExpressionDeserializerFactory" encodingStyle="" name="TopicExpressionType" qname="wsnt:TopicExpressionType" serializer="org.globus.wsrf.encoding.TopicExpressionSerializerFactory" type="java:org.oasis.wsn.TopicExpressionType"/>

    <typeMapping deserializer="org.globus.wsrf.encoding.AnyListDeserializerFactory" encodingStyle="" name=">SetResourceProperties" qname="wsrp:>SetResourceProperties" serializer="org.globus.wsrf.encoding.AnyListSerializerFactory" type="java:org.oasis.wsrf.properties.SetResourceProperties_Element"/>

    <typeMapping deserializer="org.globus.wsrf.encoding.QueryExpressionDeserializerFactory" encodingStyle="" name="QueryExpressionType" qname="wsrp:QueryExpressionType" serializer="org.globus.wsrf.encoding.QueryExpressionSerializerFactory" type="java:org.oasis.wsrf.properties.QueryExpressionType"/>

    <!-- WS-Addressing Bits -->

   <typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="wsa:EndpointReferenceType" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.apache.axis.message.addressing.EndpointReferenceType"/>

   <typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="wsa:ReferencePropertiesType" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.apache.axis.message.addressing.ReferencePropertiesType"/>

   <typeMapping deserializer="org.apache.axis.encoding.ser.SimpleDeserializerFactory" encodingStyle="" qname="wsa:AttributedURI" serializer="org.apache.axis.encoding.ser.SimpleSerializerFactory" type="java:org.apache.axis.message.addressing.AttributedURI"/>

   <typeMapping deserializer="org.apache.axis.encoding.ser.SimpleDeserializerFactory" encodingStyle="" qname="wsa:AttributedQName" serializer="org.apache.axis.encoding.ser.SimpleSerializerFactory" type="java:org.apache.axis.message.addressing.AttributedQName"/>

   <typeMapping deserializer="org.apache.axis.encoding.ser.SimpleDeserializerFactory" encodingStyle="" qname="wsa:ServiceNameType" serializer="org.apache.axis.encoding.ser.SimpleSerializerFactory" type="java:org.apache.axis.message.addressing.ServiceNameType"/>
    
    <!-- WS Trust and WS Secure Conversation -->
    <typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns1:SecurityContextTokenType" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.globus.ws.sc.SecurityContextTokenType" xmlns:ns1="http://schemas.xmlsoap.org/ws/2004/04/sc"/>

    <typeMapping deserializer="org.apache.axis.encoding.ser.SimpleDeserializerFactory" encodingStyle="" qname="ns1:BinaryExchangeType" serializer="org.apache.axis.encoding.ser.SimpleSerializerFactory" type="java:org.globus.ws.trust.BinaryExchangeType" xmlns:ns1="http://schemas.xmlsoap.org/ws/2004/04/trust"/>

    <!-- GCUBE Faults -->

   <typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns1:GCUBEUnrecoverableFault" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.gcube.common.core.faults.GCUBEUnrecoverableFault" xmlns:ns1="http://gcube-system.org/namespaces/common/core/faults"/>
   <typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns1:GCUBERetrySameFault" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.gcube.common.core.faults.GCUBERetrySameFault" xmlns:ns1="http://gcube-system.org/namespaces/common/core/faults"/>
   <typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns1:GCUBERetryEquivalentFault" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:org.gcube.common.core.faults.GCUBERetryEquivalentFault" xmlns:ns1="http://gcube-system.org/namespaces/common/core/faults"/>


</deployment>
