Skip to Content.
Sympa Menu

perfsonar-dev - [pS-dev] [GEANT/SA2/ps-java-services] r6487 - in trunk: perfsonar-java-sql-ma perfsonar-java-sql-ma/sr c/main/java/org/perfsonar/service/measurementArchive/sqlTy pe perfsonar-java-sql-ma/src/main/resources/perfsonar/conf perfsonar-java-sql-ma/src/test/resources/perfsonar/conf p erfsonar-java-sql-ma/test/JavaSQLMAsoapUI/InterfaceBased p erfsonar_base perfsonar_base/src/main/java/org/perfson ar/service/base/storage/xmldb/exist/xmlrpc perfsonar_bas e/src/main/java/org/perfsonar/service/measurementArchive/m etadataConfig perfsonar_base/src/main/java/org/perfsonar /service/measurementArchive/metadataConfig/queryGenerator

Subject: perfsonar development work

List archive

[pS-dev] [GEANT/SA2/ps-java-services] r6487 - in trunk: perfsonar-java-sql-ma perfsonar-java-sql-ma/sr c/main/java/org/perfsonar/service/measurementArchive/sqlTy pe perfsonar-java-sql-ma/src/main/resources/perfsonar/conf perfsonar-java-sql-ma/src/test/resources/perfsonar/conf p erfsonar-java-sql-ma/test/JavaSQLMAsoapUI/InterfaceBased p erfsonar_base perfsonar_base/src/main/java/org/perfson ar/service/base/storage/xmldb/exist/xmlrpc perfsonar_bas e/src/main/java/org/perfsonar/service/measurementArchive/m etadataConfig perfsonar_base/src/main/java/org/perfsonar /service/measurementArchive/metadataConfig/queryGenerator


Chronological Thread 
  • From:
  • To:
  • Subject: [pS-dev] [GEANT/SA2/ps-java-services] r6487 - in trunk: perfsonar-java-sql-ma perfsonar-java-sql-ma/sr c/main/java/org/perfsonar/service/measurementArchive/sqlTy pe perfsonar-java-sql-ma/src/main/resources/perfsonar/conf perfsonar-java-sql-ma/src/test/resources/perfsonar/conf p erfsonar-java-sql-ma/test/JavaSQLMAsoapUI/InterfaceBased p erfsonar_base perfsonar_base/src/main/java/org/perfson ar/service/base/storage/xmldb/exist/xmlrpc perfsonar_bas e/src/main/java/org/perfsonar/service/measurementArchive/m etadataConfig perfsonar_base/src/main/java/org/perfsonar /service/measurementArchive/metadataConfig/queryGenerator
  • Date: Mon, 3 Feb 2014 23:30:31 +0000 (GMT)

Author: dante.delvaux
Date: 2014-02-03 23:30:31 +0000 (Mon, 03 Feb 2014)
New Revision: 6487

Modified:
trunk/perfsonar-java-sql-ma/pom.xml

trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/JdbcStorageManager.java

trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/SQLTypeMAServiceEngine.java

trunk/perfsonar-java-sql-ma/src/main/resources/perfsonar/conf/log4j.properties

trunk/perfsonar-java-sql-ma/src/test/resources/perfsonar/conf/log4j.properties

trunk/perfsonar-java-sql-ma/test/JavaSQLMAsoapUI/InterfaceBased/SQL_MA_soapui-project.xml
trunk/perfsonar_base/

trunk/perfsonar_base/src/main/java/org/perfsonar/service/base/storage/xmldb/exist/xmlrpc/ExistDbXmlrpcXmlStorageManager.java

trunk/perfsonar_base/src/main/java/org/perfsonar/service/measurementArchive/metadataConfig/Transformations.java

trunk/perfsonar_base/src/main/java/org/perfsonar/service/measurementArchive/metadataConfig/queryGenerator/IperfQueryGenerator.java
Log:
SQLMA and ps-base1: trying to make iperf/bwctl storage and retreival case
insensitive wrt parameters. PSANALYSIS-429

Modified: trunk/perfsonar-java-sql-ma/pom.xml
===================================================================
--- trunk/perfsonar-java-sql-ma/pom.xml 2014-01-30 22:56:37 UTC (rev 6486)
+++ trunk/perfsonar-java-sql-ma/pom.xml 2014-02-03 23:30:31 UTC (rev 6487)
@@ -87,7 +87,7 @@
<dependency>
<groupId>net.geant.perfsonar</groupId>
<artifactId>perfsonar_base</artifactId>
- <version>1.1.3</version>
+ <version>1.1.4-SNAPSHOT</version>
<exclusions>
<exclusion>
<artifactId>slf4j-simple</artifactId>

Modified:
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/JdbcStorageManager.java
===================================================================
---
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/JdbcStorageManager.java
2014-01-30 22:56:37 UTC (rev 6486)
+++
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/JdbcStorageManager.java
2014-02-03 23:30:31 UTC (rev 6487)
@@ -170,7 +170,7 @@
}
});

