Changeset 6396 for SRUAggregator


Ignore:
Timestamp:
07/17/15 09:57:49 (9 years ago)
Author:
emanuel.dima@uni-tuebingen.de
Message:
  1. beta-53: accept any SSL connection to centres registry
Location:
SRUAggregator/trunk
Files:
1 added
9 edited

Legend:

Unmodified
Added
Removed
  • SRUAggregator/trunk/aggregator_devel.yml

    r6254 r6396  
    88
    99  SCAN_MAX_DEPTH: 1 # recommended 3
    10   SCAN_TASK_INITIAL_DELAY: 2
     10  SCAN_TASK_INITIAL_DELAY: 0
    1111  SCAN_TASK_INTERVAL: 12
    1212  SCAN_TASK_TIME_UNIT: HOURS
  • SRUAggregator/trunk/pom.xml

    r6395 r6396  
    88        <groupId>eu.clarin.sru.fcs</groupId>
    99        <artifactId>aggregator</artifactId>
    10         <version>2.0.0-beta-52</version>
     10        <version>2.0.0-beta-53</version>
    1111        <name>FCS Aggregator</name>
    1212
     
    114114                        <type>jar</type>
    115115                </dependency>
    116         </dependencies>
     116
     117                <dependency>
     118                        <groupId>org.apache.httpcomponents</groupId>
     119                        <artifactId>httpclient</artifactId>
     120                        <version>4.3.6</version>
     121                        <exclusions>
     122                                <exclusion>
     123                                        <groupId>commons-codec</groupId>
     124                                        <artifactId>commons-codec</artifactId>
     125                                </exclusion>
     126                        </exclusions>
     127                </dependency>
     128                <dependency>
     129                        <groupId>com.sun.jersey.contribs</groupId>
     130                        <artifactId>jersey-apache-client4</artifactId>
     131                        <version>1.18.1</version>
     132                        <exclusions>
     133                                <exclusion>
     134                                        <groupId>org.apache.httpcomponents</groupId>
     135                                        <artifactId>httpclient</artifactId>
     136                                </exclusion>
     137                        </exclusions>
     138                </dependency>
     139        </dependencies>
    117140
    118141        <build>
  • SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/scan/CenterRegistryLive.java

    r5894 r6396  
    11package eu.clarin.sru.fcs.aggregator.scan;
    22
    3 import eu.clarin.sru.fcs.aggregator.scan.EndpointFilter;
     3import com.sun.jersey.api.client.Client;
    44import eu.clarin.weblicht.bindings.cmd.StringBinding;
    55import eu.clarin.weblicht.bindings.cmd.cp.CenterExtendedInformation;
     
    2424
    2525        private static final Logger LOGGER = Logger.getLogger(CenterRegistryLive.class.getName());
     26
     27    private static final Integer CONNECT_TIMEOUT = 3000;
     28    private static final Integer READ_TIMEOUT = 10000;
     29
    2630        private String centerRegistryUrl;
    2731        private boolean hasInstitutionsLoaded = false;
    2832        private List<Institution> centers = new ArrayList<Institution>();
    2933        private final EndpointFilter filter;
     34    private final Client client;
    3035
    3136        public CenterRegistryLive(String centerRegistryUrl, EndpointFilter filter) {
     
    3338                this.centerRegistryUrl = centerRegistryUrl;
    3439                this.filter = filter;
     40        this.client = ClientFactory.create(CONNECT_TIMEOUT, READ_TIMEOUT);
    3541        }
    3642
     
    4248        @Override
    4349        public void loadCQLInstitutions() {
    44 
    4550                if (hasInstitutionsLoaded) {
    4651                        return;
     
    4853                hasInstitutionsLoaded = true;
    4954                URI url = URI.create(centerRegistryUrl);
    50                 try (CenterRegistryConnector connector = new CenterRegistryConnector(url, 30000)) {
     55                try (CenterRegistryConnector connector = new CenterRegistryConnector(client, url)) {
    5156                        List<Center> regCenters = connector.retrieveCenters();
    5257                        for (Center regCenter : regCenters) {
  • SRUAggregator/trunk/src/main/java/eu/clarin/sru/fcs/aggregator/scan/ScanCrawlTask.java

    r6153 r6396  
    7777                        Corpora corpora = scanCrawler.crawl();
    7878
    79                         corporaAtom.set(corpora);
    80                         scanStatisticsAtom.set(scanCrawler.getStatistics());
    81                         searchStatisticsAtom.set(new Statistics()); // reset search stats
    8279                        long time = System.currentTimeMillis() - time0;
    83 
    8480                        log.info("ScanCrawlTask: crawl done in {}s, number of root corpora: {}",
    8581                                        time / 1000., corpora.getCorpora().size());
    8682
    8783                        if (corpora.getCorpora().isEmpty()) {
    88                                 log.warn("ScanCrawlTask: Skipped writing to disk (no corpora). Finished.");
     84                                log.warn("ScanCrawlTask: No corpora: skipped updating stats; skipped writing to disk.");
    8985                        } else {
     86                                corporaAtom.set(corpora);
     87                                scanStatisticsAtom.set(scanCrawler.getStatistics());
     88                                searchStatisticsAtom.set(new Statistics()); // reset search stats
     89
    9090                                dump(corpora, cachedCorpora, oldCachedCorpora);
    9191                                log.info("ScanCrawlTask: wrote to disk, finished");
  • SRUAggregator/trunk/src/main/resources/assets/js/components.js

    r6395 r6396  
    99window.MyReact = {};
    1010
    11 var JQuerySlide = React.createClass({displayName: "JQuerySlide",
     11var JQuerySlide = React.createClass({displayName: 'JQuerySlide',
    1212        componentWillEnter: function(callback){
    1313                var el = jQuery(this.getDOMNode());
     
    3030window.MyReact.JQuerySlide = JQuerySlide;
    3131 
    32 var JQueryFade = React.createClass({displayName: "JQueryFade",
     32var JQueryFade = React.createClass({displayName: 'JQueryFade',
    3333        componentWillEnter: function(callback){
    3434                var el = jQuery(this.getDOMNode());
     
    4545window.MyReact.JQueryFade = JQueryFade;
    4646
    47 window.MyReact.ErrorPane = React.createClass({displayName: "ErrorPane",
     47window.MyReact.ErrorPane = React.createClass({displayName: 'ErrorPane',
    4848        propTypes: {
    4949                errorMessages: PT.array.isRequired,
     
    8282        renderModal: function(title, content) {
    8383                return (
    84                         React.createElement("div", {onClick: this.handleClick, className: "modal fade", role: "dialog", "aria-hidden": "true"},
     84                        React.createElement("div", {onClick: this.handleClick, className: "modal fade", role: "dialog", 'aria-hidden': "true"},
    8585                                React.createElement("div", {className: "modal-dialog"},
    8686                                        React.createElement("div", {className: "modal-content"},
    8787                                                React.createElement("div", {className: "modal-header"},
    88                                                         React.createElement("button", {type: "button", className: "close", "data-dismiss": "modal"},
    89                                                                 React.createElement("span", {"aria-hidden": "true"}, "×"),
     88                                                        React.createElement("button", {type: "button", className: "close", 'data-dismiss': "modal"},
     89                                                                React.createElement("span", {'aria-hidden': "true"}, "×"),
    9090                                                                React.createElement("span", {className: "sr-only"}, "Close")
    9191                                                        ),
     
    9696                                                ),
    9797                                                React.createElement("div", {className: "modal-footer"},
    98                                                         React.createElement("button", {type: "button", className: "btn btn-default", "data-dismiss": "modal"}, "Close")
     98                                                        React.createElement("button", {type: "button", className: "btn btn-default", 'data-dismiss': "modal"}, "Close")
    9999                                                )
    100100                                        )
     
    106106
    107107
    108 window.MyReact.Modal = React.createClass({displayName: "Modal",
     108window.MyReact.Modal = React.createClass({displayName: 'Modal',
    109109        propTypes: {
    110110                title: PT.object.isRequired,
     
    121121        render: function() {
    122122                return (
    123                         React.createElement("div", {onClick: this.handleClick, className: "modal fade", role: "dialog", "aria-hidden": "true"},
     123                        React.createElement("div", {onClick: this.handleClick, className: "modal fade", role: "dialog", 'aria-hidden': "true"},
    124124                                React.createElement("div", {className: "modal-dialog"},
    125125                                        React.createElement("div", {className: "modal-content"},
    126126                                                React.createElement("div", {className: "modal-header"},
    127                                                         React.createElement("button", {type: "button", className: "close", "data-dismiss": "modal"},
    128                                                                 React.createElement("span", {"aria-hidden": "true"}, "×"),
     127                                                        React.createElement("button", {type: "button", className: "close", 'data-dismiss': "modal"},
     128                                                                React.createElement("span", {'aria-hidden': "true"}, "×"),
    129129                                                                React.createElement("span", {className: "sr-only"}, "Close")
    130130                                                        ),
     
    135135                                                ),
    136136                                                React.createElement("div", {className: "modal-footer"},
    137                                                         React.createElement("button", {type: "button", className: "btn btn-default", "data-dismiss": "modal"}, "Close")
     137                                                        React.createElement("button", {type: "button", className: "btn btn-default", 'data-dismiss': "modal"}, "Close")
    138138                                                )
    139139                                        )
     
    182182};
    183183
    184 window.MyReact.Popover = React.createClass({displayName: "Popover",
     184window.MyReact.Popover = React.createClass({displayName: 'Popover',
    185185        propTypes: {
    186186                placement: PT.string,
     
    202202});
    203203
    204 window.MyReact.InfoPopover = React.createClass({displayName: "InfoPopover",
     204window.MyReact.InfoPopover = React.createClass({displayName: 'InfoPopover',
    205205        propTypes: {
    206206                title: PT.string.isRequired,
     
    221221
    222222
    223 window.MyReact.Panel = React.createClass({displayName: "Panel",
     223window.MyReact.Panel = React.createClass({displayName: 'Panel',
    224224        propTypes: {
    225225                title:PT.object.isRequired,
     
    258258});
    259259
    260 window.MyReact.PanelGroup = React.createClass({displayName: "PanelGroup",
     260window.MyReact.PanelGroup = React.createClass({displayName: 'PanelGroup',
    261261        render: function() {
    262262                return  React.createElement("div", {className: "panel-group"}, " ", this.props.children, " ");
  • SRUAggregator/trunk/src/main/resources/assets/js/corpora.js

    r6395 r6396  
    1313/////////////////////////////////
    1414
    15 var CorpusView = window.MyAggregator.CorpusView = React.createClass({displayName: "CorpusView",
     15var CorpusView = window.MyAggregator.CorpusView = React.createClass({displayName: 'CorpusView',
    1616        propTypes: {
    1717                corpora: PT.object.isRequired,
     
    123123                return  React.createElement("button", {className: "btn btn-default"},
    124124                                         corpus.selected ?
    125                                                 React.createElement("span", {className: "glyphicon glyphicon-check", "aria-hidden": "true"}) :
    126                                                 React.createElement("span", {className: "glyphicon glyphicon-unchecked", "aria-hidden": "true"})
     125                                                React.createElement("span", {className: "glyphicon glyphicon-check", 'aria-hidden': "true"}) :
     126                                                React.createElement("span", {className: "glyphicon glyphicon-unchecked", 'aria-hidden': "true"})
    127127                                       
    128128                                );
     
    136136                                        React.createElement("a", null,
    137137                                                corpus.expanded ?
    138                                                         React.createElement("span", {className: "glyphicon glyphicon-minus", "aria-hidden": "true"}):
    139                                                         React.createElement("span", {className: "glyphicon glyphicon-plus", "aria-hidden": "true"}),
     138                                                        React.createElement("span", {className: "glyphicon glyphicon-minus", 'aria-hidden': "true"}):
     139                                                        React.createElement("span", {className: "glyphicon glyphicon-plus", 'aria-hidden': "true"}),
    140140                                               
    141141                                                corpus.expanded ? " Collapse ":" Expand ", " (", corpus.subCorpora.length, " subcollections)"
     
    245245});
    246246
    247 var SearchCorpusBox = React.createClass({displayName: "SearchCorpusBox",
     247var SearchCorpusBox = React.createClass({displayName: 'SearchCorpusBox',
    248248        propTypes: {
    249249                search: PT.func.isRequired,
  • SRUAggregator/trunk/src/main/resources/assets/js/main.js

    r6395 r6396  
    33"use strict";
    44
    5 var VERSION = window.MyAggregator.VERSION = "v.2.0.0-beta-52";
     5var VERSION = window.MyAggregator.VERSION = "v.2.0.0-beta-53";
    66
    77var URLROOT = window.MyAggregator.URLROOT =
     
    3636*/
    3737
    38 var Main = React.createClass({displayName: "Main",
     38var Main = React.createClass({displayName: 'Main',
    3939        componentWillMount: function() {
    4040                routeFromLocation.bind(this)();
     
    215215
    216216
    217 var StatisticsPage = React.createClass({displayName: "StatisticsPage",
     217var StatisticsPage = React.createClass({displayName: 'StatisticsPage',
    218218        propTypes: {
    219219                ajax: PT.func.isRequired,
     
    400400});
    401401
    402 var HelpPage = React.createClass({displayName: "HelpPage",
     402var HelpPage = React.createClass({displayName: 'HelpPage',
    403403        openHelpDesk: function() {
    404404                window.open('http://support.clarin-d.de/mail/form.php?queue=Aggregator&lang=en',
     
    444444                                        "or if want to send a feedback, you can write to Clarin-D helpdesk: "),
    445445                                        React.createElement("button", {type: "button", className: "btn btn-default btn-lg", onClick: this.openHelpDesk},
    446                                                 React.createElement("span", {className: "glyphicon glyphicon-question-sign", "aria-hidden": "true"}),
     446                                                React.createElement("span", {className: "glyphicon glyphicon-question-sign", 'aria-hidden': "true"}),
    447447                                                " HelpDesk"
    448448                                        )
     
    453453});
    454454
    455 var AboutPage = React.createClass({displayName: "AboutPage",
     455var AboutPage = React.createClass({displayName: 'AboutPage',
    456456        render: function() {
    457457                return  React.createElement("div", null,
     
    471471                                                React.createElement("h3", null, "Statistics"),
    472472                                                React.createElement("button", {type: "button", className: "btn btn-default btn-lg", onClick: function() {main.toStatistics(true);}},
    473                                                         React.createElement("span", {className: "glyphicon glyphicon-cog", "aria-hidden": "true"}, " "),
     473                                                        React.createElement("span", {className: "glyphicon glyphicon-cog", 'aria-hidden': "true"}, " "),
    474474                                                        "View server log"
    475475                                                )
     
    545545});
    546546
    547 var Footer = React.createClass({displayName: "Footer",
     547var Footer = React.createClass({displayName: 'Footer',
    548548        toAbout: function(e) {
    549549                main.toAbout(true);
     
    578578});
    579579
    580 var EmbeddedFooter = React.createClass({displayName: "EmbeddedFooter",
     580var EmbeddedFooter = React.createClass({displayName: 'EmbeddedFooter',
    581581        render: function() {
    582582                return (
  • SRUAggregator/trunk/src/main/resources/assets/js/main.jsx

    r6395 r6396  
    33"use strict";
    44
    5 var VERSION = window.MyAggregator.VERSION = "v.2.0.0-beta-52";
     5var VERSION = window.MyAggregator.VERSION = "v.2.0.0-beta-53";
    66
    77var URLROOT = window.MyAggregator.URLROOT =
  • SRUAggregator/trunk/src/main/resources/assets/js/search.js

    r6395 r6396  
    209209
    210210
    211 var AggregatorPage = window.MyAggregator.AggregatorPage = React.createClass({displayName: "AggregatorPage",
     211var AggregatorPage = window.MyAggregator.AggregatorPage = React.createClass({displayName: 'AggregatorPage',
    212212        propTypes: {
    213213                ajax: PT.func.isRequired,
     
    563563                                                                        ),
    564564                                                                        React.createElement("button", {className: "form-control btn btn-default",
    565                                                                                         "aria-expanded": "false", "data-toggle": "dropdown"},
     565                                                                                        'aria-expanded': "false", 'data-toggle': "dropdown"},
    566566                                                                                layer.name, " ", React.createElement("span", {className: "caret"})
    567567                                                                        )
     
    629629/////////////////////////////////
    630630
    631 var LanguageSelector = React.createClass({displayName: "LanguageSelector",
     631var LanguageSelector = React.createClass({displayName: 'LanguageSelector',
    632632        propTypes: {
    633633                anyLanguage: PT.array.isRequired,
     
    821821                return (
    822822                        React.createElement("div", {className: "dropdown"},
    823                                 React.createElement("button", {className: "btn btn-flat", "aria-expanded": "false", "data-toggle": "dropdown"},
    824                                         React.createElement("span", {className: "glyphicon glyphicon-download-alt", "aria-hidden": "true"}),
     823                                React.createElement("button", {className: "btn btn-flat", 'aria-expanded': "false", 'data-toggle': "dropdown"},
     824                                        React.createElement("span", {className: "glyphicon glyphicon-download-alt", 'aria-hidden': "true"}),
    825825                                        " ", " Download ", " ",
    826826                                        React.createElement("span", {className: "caret"})
     
    843843                return (
    844844                        React.createElement("div", {className: "dropdown"},
    845                                 React.createElement("button", {className: "btn btn-flat", "aria-expanded": "false", "data-toggle": "dropdown"},
    846                                         React.createElement("span", {className: "glyphicon glyphicon-export", "aria-hidden": "true"}),
     845                                React.createElement("button", {className: "btn btn-flat", 'aria-expanded': "false", 'data-toggle': "dropdown"},
     846                                        React.createElement("span", {className: "glyphicon glyphicon-export", 'aria-hidden': "true"}),
    847847                                        " ", " Use Weblicht ", " ",
    848848                                        React.createElement("span", {className: "caret"})
     
    863863};
    864864
    865 var ZoomedResult = React.createClass({displayName: "ZoomedResult",
     865var ZoomedResult = React.createClass({displayName: 'ZoomedResult',
    866866        propTypes: {
    867867                corpusHit: PT.object,
     
    909909                        return React.createElement("span", {style: {fontStyle:'italic'}}, "No other results available for this query");
    910910                return  React.createElement("button", {className: "btn btn-default", onClick: this.nextResults},
    911                                         React.createElement("span", {className: "glyphicon glyphicon-option-horizontal", "aria-hidden": "true"}), " More Results"
     911                                        React.createElement("span", {className: "glyphicon glyphicon-option-horizontal", 'aria-hidden': "true"}), " More Results"
    912912                                );
    913913        },
     
    969969});
    970970
    971 var Results = React.createClass({displayName: "Results",
     971var Results = React.createClass({displayName: 'Results',
    972972        propTypes: {
    973973                collhits: PT.object.isRequired,
     
    10171017                                                React.createElement("div", {className: "progress", style: {marginBottom:10}},
    10181018                                                        React.createElement("div", {className: "progress-bar progress-bar-striped active", role: "progressbar",
    1019                                                                 "aria-valuenow": percents, "aria-valuemin": "0", "aria-valuemax": "100", style: styleperc}),
     1019                                                                'aria-valuenow': percents, 'aria-valuemin': "0", 'aria-valuemax': "100", style: styleperc}),
    10201020                                                        percents > 2 ? false :
    10211021                                                                React.createElement("div", {className: "progress-bar progress-bar-striped active", role: "progressbar",
    1022                                                                         "aria-valuenow": "100", "aria-valuemin": "0", "aria-valuemax": "100",
     1022                                                                        'aria-valuenow': "100", 'aria-valuemin': "0", 'aria-valuemax': "100",
    10231023                                                                        style: {width: '100%', backgroundColor:'#888'}})
    10241024                                                       
Note: See TracChangeset for help on using the changeset viewer.