private void collectCountFromImexService( ServiceType service, String query, PsicquicCountResults results, PsicquicSimpleClient client) { final String imexQuery = createImexQuery(query); results.setImex(true); try { long count = client.countByQuery(imexQuery); results.setImexCount((int) count); results.setImexResponding(true); } catch (IOException e) { log.error( "Problem connecting to PSICQUIC service '" + service.getName() + "': / proxy " + intactViewConfiguration.getProxyHost() + ":" + intactViewConfiguration.getProxyPort(), e); results.setImexResponding(false); } }
public void countResultsInOtherDatabases(String query) { resetPsicquicCounts(); if (query == null || query.length() == 0) { query = UserQuery.STAR_QUERY; } runningTasks.clear(); try { if (services == null) { initializeServices(); } final String psicquicQuery = query; for (final ServiceType service : services) { final PsicquicSimpleClient client = intactViewConfiguration.getPsicquicClient(service.getRestUrl()); if (intactViewConfiguration.getWebappName().contains(service.getName()) || intactViewConfiguration .getDatabaseNamesUsingSameSolr() .contains(service.getName())) { continue; } Callable<PsicquicCountResults> runnable = new Callable<PsicquicCountResults>() { public PsicquicCountResults call() { return processPsicquicQueries(service, psicquicQuery, client); } }; Future<PsicquicCountResults> f = executorService.submit(runnable); runningTasks.add(f); } } catch (PsicquicRegistryClientException e) { FacesContext context = FacesContext.getCurrentInstance(); if (context != null) { FacesMessage facesMessage = new FacesMessage( FacesMessage.SEVERITY_ERROR, "Problem counting results in other databases", "Registry not available"); context.addMessage(null, facesMessage); } e.printStackTrace(); } }
public void initializeServices() throws PsicquicRegistryClientException { final String psicquicRegistryUrl = intactViewConfiguration.getPsicquicRegistryUrl(); if (psicquicRegistryUrl == null || psicquicRegistryUrl.length() == 0) { return; } if (services == null || services.isEmpty()) { try { PsicquicRegistryClient registryClient = new DefaultPsicquicRegistryClient(psicquicRegistryUrl); services = registryClient.listActiveServices(); } catch (Throwable e) { log.error("PSICQUIC registry not available", e); services = new ArrayList<ServiceType>(); } } if (imexServices == null || imexServices.isEmpty()) { imexServices = new ArrayList<ServiceType>(services.size()); for (final ServiceType service : services) { if (isImexService(service)) { imexServices.add(service); } // initialise psicquic services if (!intactViewConfiguration.getPsicquicClientMap().containsKey(service.getRestUrl())) { intactViewConfiguration.getPsicquicClient(service.getRestUrl()); } } } if (runningTasks == null) { runningTasks = new ArrayList<Future>(); } }