1 package com.indexdata.pz2utils4jsf.config;
\r
3 import java.io.IOException;
\r
5 import javax.enterprise.context.SessionScoped;
\r
6 import javax.enterprise.inject.Alternative;
\r
7 import javax.faces.context.ExternalContext;
\r
8 import javax.faces.context.FacesContext;
\r
9 import javax.inject.Named;
\r
10 import javax.servlet.ServletContext;
\r
11 import javax.servlet.http.HttpServletRequest;
\r
13 import org.apache.log4j.Logger;
\r
15 import com.indexdata.masterkey.config.MasterkeyConfiguration;
\r
16 import com.indexdata.masterkey.config.ModuleConfiguration;
\r
17 import com.indexdata.pz2utils4jsf.utils.Utils;
\r
19 @Named @SessionScoped @Alternative
\r
20 public class Pz2ConfigureByMk2Config implements Pz2Configurator {
\r
22 private static final long serialVersionUID = 8865086878660568870L;
\r
23 private static Logger logger = Logger.getLogger(Pz2ConfigureByMk2Config.class);
\r
24 private Pz2Config pz2config = null;
\r
26 public Pz2ConfigureByMk2Config () throws IOException {
\r
27 logger.info(Utils.objectId(this) + " is instantiating Pazpar2 service configuration by MasterKey configuration scheme.");
\r
31 public Pz2Config getConfig() throws IOException {
\r
32 if (pz2config == null) {
\r
38 private void createConfig () throws IOException {
\r
39 ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
\r
40 ServletContext servletContext = (ServletContext) externalContext.getContext();
\r
41 MasterkeyConfiguration mkConfigContext =
\r
42 MasterkeyConfiguration.getInstance(servletContext,
\r
43 "pazpar-application-jsf", ((HttpServletRequest) externalContext.getRequest()).getServerName());
\r
44 ModuleConfiguration moduleConfig = mkConfigContext.getModuleConfiguration("pz2client");
\r
45 pz2config = new Pz2Config(moduleConfig);
\r
46 logger.info("Accessing Pazpar2 at: " +pz2config.get("PAZPAR2_URL"));
\r
47 if (pz2config.get("PAZPAR2_SERVICE_XML") != null) {
\r
48 logger.info("Using the service definition contained in " + pz2config.getConfigFilePath() + "/" + pz2config.get("PAZPAR2_SERVICE_XML"));
\r
49 if (pz2config.get("PAZPAR2_SETTINGS_XML") != null) {
\r
50 logger.info("Using the target settings contained in " + pz2config.getConfigFilePath() + "/" + pz2config.get("PAZPAR2_SETTINGS_XML"));
\r
52 logger.info("Using the server side target settings as defined in the service definition.");
\r
54 } else if (pz2config.get("PAZPAR2_SERVICE_ID") != null) {
\r
55 logger.info("Using the server side service definition identified by service id "+pz2config.get("PAZPAR2_SERVICE_ID"));
\r
57 logger.error("Did not find service ID nor service definition XML file so set up pazpar2 service.");
\r