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
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.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
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
-@Named @SessionScoped @Alternative\r
+@Named @SessionScoped \r
public class StraightPz2Client implements SearchClient {\r
\r
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
throw new ConfigurationException("Pazpar2Client is null after configuration");\r
} \r
}\r
-\r
+ \r
+ public boolean isAuthenticatingClient () {\r
+ return false;\r
+ }\r
+ \r
+ public boolean isAuthenticated() {\r
+ return false;\r
+ }\r
+ \r
+ public boolean authenticate() {\r
+ throw new UnsupportedOperationException("No authentication mechanism for straight pazpar2 client");\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
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