Changeset 6177 for SRUAggregator
- Timestamp:
- 04/30/15 10:44:12 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/app/Aggregator.java
r6153 r6177 40 40 import org.slf4j.LoggerFactory; 41 41 42 /** 43 * Main component of the Aggregator application intended to provide users access 44 * to CLARIN-FCS resources. 45 * 46 * The webapp base URL corresponds to the default behavior of displaying the 42 /** ---- FCS AGGREGATOR OVERVIEW ---- 43 * 44 * The Aggregator is intended to provide users access to CLARIN-FCS resources. 45 * The app has two components, the server (this Java code) and the client (HTML, JS) 46 * 47 * The server is built on Java with Dropwizard and has the following functions: 48 * - it gets requests from the user-agent (browser) for html, css, js files 49 * and serves them. This is done automatically by Dropwizard. 50 * - it gets REST requests from the client (the JS code in browser) 51 * and serves them. See the RestService class 52 * - using an executor service, it scans periodically for FCS endpoints and 53 * gathers informations about the corpora stored at each one. See the scan 54 * package and ScanCrawl class 55 * - when prompted by the user, through a REST call, it searches the corpora 56 * by sending requests to all the appropriate endpoints. See the search package 57 * and especially the Search class. 58 * Note: because sending too many concurrent requests to the FCS endpoints is 59 * considered poor manners, the communication with the endpoints 60 * is done by the ThrottledClient class, which queues the requests 61 * if necessary. 62 * 63 * The client is a javascript React + bootstrap application running in the browser. 64 * It displays the user interface and communicates with the server passing the 65 * appropriate requests from the user as REST calls. The data format is JSON. 66 * 67 * The base URL corresponds to the default behavior of displaying the 47 68 * main aggregator page, where the user can enter query, select the resources of 48 69 * CQL endpoints (as specified in the Clarin center registry), and search in … … 50 71 * all the endpoints root resources are selected. 51 72 * 52 * If invoked with 'x-aggregation-context' and 'query' parameter, the aggregator53 * will pre-select provided resources and fill in the query field. This54 * mechanism is currently used by VLO.73 * If invoked by a POST request with 'x-aggregation-context' and 74 * 'query' parameters, the aggregator will pre-select provided resources and 75 * fill in the query field. This mechanism is currently used by VLO. 55 76 * 56 77 * Example: POST … … 59 80 * {"http://fedora.clarin-d.uni-saarland.de/sru/":["hdl:11858/00-246C-0000-0008-5F2A-0"]} 60 81 * 61 * If the Aggregator web page has the URL query string parameter 'mode' 62 * set to the string 'search', and the 'query' parameter is set, 63 * then the aggregator search results for this query are immediately displayed 64 * (i.e. users don't need to click 'search' in the aggregator page). 65 * This feature has been requested initially by Martin Wynne from CLARIN ERIC 82 * If the URL query string parameter 'mode' is set to the string 'search', 83 * and if the 'query' parameter is set, then the aggregator search results for 84 * this query are immediately displayed (i.e. users don't need to click 85 * 'search' in the aggregator page). This feature has been requested initially 86 * by Martin Wynne from CLARIN ERIC 87 * 88 * ---- Things Still To Be Done or To Be Considered ---- 89 * 90 * - Phonetic search 91 * - Export search results to personal workspace using oauth 92 * - Websockets instead of clients polling the server 93 * - When having multiple hits in the same result, 94 * show the hit in multiple rows, linked visually 95 * - Optimise page load 96 * - Expand parents of x-aggregator-context selected corpus 97 */ 98 99 /** 100 * This is the main class of the Aggregator, caring about initialization 101 * and global access to common data. 66 102 * 67 103 * @author Yana Panchenko 68 104 * @author edima 69 *70 * TODO: add some basic docs71 *72 * TODO: Export search results to personal workspace using oauth73 *74 * TODO: websockets75 *76 * TODO: show multiple hits on the same result in multiple rows, linked visually77 *78 * TODO: optimise page load79 *80 * TODO: test it in IE, other browsers81 *82 * TODO: expand parents of x-aggregator-context selected corpus83 *84 105 */ 85 106 public class Aggregator extends Application<AggregatorConfiguration> {
Note: See TracChangeset
for help on using the changeset viewer.