/** * Aggiorna la visibilità delle schede con l'id passato e restituisce l'esito al client * * @return la serializzazione json dell'esito della richiesta */ protected String bulkUpdateVisibility( UpdateVisibilityParameters updateVisibilityParameters, SPODEngine engine, Publisher publisher) { boolean updateToPublic = updateVisibilityParameters.isToPublic(); try { // Si aggiorna la visibilità della scheda (tramite SP su DB site) // SPOD ha sia visibilità che approvazione, nella API CKAN si considerano i 2 aspetti // equivalenti // e sempre modificati contemporaneamente. engine.updateStatusVisibility( updateVisibilityParameters .getDatasets() .toArray(new String[updateVisibilityParameters.getDatasets().size()]), updateToPublic, updateToPublic); } catch (Exception e2) { SpodLogger.log(LogType.ERROR, e2); return Utils.toJson( Utils.buildActionApiResponseError(help, e2.getMessage(), "Generic Error")); } // Help generico sull'utilizzo del metodo String customGenericHelp = genericHelp; String successMessage = "Bulk Update " + ((updateToPublic) ? "Public" : "Private") + " successfully executed"; SpodLogger.log(LogType.INFO, successMessage); return Utils.toJson(Utils.buildActionApiResponseSuccess(customGenericHelp, successMessage)); }
@SuppressWarnings({}) public static void main(String[] args) { try { try { String logConfigFile = ConfigReader.readConfig("logConfigFile", "StatPortalOpenData"); SpodLogger.configureLogger(logConfigFile); } catch (Exception ex) { // si perde il logging ma l'applicazione continua a funzionare } String configDir = ConfigReader.getConfigDir(); String appContextFile = "file:" + configDir + "applicationContext.xml"; FileSystemXmlApplicationContext cpac; try { cpac = new FileSystemXmlApplicationContext(appContextFile); } catch (Exception ex) { SpodLogger.log(LogType.FATAL, ex); SpodLogger.log(LogType.FATAL, "Il file " + appContextFile + " non esiste."); throw new ServiceConfigurationError("Non riesco a trovare " + appContextFile); } String urlRegex = "(ftp|http|https):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%@!\\-\\/]))"; String endpointUri = ConfigReader.readConfig("url", "StatPortalOpenData"); if (endpointUri == null) { throw new Exception("Manca il parametro url"); } if (!endpointUri.matches(urlRegex)) { throw new Exception("Chiave url non valida"); } String namespace = "StatPortal"; final StatPortalJPAProducer jpaProducer = new StatPortalJPAProducer(namespace, 50, cpac); String numDistinctValuesStr = ConfigReader.readConfig("numDistinctValues", "StatPortalOpenData"); int numDistinctValues = 20; if (numDistinctValuesStr != null && !"".equalsIgnoreCase(numDistinctValuesStr)) { try { numDistinctValues = Integer.parseInt(numDistinctValuesStr); } catch (Exception e) { SpodLogger.log(LogType.WARNING, "Valore di numDistinctValues non valido", e); } } final it.sister.statportal.odata.StatPortalProducer producer = new it.sister.statportal.odata.StatPortalProducer(jpaProducer, numDistinctValues); // register the producer as the static instance, then launch the // http server ODataProducerProvider.setInstance(producer); SpodLogger.log(LogType.INFO, "Starting service"); ProducerUtil.hostODataServer(endpointUri); } catch (Exception ex) { SpodLogger.log(LogType.FATAL, ex); } }