From 69994e0bca23da82d6f6763850791d6fa83f9644 Mon Sep 17 00:00:00 2001 From: "lucio.lelii" Date: Fri, 23 Sep 2016 10:23:59 +0000 Subject: [PATCH] git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/Common/authorization-common-library@131733 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../AuthorizationEndpointScanner.java | 28 +++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/gcube/common/authorization/library/enpoints/AuthorizationEndpointScanner.java b/src/main/java/org/gcube/common/authorization/library/enpoints/AuthorizationEndpointScanner.java index 8c48acc..67c772c 100644 --- a/src/main/java/org/gcube/common/authorization/library/enpoints/AuthorizationEndpointScanner.java +++ b/src/main/java/org/gcube/common/authorization/library/enpoints/AuthorizationEndpointScanner.java @@ -1,7 +1,10 @@ package org.gcube.common.authorization.library.enpoints; +import java.net.URL; import java.util.HashMap; +import java.util.HashSet; import java.util.Map; +import java.util.Set; import javax.xml.bind.JAXBContext; import javax.xml.bind.Unmarshaller; @@ -10,6 +13,7 @@ import org.gcube.common.scan.ClasspathScanner; import org.gcube.common.scan.ClasspathScannerFactory; import org.gcube.common.scan.matchers.NameMatcher; import org.gcube.common.scan.resources.ClasspathResource; +import org.gcube.common.scope.api.ServiceMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -30,6 +34,7 @@ public class AuthorizationEndpointScanner { public static synchronized EndpointsContainer endpoints() { if (endpoints==null || endpoints.getEndpoints().size()==0){ + log.trace("starting authorization endpoint retrieving"); Map endpointsMap = new HashMap(); try { @@ -40,28 +45,32 @@ public class AuthorizationEndpointScanner { String defaultInfrastructure = null; int defaultInfraPriority= Integer.MAX_VALUE; - ClasspathScanner scanner = ClasspathScannerFactory.scanner(); - for (ClasspathResource r : scanner.scan(new NameMatcher(configurationPattern))){ - AuthorizationEndpoint endpoint = (AuthorizationEndpoint)um.unmarshal(r.stream()); + for (String r :getEnpointResourceNames()){ + + URL url = Thread.currentThread().getContextClassLoader().getResource(r); + + + AuthorizationEndpoint endpoint = (AuthorizationEndpoint)um.unmarshal(url); if (defaultInfrastructure==null) defaultInfrastructure = endpoint.getInfrastructure(); if (!endpointsMap.containsKey(endpoint.getInfrastructure()) || endpointsMap.get(endpoint.getInfrastructure()).getPriority()> endpoint.getPriority()){ - if ((r.name()).startsWith("default") && endpoint.getPriority() getEnpointResourceNames() { + + ClasspathScanner scanner = ClasspathScannerFactory.scanner(); + Set names = new HashSet(); + for (ClasspathResource r : scanner.scan(new NameMatcher(configurationPattern))) + names.add(r.name()); + return names; + } }