- PerfSONARException pex = new PerfSONARException("success.ma.write",
"Data have been stored");
+ PerfSONARException pex = new PerfSONARException("success.ma.write",
"Data has been stored");
return ResultCodesUtil.createResultCodeMetadata(new Message(), pex);
}


Modified:
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/SQLTypeMAServiceEngine.java
===================================================================
---
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/SQLTypeMAServiceEngine.java
2014-01-30 22:56:37 UTC (rev 6486)
+++
trunk/perfsonar-java-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/sqlType/SQLTypeMAServiceEngine.java
2014-02-03 23:30:31 UTC (rev 6487)
@@ -181,8 +181,7 @@
}


- protected Key getStoreKey(Metadata metadata)
- throws PerfSONARException
+ protected Key getStoreKey(Metadata metadata) throws PerfSONARException
{
EventType eventTypeObj = metadata.getEventType();
if (eventTypeObj == null) {
@@ -198,6 +197,7 @@
+ "eventType in the request metadata is empty");
}

+ // Try to get the Key from the incoming request
Key key = metadata.getKey();

if (key == null) {
@@ -216,8 +216,7 @@
}

if (!resp.getDataMap().isEmpty()) {
- // metadata already exists in xmldb
-
+ // metadata already exists in xmldb, we use the same key
Data data = resp.getDataArray()[0];
key = data.getKey();

@@ -225,35 +224,39 @@
key.addParameter("eventType", eventType);
}
} else {
- // metadata does not exist in xmldb
-
+ // metadata does not exist in xmldb, we create it and get a
new key from there
Metadata metadata2 = new Metadata();
metadata2.setSubject(metadata.getSubject());
metadata2.setEventType(eventTypeObj);
Parameters params = metadata.getParameters();
if (params != null) {
metadata2.setParameters(params);
- }

- /* Parameters are added to the key such that the data store
can
- * access them. Eg. OwampDao needs to know the output format.
- */
- key = new Key();
- for (Object parameter: params.getParameterMap().values()) {
- key.addParameter((Parameter) parameter);
- }
- key.addParameter("metadataId", metadata2.getId());
- key.addParameter("eventType", eventType);
+ /* Parameters are added to the key such that the data
store can
+ * access them. Eg. OwampDao needs to know the output
format.
+ */
+ key = new Key();
+ for (Object parameter:
params.getParameterMap().values()) {
+ key.addParameter((Parameter) parameter);
+ }
+ key.addParameter("metadataId", metadata2.getId());
+ key.addParameter("eventType", eventType);

- Data data = new Data();
- data.addChild(key);
- data.setMetadataIdRef(metadata2.getId());
+ Data data = new Data();
+ data.addChild(key);
+ data.setMetadataIdRef(metadata2.getId());

- Message configMessage = new Message();
- configMessage.addChild(metadata2);
- configMessage.addChild(data);
+ Message configMessage = new Message();
+ configMessage.addChild(metadata2);
+ configMessage.addChild(data);

- metadataConfig.store(configMessage);
+ metadataConfig.store(configMessage);
+ } else {
+ String msg = "No parameter given with the
MeasurementArchiveStoreRequest request: "
+ + "we cannot create the storage key";
+ logger.warn(msg);
+ throw new PerfSONARException("error.ma.query", msg);
+ }
}
}
return key;

Modified:
trunk/perfsonar-java-sql-ma/src/main/resources/perfsonar/conf/log4j.properties
===================================================================
---
trunk/perfsonar-java-sql-ma/src/main/resources/perfsonar/conf/log4j.properties
2014-01-30 22:56:37 UTC (rev 6486)
+++
trunk/perfsonar-java-sql-ma/src/main/resources/perfsonar/conf/log4j.properties
2014-02-03 23:30:31 UTC (rev 6487)
@@ -1,7 +1,13 @@
# This is the configuration for LOG4J for perfSONAR production services

+# Global/Root log level is INFO
log4j.rootLogger=INFO, psRootAppender

+# Uncomment these 2 lines to enable debug logging for perfSONAR
+#log4j.logger.sonar-debug=DEBUG, psRootAppender
+#log4j.additivity.sonar-debug=false
+
+# The only appender
log4j.appender.psRootAppender=org.apache.log4j.RollingFileAppender
log4j.appender.psRootAppender.MaxBackupIndex=11

log4j.appender.psRootAppender.File=/var/log/${project.build.finalName}/sqlma.log

Modified:
trunk/perfsonar-java-sql-ma/src/test/resources/perfsonar/conf/log4j.properties
===================================================================
---
trunk/perfsonar-java-sql-ma/src/test/resources/perfsonar/conf/log4j.properties
2014-01-30 22:56:37 UTC (rev 6486)
+++
trunk/perfsonar-java-sql-ma/src/test/resources/perfsonar/conf/log4j.properties
2014-02-03 23:30:31 UTC (rev 6487)
@@ -1,7 +1,13 @@
# This is the configuration for LOG4J for perfSONAR development purposes

