<?xml version="1.0"?>

<beans
	default-destroy-method="destroy"
	default-init-method="afterPropertiesSet"
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"
>

	<!-- Advice -->

	<aop:config>
		<aop:aspect ref="messagingProxyAdvice">
			<aop:around pointcut="bean(com.liferay.portal.mobile.device.DeviceRecognitionProviderProxyBean)" method="invoke" />
		</aop:aspect>
	</aop:config>

	<!-- Proxy -->

	<bean id="com.liferay.portal.mobile.device.DeviceRecognitionProviderProxyBean" class="com.liferay.portal.mobile.device.DeviceRecognitionProviderProxyBean">
		<property name="singleDestinationSynchronousMessageSender">
			<bean class="com.liferay.portal.kernel.messaging.sender.DefaultSingleDestinationSynchronousMessageSender">
				<property name="destinationName" value="liferay/device_recognition_provider" />
				<property name="synchronousMessageSender" ref="com.liferay.portal.kernel.messaging.sender.DirectSynchronousMessageSender" />
			</bean>
		</property>
	</bean>

	<!-- Util -->

	<bean id="com.liferay.portal.kernel.mobile.device.DeviceDetectionUtil" class="com.liferay.portal.kernel.mobile.device.DeviceDetectionUtil">
		<property name="deviceRecognitionProvider" ref="com.liferay.portal.mobile.device.DefaultDeviceRecognitionProvider" />
	</bean>
	<bean id="com.liferay.portal.kernel.mobile.device.rulegroup.ActionHandlerManagerUtil" class="com.liferay.portal.kernel.mobile.device.rulegroup.ActionHandlerManagerUtil">
		<property name="actionHandlerManager" ref="com.liferay.portal.mobile.device.rulegroup.DefaultActionHandlerManagerImpl" />
	</bean>
	<bean id="com.liferay.portal.kernel.mobile.device.rulegroup.RuleGroupProcessorUtil" class="com.liferay.portal.kernel.mobile.device.rulegroup.RuleGroupProcessorUtil">
		<property name="ruleGroupProcessor" ref="com.liferay.portal.mobile.device.rulegroup.DefaultRuleGroupProcessorImpl" />
	</bean>
	<bean id="com.liferay.portal.mobile.device.DefaultDeviceRecognitionProvider" class="com.liferay.portal.mobile.device.DefaultDeviceRecognitionProvider" />
	<bean id="com.liferay.portal.mobile.device.rulegroup.DefaultActionHandlerManagerImpl" class="com.liferay.portal.mobile.device.rulegroup.DefaultActionHandlerManagerImpl">
		<property name="actionHandlers">
			<list value-type="com.liferay.portal.kernel.mobile.device.rulegroup.action.ActionHandler">
				<bean class="com.liferay.portal.mobile.device.rulegroup.action.impl.SiteRedirectActionHandler" />
				<bean class="com.liferay.portal.mobile.device.rulegroup.action.impl.SimpleRedirectActionHandler" />
				<bean class="com.liferay.portal.mobile.device.rulegroup.action.impl.ThemeModificationActionHandler" />
				<bean class="com.liferay.portal.mobile.device.rulegroup.action.impl.LayoutTemplateModificationActionHandler" />
			</list>
		</property>
	</bean>
	<bean id="com.liferay.portal.mobile.device.rulegroup.DefaultRuleGroupProcessorImpl" class="com.liferay.portal.mobile.device.rulegroup.DefaultRuleGroupProcessorImpl">
		<property name="ruleHandlers">
			<list value-type="com.liferay.portal.kernel.mobile.device.rulegroup.rule.RuleHandler">
				<bean class="com.liferay.portal.mobile.device.rulegroup.rule.impl.SimpleRuleHandler" />
			</list>
		</property>
	</bean>

	<!-- Messaging -->

	<bean id="destination.device_recognition_provider" class="com.liferay.portal.kernel.messaging.ParallelDestination">
		<property name="name" value="liferay/device_recognition_provider" />
	</bean>
	<bean id="messagingConfigurator.device_recognition" class="com.liferay.portal.kernel.messaging.config.DefaultMessagingConfigurator">
		<property name="destinations">
			<list>
				<ref bean="destination.device_recognition_provider" />
			</list>
		</property>
		<property name="messageBus">
			<ref bean="com.liferay.portal.kernel.messaging.MessageBus" />
		</property>
		<property name="specificDestinationEventListener">
			<map>
				<entry key="liferay/device_recognition_provider">
					<list>
						<bean class="com.liferay.portal.mobile.device.messaging.DeviceRecognitionProviderDestinationEventListener">
							<property name="directDeviceRecognitionProvider" ref="com.liferay.portal.mobile.device.DefaultDeviceRecognitionProvider" />
							<property name="proxyDeviceRecognitionProvider" ref="com.liferay.portal.mobile.device.DeviceRecognitionProviderProxyBean" />
						</bean>
					</list>
				</entry>
			</map>
		</property>
	</bean>
</beans>