Skip to Content.
Sympa Menu

perfsonar-dev - r1778 - in branches/yi-udel/perfsonar/src/org/perfsonar: client/testHarness service/commons/storage/xmldb/bdbxml service/lookupService/xmlType

Subject: perfsonar development work

List archive

r1778 - in branches/yi-udel/perfsonar/src/org/perfsonar: client/testHarness service/commons/storage/xmldb/bdbxml service/lookupService/xmlType


Chronological Thread 
  • From:
  • To:
  • Subject: r1778 - in branches/yi-udel/perfsonar/src/org/perfsonar: client/testHarness service/commons/storage/xmldb/bdbxml service/lookupService/xmlType
  • Date: Mon, 27 Nov 2006 14:37:04 -0500

Author: yi
Date: 2006-11-27 14:37:03 -0500 (Mon, 27 Nov 2006)
New Revision: 1778

Modified:

branches/yi-udel/perfsonar/src/org/perfsonar/client/testHarness/LSTestClient.java

branches/yi-udel/perfsonar/src/org/perfsonar/service/commons/storage/xmldb/bdbxml/BerkeleyDbXmlStorageManager.java

branches/yi-udel/perfsonar/src/org/perfsonar/service/lookupService/xmlType/LSSummary.java

branches/yi-udel/perfsonar/src/org/perfsonar/service/lookupService/xmlType/LSTokenUtilities.java
Log:
make BDB local and external summary static so that both queries get parsed
once for all