-log4j.rootLogger=DEBUG, psRootAppender
+# Global/Root log level is INFO
+log4j.rootLogger=INFO, psRootAppender

+# Debug logging for perfSONAR
+log4j.logger.sonar-debug=DEBUG, psRootAppender
+log4j.additivity.sonar-debug=false
+
+# The only appender
log4j.appender.psRootAppender=org.apache.log4j.RollingFileAppender
log4j.appender.psRootAppender.MaxBackupIndex=11
log4j.appender.psRootAppender.File=logs/sqlma-debug.log

Modified:
trunk/perfsonar-java-sql-ma/test/JavaSQLMAsoapUI/InterfaceBased/SQL_MA_soapui-project.xml
===================================================================
---
trunk/perfsonar-java-sql-ma/test/JavaSQLMAsoapUI/InterfaceBased/SQL_MA_soapui-project.xml
2014-01-30 22:56:37 UTC (rev 6486)
+++
trunk/perfsonar-java-sql-ma/test/JavaSQLMAsoapUI/InterfaceBased/SQL_MA_soapui-project.xml
2014-02-03 23:30:31 UTC (rev 6487)
@@ -1534,40 +1534,50 @@

sql.close()
assert(success)
-</scriptText></con:configuration></con:assertion><con:credentials><con:username
xsi:nil="true"/><con:password xsi:nil="true"/><con:domain
xsi:nil="true"/><con:authType>Global HTTP
Settings</con:authType></con:credentials><con:jmsConfig
JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig
mustUnderstand="NONE" version="200508"/><con:wsrmConfig
version="1.2"/></con:request></con:config></con:testStep><con:testStep
type="request" name="perfsonar_iperf without key"
id="ae1d4f08-85b1-4bfc-8c8f-a9052cdaa795"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>MeasurementArchiveStoreRequest</con:interface><con:operation>Store</con:operation><con:request
name="perfsonar_iperf without key" outgoingWss=""
incomingWss=""><con:settings><con:setting
id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoin

t>http://sqlma-d7:8080/perfsonar-java-sql-ma/services/MeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ns="http://ggf.org/ns/nmwg/base/2.0/";
xmlns:ns1="http://ggf.org/ns/nmwg/topology/2.0/";>
+</scriptText></con:configuration></con:assertion><con:credentials><con:username
xsi:nil="true"/><con:password xsi:nil="true"/><con:domain
xsi:nil="true"/><con:authType>Global HTTP
Settings</con:authType></con:credentials><con:jmsConfig
JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig
mustUnderstand="NONE" version="200508"/><con:wsrmConfig
version="1.2"/></con:request></con:config></con:testStep><con:testStep
type="request" name="perfsonar_iperf without key"
id="ae1d4f08-85b1-4bfc-8c8f-a9052cdaa795"><con:settings/><con:config
xsi:type="con:RequestStep"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";><con:interface>MeasurementArchiveStoreRequest</con:interface><con:operation>Store</con:operation><con:request
name="perfsonar_iperf without key" outgoingWss=""
incomingWss=""><con:settings><con:setting
id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers">&lt;xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoin

t>http://localhost:8080/perfsonar-java-sql-ma/services/MeasurementArchiveService</con:endpoint><con:request><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
<soapenv:Header/>
<soapenv:Body>
- <nmwg:message id="msg"
- type="MeasurementArchiveStoreRequest"
-
xmlns:netutil="http://ggf.org/ns/nmwg/characteristic/utilization/2.0/";
- xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
- xmlns:nmwgt="http://ggf.org/ns/nmwg/topology/2.0/";>

- <nmwg:metadata id="meta1">
- <netutil:subject id="subj1">
- <nmwgt:interface>
- <nmwgt:hostName>test-hostName</nmwgt:hostName>
- <nmwgt:ifAddress type="ipv4">10.1.2.3</nmwgt:ifAddress>
- <nmwgt:ifName>test-0</nmwgt:ifName>
- <nmwgt:ifDescription>test description</nmwgt:ifDescription>
- <nmwgt:direction>in</nmwgt:direction>
- <nmwgt:authRealm>TestRealm</nmwgt:authRealm>
- <nmwgt:capacity>1000BaseT</nmwgt:capacity>
- </nmwgt:interface>
- </netutil:subject>
- <nmwg:eventType>
- http://ggf.org/ns/nmwg/characteristic/utilization/2.0
- </nmwg:eventType>
- </nmwg:metadata>

- <nmwg:data id="data1" metadataIdRef="meta1">
- <netutil:datum value="12345"
- timeValue="1139270800"
- timeType="unix"
- valueUnits="Bps" />
- </nmwg:data>

