Debug stmts and fix for double object instantiation
authorNiels Erik G. Nielsen <nielserik@indexdata.com>
Wed, 6 Mar 2013 23:12:01 +0000 (18:12 -0500)
committerNiels Erik G. Nielsen <nielserik@indexdata.com>
Wed, 6 Mar 2013 23:12:01 +0000 (18:12 -0500)
Spurious objects created by CDI due to the way some of the
pz2 bean and config constructors where written.

src/META-INF/faces-config.xml [deleted file]
src/main/java/com/indexdata/pz2utils4jsf/config/Pz2Config.java
src/main/java/com/indexdata/pz2utils4jsf/config/Pz2Configurator.java
src/main/java/com/indexdata/pz2utils4jsf/config/Pz2ConfigureByMk2Config.java
src/main/java/com/indexdata/pz2utils4jsf/config/Pz2ConfigureByWebXml.java
src/main/java/com/indexdata/pz2utils4jsf/pazpar2/Pz2Bean.java
src/main/java/com/indexdata/pz2utils4jsf/pazpar2/Pz2Session.java
src/main/java/com/indexdata/pz2utils4jsf/utils/Utils.java [new file with mode: 0644]

diff --git a/src/META-INF/faces-config.xml b/src/META-INF/faces-config.xml
deleted file mode 100644 (file)
index a7b9df0..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd"
-  version="2.1">
-</faces-config>
\ No newline at end of file
index b3a92e1..b182777 100644 (file)
@@ -5,12 +5,17 @@ import java.io.Serializable;
 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.utils.Utils;\r
 \r
