From 8a52b5936839b03bcceb536e2910ad840caf3955 Mon Sep 17 00:00:00 2001 From: Massimiliano Assante Date: Mon, 16 Sep 2013 09:38:20 +0000 Subject: [PATCH] fix for wsresource by subtype query git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/admin/rmp-common-library@81523 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../support/server/gcube/ISClientRequester.java | 4 +++- .../server/gcube/queries/QueryLocation.java | 1 + .../xquery/RETURN_getWSResourcesDetailsSubType.xq | 13 +++++++++++++ .../queries/xquery/getWSResourcesDetailsSubType.xq | 14 +------------- 4 files changed, 18 insertions(+), 14 deletions(-) create mode 100644 src/main/java/org/gcube/resourcemanagement/support/server/gcube/queries/xquery/RETURN_getWSResourcesDetailsSubType.xq diff --git a/src/main/java/org/gcube/resourcemanagement/support/server/gcube/ISClientRequester.java b/src/main/java/org/gcube/resourcemanagement/support/server/gcube/ISClientRequester.java index b6e033b..ba2100d 100644 --- a/src/main/java/org/gcube/resourcemanagement/support/server/gcube/ISClientRequester.java +++ b/src/main/java/org/gcube/resourcemanagement/support/server/gcube/ISClientRequester.java @@ -350,6 +350,7 @@ public class ISClientRequester { try { if (type.equals(ResourceTypeDecorator.WSResource.name())) { queryPath = QueryLocation.GET_WSRES_DETAILS_BYSUBTYPE; + returnPath = QueryLocation.valueOf("RETURN_" + QueryLocation.GET_WSRES_DETAILS_BYSUBTYPE); } else { queryPath = QueryLocation.valueOf("LIST_" + type); returnPath = QueryLocation.valueOf("RETURN_" + type); @@ -380,8 +381,9 @@ public class ISClientRequester { isQuery.addParameter("RES_SUBTYPE", "where $subtype = \"" + subType.trim() + "\""); } } + String retParam = type.equals(ResourceTypeDecorator.WSResource.name()) ? "WSRESOURCE" : "RESOURCE"; //add the return statement - isQuery.addParameter("RESOURCE", QueryLoader.getQuery(returnPath)); + isQuery.addParameter(retParam, QueryLoader.getQuery(returnPath)); ISQueryCacheKeyT cacheKey = new ISQueryCacheKeyT(queryScope.toString(), isQuery.expression(), "getResourcesTypes"); diff --git a/src/main/java/org/gcube/resourcemanagement/support/server/gcube/queries/QueryLocation.java b/src/main/java/org/gcube/resourcemanagement/support/server/gcube/queries/QueryLocation.java index 7b486b3..bd68a9c 100644 --- a/src/main/java/org/gcube/resourcemanagement/support/server/gcube/queries/QueryLocation.java +++ b/src/main/java/org/gcube/resourcemanagement/support/server/gcube/queries/QueryLocation.java @@ -78,6 +78,7 @@ public enum QueryLocation { GET_WSRES_TYPES("getWSResourcesTypes.xq"), GET_WSRES_DETAILS_BYTYPE("getWSResourcesDetails.xq"), GET_WSRES_DETAILS_BYSUBTYPE("getWSResourcesDetailsSubType.xq"), + RETURN_GET_WSRES_DETAILS_BYSUBTYPE("RETURN_getWSResourcesDetailsSubType.xq"), GET_WSRESOURCE_BYID("getWSResourceByID.xq"); private final String path = "org/gcube/resourcemanagement/support/server/gcube/queries/xquery/"; diff --git a/src/main/java/org/gcube/resourcemanagement/support/server/gcube/queries/xquery/RETURN_getWSResourcesDetailsSubType.xq b/src/main/java/org/gcube/resourcemanagement/support/server/gcube/queries/xquery/RETURN_getWSResourcesDetailsSubType.xq new file mode 100644 index 0000000..17b6dd6 --- /dev/null +++ b/src/main/java/org/gcube/resourcemanagement/support/server/gcube/queries/xquery/RETURN_getWSResourcesDetailsSubType.xq @@ -0,0 +1,13 @@ + + {$outer//Document/ID} + {$outer//Document/Source} + {$outer//Document/SourceKey} + {$outer//Document/Data/child::*[local-name()='ServiceClass']/text()} + {$outer//Document/Data/child::*[local-name()='ServiceName']/text()} + {$outer//Document/Data/child::*[local-name()='ServiceClass']/text()} + {$outer//Document/TerminationTimeHuman} + {$outer//Document/LastUpdateHuman} + {$outer//Document/Data/child::*[local-name()='RI']/text()} + WSResource + {$scopes} + \ No newline at end of file diff --git a/src/main/java/org/gcube/resourcemanagement/support/server/gcube/queries/xquery/getWSResourcesDetailsSubType.xq b/src/main/java/org/gcube/resourcemanagement/support/server/gcube/queries/xquery/getWSResourcesDetailsSubType.xq index c525a8d..0ea3d09 100644 --- a/src/main/java/org/gcube/resourcemanagement/support/server/gcube/queries/xquery/getWSResourcesDetailsSubType.xq +++ b/src/main/java/org/gcube/resourcemanagement/support/server/gcube/queries/xquery/getWSResourcesDetailsSubType.xq @@ -2,16 +2,4 @@ for $outer in collection("/db/Properties")//Document let $scopes := string-join( $outer//Document/Data/child::*[local-name()='Scope']/text(), ';') where $outer//Document/Data/child::*[local-name()='ServiceClass']/text() eq '' return - - {$outer//Document/ID} - {$outer//Document/Source} - {$outer//Document/SourceKey} - {$outer//Document/Data/child::*[local-name()='ServiceClass']/text()} - {$outer//Document/Data/child::*[local-name()='ServiceName']/text()} - {$outer//Document/Data/child::*[local-name()='ServiceClass']/text()} - {$outer//Document/TerminationTimeHuman} - {$outer//Document/LastUpdateHuman} - {$outer//Document/Data/child::*[local-name()='RI']/text()} - WSResource - {$scopes} - \ No newline at end of file +