diff --git a/src/main/java/it/unibz/inf/isochrone/util/Config.java b/src/main/java/it/unibz/inf/isochrone/util/Config.java index 58b14a128883346562a868dda263eecef5720c30..c1aaacc4ebfc476ef18e85fd185bdce44d4c6122 100644 --- a/src/main/java/it/unibz/inf/isochrone/util/Config.java +++ b/src/main/java/it/unibz/inf/isochrone/util/Config.java @@ -7,7 +7,11 @@ import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; import java.util.InvalidPropertiesFormatException; +import java.util.List; import java.util.Properties; import org.slf4j.Logger; @@ -87,6 +91,21 @@ public class Config { return null; } + public Collection<String> getDatasets() { + final String dataSetStr = getProperty("cfg.datasets"); + if (dataSetStr == null) { + return Collections.emptyList(); + } + + final String[] dataSetsArray = dataSetStr.split(","); + final List<String> resultList = new ArrayList<String>(dataSetsArray.length); + for (String str : dataSetsArray) { + resultList.add(str.trim()); + } + + return resultList; + } + public String getDaymarkerTable() { return getProperty("tbl.dateCodes"); } diff --git a/src/main/java/it/unibz/inf/isoga/service/ServiceConfiguration.java b/src/main/java/it/unibz/inf/isoga/service/ServiceConfiguration.java index 447b5d13d5de514bece7fb02b15410801a418d02..9577760b8b8983660c62928b42426712a4c23113 100644 --- a/src/main/java/it/unibz/inf/isoga/service/ServiceConfiguration.java +++ b/src/main/java/it/unibz/inf/isoga/service/ServiceConfiguration.java @@ -33,7 +33,7 @@ public class ServiceConfiguration extends AbstractService<RequestConfiguration, configContainer.setClientConfig(clientId, new ConfigWeb(globalConfig)); final ResponseConfiguration resp = new ResponseConfiguration(globalConfig); - for (final ConfigDataset templateConfig : configContainer.getDatasetConfigurations()) { + for (final ConfigDataset templateConfig : configContainer.getDatasetTemplates()) { final ConfigDataset clientConfig = (ConfigDataset) templateConfig.clone(); clientConfig.appendTableSuffix(clientId); configContainer.setClientDSetConfig(clientId, clientConfig); diff --git a/src/main/java/it/unibz/inf/isoga/util/ConfigWeb.java b/src/main/java/it/unibz/inf/isoga/util/ConfigWeb.java index 4b1a327e5100e5e0ba87cb8088dec1689b4c034a..015ed5378b7009911bdb5b10bf152ce78aa0bbb5 100644 --- a/src/main/java/it/unibz/inf/isoga/util/ConfigWeb.java +++ b/src/main/java/it/unibz/inf/isoga/util/ConfigWeb.java @@ -152,5 +152,4 @@ public class ConfigWeb extends Config { return m; } - } diff --git a/src/main/java/it/unibz/inf/isoga/web/ConfigContainer.java b/src/main/java/it/unibz/inf/isoga/web/ConfigContainer.java index d8aa46c21b67ac54ae333014d0ce077056ae72b6..3bc34c176a2c37f94889ca3d6e4171cf950fc977 100644 --- a/src/main/java/it/unibz/inf/isoga/web/ConfigContainer.java +++ b/src/main/java/it/unibz/inf/isoga/web/ConfigContainer.java @@ -23,22 +23,23 @@ import org.slf4j.LoggerFactory; public final class ConfigContainer { private static final Logger LOGGER = LoggerFactory.getLogger(JsonWebsocket.class.getName()); private static final String FORMAT_DATE = "MM'/'dd'/'yyyy' 'HH':'mm"; - private static final int INITAL_DSET_SIZE = 5; private static ConfigContainer instance = null; private final ConfigWeb globalConfiguration; private final Map<String, ConfigWeb> clientConfigMap; private final Map<String, Map<Dataset, ConfigDataset>> clientDatasets; - private final Collection<ConfigDataset> datasetConfigs; + private final Collection<ConfigDataset> datasetTemplates; private ConfigContainer() { + globalConfiguration = new ConfigWeb(); clientConfigMap = new HashMap<String, ConfigWeb>(); clientDatasets = new HashMap<String, Map<Dataset, ConfigDataset>>(); - datasetConfigs = new ArrayList<ConfigDataset>(INITAL_DSET_SIZE); - globalConfiguration = new ConfigWeb(); - initDatasetConfigurations(); + final Collection<String> dataSets = globalConfiguration.getDatasets(); + datasetTemplates = new ArrayList<ConfigDataset>(dataSets.size()); + + initDatasetTemplates(dataSets); } public static ConfigContainer getInstance() { @@ -79,8 +80,8 @@ public final class ConfigContainer { return clientDatasets.get(clientId).values(); } - public Collection<ConfigDataset> getDatasetConfigurations() { - return datasetConfigs; + public Collection<ConfigDataset> getDatasetTemplates() { + return datasetTemplates; } public void setClientConfig(final String clientId, final ConfigWeb config) { @@ -97,11 +98,9 @@ public final class ConfigContainer { // Private methods - private void initDatasetConfigurations() { + private void initDatasetTemplates(final Collection<String> dataSets) { LOGGER.info("Initializing dataset configuration files"); - final String dataSetStr = globalConfiguration.getProperty("cfg.datasets"); - final String[] dataSets = (dataSetStr == null) ? new String[0] : dataSetStr.split(","); final Dataset[] allSets = Dataset.values(); for (final String dSet : dataSets) { Dataset dataSet = null; @@ -157,7 +156,7 @@ public final class ConfigContainer { .areaBufferLayer(areaBufferTable) .build(); - datasetConfigs.add(dSetConfig); + datasetTemplates.add(dSetConfig); } } diff --git a/src/main/resources/config.xml b/src/main/resources/config.xml index 486d00b4dd147c2cf78d13216584a22ea5390ae6..b2c0eb04489dbbcd5d93ccf57dc8d4c1e270c47a 100644 --- a/src/main/resources/config.xml +++ b/src/main/resources/config.xml @@ -19,11 +19,8 @@ <entry key="rendering.server.rest.datastore">sessions</entry> <!-- Configuration parameters --> - <entry key="cfg.defaultConfigFile">config_bz.xml</entry> <entry key="cfg.clientSRID">3857</entry> - <entry key="cfg.datasets">bz,st,sf,it</entry> - <entry key="cfg.flushLimit">400</entry> - <entry key="client.progressbar.size">10</entry> + <entry key="cfg.datasets">bz,it,sf,st</entry> <entry key="par.distance_tolerance">100</entry> </properties>