package com.indexdata.pz2utils4jsf.config;\r
\r
+import java.io.IOException;\r
+import java.io.Serializable;\r
import java.util.HashMap;\r
import java.util.Map;\r
\r
+import javax.enterprise.context.SessionScoped;\r
+import javax.inject.Named;\r
+\r
+import org.apache.log4j.Logger;\r
+\r
import com.indexdata.masterkey.config.MissingMandatoryParameterException;\r
+import com.indexdata.masterkey.config.ModuleConfiguration;\r
import com.indexdata.masterkey.config.ModuleConfigurationGetter;\r
+import com.indexdata.pz2utils4jsf.errors.ConfigurationException;\r
+import com.indexdata.pz2utils4jsf.utils.Utils;\r
\r
-public class Pz2Config implements ModuleConfigurationGetter {\r
+@Named @SessionScoped\r
+public class Pz2Config implements ModuleConfigurationGetter, Serializable {\r
\r
+ private static final long serialVersionUID = -6801241975338182197L;\r
+ private static Logger logger = Logger.getLogger(Pz2Config.class);\r
Map<String,String> properties = new HashMap<String,String>();\r
+ ModuleConfiguration moduleConfig = null;\r
\r
public Pz2Config () {\r
- setStatics();\r
+ logger.debug(Utils.objectId(this) + " being constructed with no argument");\r
+ setDefaults();\r
+ }\r
+ \r
+ public Pz2Config (Map<String,String> parameters) { \r
+ setDefaults();\r
+ for (String key : parameters.keySet()) {\r
+ properties.put(key, parameters.get(key));\r
+ }\r
}\r
\r
- public Pz2Config (String pazpar2Url, String pazpar2ServiceId) {\r
- setStatics();\r
- setPazpar2Url(pazpar2Url);\r
- setPazpar2ServiceId(pazpar2ServiceId);\r
+ public Pz2Config (ModuleConfiguration moduleConfig) throws ConfigurationException {\r
+ logger.debug(Utils.objectId(this) + " being constructed with moduleConfig argument.");\r
+ this.moduleConfig = moduleConfig;\r
+ try {\r
+ for (String key : moduleConfig.getConfigMap().keySet()) {\r
+ properties.put(key, moduleConfig.getConfigParameter(key));\r
+ }\r
+ } catch (IOException e) {\r
+ throw new ConfigurationException("Could not instantiate Pazpar2 configuration: "+e.getMessage(),e);\r
+ }\r
}\r
\r
- private void setStatics () {\r
+ private void setDefaults () {\r
properties.put("PROXY_MODE","1");\r
properties.put("SERIALIZE_REQUESTS", "false");\r
properties.put("STREAMBUFF_SIZE", "4096");\r
properties.put(key, value);\r
}\r
\r
- public void setPazpar2Url (String value) {\r
- properties.put("PAZPAR2_URL", value);\r
- }\r
- \r
- public void setPazpar2ServiceId (String value) {\r
- properties.put("PAZPAR2_SERVICE_ID",value);\r
- }\r
-\r
@Override\r
public String get(String key, String defaultValue) {\r
if (properties.containsKey(key)) {\r
if (properties.containsKey(key)) {\r
return properties.get(key);\r
} \r
- throw new Error("Missing mandatory parameter: " + key); \r
+ throw new MissingMandatoryParameterException("Missing mandatory parameter: " + key); \r
}\r
\r
@Override\r
- public String getConfigFilePath() {\r
- return null;\r
+ public String getConfigFilePath() {
+ return (moduleConfig != null ? moduleConfig.getConfigFilePath() : "nopath");\r
}\r
\r
\r