-</nmwg:message>
+
+ <nmwg:message id="msg" type="MeasurementArchiveStoreRequest"
+ xmlns="http://ggf.org/ns/nmwg/tools/org/perfsonar/1.0/";
+ xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/";
+ xmlns:bwctl="http://ggf.org/ns/nmwg/tools/bwctl/2.0/";
+ xmlns:iperf="http://ggf.org/ns/nmwg/tools/iperf/2.0/";
+ xmlns:nmwgt="http://ggf.org/ns/nmwg/topology/2.0/";>
+
+ <nmwg:metadata id="bwctl-metadata">
+ <bwctl:subject id="bwctl-subject">
+ <nmwgt:endPoint type="ipv4" value="131.188.81.12"/>
+ </bwctl:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/bwctl/2.0</nmwg:eventType>
+ <bwctl:parameters id="bwctl-parameters">
+ <nmwg:parameter name="protocol" value="TCP"/>
+ <nmwg:parameter name="duration" value="6"/>
+ </bwctl:parameters>
+ </nmwg:metadata>
+
+ <nmwg:metadata id="iperf-metadata">
+ <iperf:subject id="iperf-subject"
metadataIdRef="bwctl-metadata">
+ <nmwgt:endPointPair>
+ <nmwgt:src type="ipv4" value="131.188.81.61"/>
+ <nmwgt:dst type="ipv4" value="131.188.81.12"/>
+ </nmwgt:endPointPair>
+ </iperf:subject>
+
<nmwg:eventType>http://ggf.org/ns/nmwg/tools/iperf/2.0</nmwg:eventType>
+ <iperf:parameters id="bwctl-parameters">
+ <nmwg:parameter name="protocol" value="tCp"/>
+ <nmwg:parameter name="duration" value="6"/>
+ </iperf:parameters>
+ </nmwg:metadata>
+
+ <nmwg:data id="1" metadataIdRef="iperf-metadata">
+ <iperf:datum throughput="2.56" jitter="1.33" loss="0/837"
timeValue="1197642642"/>
+ <iperf:datum throughput="2.56" jitter="1.33" loss="0/837"
timeValue="1197642642"/>
+ <iperf:datum throughput="2.56" jitter="1.33" loss="0/837"
timeValue="1197642642"/>
+ </nmwg:data>
+
+ </nmwg:message>
+
</soapenv:Body>
</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response"
id="78b6e5ec-ab65-49a6-8764-ccacc995fea4"/><con:assertion type="SOAP Fault
Assertion" id="4d4ae4fd-db83-4595-b8fa-1c953ba5e133"/><con:assertion
type="XPath Match"
id="0521b84b-dbc9-4c30-9e42-07a0ec1a02af"><con:configuration><path>declare
namespace nmwgt='http://ggf.org/ns/nmwg/topology/2.0/';
declare namespace select='http://ggf.org/ns/nmwg/ops/select/2.0/';


Property changes on: trunk/perfsonar_base
___________________________________________________________________
Added: svn:externals
+
svn+ssh:///GEANT/SA2/ps-java-services/trunk/parent/common
common


Modified:
trunk/perfsonar_base/src/main/java/org/perfsonar/service/base/storage/xmldb/exist/xmlrpc/ExistDbXmlrpcXmlStorageManager.java
===================================================================
---
trunk/perfsonar_base/src/main/java/org/perfsonar/service/base/storage/xmldb/exist/xmlrpc/ExistDbXmlrpcXmlStorageManager.java
2014-01-30 22:56:37 UTC (rev 6486)
+++
trunk/perfsonar_base/src/main/java/org/perfsonar/service/base/storage/xmldb/exist/xmlrpc/ExistDbXmlrpcXmlStorageManager.java
2014-02-03 23:30:31 UTC (rev 6487)
@@ -125,7 +125,6 @@
@Override
public Object fetch(Object dataQuery) throws PerfSONARException
{
-
getLogger().debug("ExistXMLDatabaseAccess: perform XQuery");

String xqueryExpression;
@@ -142,21 +141,15 @@
}