+@Named @SessionScoped\r
 public class Pz2Config implements ModuleConfigurationGetter, Serializable {\r
 \r
   private static final long serialVersionUID = -6801241975338182197L;\r
@@ -19,10 +24,12 @@ public class Pz2Config implements ModuleConfigurationGetter, Serializable {
   ModuleConfiguration moduleConfig = null;\r
   \r
   public Pz2Config () {\r
+    logger.debug(Utils.objectId(this) + " being constructed with no argument");\r
     setDefaults();\r
   }\r
   \r
   public Pz2Config (Map<String,String> parameters) {\r
+    logger.debug(Utils.objectId(this) + " being constructed with parameter map argument");\r
     setDefaults();\r
     for (String key : parameters.keySet()) {\r
       properties.put(key, parameters.get(key));\r
@@ -30,6 +37,7 @@ public class Pz2Config implements ModuleConfigurationGetter, Serializable {
   }\r
   \r
   public Pz2Config (ModuleConfiguration moduleConfig) throws IOException {\r
+    logger.debug(Utils.objectId(this) + " being constructed with moduleConfig argument.");\r
     this.moduleConfig = moduleConfig;\r
     for (String key : moduleConfig.getConfigMap().keySet()) {\r
       properties.put(key, moduleConfig.getConfigParameter(key));\r
index b778821..88b275d 100644 (file)
@@ -1,7 +1,8 @@
 package com.indexdata.pz2utils4jsf.config;\r
 \r
+import java.io.IOException;\r
 import java.io.Serializable;\r
 \r
 public interface Pz2Configurator extends Serializable {\r
-  public Pz2Config getConfig();\r
+  public Pz2Config getConfig() throws IOException;\r
 }\r
index b4859b3..2273b7a 100644 (file)
@@ -14,6 +14,7 @@ import org.apache.log4j.Logger;
 \r
 import com.indexdata.masterkey.config.MasterkeyConfiguration;\r
 import com.indexdata.masterkey.config.ModuleConfiguration;\r
+import com.indexdata.pz2utils4jsf.utils.Utils;\r
 \r
 @Named @SessionScoped @Alternative\r
 public class Pz2ConfigureByMk2Config implements Pz2Configurator  {\r
@@ -23,7 +24,18 @@ public class Pz2ConfigureByMk2Config implements Pz2Configurator  {
   private Pz2Config pz2config = null;\r
 \r
   public Pz2ConfigureByMk2Config () throws IOException {\r
-    logger.debug("Instantiating Pazpar2 service configuration by MasterKey configuration scheme.");\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
+    if (pz2config == null) {\r
+      createConfig();\r
+    }\r
+    return pz2config;\r
+  }\r
+  \r
+  private void createConfig () throws IOException {\r
     ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();\r
     ServletContext servletContext = (ServletContext) externalContext.getContext();       \r
     MasterkeyConfiguration mkConfigContext =\r
@@ -31,11 +43,20 @@ public class Pz2ConfigureByMk2Config implements Pz2Configurator  {
         "pazpar-application-jsf", ((HttpServletRequest) externalContext.getRequest()).getServerName());\r
     ModuleConfiguration moduleConfig = mkConfigContext.getModuleConfiguration("pz2client");\r
     pz2config = new Pz2Config(moduleConfig);\r
-  }\r
-    \r
-  @Override\r
-  public Pz2Config getConfig() {\r
-    return pz2config;\r
+    logger.info("Accessing 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
+      if (pz2config.get("PAZPAR2_SETTINGS_XML") != null) {\r
+        logger.info("Using 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
+      }\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
+    } else {\r
+      logger.error("Did not find service ID nor service definition XML file so set up pazpar2 service.");\r
+    }\r
+\r
   }\r
   \r
 \r
index 72c5d75..d131e94 100644 (file)
@@ -1,5 +1,6 @@
 package com.indexdata.pz2utils4jsf.config;\r
 \r
+import java.io.IOException;\r
 import java.util.HashMap;\r
 import java.util.Map;\r
 \r
@@ -18,20 +19,25 @@ public class Pz2ConfigureByWebXml implements Pz2Configurator {
 \r
   private static final long serialVersionUID = 144390224959311772L;\r
   private static Logger logger = Logger.getLogger(Pz2ConfigureByWebXml.class);\r
-  private Pz2Config config = null;\r
+  private Pz2Config pz2config = null;\r
   \r
   public Pz2ConfigureByWebXml () {\r
-    logger.debug("Instantiating Pazpar2 service configuration by web.xml parameters");\r
+    logger.info("Instantiating Pazpar2 service configuration by web.xml parameters");\r
+  }\r
+  \r
+  public Pz2Config getConfig() throws IOException {\r
+    if (pz2config == null) {\r
+      createConfig();\r
+    }\r
+    return pz2config;\r
+  }\r
+  \r
+  private void createConfig () throws IOException {\r
     ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();\r
     ServletContext servletContext = (ServletContext) externalContext.getContext();\r
     Map<String,String> parameters = new HashMap<String,String>();\r
     parameters.put("PAZPAR2_URL", servletContext.getInitParameter("PAZPAR2_URL"));\r
     parameters.put("PAZPAR2_SERVICE_ID", servletContext.getInitParameter("PAZPAR2_SERVICE_ID"));\r
-    config = new Pz2Config(parameters);\r
-  }\r
-  \r
-  @Override\r
-  public Pz2Config getConfig() {\r
-    return config;\r
+    pz2config = new Pz2Config(parameters);    \r
   }\r
 }\r
index e5cfb1c..41ca130 100644 (file)
@@ -18,9 +18,9 @@ import com.indexdata.pz2utils4jsf.pazpar2.data.ShowResponse;
 import com.indexdata.pz2utils4jsf.pazpar2.data.StatResponse;\r
 import com.indexdata.pz2utils4jsf.pazpar2.data.TermListsResponse;\r
 import com.indexdata.pz2utils4jsf.pazpar2.data.TermResponse;\r
+import com.indexdata.pz2utils4jsf.utils.Utils;\r
 \r
-@Named("pz2")\r
-@SessionScoped\r
+@Named("pz2") @SessionScoped\r
 public class Pz2Bean implements Pz2Interface, Serializable {\r
 \r
   private static final long serialVersionUID = 3440277287081557861L;\r
@@ -30,19 +30,21 @@ public class Pz2Bean implements Pz2Interface, Serializable {
   @Inject Pz2Configurator pz2conf;\r
   \r
   public Pz2Bean () {\r
-    logger.debug("Instantiating pz2 bean");      \r
-    pz2 = new Pz2Session();    \r
+    logger.info("Instantiating pz2 bean [" + Utils.objectId(this) + "]");\r
   }\r
   \r
   @PostConstruct\r
   public void initiatePz2Session() {\r
+    logger.debug(Utils.objectId(this) + " will instantiate a Pz2Session next.");\r
+    pz2 = new Pz2Session();\r
+    logger.debug(Utils.objectId(this) + " will forward configuration to the new Pz2Session [" + Utils.objectId(pz2) + "]");\r
     pz2.init(pz2conf);\r
   }\r
   \r
   /* (non-Javadoc)\r
    * @see com.indexdata.pz2utils4jsf.pazpar2.Pz2Interface#doSearch(java.lang.String)\r
    */\r
-  public void doSearch(String query) {\r
+  public void doSearch(String query) {    \r
     pz2.doSearch(query);\r
   }\r
 \r
@@ -50,6 +52,7 @@ public class Pz2Bean implements Pz2Interface, Serializable {
    * @see com.indexdata.pz2utils4jsf.pazpar2.Pz2Interface#doSearch()\r
    */\r
   public void doSearch() {\r
+    logger.info(Utils.objectId(this) + " doing search for "+this.getQuery());\r
     pz2.doSearch();\r
   }\r
 \r
index b4323fc..9675696 100644 (file)
@@ -1,5 +1,6 @@
 package com.indexdata.pz2utils4jsf.pazpar2;\r
 \r
+import java.io.IOException;\r
 import java.util.ArrayList;\r
 import java.util.List;\r
 import java.util.Map;\r
@@ -23,9 +24,9 @@ import com.indexdata.pz2utils4jsf.pazpar2.data.StatResponse;
 import com.indexdata.pz2utils4jsf.pazpar2.data.TermListsResponse;\r
 import com.indexdata.pz2utils4jsf.pazpar2.data.TermResponse;\r
 import com.indexdata.pz2utils4jsf.pazpar2.state.QueryStates;\r
+import com.indexdata.pz2utils4jsf.utils.Utils;\r
 \r
-@Named\r
-@SessionScoped\r
+@Named @SessionScoped  \r
 public class Pz2Session implements Pz2Interface {\r
   \r
   private static Logger logger = Logger.getLogger(Pz2Session.class);\r
@@ -40,21 +41,23 @@ public class Pz2Session implements Pz2Interface {
   private ResultsPager pager = null; \r
       \r
   public Pz2Session () {\r
-    logger.debug("Instantiating pz2 session object");      \r
+    logger.info("Instantiating pz2 session object [" + Utils.objectId(this) + "]");      \r
   }\r
     \r
   public void init(Pz2Configurator pz2conf) {\r
     if (client==null) {\r
-    logger.debug("Initiating a session holding object ");\r
+      logger.info(Utils.objectId(this) + " is configuring itself using the provided " + Utils.objectId(pz2conf));\r
     try {\r
       cfg = new com.indexdata.masterkey.pazpar2.client.Pazpar2ClientConfiguration(pz2conf.getConfig());\r
       client = new com.indexdata.masterkey.pazpar2.client.Pazpar2ClientGeneric(cfg);\r
       resetDataObjects();\r
     } catch (ProxyErrorException e) {\r
       e.printStackTrace();\r
-    }        \r
+    } catch (IOException ioe) {\r
+      ioe.printStackTrace();\r
+    }\r
     } else {\r
-      logger.error("??? attempt to initiate session but already has a client");\r
+      logger.warn("Attempt to configure session but it already has a configured client");\r
     }\r
   }\r
     \r
@@ -67,7 +70,7 @@ public class Pz2Session implements Pz2Interface {
     queryStates.hasPendingStateChange("search",false);\r
     resetDataObjects();\r
     setCommandParameter("show",new CommandParameter("start","=",0));    \r
-    logger.info("Searching using "+getCommand("search").getParameter("query").getEncodedQueryString());\r
+    logger.debug(Utils.objectId(this) + " is searching using "+getCommand("search").getParameter("query").getEncodedQueryString());\r
     doCommand("search");    \r
   }\r
       \r
@@ -77,7 +80,7 @@ public class Pz2Session implements Pz2Interface {
    * @return Number of activeclients at the time of the 'show' command.\r
    */\r
   public String update () {\r
-    logger.info("Updating show,stat,termlist, and bytarget data from pazpar2");\r
+    logger.debug("Updating show,stat,termlist,bytarget from pazpar2");\r
     return update("show,stat,termlist,bytarget");\r
   }\r
  \r
@@ -113,7 +116,7 @@ public class Pz2Session implements Pz2Interface {
       }\r
       return getActiveClients();\r
     } else {\r
-      logger.info("Skipped requests for " + commands + " as there's not yet a query."); \r
+      logger.debug("Skipped requests for " + commands + " as there's not yet a query."); \r
       resetDataObjects();\r
       return "0";\r
     }\r
diff --git a/src/main/java/com/indexdata/pz2utils4jsf/utils/Utils.java b/src/main/java/com/indexdata/pz2utils4jsf/utils/Utils.java
new file mode 100644 (file)
index 0000000..e17c224
--- /dev/null
@@ -0,0 +1,14 @@
+package com.indexdata.pz2utils4jsf.utils;\r
+\r
+public class Utils {\r
+  \r
+  public static String objectId(Object o) {\r
+    int lastdot = o.toString().lastIndexOf('.');\r
+    if (lastdot>-1 && lastdot+1<o.toString().length()) {\r
+      return o.toString().substring(lastdot+1);\r
+    } else {\r
+      return o.toString();\r
+    }\r
+  }\r
+\r
+}\r