Project

General

Profile

1
<?xml version="1.0" encoding="UTF-8"?>
2
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3
	xmlns:jaxws="http://cxf.apache.org/jaxws"
4
	xmlns:sec="http://cxf.apache.org/configuration/security"
5
	xmlns:wsa="http://cxf.apache.org/ws/addressing"
6
	xmlns:p="http://www.springframework.org/schema/p"
7
	xmlns:http="http://cxf.apache.org/transports/http/configuration"
8
	xmlns:t="http://dnetlib.eu/springbeans/t"
9
	xmlns:template="http://dnetlib.eu/springbeans/template"
10
	xmlns="http://www.springframework.org/schema/beans"
11
	xsi:schemaLocation="http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
12
		http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd
13
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
14
		http://dnetlib.eu/springbeans/template http://dnetlib.eu/springbeans/template.xsd
15
		http://cxf.apache.org/ws/addressing http://cxf.apache.org/schemas/ws-addr-conf.xsd
16
		http://cxf.apache.org/configuration/security http://cxf.apache.org/schemas/configuration/security.xsd
17
		http://dnetlib.eu/springbeans/t">
18
	<!-- beans -->
19
	<bean id="msroService" class="eu.dnetlib.msro.MSROServiceImpl"
20
		init-method="start" destroy-method="stop" 
21
		p:notificationHandler-ref="msroNotificationHandlerChain"
22
		p:processRegistry-ref="graphProcessRegistry" />
23

    
24
	<bean id="msroNotificationHandlerChain"
25
		class="eu.dnetlib.enabling.tools.blackboard.NotificationHandlerChainImpl">
26
		<property name="handlerExecutor">
27
			<bean class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"
28
				p:corePoolSize="32" p:keepAliveSeconds="3600" p:queueCapacity="0" />
29
		</property>
30
		<property name="handlers">
31
			<list>
32
				<ref bean="msroBlackboardNotificationHandler" />
33
			</list>
34
		</property>
35
	</bean>
36

    
37
	<bean id="wfDependencyLauncherNotificationHandler" class="eu.dnetlib.msro.notification.WfDependencyLauncherNotificationHandler"
38
		p:enabled="true" p:topicExpression="UPDATE/WorkflowDSResourceType/*/RESOURCE_PROFILE/BODY/STATUS/LAST_EXECUTION_DATE" />
39

    
40
	<alias name="cxfEndpointReferenceBuilder" alias="eprBuilder" />
41
	
42
	<bean id="msroWfEngine" class="eu.dnetlib.msro.workflows.sarasvati.loader.InjectableMemEngine">
43
		<property name="graphFactory">
44
			<bean class="eu.dnetlib.msro.workflows.sarasvati.loader.InjectableMemGraphFactory">
45
				<property name="nodeFactory">
46
					<bean class="eu.dnetlib.msro.workflows.sarasvati.loader.InjectableNodeFactory"
47
						p:beanNamePrefix="wfNode" />				
48
				</property>
49
			</bean>
50
		</property>
51
	</bean>
52
	
53
	<bean id="graphProcessRegistry" class="eu.dnetlib.msro.workflows.sarasvati.registry.GraphProcessRegistry" 
54
		p:maxSize="${msro.wf.registry.maxSize}" />
55

    
56
	<bean id="sarasvatiGraphLoader" 
57
		class="eu.dnetlib.msro.workflows.sarasvati.loader.GraphLoader" 
58
		p:engine-ref="msroWfEngine" /> 
59
		
60
	<bean id="sarasvatiWorkflowExecutor" class="eu.dnetlib.msro.workflows.sarasvati.loader.WorkflowExecutor"
61
	      p:engine-ref="msroWfEngine"
62
	      p:graphLoader-ref="sarasvatiGraphLoader"
63
	      p:graphProcessRegistry-ref="graphProcessRegistry"
64
	      p:profileToSarasvatiConverter-ref="msroProfileToSarasvatiConverter"
65
	      p:maxRunningWorkflows="${msro.wf.max.running}"
66
	      init-method="init"/>
67
	
68
	<bean id="workflowsConstants" class="eu.dnetlib.msro.workflows.util.WorkflowsConstants"
69
		init-method="init" 
70
		p:dataproviderProtocolsJson="${msro.wf.ui.dataprovider.protocols}" 
71
		p:dataproviderTypologiesJson="${msro.wf.ui.dataprovider.typologies}" />
72
		
73
	<bean id="msroProfileToSarasvatiConverter" class="eu.dnetlib.msro.workflows.sarasvati.loader.ProfileToSarasvatiConverter"
74
	 	p:xslt="classpath:/eu/dnetlib/msro/workflows/xslt/wf_profile2sarasvati.xslt" />
75
	
76
	<bean id="msroBlackboardNotificationHandler"
77
		class="eu.dnetlib.enabling.tools.blackboard.DeletingBlackboardNotificationHandler"
78
		p:blackboardHandler-ref="blackboardClientHandler" />
79
	
80
	<bean id="datasourceMetaWorkflowFactory" class="eu.dnetlib.msro.workflows.metawf.DatasourceMetaWorkflowFactory"/>
81
	
82
	<bean id="msroProcessCountingResultSetFactory" 