try {
-
-
connect();

XPathQueryService service =
- (XPathQueryService)
dataRepository.getExistCollection().getService(
- "XPathQueryService", "1.0");
- //service.setProperty("indent", "yes");
-
+ (XPathQueryService)
dataRepository.getExistCollection().getService("XPathQueryService", "1.0");
if (service == null) {
getLogger().debug("StorageManager: warning - service is
null");
}

ResourceSet result = service.query(xqueryExpression);
-
if (result == null) {
getLogger().debug("StorageManager: warning - result is
null");
}
@@ -172,15 +165,13 @@
}

String[] xml = new String[list.size()];
-
for (i = 0; i < list.size(); i++) {
xml[i] = (String) list.get(i);
}

disconnect();

- //determine return type
-
+ // Determine return type
if (getResultType() == XmlDbConstants.RETURN_STRING_ARRAY) {
return xml;
} else if (getResultType() ==
XmlDbConstants.RETURN_XML_DB_RESULT) {

Modified:
trunk/perfsonar_base/src/main/java/org/perfsonar/service/measurementArchive/metadataConfig/Transformations.java
===================================================================
---
trunk/perfsonar_base/src/main/java/org/perfsonar/service/measurementArchive/metadataConfig/Transformations.java
2014-01-30 22:56:37 UTC (rev 6486)
+++
trunk/perfsonar_base/src/main/java/org/perfsonar/service/measurementArchive/metadataConfig/Transformations.java
2014-02-03 23:30:31 UTC (rev 6487)
@@ -1,5 +1,4 @@
/**
- * $Id$
* Project: perfSONAR
*/
package org.perfsonar.service.measurementArchive.metadataConfig;
@@ -88,15 +87,8 @@
* Returns xpath query created using the information
* stored in Message object.
*/
- public String getMetadataQuery(Message query)
- throws PerfSONARException
+ public String getMetadataQuery(Message query) throws PerfSONARException
{
-
-
- //logger.debug("Transformations.getMetadataQuery: "
- // + "start getMetadataQuery");
-
-
if (query == null) {
throw new PerfSONARException(
"error.ma.query",
@@ -104,7 +96,6 @@
+ "Input message is null");
}

-
Metadata metadata;
try {
Metadata[] metadataArray = (query.getMetadataArray());
@@ -120,10 +111,8 @@
+ ex.toString());
}

-
String eventType;
if (metadata != null) {
-
try {
eventType =
(metadata.getEventType() != null ?
metadata.getEventType().getEventType().trim() : "");
@@ -133,33 +122,23 @@
"Transformations.getMetadataQuery: "
+ "eventType in the request is null");
}
-
} else {
-
throw new PerfSONARException(
"error.ma.query",
"Transformations.getMetadataQuery: "
+ "metadata is missing in the request");
-
}

-
- // getting an appropriate MetadataQueryGenerator to
- // genarate correct metadata query
+ // getting an appropriate MetadataQueryGenerator to genarate correct
metadata query
MetadataQueryGenerator metadataQueryGenerator =

MetadataQueryGeneratorFactory.getMetadataQueryGenerator(eventType);

String mq;
try {
-
mq = metadataQueryGenerator.getMetadataQuery(query);
-
} catch (PerfSONARException pex) {
-
throw new PerfSONARException(pex.getResultCode(),
pex.getMessage());
-
} catch (Exception ex) {
-
logger.error("Transformations.getMetadataQuery: "
+ "Unable to generate xquery statement "
+ "for the metadata configuration "
@@ -171,11 +150,9 @@
+ "for the metadata configuration "
+ "from the request metadata. "
+ ex.toString());
-
}

return mq;
-
}

/**

Modified:
trunk/perfsonar_base/src/main/java/org/perfsonar/service/measurementArchive/metadataConfig/queryGenerator/IperfQueryGenerator.java
===================================================================
---
trunk/perfsonar_base/src/main/java/org/perfsonar/service/measurementArchive/metadataConfig/queryGenerator/IperfQueryGenerator.java
2014-01-30 22:56:37 UTC (rev 6486)
+++
trunk/perfsonar_base/src/main/java/org/perfsonar/service/measurementArchive/metadataConfig/queryGenerator/IperfQueryGenerator.java
2014-02-03 23:30:31 UTC (rev 6487)
@@ -4,7 +4,6 @@
*/
package
org.perfsonar.service.measurementArchive.metadataConfig.queryGenerator;

-
import org.ggf.ns.nmwg.base.v2_0.Message;
import org.ggf.ns.nmwg.base.v2_0.Metadata;
import org.ggf.ns.nmwg.base.v2_0.Parameter;
@@ -23,69 +22,40 @@
import java.util.Map;
import java.util.HashMap;

-
/**
- * Transforms nmwg message into xquery/xpath
- * (query to fetch metadata with utilization metric).
+ * Transforms nmwg message into xquery/xpath (query to fetch metadata with
+ * utilization metric).
*
* @author romradz
*/
public class IperfQueryGenerator implements MetadataQueryGenerator
{
-
-
- // -------------------------------------- class fields
-
-
protected LoggerComponent logger = null;

- private final String[] parameters =
- {"format", "protocol", "windowSize", "timeDuration", "valueUnits",
"numBytesUnits"};
+ private final String[] parameters = {"format", "protocol", "windowSize",
"timeDuration", "valueUnits",
+ "numBytesUnits" };

-
- // -------------------------------------- constructors
-
-
- public IperfQueryGenerator() throws PerfSONARException
- {
-
+ /**
+ * Constructor.
+ */
+ public IperfQueryGenerator() throws PerfSONARException {
try {
-
- this.logger = (LoggerComponent)
- AuxiliaryComponentManager.
- getInstance().
- getComponent(ComponentNames.LOGGER);
+ this.logger = (LoggerComponent)
AuxiliaryComponentManager.getInstance().getComponent(ComponentNames.LOGGER);
} catch (PerfSONARException e) {
-
- throw new PerfSONARException(
- "error.common.no_logger",
- "IperfQueryGenerator.constructor: "
- + "Cannot get logger component");
-
+ throw new PerfSONARException("error.common.no_logger",
+ "IperfQueryGenerator.constructor: Cannot get logger
component");
}
-
}

-
- // -------------------------------------- public methods
-
-
/**
- * Returns xpath query created using the information
- * stored in Message object.
+ * Returns xpath query created using the information stored in Message
+ * object.
*/
@Override
- public String getMetadataQuery(Message query)
- throws PerfSONARException
+ public String getMetadataQuery(Message query) throws PerfSONARException
{
-
-
- //logger.debug("IperfQueryGenerator.getMetadataQuery: "
- // + "start getMetadataQuery");
-
String eventType;
String keyword;
-
String src;
String dst;

@@ -94,32 +64,26 @@
Metadata[] metadataArray = (query.getMetadataArray());
metadata = metadataArray[0];
} catch (Exception ex) {
- logger.error(
- "IperfQueryGenerator.getMetadataQuery: "
- + "Unable to get metadata from the message");
- throw new PerfSONARException(
- "error.ma.query",
- "IperfQueryGenerator.getMetadataQuery: "
- + "Unable to get metadata from the message; "
- + ex.toString());
+ logger.error("IperfQueryGenerator.getMetadataQuery: " + "Unable
to get metadata from the message");
+ throw new PerfSONARException("error.ma.query",
"IperfQueryGenerator.getMetadataQuery: "
+ + "Unable to get metadata from the message; " +
ex.toString());
}

-
eventType = metadata.getEventType().getEventType().trim();

Parameter keywordParameter = metadata.getParameterByName("keyword");
String keywordQueryPart = "";
if (keywordParameter != null) {
-
keyword = keywordParameter.getParameterValue();
if (!keyword.trim().isEmpty()) {
- keywordQueryPart = " and
$i/nmwg:parameters/nmwg:parameter[(functx:trim(text())='" + keyword
- + "' and functx:trim(@name)='keyword') or
(functx:trim(@value)='" + keyword
- + "' and functx:trim(@name)='keyword')] ";
+ keywordQueryPart = " and
$i/nmwg:parameters/nmwg:parameter[(functx:trim(text())='" + keyword + "' \n"
+ + " and functx:trim(@name)='keyword') \n"
+ + " or (functx:trim(@value)='" + keyword +
"'\n"
+ + " and functx:trim(@name)='keyword')]
\n";
}
}

- // iperf parameters
+ // parameters
Map<String, String> iperfParametersMap = new HashMap<String,
String>();
Parameters params;
try {
@@ -133,13 +97,12 @@
for (String parameter : parameters) {
if (params.getParameterByName(parameter) != null) {
iperfParametersMap.put(parameter,
-
(params.getParameterByName(parameter).getParameterValue() != null
- ?
params.getParameterByName(parameter).getParameterValue().trim() : ""));
+
(params.getParameterByName(parameter).getParameterValue() != null ? params
+
.getParameterByName(parameter).getParameterValue().trim() : ""));
}
}
}

-
Src sourceElement;
Dst destinationElement;

@@ -152,139 +115,108 @@
src = (sourceElement != null ?
sourceElement.getValue().trim() : null);
dst = (destinationElement != null ?
destinationElement.getValue().trim() : null);
} else {
- throw new PerfSONARException(
- "error.ma.query",
- "IperfQueryGenerator.getMetadataQuery: "
- + "no endPointPair element in metadata element");
+ throw new PerfSONARException("error.ma.query",
+ "IperfQueryGenerator.getMetadataQuery: no
endPointPair element in metadata element");
}
} else {
- throw new PerfSONARException(
- "error.ma.query",
- "IperfQueryGenerator.getMetadataQuery: "
- + "no subject element in metadata element");
+ throw new PerfSONARException("error.ma.query",
+ "IperfQueryGenerator.getMetadataQuery: no subject
element in metadata element");
}

- String xQuery = "\n"
- + "declare namespace nmwg='http://ggf.org/ns/nmwg/base/2.0/';
\n"
- + "declare namespace
iperf='http://ggf.org/ns/nmwg/tools/iperf/2.0/'; \n"
- + "declare namespace
nmwgt='http://ggf.org/ns/nmwg/topology/2.0/'; \n\n";
+ String xQuery = "\ndeclare namespace
nmwg='http://ggf.org/ns/nmwg/base/2.0/'; \n"
+ + "declare namespace
iperf='http://ggf.org/ns/nmwg/tools/iperf/2.0/'; \n"
+ + "declare namespace
nmwgt='http://ggf.org/ns/nmwg/topology/2.0/'; \n";

- xQuery +=
- "declare namespace functx = 'http://www.functx.com';\n"
- + "declare function functx:trim \n"
- + " ( $arg as xs:string? ) as xs:string { \n"
+ xQuery += "declare namespace functx = 'http://www.functx.com'; \n"
+ + "declare function functx:trim ($arg as xs:string?) as
xs:string { \n"
+ " replace(replace($arg,'\\s+$',''),'^\\s+','') \n"
- + "}; \n\n";
+ + "};\n\n";

if (src == null && dst == null && keywordParameter == null) {
-
// getting all metadata
-
- xQuery +=
- "let $res :=
\n"
- + " for $i in //nmwg:metadata

\n"
- + " where

\n"
- + "
$i/nmwg:parameters/nmwg:parameter[(functx:trim(text())='" + eventType + "'
and functx:trim(@name)='supportedEventType') \n"
- + " or (functx:trim(@value)='" + eventType + "'
and functx:trim(@name)='supportedEventType')]
\n"
- + " or

\n"
- + " $i/nmwg:eventType[functx:trim(text())='" +
eventType + "']
\n"
- + " return $i

\n"
+ xQuery += "let $res := for $i in //nmwg:metadata \n"
+ + " where \n"
+ + "
$i/nmwg:parameters/nmwg:parameter[(functx:trim(text())='" + eventType + "'\n"
+ + " and
functx:trim(@name)='supportedEventType') \n"
+ + " or (functx:trim(@value)='" + eventType +
"'\n"
+ + " and
functx:trim(@name)='supportedEventType')] \n"
+ + " or \n"
+ + " $i/nmwg:eventType[functx:trim(text())='" +
eventType + "'] \n"
+ + " return $i \n"
+ "\n"
- + "let $datas :=

\n"
- + "
//nmwg:data/nmwg:key/nmwg:parameters/nmwg:parameter[functx:trim(@name)='eventType'
and (functx:trim(text())='" + eventType + "' or functx:trim(@value)='" +
eventType + "')]/parent::*/parent::*/parent::* \n"
- + "\n"
- + "return ($res, $datas) \n";
-
+ + "let $datas := \n"
+ + "
//nmwg:data/nmwg:key/nmwg:parameters/nmwg:parameter[functx:trim(@name)='eventType'
\n"
+ + " and (functx:trim(text())='" + eventType +
"'\n"
+ + " or functx:trim(@value)='" + eventType
+ "')] \n"
+ + " /parent::*/parent::*/parent::* \n"
+ + "\n" + "return ($res, $datas) \n";
return xQuery;
-
}

+ xQuery += "let $res := \n" + " for $i in //nmwg:metadata \n" + "
where 1 \n";

- xQuery +=
- " let $res := \n"
- + " for $i in //nmwg:metadata \n"
- + " where 1 \n";
-
-
- /*
- if (eventType != null)
- xQuery += "and $i/nmwg:eventType[functx:trim(text())='" +
eventType + "'] ";
- */
if (eventType != null) {
- xQuery += "and
(($i/nmwg:parameters/nmwg:parameter[(functx:trim(text())='" + eventType + "'
and functx:trim(@name)='supportedEventType') "
- + "or (functx:trim(@value)='" + eventType + "' and
functx:trim(@name)='supportedEventType')]) "
- + "or "
- + "($i/nmwg:eventType[functx:trim(text())='" + eventType +
"'])"
- + ") "
- + keywordQueryPart;
+ xQuery += " and ( ($i/nmwg:parameters/nmwg:parameter[\n"
+ + " (functx:trim(text())='" + eventType +
"' and functx:trim(@name)='supportedEventType') \n"
+ + " or (functx:trim(@value)='" + eventType +
"' and functx:trim(@name)='supportedEventType')]) \n"
+ + " or ($i/nmwg:eventType[functx:trim(text())='" +
eventType + "']) ) \n"
+ + keywordQueryPart;
}

if (src != null) {
-
if (src.isEmpty()) {
throw new PerfSONARException("error.ma.query",
"IperfQueryGenerator.getMetadataQuery: wrong src");
}
- xQuery += "and
($i/iperf:subject/nmwgt:endPointPair/nmwgt:src[functx:trim(text())='" + src +
"'] or $i/iperf:subject/nmwgt:endPointPair/nmwgt:src[functx:trim(@value)='" +
src + "']) ";
+ xQuery += " and
($i/iperf:subject/nmwgt:endPointPair/nmwgt:src[functx:trim(text())='" + src +
"'] \n"
+ + " or
$i/iperf:subject/nmwgt:endPointPair/nmwgt:src[functx:trim(@value)='" + src +
"'])\n";

if (!sourceElement.getPort().trim().isEmpty()) {
- xQuery += "and
$i/iperf:subject/nmwgt:endPointPair/nmwgt:src[functx:trim(@port)='" +
sourceElement.getPort().trim() + "'] ";
+ xQuery += " and
$i/iperf:subject/nmwgt:endPointPair/nmwgt:src[functx:trim(@port)='"
+ + sourceElement.getPort().trim() + "']\n";
}
if (!sourceElement.getType().trim().isEmpty()) {
- xQuery += "and
$i/iperf:subject/nmwgt:endPointPair/nmwgt:src[functx:trim(@type)='" +
sourceElement.getType().trim() + "'] ";
+ xQuery += " and
$i/iperf:subject/nmwgt:endPointPair/nmwgt:src[upper-case(functx:trim(@type))=upper-case('"
+ + sourceElement.getType().trim() + "')]\n";
}
}

if (dst != null) {
-
if (dst.isEmpty()) {
throw new PerfSONARException("error.ma.query",
"IperfQueryGenerator.getMetadataQuery: wrong src");
}
- xQuery += "and
($i/iperf:subject/nmwgt:endPointPair/nmwgt:dst[functx:trim(text())='" + dst +
"'] or $i/iperf:subject/nmwgt:endPointPair/nmwgt:dst[functx:trim(@value)='" +
dst + "'])";
+ xQuery += " and
($i/iperf:subject/nmwgt:endPointPair/nmwgt:dst[functx:trim(text())='" + dst +
"'] \n"
+ + " or
$i/iperf:subject/nmwgt:endPointPair/nmwgt:dst[functx:trim(@value)='" + dst +
"'])\n";

if (!destinationElement.getPort().trim().isEmpty()) {
- xQuery += "and
$i/iperf:subject/nmwgt:endPointPair/nmwgt:dst[functx:trim(@port)='" +
destinationElement.getPort().trim() + "'] ";
+ xQuery += " and
$i/iperf:subject/nmwgt:endPointPair/nmwgt:dst[functx:trim(@port)='"
+ + destinationElement.getPort().trim() + "']\n";
}
if (!destinationElement.getType().trim().isEmpty()) {
- xQuery += "and
$i/iperf:subject/nmwgt:endPointPair/nmwgt:dst[functx:trim(@type)='" +
destinationElement.getType().trim() + "'] ";
+ xQuery += " and
$i/iperf:subject/nmwgt:endPointPair/nmwgt:dst[upper-case(functx:trim(@type))=upper-case('"
+ + destinationElement.getType().trim() + "')]\n";
}
}

-
Set<String> keySet = iperfParametersMap.keySet();
for (String key : keySet) {
String v = iperfParametersMap.get(key);
if (!v.isEmpty()) {
- xQuery += "and $i/iperf:parameters/nmwg:parameter[(text()='"
+ v + "' and @name='" + key + "') "
- + "or (@value='" + v + "' and @name='" + key + "')] ";
+ xQuery += " and
$i/iperf:parameters/nmwg:parameter[(upper-case(text())=upper-case('" + v +
"') and upper-case(@name)=upper-case('" + key + "')) \n"
+ + " or (upper-case(@value)=upper-case('"
+ v + "') and upper-case(@name)=upper-case('" + key + "'))] \n";
}
}

-
- xQuery += "\n"
- + " return $i
\n"
- + "
\n"
- + " let $metaids :=
\n"
- + " for $j in $res
\n"
- + " return fn:data($j/@id)
\n"
- + "
\n"
- + " let $datas :=
\n"
- + " for $k in $metaids
\n"
- + " let $d:=
\n"
- + " //nmwg:data[functx:trim(@metadataIdRef)=$k]
\n"
- + " return $d
\n"
- + "
\n"
- + " return ($res, $datas)
\n";
-
-
- //logger.debug(
- // "IperfQueryGenerator.getMetadataQuery: "
- // + "meta query: "
- // + xQuery);
-
-
+ xQuery += " return $i
\n"
+ + "
\n"
+ + "let $metaids := for $j in $res
\n"
+ + " return fn:data($j/@id)
\n"
+ + "
\n"
+ + "let $datas := for $k in $metaids
\n"
+ + " let $d:= //nmwg:data[functx:trim(@metadataIdRef)=$k]
\n"
+ + " return $d
\n"
+ + "
\n"
+ + "return ($res, $datas)
\n";
return xQuery;
-
}

-
-} //IperfQueryGenerator
+} // IperfQueryGenerator



  • [pS-dev] [GEANT/SA2/ps-java-services] r6487 - in trunk: perfsonar-java-sql-ma perfsonar-java-sql-ma/sr c/main/java/org/perfsonar/service/measurementArchive/sqlTy pe perfsonar-java-sql-ma/src/main/resources/perfsonar/conf perfsonar-java-sql-ma/src/test/resources/perfsonar/conf p erfsonar-java-sql-ma/test/JavaSQLMAsoapUI/InterfaceBased p erfsonar_base perfsonar_base/src/main/java/org/perfson ar/service/base/storage/xmldb/exist/xmlrpc perfsonar_bas e/src/main/java/org/perfsonar/service/measurementArchive/m etadataConfig perfsonar_base/src/main/java/org/perfsonar /service/measurementArchive/metadataConfig/queryGenerator, svn-noreply, 02/03/2014

Archive powered by MHonArc 2.6.16.

Top of Page