1 package com.indexdata.pz2utils4jsf.config;
\r
3 import java.io.IOException;
\r
4 import java.util.ArrayList;
\r
5 import java.util.List;
\r
7 import javax.enterprise.context.SessionScoped;
\r
8 import javax.enterprise.inject.Alternative;
\r
9 import javax.faces.context.ExternalContext;
\r
10 import javax.faces.context.FacesContext;
\r
11 import javax.inject.Named;
\r
12 import javax.servlet.ServletContext;
\r
13 import javax.servlet.http.HttpServletRequest;
\r
15 import org.apache.log4j.Logger;
\r
17 import com.indexdata.masterkey.config.MasterkeyConfiguration;
\r
18 import com.indexdata.masterkey.config.ModuleConfiguration;
\r
19 import com.indexdata.pz2utils4jsf.utils.Utils;
\r
20 import static com.indexdata.pz2utils4jsf.utils.Utils.nl;
\r
22 @Named @SessionScoped @Alternative
\r
23 public class Pz2ConfigureByMk2Config implements Pz2Configurator {
\r
25 private static final long serialVersionUID = 8865086878660568870L;
\r
26 private static Logger logger = Logger.getLogger(Pz2ConfigureByMk2Config.class);
\r
27 private Pz2Config pz2config = null;
\r
28 private String configFilePathAndName = "none";
\r
30 public Pz2ConfigureByMk2Config () throws IOException {
\r
31 logger.info(Utils.objectId(this) + " is instantiating Pazpar2 service configuration by MasterKey configuration scheme.");
\r
35 public Pz2Config getConfig() throws IOException {
\r
36 if (pz2config == null) {
\r
42 private void createConfig () throws IOException {
\r
43 ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
\r
44 ServletContext servletContext = (ServletContext) externalContext.getContext();
\r
45 MasterkeyConfiguration mkConfigContext =
\r
46 MasterkeyConfiguration.getInstance(servletContext,
\r
47 "pazpar-application-jsf", ((HttpServletRequest) externalContext.getRequest()).getServerName());
\r
48 configFilePathAndName = mkConfigContext.getConfigFileLocation().getConfigFilePath();
\r
49 ModuleConfiguration moduleConfig = mkConfigContext.getModuleConfiguration("pz2client");
\r
50 pz2config = new Pz2Config(moduleConfig);
\r
51 logger.info(document());
\r
55 public List<String> document() {
\r
56 List<String> doc = new ArrayList<String>();
\r
57 doc.add("Attempted to configure service using the file " + configFilePathAndName);
\r
58 doc.add(nl+"-- Configured to access Pazpar2 at: " +pz2config.get("PAZPAR2_URL"));
\r
59 if (pz2config.get("PAZPAR2_SERVICE_XML") != null) {
\r
60 doc.add(nl+"-- Configured to use the service definition contained in " + pz2config.getConfigFilePath() + "/" + pz2config.get("PAZPAR2_SERVICE_XML"));
\r
61 if (pz2config.get("PAZPAR2_SETTINGS_XML") != null) {
\r
62 doc.add(nl+"-- Configured to use the target settings contained in " + pz2config.getConfigFilePath() + "/" + pz2config.get("PAZPAR2_SETTINGS_XML"));
\r
64 doc.add(nl+"-- Configured to use the server side target settings as defined in the service definition.");
\r
66 } else if (pz2config.get("PAZPAR2_SERVICE_ID") != null) {
\r
67 doc.add(nl+"-- Configured to use the server side service definition identified by service id \""+pz2config.get("PAZPAR2_SERVICE_ID") + "\"");
\r
69 doc.add(nl+"Error: Did not find service ID nor service definition XML file for setting up a pazpar2 service.");
\r