Modified:
branches/yi-udel/perfsonar/src/org/perfsonar/client/testHarness/LSTestClient.java
===================================================================
---
branches/yi-udel/perfsonar/src/org/perfsonar/client/testHarness/LSTestClient.java
2006-11-27 10:36:46 UTC (rev 1777)
+++
branches/yi-udel/perfsonar/src/org/perfsonar/client/testHarness/LSTestClient.java
2006-11-27 19:37:03 UTC (rev 1778)
@@ -62,8 +62,20 @@
//Test RequestHandler
try {
String filename = args[2];
+
+ // get a timestamp.
+ double startTime =
+ new Long(System.currentTimeMillis()).doubleValue();
+
+ // do the actual local test
lsTest.testRequestHandler("file://"+filename);

+ // get another timestamp
+ double endTime =
+ new Long(System.currentTimeMillis()).doubleValue();
+
+ System.out.println("time taken :"+((endTime-startTime)/1000d)+"
secs");
+
} catch (NullPointerException ex) {
System.out.println("For [RequestHandler] filename is required,
"+ex.getMessage());
} catch (IndexOutOfBoundsException ex) {

Modified:
branches/yi-udel/perfsonar/src/org/perfsonar/service/commons/storage/xmldb/bdbxml/BerkeleyDbXmlStorageManager.java
===================================================================
---
branches/yi-udel/perfsonar/src/org/perfsonar/service/commons/storage/xmldb/bdbxml/BerkeleyDbXmlStorageManager.java
2006-11-27 10:36:46 UTC (rev 1777)
+++
branches/yi-udel/perfsonar/src/org/perfsonar/service/commons/storage/xmldb/bdbxml/BerkeleyDbXmlStorageManager.java
2006-11-27 19:37:03 UTC (rev 1778)
@@ -72,6 +72,9 @@
private static XmlManager myManager = null;
private XmlContainer myContainer;

+ private static XmlQueryExpression localSummary = null;
+ private static XmlQueryExpression externalSummary = null;
+
public BerkeleyDbXmlStorageManager () throws SystemException
{
try
@@ -157,6 +160,98 @@
}
}

+ public Object localSummary(String localSummaryPath) throws
SystemException, DataFormatException, Exception
+ {
+ // XmlQueryContext
+ XmlQueryContext qc = myManager.createQueryContext();
+
+ if (localSummary == null)
+ {
+ // summary not loaded, load it
+ String queryString = "";
+
+ // query is not that long, so reading one time is
enough
+ char[] chars = new char[4096];
+ FileReader inputStream = new
FileReader(localSummaryPath);
+ inputStream.read(chars);
+ inputStream.close();
+ queryString += String.valueOf(chars).trim();
+ localSummary = myManager.prepare (queryString, qc);
+ }
+
+ try
+ {
+ XmlResults results = localSummary.execute (qc);
+ // Put result into String []
+ XmlValue value;
+ String[] xmlResults = new String[results.size()];
+ for (int i = 0; i < results.size(); i ++)
+ {
+ value = results.next();
+ xmlResults[i] = value.asString();
+ }
+
+ // determine return type
+ if (getResultType() == XmlDbConstants.RETURN_STRING_ARRAY)
+ return xmlResults;
+ else if (getResultType() ==
XmlDbConstants.RETURN_XML_DB_RESULT)
+ return new XmlDbResult(xmlResults, xmlResults.length,
1, xmlResults.length);
+ else // default
+ return xmlResults;
+ }
+ catch (XmlException e)
+ {
+ throw new SystemException("error.common.storage.xmldb.query",
+ "Can't perform XQuery: "+e.getMessage());
+ }
+ }
+
+ public Object externalSummary(String localSummaryPath) throws
SystemException, DataFormatException, Exception
+ {
+ // XmlQueryContext
+ XmlQueryContext qc = myManager.createQueryContext();
+
+ if (externalSummary == null)
+ {
+ // summary not loaded, load it
+ String queryString = "";
+
+ // query is not that long, so reading one time is
enough
+ char[] chars = new char[4096];
+ FileReader inputStream = new
FileReader(localSummaryPath);
+ inputStream.read(chars);
+ inputStream.close();
+ queryString += String.valueOf(chars).trim();
+ externalSummary = myManager.prepare (queryString, qc);
+ }
+
+ try
+ {
+ XmlResults results = externalSummary.execute (qc);
+ // Put result into String []
+ XmlValue value;
+ String[] xmlResults = new String[results.size()];
+ for (int i = 0; i < results.size(); i ++)
+ {
+ value = results.next();
+ xmlResults[i] = value.asString();
+ }
+
+ // determine return type
+ if (getResultType() == XmlDbConstants.RETURN_STRING_ARRAY)
+ return xmlResults;
+ else if (getResultType() ==
XmlDbConstants.RETURN_XML_DB_RESULT)
+ return new XmlDbResult(xmlResults, xmlResults.length,
1, xmlResults.length);
+ else // default
+ return xmlResults;
+ }
+ catch (XmlException e)
+ {
+ throw new SystemException("error.common.storage.xmldb.query",
+ "Can't perform XQuery: "+e.getMessage());
+ }
+ }
+
public Object fetch(Object dataQuery) throws SystemException,
RequestException, DataFormatException
{
String queryString = null;

Modified:
branches/yi-udel/perfsonar/src/org/perfsonar/service/lookupService/xmlType/LSSummary.java
===================================================================
---
branches/yi-udel/perfsonar/src/org/perfsonar/service/lookupService/xmlType/LSSummary.java
2006-11-27 10:36:46 UTC (rev 1777)
+++
branches/yi-udel/perfsonar/src/org/perfsonar/service/lookupService/xmlType/LSSummary.java
2006-11-27 19:37:03 UTC (rev 1778)
@@ -21,7 +21,6 @@
import
org.perfsonar.service.commons.storage.xmldb.exist.xmlrpc.ExistDbXmlrpcXmlStorageManager;
import
org.perfsonar.service.commons.storage.xmldb.exist.rest.ExistDbHttpXmlStorageManager;

-import java.io.FileReader;
import java.io.File;
import java.lang.String;
import java.io.StringReader;
@@ -192,16 +191,7 @@
logger.debug("LSSummary: XQuery Starting...");

try {
- query = "";
-
- // query is not that long, so reading one time is
enough
- char[] chars = new char[4096];
- FileReader inputStream = new
FileReader(getSummaryXQuery());
- inputStream.read(chars);
- inputStream.close();
- query += String.valueOf(chars).trim();
-
- edbres = (XmlDbResult)xmlStorageManager.fetch(query);
+ edbres =
(XmlDbResult)((BerkeleyDbXmlStorageManager)xmlStorageManager).localSummary(getSummaryXQuery());

results = (String[])edbres.getResultAsStringArray();
}
catch(Exception err) {

Modified:
branches/yi-udel/perfsonar/src/org/perfsonar/service/lookupService/xmlType/LSTokenUtilities.java
===================================================================
---
branches/yi-udel/perfsonar/src/org/perfsonar/service/lookupService/xmlType/LSTokenUtilities.java
2006-11-27 10:36:46 UTC (rev 1777)
+++
branches/yi-udel/perfsonar/src/org/perfsonar/service/lookupService/xmlType/LSTokenUtilities.java
2006-11-27 19:37:03 UTC (rev 1778)
@@ -32,7 +32,6 @@
import org.apache.axis.message.SOAPBodyElement;
import org.w3c.dom.Document;

-import java.io.FileReader;
import java.io.File;
import java.lang.String;
import java.io.StringReader;
@@ -849,16 +848,7 @@
logger.debug("LSTokenUtilities: XQuery Starting...");

try {
- query = "";
-
- // query is not that long, so reading one time is
enough
- char[] chars = new char[4096];
- FileReader inputStream = new
FileReader(getSummaryXQuery());
- inputStream.read(chars);
- inputStream.close();
- query += String.valueOf(chars).trim();
-
- edbres = (XmlDbResult)xmlStorageManager.fetch(query);
+ edbres =
(XmlDbResult)((BerkeleyDbXmlStorageManager)xmlStorageManager).externalSummary(getSummaryXQuery());

results = (String[])edbres.getResultAsStringArray();
}
catch(Exception err) {



  • r1778 - in branches/yi-udel/perfsonar/src/org/perfsonar: client/testHarness service/commons/storage/xmldb/bdbxml service/lookupService/xmlType, svnlog, 11/27/2006

Archive powered by MHonArc 2.6.16.

Top of Page