source: trunk/src/core/core-extensions.xml @ 7312

Last change on this file since 7312 was 6432, checked in by Nicklas Nordborg, 10 years ago

References #1796: Improve support for jobs running on external servers

Added an extension point (net.sf.basedb.core.signal.job) and ExtensionSignalTransporter that uses this extension point to send signals to jobs. The web interface has been updated to send 'ABORT' and 'STATUS' signals also to jobs in the 'WAITING' state.

The 'WAITING' state is somewhat redefined so that external jobs can use this state to indicate that the job has actually been queued. This means that jobs are not put in 'WAITING' state as soon as parameters has been added to it, but Job.setScheduled() must be called first. This change probably affect a lot of the test code only (must check this), but not regular usage with the request/response api.

Added externalId property to job so that external jobs have a place to store an identifier.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Date Id
File size: 11.4 KB
Line 
1<?xml version="1.0" encoding="UTF-8" ?>
2<!--
3  $Id: core-extensions.xml 6432 2014-03-14 07:23:38Z nicklas $
4
5  Copyright (C) Nicklas Nordborg
6
7  This file is part of BASE - BioArray Software Environment.
8  Available at http://base.thep.lu.se/
9
10  BASE is free software; you can redistribute it and/or
11  modify it under the terms of the GNU General Public License
12  as published by the Free Software Foundation; either version 3
13  of the License, or (at your option) any later version.
14
15  BASE is distributed in the hope that it will be useful,
16  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  GNU General Public License for more details.
19
20  You should have received a copy of the GNU General Public License
21  along with BASE. If not, see <http://www.gnu.org/licenses/>.
22-->
23<extensions
24  xmlns="http://base.thep.lu.se/extensions.xsd"
25  >
26  <about>
27    <version></version>
28    <name>Core extensions points and extensions</name>
29    <description>
30      This file defines core extension points and extensions.
31      Core extensions are always loaded when BASE starts up and
32      are available in all context, no matter if BASE is running
33      as a job agent, web server, etc.
34    </description>
35    <copyright>BASE development team</copyright>
36    <email>basedb-users@lists.sourceforge.net</email>
37    <url>http://base.thep.lu.se/</url>
38  </about>
39 
40  <extension-point
41    id="net.sf.basedb.core.authentication-manager"
42    >
43    <action-class>net.sf.basedb.core.authentication.AuthenticationManager</action-class>
44    <name>Authentication manager</name>
45    <description>
46      Extension point for authentication of users when logging in to BASE.
47      Installed authentication managers are invoked in the index order.
48      An authentication manager have three possible options:
49      1) Decide that the login/password is valid and return an
50         AuthenticationInformation object. No further authentication managers
51         are invoked and the user is logged in to BASE.
52      2) Decide that the login/password is invalid and throw an
53         Exception. No further authentication managers
54         are invoked and the user is NOT logged in to BASE.
55      3) Decide that it doesn't know if the login/password is valid or not
56         and return null. The next authentication manager is invoked.
57         If this was the last authentication manager, internal authentication
58         is used.
59    </description>
60  </extension-point>
61 
62  <extension-point
63    id="net.sf.basedb.core.uri.connection-manager"
64    >
65    <action-class>net.sf.basedb.util.uri.ConnectionManagerFactory</action-class>
66    <name>Connection manager</name>
67    <description>
68      Extension point for external file support. A connection manager is
69      something that knows how to access an external file pointed to by an
70      URI. Actions are ConnectionManagerFactory instances and are typically
71      used in two ways.
72      1) In a single-file context when getting metadata or the contents of
73      a single File item. The ClientContext object is populated with an active
74      DbControl and the current item is the file.
75      2) A standalone context with the external reference as an URI. No
76      DbControl is used and no current item.
77      Extensions to this extension point must not return more than one
78      factory since we need to associate each factory with the id
79      of the extension.
80    </description>
81  </extension-point>
82 
83  <extension-point 
84    id="net.sf.basedb.core.filehandler.validator"
85    >
86    <action-class>net.sf.basedb.util.fileset.ValidationAction</action-class>
87    <name>File set validators</name>
88    <description>
89      Extension point for validating and extracting metadata from files in a FileSet.
90      Extensions can be invoked in three different contexts:
91      1) Validation of a file set: The current item in the context is the owner of
92        the file set (eg. the FileStoreEnabled item).
93      2) Removing a file from a file set: The current item in the context
94        is the owner of the file set (eg. the FileStoreEnabled item). The
95        extension is supposed to remove metadata that was extracted from the
96        given file.
97      3) Checking if a given data file type can be validated or not: The current
98        item in the context is a DataFileType and the core will only check if
99        the action factory returns TRUE from the prepareContext method. The
100        extensions will not actually be invoked.
101    </description>
102  </extension-point>
103 
104  <extension-point 
105    id="net.sf.basedb.util.overview.loader">
106    <action-class>net.sf.basedb.util.overview.extensions.ChildNodeLoaderAction</action-class>
107    <name>Item overview - loader</name>
108    <description>
109      Extension point for extending the item overview by
110      loading child nodes to existing nodes. Each registered action factory
111      is asked to create child items for every node in the item overview.
112      The ClientContext is populated with an active DbControl and the current
113      item is the parent node for which child nodes should be loaded.
114    </description>
115  </extension-point>
116
117  <extension-point 
118    id="net.sf.basedb.util.overview.validator">
119    <action-class>net.sf.basedb.util.overview.extensions.NodeValidatorAction</action-class>
120    <name>Item overview - validator</name>
121    <description>
122      Extension point for adding validation checks to the item overview. Each registered
123      action factory is asked to create a validator for every node in the item overview.
124      The ClientContext is populated with an active DbControl and the key used by the
125      validator factory to create the validators. Typically, this is a value from
126      the Item enumeration (eg. Item.SAMPLE, etc).
127    </description>
128  </extension-point>
129 
130  <extension-point 
131    id="net.sf.basedb.util.overview.validationrule">
132    <action-class>net.sf.basedb.util.overview.extensions.ValidationRuleAction</action-class>
133    <name>Item overview - validation rule</name>
134    <description>
135      Extension point for adding validation rules to the item overview. This extension
136      point is used in the "Validation options" dialog and allows a user to set the
137      severity level for each registered rule. The ClientContext is populated with
138      an active DbControl and the current item is the GenericOverview that is currently
139      in use.
140    </description>
141  </extension-point>
142 
143  <extension-point 
144    id="net.sf.basedb.core.log-manager">
145    <action-class>net.sf.basedb.core.log.LogManagerFactory</action-class>
146    <name>Log managers</name>
147    <description>
148      Extension point for logging changes that are made to items. This
149      extension point is invoked for every access and the ClientContext
150      is populated with the current SessionControl.
151    </description>
152  </extension-point>
153 
154  <extension-point 
155    id="net.sf.basedb.core.signal.job">
156    <action-class>net.sf.basedb.core.signal.SignalHandler</action-class>
157    <name>Job signal handler</name>
158    <description>
159      Extension point for sending signals to jobs. Intended for jobs
160      running on external servers outside of direct control for BASE.
161      The ClientContext is populated with the current SessionControl and
162      Job item, and the "signal-uri" attribute is set to the URI registered
163      with Job.setSignalTransporter. It is recommended that implementations
164      return quickly. If the action takes a long time the handler should spawn
165      a new thread.
166    </description>
167  </extension-point>
168 
169  <extension 
170    id="net.sf.basedb.core.uri.http-connection-manager"
171    extends="net.sf.basedb.core.uri.connection-manager"
172    >
173    <about>
174      <name>HTTP(s) connection manager</name>
175      <description>
176        Provides support for regular HTTP and HTTPS including Basic
177        and Digest authentication as well as server- and client-side
178        certificates. Auto-detection matches all URI:s with 'http'
179        or 'https' scheme.
180      </description>
181    </about>
182    <index>1</index>
183    <action-factory>
184      <factory-class>net.sf.basedb.util.uri.http.HttpConnectionManagerActionFactory</factory-class>
185    </action-factory>
186  </extension>
187 
188  <extension 
189    id="net.sf.basedb.util.affymetrix.cel-validator"
190    extends="net.sf.basedb.core.filehandler.validator"
191    >
192    <about>
193      <name>CEL file validator</name>
194      <description>
195        Validator and metadata extractor implementation for Affymetrix CEL files.
196        The validation is done by trying to open the file with the Affymetrix
197        Fusion SDK. If this was successful some metadata information is extracted
198        from the headers including chip type and algorithm parameters. The number
199        of spots for the raw bioassay is set to the number of cells in the file.
200      </description>
201    </about>
202    <index>1</index>
203    <action-factory>
204      <factory-class>net.sf.basedb.util.affymetrix.CelValidationFactory</factory-class>
205    </action-factory>
206  </extension>
207
208  <extension 
209    id="net.sf.basedb.util.affymetrix.cdf-validator"
210    extends="net.sf.basedb.core.filehandler.validator"
211    >
212    <about>
213      <name>CDF file validator</name>
214      <description>
215        Validator and metadata extractor implementation for Affymetrix CDF files.
216        The validation is done by trying to open the file with the Affymetrix
217        Fusion SDK. If this was successful some metadata information is extracted
218        from the headers including
219       
220        chip type and algoritm parameters. The number
221        of spots for the raw bioassay is set to the number of cells in the file.
222      </description>
223    </about>
224    <index>1</index>
225    <action-factory>
226      <factory-class>net.sf.basedb.util.affymetrix.CdfValidationFactory</factory-class>
227    </action-factory>
228  </extension>
229
230  <extension 
231    id="net.sf.basedb.util.gtf.gtf-validator"
232    extends="net.sf.basedb.core.filehandler.validator"
233    >
234    <about>
235      <name>GTF file validator</name>
236      <description>
237        Validator for GTF reference files. The validation checks that
238        the first few lines follow the GTF specification.
239        See http://mblab.wustl.edu/GTF22.html
240      </description>
241    </about>
242    <index>1</index>
243    <action-factory>
244      <factory-class>net.sf.basedb.util.gtf.GtfValidationFactory</factory-class>
245    </action-factory>
246  </extension>
247
248  <extension 
249    id="net.sf.basedb.core.db-log-manager"
250    extends="net.sf.basedb.core.log-manager"
251    >
252    <about>
253      <name>Database log manager</name>
254      <description>
255        Information about changes to items are logged in the
256        database. Some configuration options can be set in base.config.
257      </description>
258    </about>
259    <index>1</index>
260    <action-factory>
261      <factory-class>net.sf.basedb.core.log.db.DbLogManagerFactory</factory-class>
262    </action-factory>
263  </extension>
264 
265  <extension 
266    id="net.sf.basedb.core.authentication.old-auth-manager"
267    extends="net.sf.basedb.core.authentication-manager"
268    >
269    <about>
270      <name>Old authentication manager</name>
271      <description>
272        Wrapper implementation for supporting the old external
273        authentication style. The implemention is only enabled if
274        the 'auth.driver' settings exists in 'base.config'.
275      </description>
276    </about>
277    <index>999</index>
278    <action-factory>
279      <factory-class>net.sf.basedb.core.authentication.OldAuthenticationWrapperFactory</factory-class>
280    </action-factory>
281  </extension>
282
283  <!--
284  <extension
285    id="net.sf.basedb.core.filehandler.cdf-validator"
286    extends="net.sf.basedb.core.filehandler.affymetrix.cdf"
287    >
288    <about>
289      <name>CDF file validator</name>
290      <description>
291        Validator and metadata extractor implementation for Affymetrix CDF files.
292        The validation is done by trying to open the file with the Affymetrix
293        Fusion SDK. If this was successful the number of features for the array design
294        is set to the number of probesets in the file.
295      </description>
296    </about>
297    <index>1</index>
298    <action-factory>
299      <factory-class>net.sf.basedb.util.extensions.debug.BeanActionFactory</factory-class>
300      <parameters>
301        <beanClassName>net.sf.basedb.core.filehandler.CdfFileHandler</beanClassName>
302      </parameters>
303    </action-factory>
304  </extension>
305  -->
306</extensions>
Note: See TracBrowser for help on using the repository browser.