X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmain%2Fjava%2Fcom%2Findexdata%2Fmkjsf%2Fpazpar2%2FPz2Client.java;h=9e02137d14a54bfa19860f16218afe8ca2e2ed0c;hb=74ea81b22375676bf687d614161c19f268289e39;hp=6dfe77f7f570914465083725ddef3a47222333b8;hpb=3cc9707fdd556a222b5d8e6bba61c84a320eb357;p=mkjsf-moved-to-github.git
diff --git a/src/main/java/com/indexdata/mkjsf/pazpar2/Pz2Client.java b/src/main/java/com/indexdata/mkjsf/pazpar2/Pz2Client.java
index 6dfe77f..9e02137 100644
--- a/src/main/java/com/indexdata/mkjsf/pazpar2/Pz2Client.java
+++ b/src/main/java/com/indexdata/mkjsf/pazpar2/Pz2Client.java
@@ -27,6 +27,35 @@ import com.indexdata.mkjsf.pazpar2.commands.Pazpar2Command;
import com.indexdata.mkjsf.pazpar2.data.CommandError;
import com.indexdata.mkjsf.utils.Utils;
+/**
+ * Search client handling straight Pazpar2 requests.
+ *
+ *
Although it is described here as straight Pazpar2, the client itself
+ * actually represents a layer between Pazpar2 and the JSF application because it
+ * uses the Pazpar2 client from the library masterkey-common.
+ * That client, which is the one also used by the Service Proxy, does perform certain
+ * types of session handling, bootstraps lost sessions, avoids repeating already
+ * executed queries etc, so it is -- in other words -- still a mediated interaction
+ * with Pazpar2 that takes place. At least for now.
+ *
+ * Configuration
+ *
+ * Configuration name: pz2client.
+ *
+ * When configuring the client using the Mk2Config scheme, this is the prefix to
+ * use in the .properties file. When using web.xml context parameters for configuration
+ * the configuration name has no effect.
+ *
+ * Pz2Client will acknowledge following configuration parameters:
+ *
+ *
+ * - (pz2client.)PAZPAR2_URL
+ * - (pz2client.)SERVICE_ID
+ *
+ *
+ * @author Niels Erik
+ *
+ */
public class Pz2Client implements SearchClient {
private static final long serialVersionUID = 5414266730169982028L;
@@ -34,6 +63,10 @@ public class Pz2Client implements SearchClient {
private transient Pazpar2Client client = null;
private Pazpar2ClientConfiguration cfg = null;
public static final String MODULENAME = "pz2client";
+
+ /**
+ * PAZPAR2_URL=none, PROXY_MODE=1, SERIALIZE_REQUESTS=false, STREAMBUFF_SIZE=4096, PARSE_RESPONSES=true
+ */
public static Map DEFAULTS = new HashMap();
Configuration config = null;
@@ -88,6 +121,13 @@ public class Pz2Client implements SearchClient {
client.setSearchCommand(clientCommand);
}
+ /**
+ * Runs the give Pazpar2 command and returns a response wrapper with either the received response or
+ * with some form of error message.
+ *
+ * It is intended that this method never throws an exception. All events are supposed to be captured and
+ * returned in some form of response.
+ */
@Override
public HttpResponseWrapper executeCommand(Pazpar2Command command) {
ClientCommandResponse commandResponse = null;
@@ -132,7 +172,7 @@ public class Pz2Client implements SearchClient {
commandResponse = new ClientCommandResponse(0,CommandError.createErrorXml(command.getCommandName(), "", "ServiceError", e.getMessage(),""),"text/xml");
}
long end = System.currentTimeMillis();
- logger.debug("Executed " + command.getCommandName() + " in " + (end-start) + " ms." );
+ logger.info("Executed " + command.getCommandName() + " in " + (end-start) + " ms." );
return commandResponse;
}
@@ -144,11 +184,17 @@ public class Pz2Client implements SearchClient {
return clone;
}
+ /**
+ * Returns default configuration parameters for the client.
+ */
@Override
public Map getDefaults() {
return DEFAULTS;
}
+ /**
+ * Returns the configuration name of the client
+ */
@Override
public String getModuleName() {
return MODULENAME;
@@ -178,6 +224,9 @@ public class Pz2Client implements SearchClient {
}
}
+ /**
+ * Provides configuration documentation -- mostly for diagnosing problems
+ */
@Override
public List documentConfiguration() {
List doc = new ArrayList();
@@ -189,25 +238,41 @@ public class Pz2Client implements SearchClient {
return config;
}
+ /**
+ * Returns the currently configured Papzar2 URL.
+ */
@Override
public String getServiceUrl() {
return cfg.PAZPAR2_URL;
}
+ /**
+ * Returns true if a Papzar2 URL was defined yet.
+ */
@Override
public boolean hasServiceUrl() {
return cfg.PAZPAR2_URL != null && cfg.PAZPAR2_URL.length()>0;
}
+ /**
+ * Sets the Pazpar2 URL to use for requests.
+ */
@Override
public void setServiceUrl (String serviceUrl) {
cfg.PAZPAR2_URL = serviceUrl;
}
+ /**
+ * Returns the Pazpar2 Service ID
+ */
public String getServiceId () {
return cfg.PAZPAR2_SERVICE_ID;
}
+ /**
+ * Sets the service ID that Pazpar2 should use when servicing requests
+ * @param serviceId
+ */
public void setServiceId(String serviceId) {
cfg.PAZPAR2_SERVICE_ID = serviceId;
try {