diff --git a/changelog.xml b/changelog.xml index d376162..f29b2a6 100644 --- a/changelog.xml +++ b/changelog.xml @@ -3,7 +3,7 @@ Properly terminated RegexRulesAggregator scheduled thread #18547 - Added test for regex and replacement allowing calledMethod aggregation #10645 + Added improved version of calledMethod rewrite for aggregation #10645 Removed usage of deprecated APIs diff --git a/src/test/java/org/gcube/accounting/datamodel/validations/validators/TestRules.java b/src/test/java/org/gcube/accounting/datamodel/validations/validators/TestRules.java index bd94e64..c6484e6 100644 --- a/src/test/java/org/gcube/accounting/datamodel/validations/validators/TestRules.java +++ b/src/test/java/org/gcube/accounting/datamodel/validations/validators/TestRules.java @@ -228,7 +228,7 @@ public class TestRules extends ContextTest { public void testAllRuleInAdirectory() throws Exception { allRules(); File rulesDirectory = getRulesDirectory(); - File rulesDirFile = new File(rulesDirectory, "3MConnector"); + File rulesDirFile = new File(rulesDirectory, "perform-service"); FilenameFilter filenameFilter = new FilenameFilter() { @Override diff --git a/src/test/resources/rules/allRules.json.full b/src/test/resources/rules/allRules.json.full index 6f32fa5..1f5e381 100644 --- a/src/test/resources/rules/allRules.json.full +++ b/src/test/resources/rules/allRules.json.full @@ -300,7 +300,7 @@ "match": { "serviceClassRegex": "DataTransfer", "serviceNameRegex": "data-transfer-service", - "calledMethodRegex": "(\/{0,1}gcube\/service\/(REST|application.wadl))|OTHER" + "calledMethodRegex": "(^\/{0,1}gcube\/service\/(REST|application.wadl))|OTHER" }, "replace": { "serviceClass": "DataTransfer", @@ -311,7 +311,7 @@ "match": { "serviceClassRegex": "DataTransfer", "serviceNameRegex": "data-transfer-service", - "calledMethodRegex": "\/{0,1}gcube\/service\/REST\/.*" + "calledMethodRegex": "^(\/){0,1}gcube\/service\/REST\/.*" }, "replace": { "serviceClass": "DataTransfer", @@ -627,6 +627,50 @@ "serviceName": "ICProxy", "calledMethod": "query" } +},{ + "match": { + "serviceClassRegex": "Application", + "serviceNameRegex": "perform-service", + "calledMethodRegex": "^\/{0,1}gcube\/(service|resource)\/import(\/){0,1}.*" + }, + "replace": { + "serviceClass": "Application", + "serviceName": "perform-service", + "calledMethod": "import" + } +},{ + "match": { + "serviceClassRegex": "Application", + "serviceNameRegex": "perform-service", + "calledMethodRegex": "^\/{0,1}gcube\/(service|resource)\/mappings(\/){0,1}.*" + }, + "replace": { + "serviceClass": "Application", + "serviceName": "perform-service", + "calledMethod": "mappings" + } +},{ + "match": { + "serviceClassRegex": "Application", + "serviceNameRegex": "perform-service", + "calledMethodRegex": "^\/{0,1}gcube\/(service|resource)(\/){0,1}$" + }, + "replace": { + "serviceClass": "Application", + "serviceName": "perform-service", + "calledMethod": "OTHER" + } +},{ + "match": { + "serviceClassRegex": "Application", + "serviceNameRegex": "perform-service", + "calledMethodRegex": "^\/{0,1}gcube\/(service|resource)\/performance(\/){0,1}.*" + }, + "replace": { + "serviceClass": "Application", + "serviceName": "perform-service", + "calledMethod": "performance" + } },{ "match": { "serviceClassRegex": "(InformationSystem)|(Accounting)", diff --git a/src/test/resources/rules/allRules.json.min b/src/test/resources/rules/allRules.json.min index c86fb02..a91ce21 100644 --- a/src/test/resources/rules/allRules.json.min +++ b/src/test/resources/rules/allRules.json.min @@ -1 +1 @@ -[{"match":{"serviceClassRegex":"(?.*)","serviceNameRegex":"(?.*)","calledMethodRegex":"UNKNOWN"},"replace":{"serviceClass":"${ServiceClass}","serviceName":"${ServiceName}","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(WPS)|(DataAnalysis)","serviceNameRegex":"DataMiner","calledMethodRegex":"(?.*)"},"replace":{"serviceClass":"DataAnalysis","serviceName":"DataMiner","calledMethod":"${CalledMethod}"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"3MConnector","calledMethodRegex":"^\/{0,1}gcube\/service\/connect.*"},"replace":{"serviceClass":"DataAccess","serviceName":"3MConnector","calledMethod":"connect"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"3MConnector","calledMethodRegex":"^\/{0,1}gcube\/service\/disconnect.*"},"replace":{"serviceClass":"DataAccess","serviceName":"3MConnector","calledMethod":"disconnect"}},{"match":{"serviceClassRegex":"Common","serviceNameRegex":"AuthorizationService","calledMethodRegex":"^/{0,1}gcube/service/generate.*"},"replace":{"serviceClass":"Common","serviceName":"AuthorizationService","calledMethod":"generate"}},{"match":{"serviceClassRegex":"Common","serviceNameRegex":"AuthorizationService","calledMethodRegex":"^/{0,1}gcube/service/retrieve.*"},"replace":{"serviceClass":"Common","serviceName":"AuthorizationService","calledMethod":"retrieve"}},{"match":{"serviceClassRegex":"Common","serviceNameRegex":"AuthorizationService","calledMethodRegex":"^((e\/)|\/){0,1}gcube\/resource\/scopes"},"replace":{"serviceClass":"Common","serviceName":"AuthorizationService","calledMethod":"scopes"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})(?(group|item|resource|namespace))(s){0,1}\/(?(create|show|purge|delete))(\/{0,1})"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"${Action} ${Collection}"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})(?(groups|items|resources))\/(?list)(\/{0,1})"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"${Action} ${Collection}"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})licen(c|s)es\/(?(create|show|purge|delete))(\/{0,1})"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"${Action} license"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})licen(c|s)es\/(?list)(\/{0,1})"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"${Action} licenses"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})profiles\/namespaces(s){0,1}.*"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"list namespaces"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})organi(s|z)ation(s){0,1}\/(?(create|show|purge|delete))(\/{0,1})"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"${Action} organization"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})organi(s|z)ation(s){0,1}\/(?list)(\/){0,1}.*|(listOrgani(s|z)ation(s{0,1}))"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"list organizations"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"^\/rest$|^UNKNOWN$|^OTHER$"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})profile(s){0,1}\/(?(show|profile))(\/){0,1}"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"show profile"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})profile(s){0,1}\/(?(list|profile_names))(\/{0,1})"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"list profile"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"CkanConnector","calledMethodRegex":"^\/{0,1}gcube\/service\/connect.*"},"replace":{"serviceClass":"DataAccess","serviceName":"CkanConnector","calledMethod":"connect"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"CkanConnector","calledMethodRegex":"^\/{0,1}gcube\/service\/disconnect.*"},"replace":{"serviceClass":"DataAccess","serviceName":"CkanConnector","calledMethod":"disconnect"}},{"match":{"serviceClassRegex":"DataAnalysis","serviceNameRegex":"cmems-importer-service","calledMethodRegex":".*"},"replace":{"serviceClass":"DataAnalysis","serviceName":"cmems-importer-service","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataAnalysis","serviceNameRegex":"data-analytics-visualization","calledMethodRegex":".*"},"replace":{"serviceClass":"DataAnalysis","serviceName":"data-analytics-visualization","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(WPS)|(DataAnalysis)","serviceNameRegex":"DataMiner","calledMethodRegex":"^\/{0,1}(?(?!(UNKNOWN|OTHER|(gcube\/resource\/scopes))).*)"},"replace":{"serviceClass":"DataAnalysis","serviceName":"DataMiner","calledMethod":"${Method}"}},{"match":{"serviceClassRegex":"(WPS)|(DataAnalysis)","serviceNameRegex":"DataMiner","calledMethodRegex":"^\/{0,1}(UNKNOWN|OTHER|(gcube\/resource\/scopes)).*"},"replace":{"serviceClass":"DataAnalysis","serviceName":"DataMiner","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(DataAnalysis)|(data-analysis)|dataanalysis","serviceNameRegex":"dataminer-pool-manager","calledMethodRegex":"\/{0,1}api\/(algorithm\/){0,1}(?[a-zA-Z]*)"},"replace":{"serviceClass":"DataAnalysis","serviceName":"dataminer-pool-manager","calledMethod":"${Method}"}},{"match":{"serviceClassRegex":"(DataAnalysis)|(data-analysis)|dataanalysis","serviceNameRegex":"dataminer-pool-manager","calledMethodRegex":"\/{0,1}(api|OTHER|(gcube\/resource))"},"replace":{"serviceClass":"DataAnalysis","serviceName":"dataminer-pool-manager","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataTransfer","serviceNameRegex":"data-transfer-service","calledMethodRegex":".*(c|C)apabilities.*"},"replace":{"serviceClass":"DataTransfer","serviceName":"data-transfer-service","calledMethod":"getCapabilities"}},{"match":{"serviceClassRegex":"DataTransfer","serviceNameRegex":"data-transfer-service","calledMethodRegex":".*TransferStatus.*"},"replace":{"serviceClass":"DataTransfer","serviceName":"data-transfer-service","calledMethod":"getTransferStatus"}},{"match":{"serviceClassRegex":"DataTransfer","serviceNameRegex":"data-transfer-service","calledMethodRegex":"(\/{0,1}gcube\/service\/(REST|application.wadl))|OTHER"},"replace":{"serviceClass":"DataTransfer","serviceName":"data-transfer-service","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataTransfer","serviceNameRegex":"data-transfer-service","calledMethodRegex":"\/{0,1}gcube\/service\/REST\/.*"},"replace":{"serviceClass":"DataTransfer","serviceName":"data-transfer-service","calledMethod":"transfer"}},{"match":{"serviceClassRegex":"ResourceManagement","serviceNameRegex":"FHNManager","calledMethodRegex":".*"},"replace":{"serviceClass":"ResourceManagement","serviceName":"FHNManager","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(Index)|(DataRetrieval)","serviceNameRegex":"(FullTextIndexNode)|(FullTextFullTextIndexNodeNode)","calledMethodRegex":".*"},"replace":{"serviceClass":"DataRetrieval","serviceName":"FullTextIndexNode","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(DataCatalogue)|(DataPublishing)","serviceNameRegex":"(science-catalogue)|(gcat)|(gCat)","calledMethodRegex":"^(\/){0,1}(rest\/(api\/){0,1}){0,1}(?group|item|license|namespace|organization|profile|user)s\/(?!list|create)[%0-9a-zA-Z\\-_.+:]*$"},"replace":{"serviceClass":"DataPublishing","serviceName":"gcat","calledMethod":"read ${Collection}"}},{"match":{"serviceClassRegex":"(DataCatalogue)|(DataPublishing)","serviceNameRegex":"(science-catalogue)|(gcat)|(gCat)","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1}){0,1}(?((groups(\/list){0,1}))|items|licenses|namespaces|organizations|profiles|users)$"},"replace":{"serviceClass":"DataPublishing","serviceName":"gcat","calledMethod":"list ${Collection}"}},{"match":{"serviceClassRegex":"(DataCatalogue)|(DataPublishing)","serviceNameRegex":"(science-catalogue)|(gcat)|(gCat)","calledMethodRegex":"(^\/index$)|OTHER|UNKNOWN"},"replace":{"serviceClass":"DataPublishing","serviceName":"gcat","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(DataCatalogue)|(DataPublishing)","serviceNameRegex":"(science-catalogue)|(gcat)|(gCat)","calledMethodRegex":"^(\/){0,1}(rest\/(api\/){0,1}){0,1}items\/[%0-9a-zA-Z\\-_]*\/resources\/[%0-9a-zA-Z\\-_.+:]*$"},"replace":{"serviceClass":"DataPublishing","serviceName":"gcat","calledMethod":"read resource"}},{"match":{"serviceClassRegex":"(DataCatalogue)|(DataPublishing)","serviceNameRegex":"(science-catalogue)|(gcat)|(gCat)","calledMethodRegex":"^(\/){0,1}(rest\/(api\/){0,1}){0,1}items\/[%0-9a-zA-Z\\-_.+:]*\/resources$"},"replace":{"serviceClass":"DataPublishing","serviceName":"gcat","calledMethod":"list resources"}},{"match":{"serviceClassRegex":"(geoanalytics)|(SDI)","serviceNameRegex":"geoanalytics-gos.*","calledMethodRegex":".*"},"replace":{"serviceClass":"SDI","serviceName":"geoanalytics-gos","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"geoanalytics","serviceNameRegex":"geoanalytics-main-service","calledMethodRegex":".*"},"replace":{"serviceClass":"SDI","serviceName":"geoanalytics-main-service","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(SDI)|(SpatialData)","serviceNameRegex":"GeoNetwork","calledMethodRegex":".*(\\.create(\\.form){0,1}|\\.insert|\\.xmlinsert\\.form)$"},"replace":{"serviceClass":"SDI","serviceName":"GeoNetwork","calledMethod":"create"}},{"match":{"serviceClassRegex":"(SDI)|(SpatialData)","serviceNameRegex":"GeoNetwork","calledMethodRegex":".*(\\.delete(\\.batch|@json|$))"},"replace":{"serviceClass":"SDI","serviceName":"GeoNetwork","calledMethod":"delete"}},{"match":{"serviceClassRegex":"(SDI)|(SpatialData)","serviceNameRegex":"GeoNetwork","calledMethodRegex":".*(\\.list(@json|$))"},"replace":{"serviceClass":"SDI","serviceName":"GeoNetwork","calledMethod":"list"}},{"match":{"serviceClassRegex":"(SDI)|(SpatialData)","serviceNameRegex":"GeoNetwork","calledMethodRegex":"^(?!.*(read|create|insert|delete|list|get|show|info|search|update|edit)).*$|^(.*(updated|editors|pwupdate|(records.*)|(systeminfo.*)|forget-password|getmap.png|(GetCapabilities.*)|(\/codelists\/.*)))$"},"replace":{"serviceClass":"SDI","serviceName":"GeoNetwork","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(SDI)|(SpatialData)","serviceNameRegex":"GeoNetwork","calledMethodRegex":"(.*(\\.get(\\..*|\/.*|$)|\\.show(\\..*|$)|((\\.|/)info(?!edit).*)))|(read@json)"},"replace":{"serviceClass":"SDI","serviceName":"GeoNetwork","calledMethod":"read"}},{"match":{"serviceClassRegex":"(SDI)|(SpatialData)","serviceNameRegex":"GeoNetwork","calledMethodRegex":".*(\\.|-|/|package_|open)search(\/.*|unused(.form){0,1}|\\..*|;jsessionid=.*|-.*|$)"},"replace":{"serviceClass":"SDI","serviceName":"GeoNetwork","calledMethod":"search"}},{"match":{"serviceClassRegex":"(SDI)|(SpatialData)","serviceNameRegex":"GeoNetwork","calledMethodRegex":".*(\\.update($|\\.finish|@json)|\\.edit(!{0,1}|\\.save(only){0,1}|\\.commit)$|\\.infoedit$|\\.pwedit$)"},"replace":{"serviceClass":"SDI","serviceName":"GeoNetwork","calledMethod":"update"}},{"match":{"serviceClassRegex":"(GeoServer)|(geoserver)|(SpatialData)|(SDI)","serviceNameRegex":"(GeoServer)|(geoserver)","calledMethodRegex":"^(?!.*\/(wfs|wms|wcs|wmts)).*$"},"replace":{"serviceClass":"SDI","serviceName":"GeoServer","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(GeoServer)|(geoserver)|(SpatialData)|(SDI)","serviceNameRegex":"(GeoServer)|(geoserver)","calledMethodRegex":"^.*\/(?(wfs|wms|wcs|wmts)).*$"},"replace":{"serviceClass":"SDI","serviceName":"GeoServer","calledMethod":"/${Protocol}","_comment" : "Do not remove the initial / to avoid that wms is replaced with OTHER"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"GRSFPublisher","calledMethodRegex":"(.*publish-product.*)|(.*create-product.*)|(create)"},"replace":{"serviceClass":"DataPublishing","serviceName":"GRSFPublisher","calledMethod":"create"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"GRSFPublisher","calledMethodRegex":"(.*delete-product.*)|(delete)"},"replace":{"serviceClass":"DataPublishing","serviceName":"GRSFPublisher","calledMethod":"delete"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"GRSFPublisher","calledMethodRegex":".*get-license(s{0,1}).*"},"replace":{"serviceClass":"DataPublishing","serviceName":"GRSFPublisher","calledMethod":"getLicenses"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"GRSFPublisher","calledMethodRegex":".*get-catalogue-id-(and-url-){0,1}from-name.*"},"replace":{"serviceClass":"DataPublishing","serviceName":"GRSFPublisher","calledMethod":"getURLandIdFromName"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"GRSFPublisher","calledMethodRegex":".*((hello)|(UNKNOWN)|(OTHER)).*"},"replace":{"serviceClass":"DataPublishing","serviceName":"GRSFPublisher","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"GRSFPublisher","calledMethodRegex":"(.*update-product.*)|(update)"},"replace":{"serviceClass":"DataPublishing","serviceName":"GRSFPublisher","calledMethod":"update"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"HomeLibraryFileSystem","calledMethodRegex":".*"},"replace":{"serviceClass":"DataAccess","serviceName":"HomeLibraryFileSystem","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"HomeLibraryWebapp","calledMethodRegex":"\/{0,1}((acl|get|rest|post|trash|versioning)\/){0,1}(?[a-zA-Z]*)"},"replace":{"serviceClass":"DataAccess","serviceName":"HomeLibraryWebapp","calledMethod":"${Method}"}},{"match":{"serviceClassRegex":"InformationSystem","serviceNameRegex":"ICProxy","calledMethodRegex":"^(\/){0,1}gcube\/service\/(?!GCoreEndpoint|HostingNode|RuntimeResource|GenericResource).*"},"replace":{"serviceClass":"InformationSystem","serviceName":"ICProxy","calledMethod":"getResourceById"}},{"match":{"serviceClassRegex":"InformationSystem","serviceNameRegex":"ICProxy","calledMethodRegex":"^(\/){0,1}gcube\/service\/(GCoreEndpoint|HostingNode|RuntimeResource|GenericResource).*"},"replace":{"serviceClass":"InformationSystem","serviceName":"ICProxy","calledMethod":"query"}},{"match":{"serviceClassRegex":"(InformationSystem)|(Accounting)","serviceNameRegex":"QuotaManager","calledMethodRegex":".*"},"replace":{"serviceClass":"Accounting","serviceName":"QuotaManager","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataAnalysis","serviceNameRegex":"RConnector","calledMethodRegex":"^\/{0,1}gcube\/service\/connect.*"},"replace":{"serviceClass":"DataAnalysis","serviceName":"RConnector","calledMethod":"connect"}},{"match":{"serviceClassRegex":"DataAnalysis","serviceNameRegex":"RConnector","calledMethodRegex":"UNKNOWN|OTHER|^\/{0,1}gcube\/resource\/scopes"},"replace":{"serviceClass":"DataAnalysis","serviceName":"RConnector","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"ResourceManagement","serviceNameRegex":"resource-manager-webapp","calledMethodRegex":".*"},"replace":{"serviceClass":"ResourceManagement","serviceName":"resource-manager-webapp","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"InformationSystem","serviceNameRegex":"(resource-registry)|(joint-resource-registry)","calledMethodRegex":"(?!(listContexts|createContext|readContext|updateContext|deleteContext|listInstances|existInstance|createInstance|readInstance|updateInstance|deleteInstance|createType|readType|addToContext|removeFromContext|query|rawQuery)).*"},"replace":{"serviceClass":"InformationSystem","serviceName":"resource-registry","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"Portal","serviceNameRegex":"ReverseProxy","calledMethodRegex":".*"},"replace":{"serviceClass":"Portal","serviceName":"ReverseProxy","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"SDI","serviceNameRegex":"sdi-service","calledMethodRegex":".*"},"replace":{"serviceClass":"SDI","serviceName":"sdi-service","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataPublishing","serviceNameRegex":"SDMXDataSource.*","calledMethodRegex":".*"},"replace":{"serviceClass":"DataPublishing","serviceName":"SDMXDataSource","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"ShareLatex","calledMethodRegex":"^\/{0,1}gcube\/service\/connect.*"},"replace":{"serviceClass":"DataAccess","serviceName":"ShareLatex","calledMethod":"connect"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"ShareLatex","calledMethodRegex":"^\/{0,1}gcube\/service\/disconnect.*"},"replace":{"serviceClass":"DataAccess","serviceName":"ShareLatex","calledMethod":"disconnect"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"ShareLatex","calledMethodRegex":"^(?!(\/{0,1}gcube\/service\/){0,1}((connect)|(disconnect)|(project))).*"},"replace":{"serviceClass":"DataAccess","serviceName":"ShareLatex","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"ShareLatex","calledMethodRegex":"^\/{0,1}gcube\/service\/project.*"},"replace":{"serviceClass":"DataAccess","serviceName":"ShareLatex","calledMethod":"project"}},{"match":{"serviceClassRegex":"(Search)|(DataRetrieval)","serviceNameRegex":"SimulFishGrowthData","calledMethodRegex":".*"},"replace":{"serviceClass":"DataRetrieval","serviceName":"SimulFishGrowthData","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"Application","serviceNameRegex":"Smaph","calledMethodRegex":"annotate"},"replace":{"serviceClass":"Application","serviceName":"Smaph","calledMethod":"annotate"}},{"match":{"serviceClassRegex":"Application","serviceNameRegex":"Smaph","calledMethodRegex":"(?!annotate).*"},"replace":{"serviceClass":"Application","serviceName":"Smaph","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"VREManagement","serviceNameRegex":"(SmartExecutor)|(smart-executor)","calledMethodRegex":".*((launch)|(execute)|(POST .*executions)).*"},"replace":{"serviceClass":"VREManagement","serviceName":"SmartExecutor","calledMethod":"execute"}},{"match":{"serviceClassRegex":"VREManagement","serviceNameRegex":"(SmartExecutor)|(smart-executor)","calledMethodRegex":".*((getAvailablePlugins.*)|(^(GET ){0,1}(\/){0,1}plugins(\/){0,1}$))"},"replace":{"serviceClass":"VREManagement","serviceName":"SmartExecutor","calledMethod":"getAvailablePlugins"}},{"match":{"serviceClassRegex":"VREManagement","serviceNameRegex":"(SmartExecutor)|(smart-executor)","calledMethodRegex":".*((getScheduledExecution.*)|((GET ){0,1}.*executions(\/(ORPHAN){0,1}){0,1}()$))|((GET ){0,1}(\/){0,1}(rest\/){0,1}plugins\/[0-9a-zA-Z%\\-_]{1,})"},"replace":{"serviceClass":"VREManagement","serviceName":"SmartExecutor","calledMethod":"getScheduledExecution"}},{"match":{"serviceClassRegex":"VREManagement","serviceNameRegex":"(SmartExecutor)|(smart-executor)","calledMethodRegex":".*((getStateEvolution)|(getState)|(GET .*executions\/(?!executions).{1,})).*|((GET ){0,1}(\/){0,1}(rest\/){0,1}plugins\/[0-9a-zA-Z%\\-_]{1,}\/(?!executions).*)"},"replace":{"serviceClass":"VREManagement","serviceName":"SmartExecutor","calledMethod":"getState"}},{"match":{"serviceClassRegex":"VREManagement","serviceNameRegex":"(SmartExecutor)|(smart-executor)","calledMethodRegex":"^((UNKNOWN)|(OTHER))$"},"replace":{"serviceClass":"VREManagement","serviceName":"smart-executor","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"VREManagement","serviceNameRegex":"(SmartExecutor)|(smart-executor)","calledMethodRegex":".*((stop)|(unSchedule)|(DELETE)|(PURGE)).*"},"replace":{"serviceClass":"VREManagement","serviceName":"SmartExecutor","calledMethod":"stop"}},{"match":{"serviceClassRegex":"Portal","serviceNameRegex":"SocialNetworking","calledMethodRegex":"\/{0,1}rest\/((1|2)\/){0,1}(((people){0,1}(users(\/2){0,1})|comments|full-text-search|hashtags|messages|notifications|people|posts|tokens|vres|vers)\/){0,1}(?[a-zA-Z\\-]*(\/){0,1})"},"replace":{"serviceClass":"Portal","serviceName":"SocialNetworking","calledMethod":"${Method}"}},{"match":{"serviceClassRegex":"Portal","serviceNameRegex":"SocialNetworking","calledMethodRegex":"(\/{0,1}(rest))|OTHER|UNKNOWN|\/gcube\/service\/($|&.*)"},"replace":{"serviceClass":"Portal","serviceName":"SocialNetworking","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(\/workspace\/count)|countById"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"countById"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(^\/workspace\/item(s){0,1}\/[0-9a-zA-Z\\-_]*\/create\/(FILE|(?!FOLDER).*)$)|createItem\\(FILE\\)|(\/item\/create\/byPath)"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"createItem(FILE)"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(^\/workspace\/item(s){0,1}\/[0-9a-zA-Z\\-_]*\/create\/FOLDER$)|createItem\\(FOLDER\\)"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"createItem(FOLDER)"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"^\/workspace\/item(s){0,1}\/[0-9a-zA-Z\\-_]*\/download(\/){0,1}$|downloadById"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"downloadById"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(^\/workspace\/item(s){0,1}\/[0-9a-zA-Z\\-_]*\/(firstcopy|(item(s){0,1})\/.*$))|findChildrenByNamePattern"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"findChildrenByNamePattern"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"^\/(workspace\/){1,2}(item|itam)(s){0,1}\/[0-9a-zA-Z\\-_]*\/acl(s){0,1}(\/){0,1}$|getAcls"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getAcls"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"^\/workspace(\/workspace){0,1}(\/item(s){0,1}){0,1}\/(?!(i$)|count|i{0,1}t(h){0,1}rash|group(s){0,1}|user(s){0,1}|paged|v(re|ere|er)fo(ld|dl)ers{0,1}|((C|c)hi(dl|ld|d)ren))[0-9a-zA-Z\\-_]{1,}(\/){0,1}$|getById"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getById"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"^\/workspace\/group(s){0,1}\/{0,1}.*|getGroups"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getGroups"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"^\/workspace\/item(s){0,1}\/[0-9a-zA-Z\\-_]*\/history(\/){0,1}$|getHistory"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getHistory"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(^\/workspace\/i{0,1}t(h){0,1}rash\/{0,1}.*)|getTrashFolder|getTrashRootFolder"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getTrashFolder"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"^\/workspace\/user(s){0,1}\/{0,1}.*|getUsers"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getUsers"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"^\/(workspace\/){1,2}item(s){0,1}\/[0-9a-zA-Z\\-_]*\/version(s){0,1}(\/){0,1}$|getVersions"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getVersions"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"\/workspace\/vrefolder\/recents|getVreFolderRecents"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getVreFolderRecents"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"\/workspace\/v(re|ere|er)fo(ld|dl)ers(\/){0,1}|getVreFolders"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getVreFolders"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"\/workspace\/(item(s){0,1}\/){0,1}vrefolder(\/){0,1}|getVreRootFolder"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getVreRootFolder"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(\/workspace(\/.|\/){0,1})|getWorkspace"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getWorkspace"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(listById)|(\/list\/byId)|(\/list\/byPath)|(\/workspace/{0,1}.*\/(get){0,1}(C|c)hi(dl|ld|d)ren)"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"listById"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(listByIdPaged)|(\/workspace/paged(\/){0,1})"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"listByIdPaged"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(test-upload\\(FILE\\))|(OTHER)|(UNKNOWN)|(createItem\\(null\\))"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"\/workspace(\/items){0,1}\/publiclink\/.*"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"resolvePubliclink"}},{"match":{"serviceClassRegex":"content-management","serviceNameRegex":"storage","calledMethodRegex":".*"},"replace":{"serviceClass":"content-management","serviceName":"storage","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"Application|DataAnalysis","serviceNameRegex":"TagMe","calledMethodRegex":"^((e\/)|\/){0,1}tag"},"replace":{"serviceClass":"Application","serviceName":"TagMe","calledMethod":"tag"}},{"match":{"serviceClassRegex":"SDI|DataAnalysis","serviceNameRegex":"Thredds","calledMethodRegex":"^(\/){1}(?[a-zA-Z0-9]*){1}(\/public\/netcdf\/){1}(?[a-zA-Z0-9_\\-%]*(?[a-zA-Z0-9]*){1}(\/public\/netcdf\/){1}[^\/]*((?[a-zA-Z0-9]*){1}(\/public\/netcdf\/){1}(?[a-zA-Z0-9_\\-%]*)(\/){1}(.*\\.(nc|asc|tiff))$"},"replace":{"serviceClass":"SDI","serviceName":"Thredds","calledMethod":"${Protocol}::${Collection}"}},{"match":{"serviceClassRegex":"SDI|DataAnalysis","serviceNameRegex":"Thredds","calledMethodRegex":"^(\/){1}(?[a-zA-Z0-9]*){1}(\/public\/netcdf\/){1}[^\/]*(\\.(nc|asc|tiff))$"},"replace":{"serviceClass":"SDI","serviceName":"Thredds","calledMethod":"${Protocol}::OTHER"}},{"match":{"serviceClassRegex":"DataTransfer","serviceNameRegex":"URIResolver","calledMethodRegex":"^\/{0,1}(UNKNOWN|OTHER|postCataloguePublicLink|resolveCataloguePublicLink|resolveStorageHubPublicLink|dataminer.*|r\/.*)"},"replace":{"serviceClass":"DataTransfer","serviceName":"URIResolver","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataTransfer","serviceNameRegex":"URIResolver","calledMethodRegex":"^(\/){0,1}(uri-resolver\/){0,1}(?(ctlg|catalogue|analytics|geonetwork|parthenos_{0,1}registry|shub|storage|knime)).*"},"replace":{"serviceClass":"DataTransfer","serviceName":"URIResolver","calledMethod":"${RedirectType} access"}},{"match":{"serviceClassRegex":"DataTransfer","serviceNameRegex":"URIResolver","calledMethodRegex":"^(?!(\/){0,1}(r\/){0,1}(UNKNOWN|OTHER|dataminer|postCataloguePublicLink|resolveCataloguePublicLink|resolveStorageHubPublicLink|ctlg(-.){0,1}|catalogue|uri-resolver\/catalogue|analytics|geonetwork|parthenos_{0,1}registry|shub|storage|knime)).*$"},"replace":{"serviceClass":"DataTransfer","serviceName":"URIResolver","calledMethod":"TentativeOfHarvesting"}},{"match":{"serviceClassRegex":"VREManagement","serviceNameRegex":"WhnManager","calledMethodRegex":"(OTHER)|((\/){0,1}gcube\/vremanagement\/ws\/whnmanager)"},"replace":{"serviceClass":"VREManagement","serviceName":"WhnManager","calledMethod":"OTHER"}}] \ No newline at end of file +[{"match":{"serviceClassRegex":"(?.*)","serviceNameRegex":"(?.*)","calledMethodRegex":"UNKNOWN"},"replace":{"serviceClass":"${ServiceClass}","serviceName":"${ServiceName}","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(WPS)|(DataAnalysis)","serviceNameRegex":"DataMiner","calledMethodRegex":"(?.*)"},"replace":{"serviceClass":"DataAnalysis","serviceName":"DataMiner","calledMethod":"${CalledMethod}"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"3MConnector","calledMethodRegex":"^\/{0,1}gcube\/service\/connect.*"},"replace":{"serviceClass":"DataAccess","serviceName":"3MConnector","calledMethod":"connect"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"3MConnector","calledMethodRegex":"^\/{0,1}gcube\/service\/disconnect.*"},"replace":{"serviceClass":"DataAccess","serviceName":"3MConnector","calledMethod":"disconnect"}},{"match":{"serviceClassRegex":"Common","serviceNameRegex":"AuthorizationService","calledMethodRegex":"^/{0,1}gcube/service/generate.*"},"replace":{"serviceClass":"Common","serviceName":"AuthorizationService","calledMethod":"generate"}},{"match":{"serviceClassRegex":"Common","serviceNameRegex":"AuthorizationService","calledMethodRegex":"^/{0,1}gcube/service/retrieve.*"},"replace":{"serviceClass":"Common","serviceName":"AuthorizationService","calledMethod":"retrieve"}},{"match":{"serviceClassRegex":"Common","serviceNameRegex":"AuthorizationService","calledMethodRegex":"^((e\/)|\/){0,1}gcube\/resource\/scopes"},"replace":{"serviceClass":"Common","serviceName":"AuthorizationService","calledMethod":"scopes"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})(?(group|item|resource|namespace))(s){0,1}\/(?(create|show|purge|delete))(\/{0,1})"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"${Action} ${Collection}"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})(?(groups|items|resources))\/(?list)(\/{0,1})"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"${Action} ${Collection}"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})licen(c|s)es\/(?(create|show|purge|delete))(\/{0,1})"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"${Action} license"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})licen(c|s)es\/(?list)(\/{0,1})"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"${Action} licenses"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})profiles\/namespaces(s){0,1}.*"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"list namespaces"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})organi(s|z)ation(s){0,1}\/(?(create|show|purge|delete))(\/{0,1})"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"${Action} organization"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})organi(s|z)ation(s){0,1}\/(?list)(\/){0,1}.*|(listOrgani(s|z)ation(s{0,1}))"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"list organizations"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"^\/rest$|^UNKNOWN$|^OTHER$"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})profile(s){0,1}\/(?(show|profile))(\/){0,1}"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"show profile"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"Catalogue-WS","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1})profile(s){0,1}\/(?(list|profile_names))(\/{0,1})"},"replace":{"serviceClass":"DataPublishing","serviceName":"Catalogue-WS","calledMethod":"list profile"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"CkanConnector","calledMethodRegex":"^\/{0,1}gcube\/service\/connect.*"},"replace":{"serviceClass":"DataAccess","serviceName":"CkanConnector","calledMethod":"connect"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"CkanConnector","calledMethodRegex":"^\/{0,1}gcube\/service\/disconnect.*"},"replace":{"serviceClass":"DataAccess","serviceName":"CkanConnector","calledMethod":"disconnect"}},{"match":{"serviceClassRegex":"DataAnalysis","serviceNameRegex":"cmems-importer-service","calledMethodRegex":".*"},"replace":{"serviceClass":"DataAnalysis","serviceName":"cmems-importer-service","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataAnalysis","serviceNameRegex":"data-analytics-visualization","calledMethodRegex":".*"},"replace":{"serviceClass":"DataAnalysis","serviceName":"data-analytics-visualization","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(WPS)|(DataAnalysis)","serviceNameRegex":"DataMiner","calledMethodRegex":"^\/{0,1}(?(?!(UNKNOWN|OTHER|(gcube\/resource\/scopes))).*)"},"replace":{"serviceClass":"DataAnalysis","serviceName":"DataMiner","calledMethod":"${Method}"}},{"match":{"serviceClassRegex":"(WPS)|(DataAnalysis)","serviceNameRegex":"DataMiner","calledMethodRegex":"^\/{0,1}(UNKNOWN|OTHER|(gcube\/resource\/scopes)).*"},"replace":{"serviceClass":"DataAnalysis","serviceName":"DataMiner","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(DataAnalysis)|(data-analysis)|dataanalysis","serviceNameRegex":"dataminer-pool-manager","calledMethodRegex":"\/{0,1}api\/(algorithm\/){0,1}(?[a-zA-Z]*)"},"replace":{"serviceClass":"DataAnalysis","serviceName":"dataminer-pool-manager","calledMethod":"${Method}"}},{"match":{"serviceClassRegex":"(DataAnalysis)|(data-analysis)|dataanalysis","serviceNameRegex":"dataminer-pool-manager","calledMethodRegex":"\/{0,1}(api|OTHER|(gcube\/resource))"},"replace":{"serviceClass":"DataAnalysis","serviceName":"dataminer-pool-manager","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataTransfer","serviceNameRegex":"data-transfer-service","calledMethodRegex":".*(c|C)apabilities.*"},"replace":{"serviceClass":"DataTransfer","serviceName":"data-transfer-service","calledMethod":"getCapabilities"}},{"match":{"serviceClassRegex":"DataTransfer","serviceNameRegex":"data-transfer-service","calledMethodRegex":".*TransferStatus.*"},"replace":{"serviceClass":"DataTransfer","serviceName":"data-transfer-service","calledMethod":"getTransferStatus"}},{"match":{"serviceClassRegex":"DataTransfer","serviceNameRegex":"data-transfer-service","calledMethodRegex":"(^\/{0,1}gcube\/service\/(REST|application.wadl))|OTHER"},"replace":{"serviceClass":"DataTransfer","serviceName":"data-transfer-service","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataTransfer","serviceNameRegex":"data-transfer-service","calledMethodRegex":"^(\/){0,1}gcube\/service\/REST\/.*"},"replace":{"serviceClass":"DataTransfer","serviceName":"data-transfer-service","calledMethod":"transfer"}},{"match":{"serviceClassRegex":"ResourceManagement","serviceNameRegex":"FHNManager","calledMethodRegex":".*"},"replace":{"serviceClass":"ResourceManagement","serviceName":"FHNManager","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(Index)|(DataRetrieval)","serviceNameRegex":"(FullTextIndexNode)|(FullTextFullTextIndexNodeNode)","calledMethodRegex":".*"},"replace":{"serviceClass":"DataRetrieval","serviceName":"FullTextIndexNode","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(DataCatalogue)|(DataPublishing)","serviceNameRegex":"(science-catalogue)|(gcat)|(gCat)","calledMethodRegex":"^(\/){0,1}(rest\/(api\/){0,1}){0,1}(?group|item|license|namespace|organization|profile|user)s\/(?!list|create)[%0-9a-zA-Z\\-_.+:]*$"},"replace":{"serviceClass":"DataPublishing","serviceName":"gcat","calledMethod":"read ${Collection}"}},{"match":{"serviceClassRegex":"(DataCatalogue)|(DataPublishing)","serviceNameRegex":"(science-catalogue)|(gcat)|(gCat)","calledMethodRegex":"(\/){0,1}(rest\/(api\/){0,1}){0,1}(?((groups(\/list){0,1}))|items|licenses|namespaces|organizations|profiles|users)$"},"replace":{"serviceClass":"DataPublishing","serviceName":"gcat","calledMethod":"list ${Collection}"}},{"match":{"serviceClassRegex":"(DataCatalogue)|(DataPublishing)","serviceNameRegex":"(science-catalogue)|(gcat)|(gCat)","calledMethodRegex":"(^\/index$)|OTHER|UNKNOWN"},"replace":{"serviceClass":"DataPublishing","serviceName":"gcat","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(DataCatalogue)|(DataPublishing)","serviceNameRegex":"(science-catalogue)|(gcat)|(gCat)","calledMethodRegex":"^(\/){0,1}(rest\/(api\/){0,1}){0,1}items\/[%0-9a-zA-Z\\-_]*\/resources\/[%0-9a-zA-Z\\-_.+:]*$"},"replace":{"serviceClass":"DataPublishing","serviceName":"gcat","calledMethod":"read resource"}},{"match":{"serviceClassRegex":"(DataCatalogue)|(DataPublishing)","serviceNameRegex":"(science-catalogue)|(gcat)|(gCat)","calledMethodRegex":"^(\/){0,1}(rest\/(api\/){0,1}){0,1}items\/[%0-9a-zA-Z\\-_.+:]*\/resources$"},"replace":{"serviceClass":"DataPublishing","serviceName":"gcat","calledMethod":"list resources"}},{"match":{"serviceClassRegex":"(geoanalytics)|(SDI)","serviceNameRegex":"geoanalytics-gos.*","calledMethodRegex":".*"},"replace":{"serviceClass":"SDI","serviceName":"geoanalytics-gos","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"geoanalytics","serviceNameRegex":"geoanalytics-main-service","calledMethodRegex":".*"},"replace":{"serviceClass":"SDI","serviceName":"geoanalytics-main-service","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(SDI)|(SpatialData)","serviceNameRegex":"GeoNetwork","calledMethodRegex":".*(\\.create(\\.form){0,1}|\\.insert|\\.xmlinsert\\.form)$"},"replace":{"serviceClass":"SDI","serviceName":"GeoNetwork","calledMethod":"create"}},{"match":{"serviceClassRegex":"(SDI)|(SpatialData)","serviceNameRegex":"GeoNetwork","calledMethodRegex":".*(\\.delete(\\.batch|@json|$))"},"replace":{"serviceClass":"SDI","serviceName":"GeoNetwork","calledMethod":"delete"}},{"match":{"serviceClassRegex":"(SDI)|(SpatialData)","serviceNameRegex":"GeoNetwork","calledMethodRegex":".*(\\.list(@json|$))"},"replace":{"serviceClass":"SDI","serviceName":"GeoNetwork","calledMethod":"list"}},{"match":{"serviceClassRegex":"(SDI)|(SpatialData)","serviceNameRegex":"GeoNetwork","calledMethodRegex":"^(?!.*(read|create|insert|delete|list|get|show|info|search|update|edit)).*$|^(.*(updated|editors|pwupdate|(records.*)|(systeminfo.*)|forget-password|getmap.png|(GetCapabilities.*)|(\/codelists\/.*)))$"},"replace":{"serviceClass":"SDI","serviceName":"GeoNetwork","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(SDI)|(SpatialData)","serviceNameRegex":"GeoNetwork","calledMethodRegex":"(.*(\\.get(\\..*|\/.*|$)|\\.show(\\..*|$)|((\\.|/)info(?!edit).*)))|(read@json)"},"replace":{"serviceClass":"SDI","serviceName":"GeoNetwork","calledMethod":"read"}},{"match":{"serviceClassRegex":"(SDI)|(SpatialData)","serviceNameRegex":"GeoNetwork","calledMethodRegex":".*(\\.|-|/|package_|open)search(\/.*|unused(.form){0,1}|\\..*|;jsessionid=.*|-.*|$)"},"replace":{"serviceClass":"SDI","serviceName":"GeoNetwork","calledMethod":"search"}},{"match":{"serviceClassRegex":"(SDI)|(SpatialData)","serviceNameRegex":"GeoNetwork","calledMethodRegex":".*(\\.update($|\\.finish|@json)|\\.edit(!{0,1}|\\.save(only){0,1}|\\.commit)$|\\.infoedit$|\\.pwedit$)"},"replace":{"serviceClass":"SDI","serviceName":"GeoNetwork","calledMethod":"update"}},{"match":{"serviceClassRegex":"(GeoServer)|(geoserver)|(SpatialData)|(SDI)","serviceNameRegex":"(GeoServer)|(geoserver)","calledMethodRegex":"^(?!.*\/(wfs|wms|wcs|wmts)).*$"},"replace":{"serviceClass":"SDI","serviceName":"GeoServer","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(GeoServer)|(geoserver)|(SpatialData)|(SDI)","serviceNameRegex":"(GeoServer)|(geoserver)","calledMethodRegex":"^.*\/(?(wfs|wms|wcs|wmts)).*$"},"replace":{"serviceClass":"SDI","serviceName":"GeoServer","calledMethod":"/${Protocol}","_comment" : "Do not remove the initial / to avoid that wms is replaced with OTHER"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"GRSFPublisher","calledMethodRegex":"(.*publish-product.*)|(.*create-product.*)|(create)"},"replace":{"serviceClass":"DataPublishing","serviceName":"GRSFPublisher","calledMethod":"create"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"GRSFPublisher","calledMethodRegex":"(.*delete-product.*)|(delete)"},"replace":{"serviceClass":"DataPublishing","serviceName":"GRSFPublisher","calledMethod":"delete"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"GRSFPublisher","calledMethodRegex":".*get-license(s{0,1}).*"},"replace":{"serviceClass":"DataPublishing","serviceName":"GRSFPublisher","calledMethod":"getLicenses"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"GRSFPublisher","calledMethodRegex":".*get-catalogue-id-(and-url-){0,1}from-name.*"},"replace":{"serviceClass":"DataPublishing","serviceName":"GRSFPublisher","calledMethod":"getURLandIdFromName"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"GRSFPublisher","calledMethodRegex":".*((hello)|(UNKNOWN)|(OTHER)).*"},"replace":{"serviceClass":"DataPublishing","serviceName":"GRSFPublisher","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"(Data-Catalogue)|(DataPublishing)","serviceNameRegex":"GRSFPublisher","calledMethodRegex":"(.*update-product.*)|(update)"},"replace":{"serviceClass":"DataPublishing","serviceName":"GRSFPublisher","calledMethod":"update"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"HomeLibraryFileSystem","calledMethodRegex":".*"},"replace":{"serviceClass":"DataAccess","serviceName":"HomeLibraryFileSystem","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"HomeLibraryWebapp","calledMethodRegex":"\/{0,1}((acl|get|rest|post|trash|versioning)\/){0,1}(?[a-zA-Z]*)"},"replace":{"serviceClass":"DataAccess","serviceName":"HomeLibraryWebapp","calledMethod":"${Method}"}},{"match":{"serviceClassRegex":"InformationSystem","serviceNameRegex":"ICProxy","calledMethodRegex":"^(\/){0,1}gcube\/service\/(?!GCoreEndpoint|HostingNode|RuntimeResource|GenericResource).*"},"replace":{"serviceClass":"InformationSystem","serviceName":"ICProxy","calledMethod":"getResourceById"}},{"match":{"serviceClassRegex":"InformationSystem","serviceNameRegex":"ICProxy","calledMethodRegex":"^(\/){0,1}gcube\/service\/(GCoreEndpoint|HostingNode|RuntimeResource|GenericResource).*"},"replace":{"serviceClass":"InformationSystem","serviceName":"ICProxy","calledMethod":"query"}},{"match":{"serviceClassRegex":"Application","serviceNameRegex":"perform-service","calledMethodRegex":"^\/{0,1}gcube\/(service|resource)\/import(\/){0,1}.*"},"replace":{"serviceClass":"Application","serviceName":"perform-service","calledMethod":"import"}},{"match":{"serviceClassRegex":"Application","serviceNameRegex":"perform-service","calledMethodRegex":"^\/{0,1}gcube\/(service|resource)\/mappings(\/){0,1}.*"},"replace":{"serviceClass":"Application","serviceName":"perform-service","calledMethod":"mappings"}},{"match":{"serviceClassRegex":"Application","serviceNameRegex":"perform-service","calledMethodRegex":"^\/{0,1}gcube\/(service|resource)(\/){0,1}$"},"replace":{"serviceClass":"Application","serviceName":"perform-service","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"Application","serviceNameRegex":"perform-service","calledMethodRegex":"^\/{0,1}gcube\/(service|resource)\/performance(\/){0,1}.*"},"replace":{"serviceClass":"Application","serviceName":"perform-service","calledMethod":"performance"}},{"match":{"serviceClassRegex":"(InformationSystem)|(Accounting)","serviceNameRegex":"QuotaManager","calledMethodRegex":".*"},"replace":{"serviceClass":"Accounting","serviceName":"QuotaManager","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataAnalysis","serviceNameRegex":"RConnector","calledMethodRegex":"^\/{0,1}gcube\/service\/connect.*"},"replace":{"serviceClass":"DataAnalysis","serviceName":"RConnector","calledMethod":"connect"}},{"match":{"serviceClassRegex":"DataAnalysis","serviceNameRegex":"RConnector","calledMethodRegex":"UNKNOWN|OTHER|^\/{0,1}gcube\/resource\/scopes"},"replace":{"serviceClass":"DataAnalysis","serviceName":"RConnector","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"ResourceManagement","serviceNameRegex":"resource-manager-webapp","calledMethodRegex":".*"},"replace":{"serviceClass":"ResourceManagement","serviceName":"resource-manager-webapp","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"InformationSystem","serviceNameRegex":"(resource-registry)|(joint-resource-registry)","calledMethodRegex":"(?!(listContexts|createContext|readContext|updateContext|deleteContext|listInstances|existInstance|createInstance|readInstance|updateInstance|deleteInstance|createType|readType|addToContext|removeFromContext|query|rawQuery)).*"},"replace":{"serviceClass":"InformationSystem","serviceName":"resource-registry","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"Portal","serviceNameRegex":"ReverseProxy","calledMethodRegex":".*"},"replace":{"serviceClass":"Portal","serviceName":"ReverseProxy","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"SDI","serviceNameRegex":"sdi-service","calledMethodRegex":".*"},"replace":{"serviceClass":"SDI","serviceName":"sdi-service","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataPublishing","serviceNameRegex":"SDMXDataSource.*","calledMethodRegex":".*"},"replace":{"serviceClass":"DataPublishing","serviceName":"SDMXDataSource","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"ShareLatex","calledMethodRegex":"^\/{0,1}gcube\/service\/connect.*"},"replace":{"serviceClass":"DataAccess","serviceName":"ShareLatex","calledMethod":"connect"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"ShareLatex","calledMethodRegex":"^\/{0,1}gcube\/service\/disconnect.*"},"replace":{"serviceClass":"DataAccess","serviceName":"ShareLatex","calledMethod":"disconnect"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"ShareLatex","calledMethodRegex":"^(?!(\/{0,1}gcube\/service\/){0,1}((connect)|(disconnect)|(project))).*"},"replace":{"serviceClass":"DataAccess","serviceName":"ShareLatex","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"ShareLatex","calledMethodRegex":"^\/{0,1}gcube\/service\/project.*"},"replace":{"serviceClass":"DataAccess","serviceName":"ShareLatex","calledMethod":"project"}},{"match":{"serviceClassRegex":"(Search)|(DataRetrieval)","serviceNameRegex":"SimulFishGrowthData","calledMethodRegex":".*"},"replace":{"serviceClass":"DataRetrieval","serviceName":"SimulFishGrowthData","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"Application","serviceNameRegex":"Smaph","calledMethodRegex":"annotate"},"replace":{"serviceClass":"Application","serviceName":"Smaph","calledMethod":"annotate"}},{"match":{"serviceClassRegex":"Application","serviceNameRegex":"Smaph","calledMethodRegex":"(?!annotate).*"},"replace":{"serviceClass":"Application","serviceName":"Smaph","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"VREManagement","serviceNameRegex":"(SmartExecutor)|(smart-executor)","calledMethodRegex":".*((launch)|(execute)|(POST .*executions)).*"},"replace":{"serviceClass":"VREManagement","serviceName":"SmartExecutor","calledMethod":"execute"}},{"match":{"serviceClassRegex":"VREManagement","serviceNameRegex":"(SmartExecutor)|(smart-executor)","calledMethodRegex":".*((getAvailablePlugins.*)|(^(GET ){0,1}(\/){0,1}plugins(\/){0,1}$))"},"replace":{"serviceClass":"VREManagement","serviceName":"SmartExecutor","calledMethod":"getAvailablePlugins"}},{"match":{"serviceClassRegex":"VREManagement","serviceNameRegex":"(SmartExecutor)|(smart-executor)","calledMethodRegex":".*((getScheduledExecution.*)|((GET ){0,1}.*executions(\/(ORPHAN){0,1}){0,1}()$))|((GET ){0,1}(\/){0,1}(rest\/){0,1}plugins\/[0-9a-zA-Z%\\-_]{1,})"},"replace":{"serviceClass":"VREManagement","serviceName":"SmartExecutor","calledMethod":"getScheduledExecution"}},{"match":{"serviceClassRegex":"VREManagement","serviceNameRegex":"(SmartExecutor)|(smart-executor)","calledMethodRegex":".*((getStateEvolution)|(getState)|(GET .*executions\/(?!executions).{1,})).*|((GET ){0,1}(\/){0,1}(rest\/){0,1}plugins\/[0-9a-zA-Z%\\-_]{1,}\/(?!executions).*)"},"replace":{"serviceClass":"VREManagement","serviceName":"SmartExecutor","calledMethod":"getState"}},{"match":{"serviceClassRegex":"VREManagement","serviceNameRegex":"(SmartExecutor)|(smart-executor)","calledMethodRegex":"^((UNKNOWN)|(OTHER))$"},"replace":{"serviceClass":"VREManagement","serviceName":"smart-executor","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"VREManagement","serviceNameRegex":"(SmartExecutor)|(smart-executor)","calledMethodRegex":".*((stop)|(unSchedule)|(DELETE)|(PURGE)).*"},"replace":{"serviceClass":"VREManagement","serviceName":"SmartExecutor","calledMethod":"stop"}},{"match":{"serviceClassRegex":"Portal","serviceNameRegex":"SocialNetworking","calledMethodRegex":"\/{0,1}rest\/((1|2)\/){0,1}(((people){0,1}(users(\/2){0,1})|comments|full-text-search|hashtags|messages|notifications|people|posts|tokens|vres|vers)\/){0,1}(?[a-zA-Z\\-]*(\/){0,1})"},"replace":{"serviceClass":"Portal","serviceName":"SocialNetworking","calledMethod":"${Method}"}},{"match":{"serviceClassRegex":"Portal","serviceNameRegex":"SocialNetworking","calledMethodRegex":"(\/{0,1}(rest))|OTHER|UNKNOWN|\/gcube\/service\/($|&.*)"},"replace":{"serviceClass":"Portal","serviceName":"SocialNetworking","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(\/workspace\/count)|countById"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"countById"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(^\/workspace\/item(s){0,1}\/[0-9a-zA-Z\\-_]*\/create\/(FILE|(?!FOLDER).*)$)|createItem\\(FILE\\)|(\/item\/create\/byPath)"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"createItem(FILE)"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(^\/workspace\/item(s){0,1}\/[0-9a-zA-Z\\-_]*\/create\/FOLDER$)|createItem\\(FOLDER\\)"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"createItem(FOLDER)"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"^\/workspace\/item(s){0,1}\/[0-9a-zA-Z\\-_]*\/download(\/){0,1}$|downloadById"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"downloadById"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(^\/workspace\/item(s){0,1}\/[0-9a-zA-Z\\-_]*\/(firstcopy|(item(s){0,1})\/.*$))|findChildrenByNamePattern"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"findChildrenByNamePattern"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"^\/(workspace\/){1,2}(item|itam)(s){0,1}\/[0-9a-zA-Z\\-_]*\/acl(s){0,1}(\/){0,1}$|getAcls"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getAcls"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"^\/workspace(\/workspace){0,1}(\/item(s){0,1}){0,1}\/(?!(i$)|count|i{0,1}t(h){0,1}rash|group(s){0,1}|user(s){0,1}|paged|v(re|ere|er)fo(ld|dl)ers{0,1}|((C|c)hi(dl|ld|d)ren))[0-9a-zA-Z\\-_]{1,}(\/){0,1}$|getById"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getById"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"^\/workspace\/group(s){0,1}\/{0,1}.*|getGroups"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getGroups"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"^\/workspace\/item(s){0,1}\/[0-9a-zA-Z\\-_]*\/history(\/){0,1}$|getHistory"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getHistory"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(^\/workspace\/i{0,1}t(h){0,1}rash\/{0,1}.*)|getTrashFolder|getTrashRootFolder"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getTrashFolder"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"^\/workspace\/user(s){0,1}\/{0,1}.*|getUsers"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getUsers"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"^\/(workspace\/){1,2}item(s){0,1}\/[0-9a-zA-Z\\-_]*\/version(s){0,1}(\/){0,1}$|getVersions"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getVersions"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"\/workspace\/vrefolder\/recents|getVreFolderRecents"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getVreFolderRecents"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"\/workspace\/v(re|ere|er)fo(ld|dl)ers(\/){0,1}|getVreFolders"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getVreFolders"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"\/workspace\/(item(s){0,1}\/){0,1}vrefolder(\/){0,1}|getVreRootFolder"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getVreRootFolder"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(\/workspace(\/.|\/){0,1})|getWorkspace"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"getWorkspace"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(listById)|(\/list\/byId)|(\/list\/byPath)|(\/workspace/{0,1}.*\/(get){0,1}(C|c)hi(dl|ld|d)ren)"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"listById"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(listByIdPaged)|(\/workspace/paged(\/){0,1})"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"listByIdPaged"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"(test-upload\\(FILE\\))|(OTHER)|(UNKNOWN)|(createItem\\(null\\))"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataAccess","serviceNameRegex":"StorageHub","calledMethodRegex":"\/workspace(\/items){0,1}\/publiclink\/.*"},"replace":{"serviceClass":"DataAccess","serviceName":"StorageHub","calledMethod":"resolvePubliclink"}},{"match":{"serviceClassRegex":"content-management","serviceNameRegex":"storage","calledMethodRegex":".*"},"replace":{"serviceClass":"content-management","serviceName":"storage","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"Application|DataAnalysis","serviceNameRegex":"TagMe","calledMethodRegex":"^((e\/)|\/){0,1}tag"},"replace":{"serviceClass":"Application","serviceName":"TagMe","calledMethod":"tag"}},{"match":{"serviceClassRegex":"SDI|DataAnalysis","serviceNameRegex":"Thredds","calledMethodRegex":"^(\/){1}(?[a-zA-Z0-9]*){1}(\/public\/netcdf\/){1}(?[a-zA-Z0-9_\\-%]*(?[a-zA-Z0-9]*){1}(\/public\/netcdf\/){1}[^\/]*((?[a-zA-Z0-9]*){1}(\/public\/netcdf\/){1}(?[a-zA-Z0-9_\\-%]*)(\/){1}(.*\\.(nc|asc|tiff))$"},"replace":{"serviceClass":"SDI","serviceName":"Thredds","calledMethod":"${Protocol}::${Collection}"}},{"match":{"serviceClassRegex":"SDI|DataAnalysis","serviceNameRegex":"Thredds","calledMethodRegex":"^(\/){1}(?[a-zA-Z0-9]*){1}(\/public\/netcdf\/){1}[^\/]*(\\.(nc|asc|tiff))$"},"replace":{"serviceClass":"SDI","serviceName":"Thredds","calledMethod":"${Protocol}::OTHER"}},{"match":{"serviceClassRegex":"DataTransfer","serviceNameRegex":"URIResolver","calledMethodRegex":"^\/{0,1}(UNKNOWN|OTHER|postCataloguePublicLink|resolveCataloguePublicLink|resolveStorageHubPublicLink|dataminer.*|r\/.*)"},"replace":{"serviceClass":"DataTransfer","serviceName":"URIResolver","calledMethod":"OTHER"}},{"match":{"serviceClassRegex":"DataTransfer","serviceNameRegex":"URIResolver","calledMethodRegex":"^(\/){0,1}(uri-resolver\/){0,1}(?(ctlg|catalogue|analytics|geonetwork|parthenos_{0,1}registry|shub|storage|knime)).*"},"replace":{"serviceClass":"DataTransfer","serviceName":"URIResolver","calledMethod":"${RedirectType} access"}},{"match":{"serviceClassRegex":"DataTransfer","serviceNameRegex":"URIResolver","calledMethodRegex":"^(?!(\/){0,1}(r\/){0,1}(UNKNOWN|OTHER|dataminer|postCataloguePublicLink|resolveCataloguePublicLink|resolveStorageHubPublicLink|ctlg(-.){0,1}|catalogue|uri-resolver\/catalogue|analytics|geonetwork|parthenos_{0,1}registry|shub|storage|knime)).*$"},"replace":{"serviceClass":"DataTransfer","serviceName":"URIResolver","calledMethod":"TentativeOfHarvesting"}},{"match":{"serviceClassRegex":"VREManagement","serviceNameRegex":"WhnManager","calledMethodRegex":"(OTHER)|((\/){0,1}gcube\/vremanagement\/ws\/whnmanager)"},"replace":{"serviceClass":"VREManagement","serviceName":"WhnManager","calledMethod":"OTHER"}}] \ No newline at end of file diff --git a/src/test/resources/rules/data-transfer-service/data-transfer-service-OTHER.json b/src/test/resources/rules/data-transfer-service/data-transfer-service-OTHER.json index 17a0c93..51baa80 100644 --- a/src/test/resources/rules/data-transfer-service/data-transfer-service-OTHER.json +++ b/src/test/resources/rules/data-transfer-service/data-transfer-service-OTHER.json @@ -2,7 +2,7 @@ "match": { "serviceClassRegex": "DataTransfer", "serviceNameRegex": "data-transfer-service", - "calledMethodRegex": "(\/{0,1}gcube\/service\/(REST|application.wadl))|OTHER" + "calledMethodRegex": "(^\/{0,1}gcube\/service\/(REST|application.wadl))|OTHER" }, "replace": { "serviceClass": "DataTransfer", diff --git a/src/test/resources/rules/data-transfer-service/data-transfer-service-transfer.json b/src/test/resources/rules/data-transfer-service/data-transfer-service-transfer.json index 5b448f0..218d594 100644 --- a/src/test/resources/rules/data-transfer-service/data-transfer-service-transfer.json +++ b/src/test/resources/rules/data-transfer-service/data-transfer-service-transfer.json @@ -2,7 +2,7 @@ "match": { "serviceClassRegex": "DataTransfer", "serviceNameRegex": "data-transfer-service", - "calledMethodRegex": "\/{0,1}gcube\/service\/REST\/.*" + "calledMethodRegex": "^(\/){0,1}gcube\/service\/REST\/.*" }, "replace": { "serviceClass": "DataTransfer", diff --git a/src/test/resources/rules/perform-service/perform-service-OTHER.csv b/src/test/resources/rules/perform-service/perform-service-OTHER.csv new file mode 100644 index 0000000..e7b1a07 --- /dev/null +++ b/src/test/resources/rules/perform-service/perform-service-OTHER.csv @@ -0,0 +1,4 @@ +Application,perform-service,/gcube/resource +Application,perform-service,/gcube/service +Application,perform-service,/gcube/resource/ +Application,perform-service,/gcube/service/ \ No newline at end of file diff --git a/src/test/resources/rules/perform-service/perform-service-OTHER.json b/src/test/resources/rules/perform-service/perform-service-OTHER.json new file mode 100644 index 0000000..602256c --- /dev/null +++ b/src/test/resources/rules/perform-service/perform-service-OTHER.json @@ -0,0 +1,12 @@ +{ + "match": { + "serviceClassRegex": "Application", + "serviceNameRegex": "perform-service", + "calledMethodRegex": "^\/{0,1}gcube\/(service|resource)(\/){0,1}$" + }, + "replace": { + "serviceClass": "Application", + "serviceName": "perform-service", + "calledMethod": "OTHER" + } +} \ No newline at end of file diff --git a/src/test/resources/rules/perform-service/perform-service-import.csv b/src/test/resources/rules/perform-service/perform-service-import.csv new file mode 100644 index 0000000..dcc247f --- /dev/null +++ b/src/test/resources/rules/perform-service/perform-service-import.csv @@ -0,0 +1,33 @@ +Application,perform-service,/gcube/service/import +Application,perform-service,/gcube/service/import/ +Application,perform-service,/gcube/service/import/12682101 +Application,perform-service,/gcube/service/import/12682549 +Application,perform-service,/gcube/service/import/13625424 +Application,perform-service,/gcube/service/import/136254247 +Application,perform-service,/gcube/service/import/14128201 +Application,perform-service,/gcube/service/import/14801407 +Application,perform-service,/gcube/service/import/14801409 +Application,perform-service,/gcube/service/import/14869801 +Application,perform-service,/gcube/service/import/14962621 +Application,perform-service,/gcube/service/import/14962624 +Application,perform-service,/gcube/service/import/14962628 +Application,perform-service,/gcube/service/import/14962630 +Application,perform-service,/gcube/service/import/last/12682549 +Application,perform-service,/gcube/service/import/last/13625424 +Application,perform-service,/gcube/resource/import +Application,perform-service,/gcube/resource/import/ +Application,perform-service,/gcube/resource/import/12682101 +Application,perform-service,/gcube/resource/import/12682549 +Application,perform-service,/gcube/resource/import/13625424 +Application,perform-service,/gcube/resource/import/136254247 +Application,perform-service,/gcube/resource/import/14128201 +Application,perform-service,/gcube/resource/import/14801407 +Application,perform-service,/gcube/resource/import/14801409 +Application,perform-service,/gcube/resource/import/14869801 +Application,perform-service,/gcube/resource/import/14962621 +Application,perform-service,/gcube/resource/import/14962624 +Application,perform-service,/gcube/resource/import/14962628 +Application,perform-service,/gcube/resource/import/14962630 +Application,perform-service,/gcube/resource/import/last/12682549 +Application,perform-service,/gcube/resource/import/last/13625424 +Application,perform-service,/gcube/resource/import/12682549 \ No newline at end of file diff --git a/src/test/resources/rules/perform-service/perform-service-import.json b/src/test/resources/rules/perform-service/perform-service-import.json new file mode 100644 index 0000000..ff8e8da --- /dev/null +++ b/src/test/resources/rules/perform-service/perform-service-import.json @@ -0,0 +1,12 @@ +{ + "match": { + "serviceClassRegex": "Application", + "serviceNameRegex": "perform-service", + "calledMethodRegex": "^\/{0,1}gcube\/(service|resource)\/import(\/){0,1}.*" + }, + "replace": { + "serviceClass": "Application", + "serviceName": "perform-service", + "calledMethod": "import" + } +} \ No newline at end of file diff --git a/src/test/resources/rules/perform-service/perform-service-mapping.csv b/src/test/resources/rules/perform-service/perform-service-mapping.csv new file mode 100644 index 0000000..61e34e9 --- /dev/null +++ b/src/test/resources/rules/perform-service/perform-service-mapping.csv @@ -0,0 +1,2 @@ +Application,perform-service,/gcube/service/mappings/batch +Application,perform-service,/gcube/service/mappings/farm \ No newline at end of file diff --git a/src/test/resources/rules/perform-service/perform-service-mapping.json b/src/test/resources/rules/perform-service/perform-service-mapping.json new file mode 100644 index 0000000..0e28ff0 --- /dev/null +++ b/src/test/resources/rules/perform-service/perform-service-mapping.json @@ -0,0 +1,12 @@ +{ + "match": { + "serviceClassRegex": "Application", + "serviceNameRegex": "perform-service", + "calledMethodRegex": "^\/{0,1}gcube\/(service|resource)\/mappings(\/){0,1}.*" + }, + "replace": { + "serviceClass": "Application", + "serviceName": "perform-service", + "calledMethod": "mappings" + } +} \ No newline at end of file diff --git a/src/test/resources/rules/perform-service/perform-service-performance.csv b/src/test/resources/rules/perform-service/perform-service-performance.csv new file mode 100644 index 0000000..7e5619f --- /dev/null +++ b/src/test/resources/rules/perform-service/perform-service-performance.csv @@ -0,0 +1,2 @@ +Application,perform-service,/gcube/service/performance +Application,perform-service,/gcube/service/performance/ \ No newline at end of file diff --git a/src/test/resources/rules/perform-service/perform-service-performance.json b/src/test/resources/rules/perform-service/perform-service-performance.json new file mode 100644 index 0000000..87fba85 --- /dev/null +++ b/src/test/resources/rules/perform-service/perform-service-performance.json @@ -0,0 +1,12 @@ +{ + "match": { + "serviceClassRegex": "Application", + "serviceNameRegex": "perform-service", + "calledMethodRegex": "^\/{0,1}gcube\/(service|resource)\/performance(\/){0,1}.*" + }, + "replace": { + "serviceClass": "Application", + "serviceName": "perform-service", + "calledMethod": "performance" + } +} \ No newline at end of file