root/trunk/components/server/resources/ome/services/services.xml

Revision 7857, 6.4 KB (checked in by jmoore, 2 weeks ago)

Nearly complete implementation of IDelete.queueDelete (See #2667)

  • Created ThreadPool for background processing (See #2734)
  • Added omero.threads.* section to etc/omero.properties
  • Added cancel() method to DeleteHandle with a simple state machine
  • Added CloseableServant interface to simplify session closing
  • Minor refactoring of DeleteBean
  • Property svn:keywords set to Id
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
3<!--
4#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5#
6# $Id$
7#
8# Copyright 2006 University of Dundee. All rights reserved.
9# Use is subject to license terms supplied in LICENSE.txt
10#
11#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
12-->
13
14<!--
15#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
16# Written by:  Josh Moore <josh.moore@gmx.de>
17#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
18-->
19
20<!--
21
22        Configuration for services.
23
24-->
25
26
27<beans>
28
29<!--
30  Aspects/Interceptors which catch "managed-" calls to our service methods
31  =======================================================================
32  Possibilities are: tracing, logging, security, transactions, etc.
33-->
34
35    <bean id="executorInterceptors" class="java.util.ArrayList">
36        <constructor-arg>
37            <list>
38                <value>serviceHandler</value>
39                <value>proxyHandler</value>
40                <value>transactionHandler</value>
41                <value>hibernateHandler</value>
42                <value>eventHandler</value>
43            </list>
44        </constructor-arg>
45    </bean>
46   
47    <bean id="selfManagingService" abstract="true"
48        class="org.springframework.aop.framework.ProxyFactoryBean">
49        <description>
50        A self managed service, which must take care to properly create
51        sessions and transactions before using any other services. This
52        can be achieved by properly using the Executor.Work interface.
53       
54        See the "executor" bean.
55        </description>
56        <property name="interceptorNames">
57            <list>
58                <value>serviceHandler</value>
59            </list>
60        </property>
61    </bean>
62   
63        <bean id="managedService" abstract="true"
64                class="org.springframework.aop.framework.ProxyFactoryBean">
65                <property name="interceptorNames">
66            <list>
67                <value>serviceHandler</value>
68                <value>proxyHandler</value>
69                <value>transactionHandler</value>
70                <value>hibernateHandler</value>
71                <value>eventHandler</value>
72            </list>
73                </property>
74        </bean>
75
76        <bean id="managedStatefulService" abstract="true"
77                class="org.springframework.aop.framework.ProxyFactoryBean">
78                <property name="interceptorNames">
79                        <list>
80                                <value>serviceHandler</value>
81                                <value>proxyHandler</value>
82                                <value>transactionHandler</value>
83                                <value>sessionHandler</value>
84                                <value>eventHandler</value>
85                        </list>
86                </property>
87        </bean>
88        <bean
89                       id="serviceHandler"
90                    class="ome.services.util.ServiceHandler"
91                lazy-init="true">
92                <constructor-arg index="0" ref="currentDetails"/>
93                <constructor-arg index="1" value="${omero.throttling.method_time.warn}"/>
94                <constructor-arg index="2" value="${omero.throttling.method_time.error}"/>
95        </bean>
96
97        <bean id="profile"
98                class="org.springframework.aop.interceptor.JamonPerformanceMonitorInterceptor"/>
99
100<!--
101  Service Levels
102  =======================================================================
103  Abstract definitions of services which can be used when configuring
104  concrete beans. Note: these Spring definitions can have a possibly
105  separate inheritance hierarchy to that defined in Java. When defining
106  a parent bean for a concrete service, be sure that all required properties
107  are (A) filled by the abstract Spring definition and (B) available on the
108  Java class.
109-->
110
111  <bean id="level1" abstract="true">
112    <property name="queryFactory"      ref="queryFactory"/>
113    <property name="sessionFactory"    ref="sessionFactory"/>
114  </bean>
115
116  <bean id="level2" abstract="true">
117    <property name="queryFactory"   ref="queryFactory"/>
118    <property name="updateService"      ref="internal-ome.api.IUpdate"/>
119    <property name="queryService"       ref="internal-ome.api.IQuery"/>
120    <property name="extendedMetadata" ref="extendedMetadata"/>
121    <property name="securitySystem" ref="securitySystem"/>
122  </bean>
123
124  <bean id="level3" abstract="true">
125    <property name="queryFactory"   ref="queryFactory"/>
126    <property name="pixelsService"  ref="internal-ome.api.IPixels"/>
127    <property name="pojosService"       ref="internal-ome.api.IPojos"/>
128  </bean>
129
130  <bean id="stateful" abstract="true" class="ome.services.AbstractStatefulBean">
131    <property name="queryService" ref="internal-ome.api.IQuery"/>
132    <property name="updateService" ref="internal-ome.api.IUpdate"/>
133    <property name="securitySystem" ref="securitySystem"/>
134  </bean>
135
136  <bean name="binary" abstract="true">
137    <property name="pixelsMetadata" ref="internal-ome.api.IPixels"/>
138    <property name="pixelsData"     ref="/OMERO/Pixels"/>
139  </bean>
140
141  <bean name="filesystem"  abstract="true">
142    <constructor-arg value="${omero.data.dir}"/>
143  </bean>
144
145<!--
146  Shared resources
147  =======================================================================
148-->
149
150  <bean id="executor" class="ome.services.util.Executor$Impl">
151    <constructor-arg ref="currentDetails"/>
152    <constructor-arg ref="sessionFactory"/>
153    <constructor-arg ref="executorInterceptors"/>
154    <constructor-arg ref="simpleJdbcTemplate"/>
155  </bean>
156
157  <bean id="queryFactory" class="ome.services.query.QueryFactory">
158    <constructor-arg>
159      <list>
160        <bean class="ome.services.query.ClassQuerySource"/>
161        <bean class="ome.services.query.StringQuerySource"/>
162      </list>
163    </constructor-arg>
164  </bean>
165
166  <bean id="threadPool" class="ome.services.scheduler.ThreadPool">
167    <constructor-arg index="0" value="${omero.threads.min_threads}"/>
168    <constructor-arg index="1" value="${omero.threads.max_threads}"/>
169    <constructor-arg index="2" value="${omero.threads.idle_timeout}"/>
170  </bean>
171
172  <bean id="taskExecutor" factory-bean="threadPool" factory-method="getExecutor"/>
173
174  <bean id="scheduler" class="ome.services.scheduler.SchedulerFactoryBean"
175    depends-on="sessionManager">
176    <!-- In order to slow down the scheduler background tasks, we are now
177    starting it active but waiting on session-manager to accept logins,
178    then it can start processing. Further, the scheduler will not be started
179    until it receives a ContextRefreshedEvent, and will then load all the
180    triggers it can find.  -->
181    <property name="autoStartup" value="false"/>
182    <property name="schedulerName" value="OMERO.scheduler"/>
183    <property name="taskExecutor" ref="taskExecutor"/>
184  </bean>
185
186</beans>
Note: See TracBrowser for help on using the browser.

1.2.1-PRO © 2008-2009 agile42 all rights reserved (this page was served in: 0.67395 sec.)