<!--
	/*
	* Copyright 2001-2004 The Apache Software Foundation.
	*
	* Licensed under the Apache License, Version 2.0 (the "License");
	* you may not use this file except in compliance with the License.
	* You may obtain a copy of the License at
	*
	*      http://www.apache.org/licenses/LICENSE-2.0
	*
	* Unless required by applicable law or agreed to in writing, software
	* distributed under the License is distributed on an "AS IS" BASIS,
	* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
	* See the License for the specific language governing permissions and
	* limitations under the License.
	*/
-->

<axisconfig name="AxisJava2.0">
	<!-- ================================================= -->
	<!-- Parameters -->
	<!-- ================================================= -->
	<parameter name="hotdeployment" locked="false">true</parameter>
	<parameter name="hotupdate" locked="false">false</parameter>
	<parameter name="enableMTOM" locked="false">false</parameter>
	<parameter name="enableSwA" locked="false">false</parameter>

	<!--Uncomment if you want to enable file caching for attachments -->
	<!--parameter name="cacheAttachments" locked="false">true</parameter>
		<parameter name="attachmentDIR" locked="false"></parameter>
		<parameter name="sizeThreshold" locked="false">4000</parameter-->

	<!--This will give out the timout of the configuration contexts, in seconds-->
	<parameter name="ConfigContextTimeoutInterval" locked="false">30</parameter>

	<!--During a fault, stacktrace can be sent with the fault message. The following flag will control -->
	<!--that behaviour.-->
	<parameter name="sendStacktraceDetailsWithFaults" locked="false">false</parameter>

	<!--If there aren't any information available to find out the fault reason, we set the message of the expcetion-->
	<!--as the faultreason/Reason. But when a fault is thrown from a service or some where, it will be -->
	<!--wrapped by different levels. Due to this the initial exception message can be lost. If this flag-->
	<!--is set then, Axis2 tries to get the first exception and set its message as the faultreason/Reason.-->
	<parameter name="DrillDownToRootCauseForFaultReason" locked="false">false</parameter>

	<parameter name="userName" locked="false">admin</parameter>
	<parameter name="password" locked="false">axis2</parameter>

	<!--To override repository/services you need to uncomment following parameter and value SHOULD be absolute file path.-->
	<!--<parameter name="ServicesDirectory" locked="false">service</parameter>-->
	<!--To override repository/modules you need to uncomment following parameter and value SHOULD be absolute file path-->
	<!--<parameter name="ModulesDirectory" locked="false">modules</parameter>-->



	<!--Following params will set the proper context paths for invocations. All the endpoints will have a commons context-->
	<!--root which can configured using the following contextRoot parameter-->
	<!--<parameter name="contextRoot" locked="false">axis2</parameter>-->

	<!--Our HTTP endpoints can handle both REST and SOAP. Following parameters can be used to distingiush those endpoints-->
	<!--In case of a servlet, if you change this you have to manually change the settings of your servlet container to map this -->
	<!--context path to proper Axis2 servlets-->
	<!--<parameter name="servicePath" locked="false">services</parameter>-->
	<!--<parameter name="restPath" locked="false">rest</parameter>-->


	<!--Set the flag to true if you want to enable transport level session mangment-->
	<parameter name="manageTransportSession" locked="false">false</parameter>

	<!--Following two parameters will be used to handle REST in Axis2. The default settings will make Axis2 to have two-->
	<!--different endpoints, one for REST (AxisRESTServlet) one for SOAP message handling (AxisServlet). But following-->
	<!--parameters help to tweak the message handling of two main servlets. -->

	<!-- If the enableRESTInAxis2MainServlet is true, then Axis2MainServlet will handle both SOAP and REST messages -->
	<parameter name="enableRESTInAxis2MainServlet" locked="true">false</parameter>

	<!-- Following parameter will completely disable REST handling in both the servlets-->
	<parameter name="disableREST" locked="true">false</parameter>

	<!-- This will disable the separate servlet we have for REST handling. -->
	<parameter name="disableSeparateEndpointForREST" locked="true">false</parameter>

	<!-- If you have a frontend host which exposes this webservice using a different public URL  -->
	<!-- use this parameter to override autodetected url -->
	<!--<parameter name="httpFrontendHostUrl" locked="false">https://someotherhost/context</parameter>-->


	<!--    The way of adding listener to the system-->
	<!--    <listener class="org.apache.axis2.ObserverIMPL">-->
	<!--        <parameter name="RSS_URL" locked="false">http://127.0.0.1/rss</parameter>-->
	<!--    </listener>-->

	<!-- ================================================= -->
	<!-- Message Receivers -->
	<!-- ================================================= -->
	<!--This is the Deafult Message Receiver for the system , if you want to have MessageReceivers for -->
	<!--all the other MEP implement it and add the correct entry to here , so that you can refer from-->
	<!--any operation -->
	<!--Note : You can ovride this for particular service by adding the same element with your requirement-->
	<messageReceivers>
		<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
			class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver" />
		<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
			class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" />
	</messageReceivers>
	<!-- ================================================= -->
	<!-- Transport Ins -->
	<!-- ================================================= -->
	<transportReceiver name="http"
		class="org.apache.axis2.transport.http.SimpleHTTPServer">
		<parameter name="port" locked="false">8080</parameter>
		<!-- Here is the complete list of supported parameters (see example settings further below):
			port: the port to listen on (default 6060)
			hostname:  if non-null, url prefix used in reply-to endpoint references                                 (default null)
			originServer:  value of http Server header in outgoing messages                                         (default "Simple-Server/1.1")
			requestTimeout:  value in millis of time that requests can wait for data                                (default 20000)
			requestTcpNoDelay:  true to maximize performance and minimize latency                                   (default true)
			false to minimize bandwidth consumption by combining segments
			requestCoreThreadPoolSize:  number of threads available for request processing (unless queue fills up)  (default 25)
			requestMaxThreadPoolSize:  number of threads available for request processing if queue fills us         (default 150)
			note that default queue never fills up:  see HttpFactory
			threadKeepAliveTime:  time to keep threads in excess of core size alive while inactive                  (default 180)
			note that no such threads can exist with default unbounded request queue
			threadKeepAliveTimeUnit:  TimeUnit of value in threadKeepAliveTime (default SECONDS)                    (default SECONDS)
		-->
		<!-- <parameter name="hostname"                  locked="false">http://www.myApp.com/ws</parameter> -->
		<!-- <parameter name="originServer"              locked="false">My-Server/1.1</parameter>           -->
		<!-- <parameter name="requestTimeout"            locked="false">10000</parameter>                   -->
		<!-- <parameter name="requestTcpNoDelay"         locked="false">false</parameter>                   -->
		<!-- <parameter name="requestCoreThreadPoolSize" locked="false">50</parameter>                      -->
		<!-- <parameter name="RequestMaxThreadPoolSize"  locked="false">100</parameter>                     -->
		<!-- <parameter name="threadKeepAliveTime"       locked="false">240000</parameter>                  -->
		<!-- <parameter name="threadKeepAliveTimeUnit"   locked="false">MILLISECONDS</parameter>            -->
	</transportReceiver>

	<!--Uncomment this and configure as appropriate for JMS transport support, after setting up your JMS environment (e.g. ActiveMQ)
		<transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
		<parameter name="myTopicConnectionFactory" locked="false">        	        	
		<parameter name="java.naming.factory.initial" locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
		<parameter name="java.naming.provider.url" locked="false">tcp://localhost:61616</parameter>        	
		<parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">TopicConnectionFactory</parameter>
		</parameter>
		
		<parameter name="myQueueConnectionFactory" locked="false">        	        	
		<parameter name="java.naming.factory.initial" locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
		<parameter name="java.naming.provider.url" locked="false">tcp://localhost:61616</parameter>        	
		<parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter>
		</parameter>
		
		<parameter name="default" locked="false">        	        	
		<parameter name="java.naming.factory.initial" locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
		<parameter name="java.naming.provider.url" locked="false">tcp://localhost:61616</parameter>        	
		<parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter>
		</parameter>
		</transportReceiver>-->

	<!--Uncomment if you want to have SMTP transport support-->
	<!--<transportReceiver name="mail" class="org.apache.axis2.transport.mail.SimpleMailListener">-->
	<!--<parameter name="transport.mail.pop3.host" locked="false">127.0.0.1</parameter>-->
	<!--<parameter name="transport.mail.pop3.user" locked="false">axis2</parameter>-->
	<!--<parameter name="transport.mail.pop3.password" locked="false">axis2</parameter>-->
	<!--<parameter name="transport.mail.pop3.port" locked="false">110</parameter>-->
	<!--<parameter name="transport.mail.replyToAddress" locked="false">axis2@127.0.0.1</parameter>-->
	<!--</transportReceiver>-->

	<!--Uncomment if you want to have TCP transport support-->
	<!--transportReceiver name="tcp"
		class="org.apache.axis2.transport.tcp.TCPServer">
		<parameter name="port" locked="false">6060</parameter-->
	>
	<!--If you want to give your own host address for EPR generation-->
	<!--uncommet following paramter , and set as you required.-->
	<!--<parameter name="hostname" locked="false">tcp://myApp.com/ws</parameter>-->
	<!-- /transportReceiver -->

	<!-- ================================================= -->
	<!-- Transport Outs -->
	<!-- ================================================= -->

	<transportSender name="tcp"
		class="org.apache.axis2.transport.tcp.TCPTransportSender" />
	<transportSender name="local"
		class="org.apache.axis2.transport.local.LocalTransportSender" />
	<transportSender name="http"
		class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
		<parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
		<parameter name="Transfer-Encoding" locked="false">chunked</parameter>
	</transportSender>
	<transportSender name="https"
		class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
		<parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
		<parameter name="Transfer-Encoding" locked="false">chunked</parameter>
	</transportSender>
	<!--Uncomment this and configure as appropriate for JMS transport support, after setting up your JMS environment (e.g. ActiveMQ)
		<transportSender name="jms"
		class="org.apache.axis2.transport.jms.JMSSender"/>
	-->

	<!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
		<transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender">
		<parameter name="transport.mail.smtp.host" locked="false">127.0.0.1</parameter>
		<parameter name="transport.mail.smtp.user" locked="false">axis2</parameter>
		<parameter name="transport.mail.smtp.password" locked="false">axis2</parameter>
		<parameter name="transport.mail.smtp.port" locked="false">25</parameter>
		</transportSender>
	-->

	<!-- ================================================= -->
	<!-- Global Modules  -->
	<!-- ================================================= -->
	<!-- Comment this to disable Addressing -->
	<module ref="addressing" />
	<module ref="kandula-outflow" />

	<!--Configuring module , providing parameters for modules whether they refer or not-->
	<!--<moduleConfig name="addressing">-->
	<!--<parameter name="addressingPara" locked="false">N/A</parameter>-->
	<!--</moduleConfig>-->

	<!-- ================================================= -->
	<!-- Phases  -->
	<!-- ================================================= -->
	<phaseOrder type="InFlow">
		<!--  System pre defined phases       -->
		<phase name="Transport">
			<handler name="RequestURIBasedDispatcher"
				class="org.apache.axis2.engine.RequestURIBasedDispatcher">
				<order phase="Transport" />
			</handler>
			<handler name="SOAPActionBasedDispatcher"
				class="org.apache.axis2.engine.SOAPActionBasedDispatcher">
				<order phase="Transport" />
			</handler>
		</phase>
		<phase name="Security" />
		<phase name="PreDispatch" />
		<phase name="Dispatch"
			class="org.apache.axis2.engine.DispatchPhase">
			<handler name="AddressingBasedDispatcher"
				class="org.apache.axis2.engine.AddressingBasedDispatcher">
				<order phase="Dispatch" />
			</handler>

			<handler name="SOAPMessageBodyBasedDispatcher"
				class="org.apache.axis2.engine.SOAPMessageBodyBasedDispatcher">
				<order phase="Dispatch" />
			</handler>
			<handler name="InstanceDispatcher"
				class="org.apache.axis2.engine.InstanceDispatcher">
				<order phase="Dispatch" />
			</handler>
		</phase>
		<!--  System pre defined phases       -->
		<!--   After Postdispatch phase module author or or service author can add any phase he want      -->
		<phase name="OperationInPhase" />
		<phase name="soapmonitorPhase" />
	</phaseOrder>
	<phaseOrder type="OutFlow">
		<!--      user can add his own phases to this area  -->
		<phase name="soapmonitorPhase" />
		<phase name="OperationOutPhase" />
		<!--system predefined phase-->
		<!--these phase will run irrespective of the service-->
		<phase name="PolicyDetermination" />
		<phase name="MessageOut" />
		<phase name="Security" />
	</phaseOrder>
	<phaseOrder type="InFaultFlow">
		<phase name="PreDispatch" />
		<phase name="Dispatch"
			class="org.apache.axis2.engine.DispatchPhase">
			<handler name="RequestURIBasedDispatcher"
				class="org.apache.axis2.engine.RequestURIBasedDispatcher">
				<order phase="Dispatch" />
			</handler>

			<handler name="SOAPActionBasedDispatcher"
				class="org.apache.axis2.engine.SOAPActionBasedDispatcher">
				<order phase="Dispatch" />
			</handler>

			<handler name="AddressingBasedDispatcher"
				class="org.apache.axis2.engine.AddressingBasedDispatcher">
				<order phase="Dispatch" />
			</handler>

			<handler name="SOAPMessageBodyBasedDispatcher"
				class="org.apache.axis2.engine.SOAPMessageBodyBasedDispatcher">
				<order phase="Dispatch" />
			</handler>
			<handler name="InstanceDispatcher"
				class="org.apache.axis2.engine.InstanceDispatcher">
				<order phase="PostDispatch" />
			</handler>
		</phase>
		<!--      user can add his own phases to this area  -->
		<phase name="OperationInFaultPhase" />
		<phase name="soapmonitorPhase" />
	</phaseOrder>
	<phaseOrder type="OutFaultFlow">
		<!--      user can add his own phases to this area  -->
		<phase name="soapmonitorPhase" />
		<phase name="OperationOutFaultPhase" />
		<phase name="PolicyDetermination" />
		<phase name="MessageOut" />
	</phaseOrder>
</axisconfig>