package com.indexdata.pz2utils4jsf.config;\r
\r
import java.io.IOException;\r
+import java.util.ArrayList;\r
+import java.util.List;\r
\r
import javax.enterprise.context.SessionScoped;\r
import javax.enterprise.inject.Alternative;\r
\r
import com.indexdata.masterkey.config.MasterkeyConfiguration;\r
import com.indexdata.masterkey.config.ModuleConfiguration;\r
+import com.indexdata.pz2utils4jsf.errors.ConfigurationException;\r
import com.indexdata.pz2utils4jsf.utils.Utils;\r
+import static com.indexdata.pz2utils4jsf.utils.Utils.nl;\r
\r
@Named @SessionScoped @Alternative\r
public class Pz2ConfigureByMk2Config implements Pz2Configurator {\r
private static final long serialVersionUID = 8865086878660568870L;\r
private static Logger logger = Logger.getLogger(Pz2ConfigureByMk2Config.class);\r
private Pz2Config pz2config = null;\r
+ private String configFilePathAndName = "none";\r
\r
public Pz2ConfigureByMk2Config () throws IOException {\r
logger.info(Utils.objectId(this) + " is instantiating Pazpar2 service configuration by MasterKey configuration scheme.");\r
}\r
\r
@Override\r
- public Pz2Config getConfig() throws IOException {\r
+ public Pz2Config getConfig() throws ConfigurationException {\r
if (pz2config == null) {\r
createConfig();\r
}\r
return pz2config;\r
}\r
\r
- private void createConfig () throws IOException {\r
+ private void createConfig () throws ConfigurationException {\r
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();\r
- ServletContext servletContext = (ServletContext) externalContext.getContext(); \r
- MasterkeyConfiguration mkConfigContext =\r
- MasterkeyConfiguration.getInstance(servletContext,\r
- "pazpar-application-jsf", ((HttpServletRequest) externalContext.getRequest()).getServerName());\r
- ModuleConfiguration moduleConfig = mkConfigContext.getModuleConfiguration("pz2client");\r
- pz2config = new Pz2Config(moduleConfig);\r
- logger.info("Accessing Pazpar2 at: " +pz2config.get("PAZPAR2_URL"));\r
+ ServletContext servletContext = (ServletContext) externalContext.getContext(); \r
+ MasterkeyConfiguration mkConfigContext;\r
+ try {\r
+ mkConfigContext = MasterkeyConfiguration.getInstance(servletContext,\r
+ "pazpar-application-jsf", ((HttpServletRequest) externalContext.getRequest()).getServerName());\r
+ } catch (IOException e) {\r
+ throw new ConfigurationException("Pz2ConfigureByMk2Config could not configure Pazpar2 client using MasterKey configuration scheme: "+e.getMessage(),e);\r
+ }\r
+ configFilePathAndName = mkConfigContext.getConfigFileLocation().getConfigFilePath(); \r
+ try {\r
+ ModuleConfiguration moduleConfig = mkConfigContext.getModuleConfiguration("pz2client");\r
+ pz2config = new Pz2Config(moduleConfig);\r
+ logger.info(document());\r
+ } catch (IOException e) {\r
+ throw new ConfigurationException("Pz2ConfigureByMk2Config could not get configuration for module 'pz2client': "+e.getMessage(),e);\r
+ } \r
+ }\r
+ \r
+ public List<String> document() {\r
+ List<String> doc = new ArrayList<String>();\r
+ doc.add(nl+"Attempted to configure service using the file " + configFilePathAndName);\r
+ doc.add(nl+"-- Configured to access Pazpar2 at: " +pz2config.get("PAZPAR2_URL"));\r
if (pz2config.get("PAZPAR2_SERVICE_XML") != null) {\r
- logger.info("Using the service definition contained in " + pz2config.getConfigFilePath() + "/" + pz2config.get("PAZPAR2_SERVICE_XML"));\r
+ doc.add(nl+"-- Configured to use the service definition contained in " + pz2config.getConfigFilePath() + "/" + pz2config.get("PAZPAR2_SERVICE_XML"));\r
if (pz2config.get("PAZPAR2_SETTINGS_XML") != null) {\r
- logger.info("Using the target settings contained in " + pz2config.getConfigFilePath() + "/" + pz2config.get("PAZPAR2_SETTINGS_XML"));\r
+ doc.add(nl+"-- Configured to use the target settings contained in " + pz2config.getConfigFilePath() + "/" + pz2config.get("PAZPAR2_SETTINGS_XML"));\r
} else {\r
- logger.info("Using the server side target settings as defined in the service definition.");\r
+ doc.add(nl+"-- Configured to use the server side target settings as defined in the service definition.");\r
}\r
} else if (pz2config.get("PAZPAR2_SERVICE_ID") != null) {\r
- logger.info("Using the server side service definition identified by service id "+pz2config.get("PAZPAR2_SERVICE_ID"));\r
+ doc.add(nl+"-- Configured to use the server side service definition identified by service id \""+pz2config.get("PAZPAR2_SERVICE_ID") + "\"");\r
} else {\r
- logger.error("Did not find service ID nor service definition XML file so set up pazpar2 service.");\r
+ doc.add(nl+"Error: Did not find service ID nor service definition XML file for setting up a pazpar2 service.");\r
}\r
-\r
+ return doc;\r
}\r
- \r
+ \r
\r
}\r