1 package com.indexdata.pz2utils4jsf.config;
\r
3 import static com.indexdata.pz2utils4jsf.utils.Utils.nl;
\r
5 import java.util.ArrayList;
\r
6 import java.util.HashMap;
\r
7 import java.util.List;
\r
8 import java.util.Map;
\r
10 import javax.enterprise.context.SessionScoped;
\r
11 import javax.enterprise.inject.Alternative;
\r
12 import javax.faces.context.ExternalContext;
\r
13 import javax.faces.context.FacesContext;
\r
14 import javax.inject.Named;
\r
15 import javax.servlet.ServletContext;
\r
17 import org.apache.log4j.Logger;
\r
19 import com.indexdata.pz2utils4jsf.errors.ConfigurationException;
\r
22 @Named @SessionScoped @Alternative
\r
23 public class Pz2ConfigureByWebXml implements Pz2Configurator {
\r
25 private static final long serialVersionUID = 144390224959311772L;
\r
26 private static Logger logger = Logger.getLogger(Pz2ConfigureByWebXml.class);
\r
27 private Pz2Config pz2config = null;
\r
28 private Map<String,String> parameters = new HashMap<String,String>();
\r
30 public Pz2ConfigureByWebXml () {
\r
31 logger.info("Instantiating Pazpar2 service configuration by web.xml parameters");
\r
35 public Pz2Config getConfig() throws ConfigurationException {
\r
36 if (pz2config == null) {
\r
42 private void createConfig () throws ConfigurationException {
\r
43 ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
\r
44 ServletContext servletContext = (ServletContext) externalContext.getContext();
\r
45 parameters.put("PAZPAR2_URL", servletContext.getInitParameter("PAZPAR2_URL"));
\r
46 if (parameters.get("PAZPAR2_URL")==null || parameters.get("PAZPAR2_URL").length()==0) {
\r
47 throw new ConfigurationException("Pz2ConfigureByWebXml could not find mandatory context-param 'PAZPAR2_URL'");
\r
49 parameters.put("PAZPAR2_SERVICE_ID", servletContext.getInitParameter("PAZPAR2_SERVICE_ID"));
\r
50 if (parameters.get("PAZPAR2_SERVICE_ID")==null || parameters.get("PAZPAR2_SERVICE_ID").length()==0) {
\r
51 throw new ConfigurationException("Pz2ConfigureByWebXml could not find mandatory context-param 'PAZPAR2_SERVICE_ID'");
\r
53 pz2config = new Pz2Config(parameters);
\r
56 public List<String> document() {
\r
57 List<String> doc = new ArrayList<String>();
\r
58 doc.add("Attempted to configure service using web.xml context-parameters ");
\r
59 doc.add(nl+"-- Configured to access Pazpar2 at [" +parameters.get("PAZPAR2_URL") + "]");
\r
60 doc.add(nl+"-- Configured to use the server side service definition identified by service id [" +parameters.get("PAZPAR2_SERVICE_ID") + "]");
\r