perfsonar-dev - perfsonar: r5203 - in branches/new-structure-with-base2/ps-mdm-ls: ant src/main src/main/java/org/perfsonar/service src/main/java/org/perfsonar/service/lookupservice src/main/java/org/perfsonar/service/utilities src/main/resources src/main/resources/org src/main/resources/org/perfsonar src/main/resources/org/perfsonar/resources
Subject: perfsonar development work
List archive
perfsonar: r5203 - in branches/new-structure-with-base2/ps-mdm-ls: ant src/main src/main/java/org/perfsonar/service src/main/java/org/perfsonar/service/lookupservice src/main/java/org/perfsonar/service/utilities src/main/resources src/main/resources/org src/main/resources/org/perfsonar src/main/resources/org/perfsonar/resources
Chronological Thread
- From:
- To:
- Subject: perfsonar: r5203 - in branches/new-structure-with-base2/ps-mdm-ls: ant src/main src/main/java/org/perfsonar/service src/main/java/org/perfsonar/service/lookupservice src/main/java/org/perfsonar/service/utilities src/main/resources src/main/resources/org src/main/resources/org/perfsonar src/main/resources/org/perfsonar/resources
- Date: Wed, 24 Jun 2009 05:06:45 -0400
Author: trzaszcz
Date: 2009-06-24 05:06:43 -0400 (Wed, 24 Jun 2009)
New Revision: 5203
Added:
branches/new-structure-with-base2/ps-mdm-ls/src/main/java/org/perfsonar/service/utilities/
branches/new-structure-with-base2/ps-mdm-ls/src/main/java/org/perfsonar/service/utilities/ResourceBundle.java
branches/new-structure-with-base2/ps-mdm-ls/src/main/resources/
branches/new-structure-with-base2/ps-mdm-ls/src/main/resources/org/
branches/new-structure-with-base2/ps-mdm-ls/src/main/resources/org/perfsonar/
branches/new-structure-with-base2/ps-mdm-ls/src/main/resources/org/perfsonar/resources/
branches/new-structure-with-base2/ps-mdm-ls/src/main/resources/org/perfsonar/resources/resources.properties
Modified:
branches/new-structure-with-base2/ps-mdm-ls/ant/build.xml
branches/new-structure-with-base2/ps-mdm-ls/src/main/java/org/perfsonar/service/lookupservice/LSRegisterServiceEngine.java
Log:
lsTTL parameter handling
Modified: branches/new-structure-with-base2/ps-mdm-ls/ant/build.xml
===================================================================
--- branches/new-structure-with-base2/ps-mdm-ls/ant/build.xml 2009-06-22
09:38:51 UTC (rev 5202)
+++ branches/new-structure-with-base2/ps-mdm-ls/ant/build.xml 2009-06-24
09:06:43 UTC (rev 5203)
@@ -164,12 +164,20 @@
<include name="**/*.jar" />
</fileset>
</copy>
+
+
+ <copy todir="${build.dir}/classes">
+ <fileset dir="${basedir}/src/main/resources"
includes="**/*.*"/>
+ </copy>
+
<copy toDir="${temp}/WEB-INF">
- <fileset dir="${build.dir}">
- <include name="**/*.class" />
- <exclude name="**/temp/**"/>
- </fileset>
- </copy>
+ <fileset dir="${build.dir}">
+ <include name="**/*.class" />
+ <include name="**/*.properties" />
+ <exclude name="**/temp/**"/>
+ </fileset>
+ </copy>
+
</target>
@@ -232,6 +240,10 @@
<target name="create.aar" depends="compile">
+ <copy todir="${build.dir}/classes">
+ <fileset dir="${basedir}/src/main/resources"
includes="**/*.*"/>
+ </copy>
+
<copy toDir="${build.dir}/classes" failonerror="false">
<fileset dir="${basedir}/conf/axis2">
<include name="**/*.xml"/>
Modified:
branches/new-structure-with-base2/ps-mdm-ls/src/main/java/org/perfsonar/service/lookupservice/LSRegisterServiceEngine.java
===================================================================
---
branches/new-structure-with-base2/ps-mdm-ls/src/main/java/org/perfsonar/service/lookupservice/LSRegisterServiceEngine.java
2009-06-22 09:38:51 UTC (rev 5202)
+++
branches/new-structure-with-base2/ps-mdm-ls/src/main/java/org/perfsonar/service/lookupservice/LSRegisterServiceEngine.java
2009-06-24 09:06:43 UTC (rev 5203)
@@ -1,22 +1,16 @@
package org.perfsonar.service.lookupservice;
-import java.util.Collection;
import java.util.List;
-import org.apache.log4j.Logger;
import org.perfsonar.base2.service.exceptions.PerfSONARException;
import org.perfsonar.base2.service.requesthandler.ServiceMessage;
-import org.perfsonar.base2.service.util.ResultCodesUtil;
import org.perfsonar.base2.xml.Element;
import org.perfsonar.base2.xml.nmwg.Data;
import org.perfsonar.base2.xml.nmwg.EventType;
-import org.perfsonar.base2.xml.nmwg.Key;
import org.perfsonar.base2.xml.nmwg.Message;
import org.perfsonar.base2.xml.nmwg.Metadata;
-import org.perfsonar.base2.xml.nmwg.Parameter;
-import org.perfsonar.base2.xml.nmwg.Parameters;
-import org.perfsonar.service.lookupservice.storage.LookupServiceDAO;
-import org.perfsonar.service.lookupservice.storage.LookupServiceDAOFactory;
+import
org.perfsonar.service.lookupservice.registerService.LSRegisterServiceHelper;
+import org.perfsonar.service.lookupservice.registration.LsTTLParameterStatus;
/**
* REGISTER and UPDATE Action
@@ -24,15 +18,10 @@
* @author Maciej Glowiak
*
*/
-public class LSRegisterServiceEngine extends LSGenericRegisterServiceEngine {
+public class LSRegisterServiceEngine extends LSRegisterServiceHelper {
// --------------------------------------------------------------
Constants
- private static final Logger logger = Logger
- .getLogger(LSRegisterServiceEngine.class.getName());
- private final static String MESSAGE_HANDLER = "LSRegisterRequest";
- private long[] ttlBound;
- // ----------------------------------------------------- Instance
variables
private boolean allowReplaceIfAlreadyRegistered = true;
@@ -54,7 +43,6 @@
// allowReplaceIfAlreadyRegistered = false;
// logger.debug("[LS Registration] service.ls.allow_replace="+
// allowReplaceIfAlreadyRegistered);
-
initTTLParameters(configuration.getMessageHandler(MESSAGE_HANDLER));
}
// --------------------------------------------------------- Public
methods
@@ -62,11 +50,14 @@
public void takeAction(ServiceMessage serviceRequest,
ServiceMessage serviceResponse) throws
PerfSONARException {
+
+ /// -> REFACTORING
+
// extract message
Message request = serviceRequest.getMessageElement();
long clientTTL = 0;
- logger.info("process lsTTL param");
+ //lsTTL param processing
List<Element> parametersNodes = (List<Element>) serviceRequest
.getElement().getChildren("parameters");
@@ -74,21 +65,26 @@
try {
clientTTL =
getLSTTLFromParametrs(parametersNodes.get(0));
if (clientTTL != 0) {
- if (ttlBound != null) {
+ if (getTtlBound() != null) {
logger.info("TTL parameters
are set");
- logger.info("suggested TTL
param by service :" + clientTTL);
- if (clientTTL <= ttlBound[1]
&& clientTTL >= ttlBound[0]) {
+ logger.info("suggested TTL
param by service :"
+ + clientTTL);
+ if (clientTTL <=
getTtlBound()[1]
+ && clientTTL
>= getTtlBound()[0]) {
+ ttlParameterStatus =
LsTTLParameterStatus.ACCEPTED;
logger.info("client
TTL accepted");
} else {
+ ttlParameterStatus =
LsTTLParameterStatus.OUT_OF_BOUND;
logger.info("client
TTL rejected - out of bound");
- clientTTL=0;
+ clientTTL = 0;
}
} else {
- logger.warn("client sent ttl
parameter - no ranges params defined in config file !!");
+ logger
+ .warn("client
sent ttl parameter - no ranges params defined in config file !!");
}
}
} catch (Exception ex) {
- // TODO send to client...
+ ttlParameterStatus =
LsTTLParameterStatus.NOT_A_NUMBER;
ex.getCause();
}
}
@@ -150,7 +146,6 @@
// reset event type - will not be used anymore
requestMetadata.removeChild(reqEvT);
-
// ----------------------------------------- END OF GLS code
// get accessPoint from Metadata - obligatory element
// if it's empty or null PerfSONARException will be thrown
@@ -180,6 +175,8 @@
boolean doRemove = false;
boolean doRemoveOldKey = false;
+ /// <-- REFACTORING
+
// check keyValue
if (keyValue == null) { // REGISTER
@@ -275,6 +272,7 @@
}
+
// remove old lookup information if there is any
if (doRemove) {
logger.info("[LS Registration] Remove old Lookup Info
("
@@ -298,7 +296,7 @@
+ ") metadata + " + dataElements.length + "
data elements");
// update control time - last modification
updateTime(metadataId);
- if (clientTTL != 0) {
+ if (ttlParameterStatus.equals(LsTTLParameterStatus.ACCEPTED))
{
logger.info("ttl parameter set !");
updateTTL(metadataId, clientTTL);
}
@@ -307,236 +305,7 @@
} // end performAction
- /**
- * Returns serviceType from metadata or throws PerfSONARException if
null or
- * empty
- *
- * @param requestMetadata
- * @return service type
- * @throws PerfSONARException
- * if null or empty
- */
- protected String getServiceType(Metadata requestMetadata)
- throws PerfSONARException {
-
- String serviceType = null;
- try {
- serviceType =
requestMetadata.getSubject().getFirstChild("service")
-
.getFirstChild("serviceType").getText().trim();
- if (serviceType.equals(""))
- throw new RuntimeException("empty");
- } catch (RuntimeException e) {
- String m = "[LS Registration] No serviceType in
request - "
- + e.getMessage();
- logger.error(m);
- throw new
PerfSONARException("error.ls.no_service_type", m);
- }
- return serviceType;
- }
-
- /**
- * Returns serviceName from metadata or throws PerfSONARException if
null or
- * empty
- *
- * @param requestMetadata
- * @return service Name
- * @throws PerfSONARException
- * if null or empty
- */
- protected String getServiceName(Metadata requestMetadata)
- throws PerfSONARException {
-
- String serviceName = null;
- try {
- serviceName =
requestMetadata.getSubject().getFirstChild("service")
-
.getFirstChild("serviceName").getText();
- serviceName = serviceName.trim();
- if (serviceName.equals(""))
- throw new RuntimeException("serviceName is
empty");
- } catch (RuntimeException e) {
- String m = "[LS Registration] No serviceName in
request - "
- + e.getMessage();
- logger.error(m);
- throw new
PerfSONARException("error.ls.no_service_name", m);
- }
- return serviceName;
- }
-
- private void initTTLParameters(
- org.perfsonar.base2.service.configuration.Message
msg) {
- String strMinTTL = msg.getOption("minTTL").getValue();
- String strMaxTTL = msg.getOption("maxTTL").getValue();
-
- long[] result = new long[2];
-
- if (strMinTTL != null && strMaxTTL != null) {
- try {
- result[0] = Long.parseLong(strMinTTL);
- } catch (Exception ex) {
- throw new RuntimeException(
- "incorrect value of minTTL
parameter");
- }
-
- try {
- result[1] = Long.parseLong(strMaxTTL);
- } catch (Exception ex) {
- throw new RuntimeException(
- "incorrect value of maxTTL
parameter ");
- }
-
- if (result[0] >= result[1]) {
- throw new RuntimeException(" minTTL must be
less then maxTTL ");
- }
- logger.info("TTL parameters are set <" + result[0] +
","
- + result[1] + ">");
- ttlBound = result;
- } else if (strMinTTL != strMaxTTL) {
- throw new RuntimeException(
- "both or any TTL parameters
(minTTL,maxTTL) should be set !");
- } else {
- ttlBound = null;
- }
- }
-
- /**
- * Returns accessPoint from metadata or throws PerfSONARException if
null or
- * empty
- *
- * @param requestMetadata
- * @return access point
- * @throws PerfSONARException
- * if null or empty
- */
- protected String getAccessPoint(Metadata requestMetadata)
- throws PerfSONARException {
- String accessPoint = null;
- try {
-
- accessPoint =
requestMetadata.getSubject().getFirstChild("service")
-
.getFirstChild("accessPoint").getText();
-
- accessPoint = accessPoint.trim(); // trim
-
- if (accessPoint.equals(""))
- throw new RuntimeException("accessPoint is
empty");
-
- } catch (RuntimeException e) {
- String m = "[LS Registration] No access_point in
request - "
- + e.getMessage();
- logger.error(m);
- throw new
PerfSONARException("error/ls/no_access_point", m);
- }
-
- return accessPoint;
-
- }
-
- /**
- * Return data elements as Data[] from given Message
- *
- * @param request
- * @return
- * @throws PerfSONARException
- */
- protected Data[] getDataElements(Message request) throws
PerfSONARException {
- try {
- // Get all Data elements, suppose they all belong to
metadata
- // (data map is created in the constructor of
Message, so
- // NullPointerException won't be thrown!)
- Collection<Data> reqDataArr =
request.getDataMap().values();
-
- // if there is no data! -- to be discussed
- // there should be at least ONE trigger -- to be
discussed
- if (reqDataArr.size() < 1) {
- String m = "[LS Registration] "
- + "Request must have at least
one data element - trigger) ";
- logger.error(m);
- throw new
PerfSONARException("error.ls.no_data_trigger", m);
- }
-
- // convert dataArr to Data[]
- Data[] dataElements = (Data[]) reqDataArr
- .toArray(new Data[reqDataArr.size()]);
-
- return dataElements;
-
- } catch (RuntimeException ex) {
- String m = "error during converting data elements: "
- + ex.getMessage();
- logger.warn(m);
- throw new
PerfSONARException("error.ls.no_data_trigger", m);
- }
- }
-
- /**
- * Returns Message with response containing result code (success) and
key
- * value
- *
- * @param keyValue
- * @return
- */
- protected Message getLSRegisterResponse(String keyValue) {
- // return Key
- // xpath:////nmwg:metadata/nmwg:key/
- //
nmwg:parameters:/nmwg:parameter[@id="lsKey"]
-
- Message msg = ResultCodesUtil.generateResultMessage(null,
- "success/ls/register", "Data has been
registered with key ["
- + keyValue + "]");
-
- for (Metadata m : msg.getMetadataCollection()) {
- m.addChild(createLSKey(keyValue));
- }
-
- // doesn't really matter, it is changed by MessageHandler.
- msg.setType("LSRegisterResponse");
-
- return msg;
-
- }
-
- private void updateTTL(String metadataId, long lsTTL)
- throws PerfSONARException {
- LookupServiceDAO dao = LookupServiceDAOFactory.getDAO();
- dao.setControlParameter(metadataId, "lsTTL",
String.valueOf(lsTTL));
- }
-
- private long getLSTTLFromParametrs(Element parametersElement)throws
Exception {
-
- for (Element child : parametersElement.getChildren()) {
- if (child.getName().equals("parameter")
- &&
child.getAttribute("name").equals("lsTTL")) {
- String strElement = child.getText();
- try {
- long lsTTL =
Long.parseLong(strElement);
- return lsTTL;
- } catch (NumberFormatException ex) {
- throw new RuntimeException(
- "lsTTLParameter
+["+strElement+"]+ incorrect format");
- }
- }
- }
- return 0;
- }
-
- /**
- * Create element containing lsKey.
- *
xpath:////nmwg:key/nmwg:parameters/nmwg:parameter[@id='lsKey']
- *
- * @param keyValue
- * @return Key element
- */
- private Key createLSKey(String keyValue) {
-
- Key key = new Key();
- Parameters parameters = new Parameters();
- Parameter parameter = new Parameter();
- parameter.setParameter(LS_KEY, keyValue);
- parameters.addParameter(parameter);
- key.setParameters(parameters);
-
- return key;
-
- }
-
+
+
+
} // LSLookupAction
Added:
branches/new-structure-with-base2/ps-mdm-ls/src/main/java/org/perfsonar/service/utilities/ResourceBundle.java
Added:
branches/new-structure-with-base2/ps-mdm-ls/src/main/resources/org/perfsonar/resources/resources.properties
- perfsonar: r5203 - in branches/new-structure-with-base2/ps-mdm-ls: ant src/main src/main/java/org/perfsonar/service src/main/java/org/perfsonar/service/lookupservice src/main/java/org/perfsonar/service/utilities src/main/resources src/main/resources/org src/main/resources/org/perfsonar src/main/resources/org/perfsonar/resources, svnlog, 06/24/2009
Archive powered by MHonArc 2.6.16.