<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:plugins="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <plugins:annotation-config /> <!-- // Replaces ${...} with corresponding values found in 'location' property. A value // can be overridden by setting a corresponding system property. --> <bean id="propertyConfigurer" class="ch.systemsx.cisd.common.spring.ExposablePropertyPlaceholderConfigurer"> <property name="location" value="file:etc/service.properties" /> <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" /> <property name="ignoreUnresolvablePlaceholders" value="true" /> </bean> <bean id="configProperties" factory-bean="propertyConfigurer" factory-method="getResolvedProps"> </bean> <bean id="memory-monitor" class="ch.systemsx.cisd.common.monitoring.JMXMemoryMonitorSpringBean" /> <bean id="data-set-path-infos-provider" class="ch.systemsx.cisd.openbis.dss.generic.server.DatabaseBasedDataSetPathInfoProvider"/> <bean id="plugin-tasks" class="ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.PluginTaskInfoProvider" factory-method="create" /> <bean id="etl-lims-service" class="ch.systemsx.cisd.openbis.dss.generic.server.EncapsulatedOpenBISService" factory-method="createOpenBisService"> <constructor-arg value="${server-url}"/> <constructor-arg value="${server-timeout-in-minutes}"/> </bean> <bean id="general-information-service" class="ch.systemsx.cisd.openbis.dss.generic.server.EncapsulatedOpenBISService" factory-method="createGeneralInformationService"> <constructor-arg value="${server-url}"/> <constructor-arg value="${server-timeout-in-minutes}"/> </bean> <bean id="sessionHolder" class="ch.systemsx.cisd.openbis.generic.shared.dto.OpenBISSessionHolder"> <property name="dataStoreCode" value="${data-store-server-code}"/> </bean> <bean id="reauthenticateInterceptor" class="ch.systemsx.cisd.openbis.dss.generic.server.openbisauth.OpenBISAuthenticationInterceptor"> <constructor-arg ref="session-token-manager"/> <constructor-arg ref="etl-lims-service"/> <constructor-arg ref="plugin-tasks" /> <constructor-arg ref="sessionHolder" /> <property name="username" value="${username}"/> <property name="password" value="${password}"/> <property name="port" value="${port}"/> <property name="useSSL" value="${use-ssl}"/> <property name="downloadUrl" value="${download-url}"/> <property name="timeoutInMinutes" value="${server-timeout-in-minutes}"/> </bean> <bean id="reauthenticateAdvisor" class="ch.systemsx.cisd.openbis.dss.generic.server.openbisauth.OpenBISAuthenticationAdvisor"> <constructor-arg ref="reauthenticateInterceptor"/> </bean> <bean id="openBIS-service" class="ch.systemsx.cisd.openbis.dss.generic.server.EncapsulatedOpenBISService"> <constructor-arg ref="etl-lims-service"/> <constructor-arg ref="sessionHolder"/> <constructor-arg value="${download-url}"/> <property name="conversationClient" ref="data-store-service-conversation-client-manager"/> </bean> <bean id="search-service" class="ch.systemsx.cisd.etlserver.registrator.api.v1.impl.SearchService"> <constructor-arg ref="openBIS-service"/> </bean> <bean id="authorization-service" class="ch.systemsx.cisd.etlserver.registrator.api.v1.impl.AuthorizationService"> <constructor-arg ref="openBIS-service"/> </bean> <bean id="share-id-manager" class="ch.systemsx.cisd.openbis.dss.generic.server.ShareIdManager"> <constructor-arg ref="openBIS-service"/> <constructor-arg value="86400"/> </bean> <bean id="data-store-service" class="ch.systemsx.cisd.openbis.dss.generic.server.DataStoreService"> <constructor-arg ref="session-token-manager" /> <constructor-arg> <bean class="ch.systemsx.cisd.common.mail.MailClientParameters"> <property name="from" value="${mail.from}"/> <property name="smtpHost" value="${mail.smtp.host}"/> <property name="smtpUser" value="${mail.smtp.user}"/> <property name="smtpPassword" value="${mail.smtp.password}"/> </bean> </constructor-arg> <constructor-arg ref="plugin-tasks" /> <property name="cifexAdminUserOrNull" value="${cifex-admin-username}" /> <property name="cifexAdminPasswordOrNull" value="${cifex-admin-password}" /> <property name="commandQueueDir" value="${commandqueue-dir}"/> </bean> <bean id="data-store-server" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter"> <property name="service" ref="data-store-service"/> <property name="serviceInterface" value="ch.systemsx.cisd.openbis.generic.shared.IDataStoreService" /> </bean> <bean id="stream-repository" class="ch.systemsx.cisd.openbis.dss.generic.server.StreamRepository"> <constructor-arg ref="config-provider" /> </bean> <bean id="dss-service-rpc-generic" class="ch.systemsx.cisd.openbis.dss.generic.server.api.v1.DssServiceRpcGeneric"> <constructor-arg ref="openBIS-service" /> <constructor-arg ref="plugin-tasks" /> <property name="downloadUrl" value="${download-url}"/> </bean> <bean id="data-store-rpc-service-generic" class="com.marathon.util.spring.StreamSupportingHttpInvokerServiceExporter"> <property name="service"> <bean class="org.springframework.aop.framework.ProxyFactoryBean"> <property name="proxyInterfaces"> <list> <value>ch.systemsx.cisd.openbis.dss.generic.shared.api.internal.authorization.IDssServiceRpcGenericInternal</value> </list> </property> <property name="interceptorNames"> <list> <value>rpc-authorization-advisor</value> </list> </property> <property name="target" ref="dss-service-rpc-generic"/> </bean> </property> <property name="serviceInterface" value="ch.systemsx.cisd.openbis.dss.generic.shared.api.v1.IDssServiceRpcGeneric" /> </bean> <bean id="rpc-name-server" class="ch.systemsx.cisd.openbis.common.api.server.RpcServiceNameServer" /> <bean id="data-store-rpc-name-server" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter"> <property name="service" ref="rpc-name-server" /> <property name="serviceInterface" value="ch.systemsx.cisd.common.api.IRpcServiceNameServer" /> </bean> <!-- // Service conversation client manager --> <bean id="data-store-service-conversation-client-manager" class="ch.systemsx.cisd.openbis.dss.generic.server.ServiceConversationClientManager"> <property name="dataStoreCode" value="${data-store-server-code}" /> <property name="applicationServerUrl" value="${server-url}" /> <property name="applicationServerTimeout" value="${server-timeout-in-minutes}" /> </bean> <bean id="data-store-service-conversation-client-manager-server" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter"> <property name="service" ref="data-store-service-conversation-client-manager" /> <property name="serviceInterface" value="ch.systemsx.cisd.openbis.common.conversation.manager.IServiceConversationClientManagerRemote" /> </bean> <!-- // Service conversation server manager --> <bean id="data-store-service-conversation-server-manager" class="ch.systemsx.cisd.openbis.dss.generic.server.ServiceConversationServerManager"> <property name="dataStoreService" ref="data-store-service" /> <property name="applicationServerUrl" value="${server-url}" /> <property name="applicationServerTimeout" value="${server-timeout-in-minutes}" /> </bean> <bean id="data-store-service-conversation-server-manager-server" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter"> <property name="service" ref="data-store-service-conversation-server-manager" /> <property name="serviceInterface" value="ch.systemsx.cisd.openbis.common.conversation.manager.IServiceConversationServerManagerRemote" /> </bean> <bean id="session-token-manager" class="ch.systemsx.cisd.openbis.dss.generic.server.SessionTokenManager"/> <bean id="data-source-provider" class="ch.systemsx.cisd.openbis.dss.generic.shared.DataSourceProvider" /> <bean id="config-provider" class="ch.systemsx.cisd.etlserver.ConfigProvider"/> <bean id="hierarchical-content-provider" class="ch.systemsx.cisd.openbis.dss.generic.shared.HierarchicalContentProvider"> <constructor-arg ref="openBIS-service" /> <constructor-arg ref="share-id-manager" /> <constructor-arg ref="config-provider" /> </bean> <bean id="objectMapper" class="ch.systemsx.cisd.openbis.generic.shared.api.json.GenericObjectMapper"> </bean> <!-- // This discovers on-the-fly all <code>org.springframework.aop.Advisor</code> implementations. --> <bean id="bean-post-processor" class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" /> <!-- // Authorization --> <bean id="rpc-authorization-advisor" class="ch.systemsx.cisd.openbis.dss.generic.server.DssServiceRpcAuthorizationAdvisor" /> <!-- // Logging --> <bean class="ch.systemsx.cisd.openbis.common.spring.LogAdvisor" /> <!-- // FTP server --> <!-- Adapts the openBIS users for the FTP server --> <bean id="adapted-ftp-user-manager" class="ch.systemsx.cisd.openbis.dss.generic.server.ftp.FtpUserManager"> <constructor-arg ref="etl-lims-service"/> </bean> <!-- Optionally starts an FTP server. --> <bean id="ftp-server" class="ch.systemsx.cisd.openbis.dss.generic.server.ftp.FtpServer" destroy-method="stop"> <constructor-arg ref="etl-lims-service"/> <constructor-arg ref="general-information-service"/> <constructor-arg ref="adapted-ftp-user-manager"/> <constructor-arg ref="configProperties" /> </bean> </beans>