Documentation
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / pz2utils4jsf / pazpar2 / StraightPz2Client.java
index 187b928..475aa15 100644 (file)
@@ -1,7 +1,13 @@
 package com.indexdata.pz2utils4jsf.pazpar2;\r
 \r
+import static com.indexdata.pz2utils4jsf.utils.Utils.nl;\r
+\r
 import java.io.ByteArrayOutputStream;\r
 import java.io.IOException;\r
+import java.util.ArrayList;\r
+import java.util.HashMap;\r
+import java.util.List;\r
+import java.util.Map;\r
 \r
 import javax.enterprise.context.SessionScoped;\r
 import javax.enterprise.inject.Alternative;\r
@@ -9,6 +15,8 @@ import javax.inject.Named;
 \r
 import org.apache.log4j.Logger;\r
 \r
+import com.indexdata.masterkey.config.MissingMandatoryParameterException;\r
+import com.indexdata.masterkey.config.ModuleConfigurationGetter;\r
 import com.indexdata.masterkey.pazpar2.client.ClientCommand;\r
 import com.indexdata.masterkey.pazpar2.client.Pazpar2Client;\r
 import com.indexdata.masterkey.pazpar2.client.Pazpar2ClientConfiguration;\r
@@ -16,7 +24,8 @@ import com.indexdata.masterkey.pazpar2.client.Pazpar2ClientGeneric;
 import com.indexdata.masterkey.pazpar2.client.Pazpar2HttpResponse;\r
 import com.indexdata.masterkey.pazpar2.client.exceptions.Pazpar2ErrorException;\r
 import com.indexdata.masterkey.pazpar2.client.exceptions.ProxyErrorException;\r
-import com.indexdata.pz2utils4jsf.config.Pz2Configurator;\r
+import com.indexdata.pz2utils4jsf.config.Configuration;\r
+import com.indexdata.pz2utils4jsf.config.ConfigurationReader;\r
 import com.indexdata.pz2utils4jsf.errors.ConfigurationException;\r
 import com.indexdata.pz2utils4jsf.utils.Utils;\r
 \r
@@ -26,14 +35,25 @@ public class StraightPz2Client implements SearchClient {
   private static final long serialVersionUID = 5414266730169982028L;\r
   private static Logger logger = Logger.getLogger(StraightPz2Client.class);\r
   private Pazpar2Client client = null;\r
-  private Pazpar2ClientConfiguration cfg = null;  \r
+  private Pazpar2ClientConfiguration cfg = null;\r
+  public static final String MODULENAME = "pz2client";\r
+  public static Map<String,String> DEFAULTS = new HashMap<String,String>();\r
+  \r
+  static {    \r
+    DEFAULTS.put("PROXY_MODE","1");\r
+    DEFAULTS.put("SERIALIZE_REQUESTS", "false");\r
+    DEFAULTS.put("STREAMBUFF_SIZE", "4096");\r
+    DEFAULTS.put("PARSE_RESPONSES", "true");    \r
+  }\r
   \r
   public StraightPz2Client() {}\r
   \r
-  public void configure(Pz2Configurator configurator) throws ConfigurationException {\r
-    logger.info(Utils.objectId(this) + " is configuring itself using the provided " + Utils.objectId(configurator));\r
+  @Override\r
+  public void configure(ConfigurationReader configReader) throws ConfigurationException {    \r
+    logger.info(Utils.objectId(this) + " is configuring using the provided " + Utils.objectId(configReader));\r
     try {\r
-      cfg = new Pazpar2ClientConfiguration(configurator.getConfig());\r
+      Configuration config = configReader.getConfiguration(this);\r
+      cfg = new Pazpar2ClientConfiguration(new ConfigurationGetter(config));\r
     } catch (ProxyErrorException pe) {\r
       logger.error("Could not configure Pazpar2 client: " + pe.getMessage());\r
       throw new ConfigurationException("Could not configure StraightPz2Client:  "+ pe.getMessage(),pe);\r
@@ -50,12 +70,12 @@ public class StraightPz2Client implements SearchClient {
       throw new ConfigurationException("Pazpar2Client is null after configuration");\r
     } \r
   }\r
-\r
+  \r
+  \r
   @Override\r
   public void setSearchCommand(Pazpar2Command command) {\r
     ClientCommand clientCommand = new ClientCommand(command.getName(), command.getEncodedQueryString());\r
-    client.setSearchCommand(clientCommand);\r
-    \r
+    client.setSearchCommand(clientCommand);    \r
   }\r
 \r
   @Override\r
@@ -73,4 +93,46 @@ public class StraightPz2Client implements SearchClient {
     clone.cfg = this.cfg;\r
     return clone;\r
   }\r
+\r
+  @Override\r
+  public Map<String, String> getDefaults() {\r
+    return DEFAULTS;\r
+  }\r
+\r
+  @Override\r
+  public String getModuleName() {\r
+    return MODULENAME;\r
+  }\r
+  \r
+  class ConfigurationGetter implements ModuleConfigurationGetter {\r
+    Configuration config = null;\r
+    ConfigurationGetter(Configuration configuration) {\r
+      config = configuration;\r
+    }\r
+    @Override\r
+    public String get(String value) {\r
+      return config.get(value);\r
+    }\r
+    @Override\r
+    public String get(String value, String defaultValue) {\r
+      return config.get(value,defaultValue);\r
+    }\r
+    @Override\r
+    public String getMandatory(String name)\r
+        throws MissingMandatoryParameterException {\r
+      return config.getMandatory(name);\r
+    }\r
+    @Override\r
+    public String getConfigFilePath() {\r
+      return config.getConfigFilePath();\r
+    }\r
+  }\r
+\r
+  @Override\r
+  public List<String> documentConfiguration() {\r
+    List<String> doc = new ArrayList<String>();\r
+    doc.add(nl+ MODULENAME + " was configured to access Pazpar2 at : " + cfg.PAZPAR2_URL);    \r
+    return new ArrayList<String>();\r
+  }\r
+\r
 }\r