perfsonar-dev - perfsonar: r5363 - branches/new-structure-with-base2/ps-mdm-ls/src/main/java/org/perfsonar/service/lookupservice
Subject: perfsonar development work
List archive
perfsonar: r5363 - branches/new-structure-with-base2/ps-mdm-ls/src/main/java/org/perfsonar/service/lookupservice
Chronological Thread
- From:
- To:
- Subject: perfsonar: r5363 - branches/new-structure-with-base2/ps-mdm-ls/src/main/java/org/perfsonar/service/lookupservice
- Date: Mon, 30 Nov 2009 09:06:09 -0500
Author: trzaszcz
Date: 2009-11-30 09:06:09 -0500 (Mon, 30 Nov 2009)
New Revision: 5363
Modified:
branches/new-structure-with-base2/ps-mdm-ls/src/main/java/org/perfsonar/service/lookupservice/LSQueryServiceEngine.java
Log:
refactoring
Modified:
branches/new-structure-with-base2/ps-mdm-ls/src/main/java/org/perfsonar/service/lookupservice/LSQueryServiceEngine.java
===================================================================
---
branches/new-structure-with-base2/ps-mdm-ls/src/main/java/org/perfsonar/service/lookupservice/LSQueryServiceEngine.java
2009-11-30 14:02:05 UTC (rev 5362)
+++
branches/new-structure-with-base2/ps-mdm-ls/src/main/java/org/perfsonar/service/lookupservice/LSQueryServiceEngine.java
2009-11-30 14:06:09 UTC (rev 5363)
@@ -6,152 +6,142 @@
import org.perfsonar.base2.xml.Element;
import org.perfsonar.base2.xml.nmwg.Message;
import org.perfsonar.base2.xml.nmwg.Metadata;
+import org.perfsonar.base2.xml.nmwg.Parameters;
-
/**
* LS Query Action
*
* @author Maciej Glowiak
- *
+ *
*/
-public class LSQueryServiceEngine
- extends GenericLSServiceROEngine {
+public class LSQueryServiceEngine extends GenericLSServiceROEngine {
- // --------------------------------------------------------------
Constants
+ // --------------------------------------------------------------
Constants
+ private static final Logger logger = Logger
+ .getLogger(LSQueryServiceEngine.class.getName());
- private static final Logger logger =
Logger.getLogger(LSQueryServiceEngine.class.getName());
+ /**
+ * Supported query types, eventType (e.g. "xquery")
+ */
+ private String[] queryEventTypes = {
+ "service.lookup.xpath", // DEPRECATED
+ "service.lookup.xquery", // DEPRECATED
+
"http://ggf.org/ns/nmwg/tools/org/perfsonar/service/lookup/xquery/1.0",
+
"http://ggf.org/ns/nmwg/tools/org/perfsonar/service/lookup/xpath/1.0",
+
"http://ogf.org/ns/nmwg/tools/org/perfsonar/service/lookup/discovery/xquery/2.0",
+
"http://ogf.org/ns/nmwg/tools/org/perfsonar/service/lookup/query/xquery/2.0",
};
- /**
- * Supported query types, eventType (e.g. "xquery")
- */
- private String[] queryEventTypes = {
- "service.lookup.xpath", //DEPRECATED
- "service.lookup.xquery", //DEPRECATED
-
"http://ggf.org/ns/nmwg/tools/org/perfsonar/service/lookup/xquery/1.0",
-
"http://ggf.org/ns/nmwg/tools/org/perfsonar/service/lookup/xpath/1.0",
-
"http://ogf.org/ns/nmwg/tools/org/perfsonar/service/lookup/discovery/xquery/2.0",
-
"http://ogf.org/ns/nmwg/tools/org/perfsonar/service/lookup/query/xquery/2.0",
- };
+ private String[] discoveryEventTypes = {
"http://ogf.org/ns/nmwg/tools/org/perfsonar/service/lookup/discovery/summary/2.0",
};
- private String[] discoveryEventTypes = {
-
"http://ogf.org/ns/nmwg/tools/org/perfsonar/service/lookup/discovery/summary/2.0",
- };
-
+ public LSQueryServiceEngine() throws PerfSONARException {
+ super();
+ }
- public LSQueryServiceEngine() throws PerfSONARException {
- super();
- }
+ // ----------------------------------------------------- instance
variables
+ // -----------------------------------------------------------
Constructor
- // ----------------------------------------------------- instance
variables
-
-
+ // --------------------------------------------------------- Public
methods
-
- // -----------------------------------------------------------
Constructor
-
-
-
- // --------------------------------------------------------- Public
methods
-
-
- public void takeAction(ServiceMessage serviceRequest, ServiceMessage
serviceResponse)
- throws PerfSONARException {
-
- logger.debug("Action LOOKUP started");
-
- //extract message
- Message requestMessage = serviceRequest.getMessageElement();
-// logger.debug("got message"+requestMessage);
-
- String eventType = null;
- String lsOutput = null;
- Element subject = null;
- Metadata metadataWithSubject = null;
+ public void takeAction(ServiceMessage serviceRequest,
+ ServiceMessage serviceResponse) throws
PerfSONARException {
- //Process metadata
- for (Element e : requestMessage.getChildren("metadata")) {
-
- //convert generic element to Metadata if possible
- if (e instanceof Metadata) {
-
- Metadata m = (Metadata)e;
-
- //try to get event type
- try {
- eventType = m.getFirstEventType().getEventType();
- logger.debug("Found eventType [+eventType+]");
- } catch (Exception ex) {
- ex.printStackTrace();
- }
-
- //try to get subject
- try {
- subject=m.getChildren("subject").iterator().next();
-
- metadataWithSubject = m;
- logger.debug("Found subject (namespace
"+subject.getNamespacePrefix()+")");
- } catch (Exception ex) {
- ex.printStackTrace();
- }
+ logger.debug("Action LOOKUP started");
- //try to get parameters
- try {
-
- lsOutput =
m.getParameters("http://ggf.org/ns/nmwg/tools/org/perfsonar/service/lookup/xquery/1.0/").getFirstParameter("lsOutput").getValue();
- logger.debug("Found lsOutput parameter ["+lsOutput+"]");
- } catch (Exception ex) {
- //TODO : improve it !!
- //ex.printStackTrace();
- }
-
- }
- }
+ // extract message
+ Message requestMessage = serviceRequest.getMessageElement();
+ // logger.debug("got message"+requestMessage);
-
- //check eventType
- if (isLookupQuery(eventType)) {
- logger.debug("EventType ["+eventType+"] accepted, taking RAW
LSQuery action");
+ String eventType = null;
+ String lsOutput = null;
+ Element subject = null;
+ Metadata metadataWithSubject = null;
- LSQueryAction queryAction = new LSQueryAction(dao); //process
QUERY
- queryAction.performQuery(
- serviceRequest, serviceResponse,
- requestMessage, subject, lsOutput);
-
- } else if (isLookupDiscovery(eventType)) {
- logger.debug("EventType ["+eventType+"] accepted, taking
LSDiscovery action");
- LSDiscoveryAction discovery = new LSDiscoveryAction(dao);
//process DISCOVERY
-
- logger.debug("!!!!!!!!! subject:"+subject);
-
- discovery.performAction(
- serviceRequest, serviceResponse,
- requestMessage, metadataWithSubject, subject);
-
- } else {
- String m = "Event Type ["+eventType+"] not found, unknown or not
supported";
- logger.error(m);
- throw new PerfSONARException("error/no_event_type", m);
- }
-
- }
+ // Process metadata
+ for (Element e : requestMessage.getChildren("metadata")) {
- private boolean eventTypeInArray(String needle, String[] haystack) {
- for (String h : haystack) {
- if (h.equals(needle)) return true;
- else if (h.equals(needle+"/")) return true;
- }
- return false;
- }
-
- private boolean isLookupDiscovery(String queryType) {
- return eventTypeInArray(queryType, discoveryEventTypes);
- }
+ // convert generic element to Metadata if possible
+ if (e instanceof Metadata) {
+ Metadata m = (Metadata) e;
- private boolean isLookupQuery(String queryType) {
- return eventTypeInArray(queryType, queryEventTypes);
- }
+ // try to get event type
+ try {
+ eventType =
m.getFirstEventType().getEventType();
+ logger.debug("Found eventType
[+eventType+]");
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
-} //LSLookupAction
+ // try to get subject
+ try {
+ subject =
m.getChildren("subject").iterator().next();
+
+ metadataWithSubject = m;
+ logger.debug("Found subject
(namespace "
+ +
subject.getNamespacePrefix() + ")");
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+
+ // try to get parameters
+ Parameters parameters = m
+
.getParameters("http://ggf.org/ns/nmwg/tools/org/perfsonar/service/lookup/xquery/1.0/");
+ if (parameters.getChildren("parameters") !=
null) {
+ lsOutput =
parameters.getFirstParameter("lsOutput")
+ .getValue();
+ logger.debug("Found lsOutput
parameter [" + lsOutput + "]");
+ }
+
+ }
+ }
+
+ // check eventType
+ if (isLookupQuery(eventType)) {
+ logger.debug("EventType [" + eventType
+ + "] accepted, taking RAW LSQuery
action");
+
+ LSQueryAction queryAction = new LSQueryAction(dao);
// process QUERY
+ queryAction.performQuery(serviceRequest,
serviceResponse,
+ requestMessage, subject, lsOutput);
+
+ } else if (isLookupDiscovery(eventType)) {
+ logger.debug("EventType [" + eventType
+ + "] accepted, taking LSDiscovery
action");
+ LSDiscoveryAction discovery = new
LSDiscoveryAction(dao); // process
+
// DISCOVERY
+
+ logger.debug("!!!!!!!!! subject:" + subject);
+
+ discovery.performAction(serviceRequest,
serviceResponse,
+ requestMessage, metadataWithSubject,
subject);
+
+ } else {
+ String m = "Event Type [" + eventType
+ + "] not found, unknown or not
supported";
+ logger.error(m);
+ throw new PerfSONARException("error/no_event_type",
m);
+ }
+
+ }
+
+ private boolean eventTypeInArray(String needle, String[] haystack) {
+ for (String h : haystack) {
+ if (h.equals(needle))
+ return true;
+ else if (h.equals(needle + "/"))
+ return true;
+ }
+ return false;
+ }
+
+ private boolean isLookupDiscovery(String queryType) {
+ return eventTypeInArray(queryType, discoveryEventTypes);
+ }
+
+ private boolean isLookupQuery(String queryType) {
+ return eventTypeInArray(queryType, queryEventTypes);
+ }
+
+} // LSLookupAction
- perfsonar: r5363 - branches/new-structure-with-base2/ps-mdm-ls/src/main/java/org/perfsonar/service/lookupservice, svnlog, 11/30/2009
Archive powered by MHonArc 2.6.16.