83
		class="eu.dnetlib.msro.workflows.resultset.ProcessCountingResultSetFactory"
84
		p:resultSetFactory-ref="openResultSetFactory" p:serviceResolver-ref="serviceResolver" />
85
	
86
	<bean t:id="msroJobSchedulerAccessor"
87
		class="org.springframework.scheduling.quartz.SchedulerAccessorBean"
88
		p:scheduler-ref="jobScheduler">
89
		<property name="triggers">
90
			<list>
91
				<bean class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean"
92
					p:startDelay="6000" p:repeatCount="0">
93
					<property name="jobDetail">
94
						<bean class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"
95
							p:targetObject-ref="msroBlackboardSubscriber" p:targetMethod="subscribeAll" />
96
					</property>
97
				</bean>
98
				<bean class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean"
99
					p:startDelay="${msro.wf.scheduler.startDelay}" p:repeatInterval="${msro.wf.scheduler.repeatInterval}">
100
					<property name="jobDetail">
101
						<bean class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"
102
							p:targetObject-ref="msroScheduledWorkflowLauncher" p:targetMethod="verifySheduledWorkflows" />
103
					</property>
104
				</bean>
105
				<bean class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean"
106
					p:startDelay="${msro.wf.mail.thread.startDelay}" p:repeatInterval="${msro.wf.mail.thread.repeatInterval}">
107
					<property name="jobDetail">
108
						<bean class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"
109
							p:targetObject-ref="msroMailDispatcher" p:targetMethod="processMailQueue" />
110
					</property>
111
				</bean>
112
			</list>
113
		</property>
114
	</bean>		
115
	
116
	<bean id="msroBlackboardSubscriber" class="eu.dnetlib.msro.workflows.nodes.blackboard.BlackboardSubscriber"
117
		p:endpoint-ref="msroServiceEndpoint" />
118
	
119
	<bean id="msroScheduledWorkflowLauncher" class="eu.dnetlib.msro.cron.ScheduledWorkflowLauncher"
120
		p:graphProcessRegistry-ref="graphProcessRegistry" p:workflowExecutor-ref="sarasvatiWorkflowExecutor"
121
		p:windowSize="${msro.wf.scheduler.window.size}" />
122
	
123
	
124
	<bean id="msroWorkflowLogger" class="eu.dnetlib.common.logging.DnetLogger"
125
		p:name="${msro.wf.logger.name}" p:indexConf="${msro.wf.logger.index.conf}" />
126
	
127
	<bean id="msroMailDispatcher" class="eu.dnetlib.msro.notification.EmailDispatcher"
128
		p:from="${msro.wf.mail.from}" p:fromName="${msro.wf.mail.fromName}" p:cc="${msro.wf.mail.cc}"
129
		p:smtpHost="${msro.wf.mail.smtp.host}" p:smtpPort="${msro.wf.mail.smtp.port}" p:smtpUser="${msro.wf.mail.smtp.user}" p:smtpPassword="${msro.wf.mail.smtp.password}" 
130
		p:baseUrl="${msro.wf.mail.message.baseUrl}" p:infrastructure="${msro.wf.mail.message.infrastructure}"/>
131
	
132
	<!-- System nodes -->
133
	<bean id="wfNodeSuccess" class="eu.dnetlib.msro.workflows.nodes.SuccessFailureNode" p:success="true" scope="prototype" />
134
	<bean id="wfNodeFailure" class="eu.dnetlib.msro.workflows.nodes.SuccessFailureNode" p:success="false" scope="prototype" />
135
		
136
	<!-- REPO_HI and REPO_BYE -->
137
	<bean id="wfNodeRegisterMetaWf"	class="eu.dnetlib.msro.workflows.nodes.repohi.RegisterMetaWfJobNode" scope="prototype" />
138
	<bean id="wfNodeUpdateMetaWf" class="eu.dnetlib.msro.workflows.nodes.repohi.UpdateMetaWfJobNode" scope="prototype" />
139
	<bean id="wfNodeUpdateMetaWfStatus"	class="eu.dnetlib.msro.workflows.nodes.repohi.UpdateMetaWfStatusJobNode" scope="prototype" />
140
	<bean id="wfNodeDeleteMetaWf" class="eu.dnetlib.msro.workflows.nodes.repobye.DeleteMetaWfJobNode" scope="prototype" />
141
	<bean id="wfNodeDeleteMDStore" class="eu.dnetlib.msro.workflows.nodes.repobye.DeleteMDStoreJobNode" scope="prototype" />
142
	
143
	<!-- endpoints -->
144
	<jaxws:endpoint id="msroServiceEndpoint" implementor="#msroService"
145
		implementorClass="eu.dnetlib.msro.rmi.MSROService"
146
		address="/msro" />
147

    
148
	<template:instance name="serviceRegistrationManager"
149
		t:serviceRegistrationManagerClass="eu.dnetlib.enabling.tools.registration.ValidatingServiceRegistrationManagerImpl"
150
		t:name="msroServiceRegistrationManager" t:service="msroService"
151
		t:endpoint="msroServiceEndpoint" t:jobScheduler="jobScheduler" />
152

    
153
</beans>
(3-3/4)