Working on Feature #7350
Updated pom version at 1.11.0 git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/data-transfer/uri-resolver@144784 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
c6e3ac624d
commit
31c3ad2775
|
@ -4,6 +4,9 @@
|
|||
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
|
||||
<dependent-module archiveName="uri-resolver-manager-1.3.1-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/uri-resolver-manager-TRUNK/uri-resolver-manager-TRUNK">
|
||||
<dependency-type>uses</dependency-type>
|
||||
</dependent-module>
|
||||
<property name="context-root" value="uri-resolver"/>
|
||||
<property name="java-output-path" value="/uri-resolver/target/classes"/>
|
||||
</wb-module>
|
||||
|
|
|
@ -67,4 +67,8 @@
|
|||
<Change>[Task #6492] Catalogue Resolver: "improve"/"build better" public URLs to products</Change>
|
||||
<Change>[Task #6952] Catalogue Resolver: update on the fly the Application Profile for VRE's used to resolve Product URL</Change>
|
||||
</Changeset>
|
||||
<Changeset component="org.gcube.data-transfer.uri-resolver.1-11-0"
|
||||
date="2017-03-09">
|
||||
<Change>[Feature #7350] GeoExplorer Resolver: resolve a GeoExplorer Link</Change>
|
||||
</Changeset>
|
||||
</ReleaseNotes>
|
2
pom.xml
2
pom.xml
|
@ -8,7 +8,7 @@
|
|||
</parent>
|
||||
<groupId>org.gcube.data.transfer</groupId>
|
||||
<artifactId>uri-resolver</artifactId>
|
||||
<version>1.10.0-SNAPSHOT</version>
|
||||
<version>1.11.0-SNAPSHOT</version>
|
||||
<packaging>war</packaging>
|
||||
<description>The URI Resolver is an HTTP URI resolver implemented as an HTTP servlet which gives access trough HTTP to different protocols URIs. </description>
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ import org.gcube.datatransfer.resolver.gis.GeonetworkAccessParameter.GeonetworkL
|
|||
import org.gcube.datatransfer.resolver.gis.entity.ServerParameters;
|
||||
import org.gcube.datatransfer.resolver.gis.exception.GeonetworkInstanceException;
|
||||
import org.gcube.datatransfer.resolver.gis.exception.IllegalArgumentException;
|
||||
import org.gcube.datatransfer.resolver.gis.property.GisViewerAppGenericResourcePropertyReader;
|
||||
import org.gcube.datatransfer.resolver.gis.property.ApplicationProfileGenericResourcePropertyReader;
|
||||
import org.gcube.datatransfer.resolver.gis.property.PropertyFileNotFoundException;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
@ -47,15 +47,22 @@ public class GisResolver extends HttpServlet{
|
|||
|
||||
public static final String GIS_UUID = "gis-UUID";
|
||||
public static final String SCOPE = "scope";
|
||||
public static final String GEO_EXPLORER_LAYER_UUID = "geo-exp";
|
||||
|
||||
protected static final String GIS_VIEWER_GENERIC_RESOURCE_GCUBE_APPS_PROPERTIES = "gisviewerappgenericresource.properties";
|
||||
protected static final String GEO_EXPLORER_GENERIC_RESOURCE_GCUBE_APPS_PROPERTIES = "geoexplorerappgenericresource.properties";
|
||||
|
||||
|
||||
/** The logger. */
|
||||
private static final Logger logger = LoggerFactory.getLogger(GisResolver.class);
|
||||
|
||||
protected Map<String, ServerParameters> cachedServerParams; //A cache: scope - geonetwork parameters
|
||||
protected Map<String, String> cachedGisViewerApplHostname; //A cache: scope - GisViewerApp hostname
|
||||
protected Map<String, String> cachedGeoExplorerApplHostname; //A cache: scope - GisViewerApp hostname
|
||||
|
||||
private Timer timer;
|
||||
private GisViewerAppGenericResourcePropertyReader gisViewerAppPropertyReader;
|
||||
private ApplicationProfileGenericResourcePropertyReader gisViewerAppPropertyReader;
|
||||
private ApplicationProfileGenericResourcePropertyReader geoEplorerAppPropertyReader;
|
||||
|
||||
//THIRTY MINUTES
|
||||
public static final long CACHE_RESET_TIME = 30*60*1000;
|
||||
|
@ -77,6 +84,7 @@ public class GisResolver extends HttpServlet{
|
|||
reseCacheServerParameters();
|
||||
resetGisViewerAppEndPoint();
|
||||
reseCacheGisViewerApplicationHostname();
|
||||
reseCacheGeoExplorerApplicationHostname();
|
||||
}
|
||||
}, CACHE_RESET_DELAY, CACHE_RESET_TIME);
|
||||
}
|
||||
|
@ -131,18 +139,39 @@ public class GisResolver extends HttpServlet{
|
|||
logger.info("Cache Gis Viewer Hostname reset!");
|
||||
}
|
||||
|
||||
/**
|
||||
* Rese cache geo explorer application hostname.
|
||||
*/
|
||||
private void reseCacheGeoExplorerApplicationHostname() {
|
||||
cachedGeoExplorerApplHostname = new HashMap<String, String>();
|
||||
logger.info("Cache Geo Explorer Hostname reset!");
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset gis viewer app end point.
|
||||
*/
|
||||
private void resetGisViewerAppEndPoint(){
|
||||
try {
|
||||
gisViewerAppPropertyReader = new GisViewerAppGenericResourcePropertyReader();
|
||||
gisViewerAppPropertyReader = new ApplicationProfileGenericResourcePropertyReader(GIS_VIEWER_GENERIC_RESOURCE_GCUBE_APPS_PROPERTIES);
|
||||
logger.info("GisViewerApp end point updated!");
|
||||
} catch (PropertyFileNotFoundException e) {
|
||||
logger.error("Error on reset GisViewerAppEndPoint ",e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Reset geo explorer app end point.
|
||||
*/
|
||||
private void resetGeoExplorerAppEndPoint(){
|
||||
try {
|
||||
geoEplorerAppPropertyReader = new ApplicationProfileGenericResourcePropertyReader(GEO_EXPLORER_GENERIC_RESOURCE_GCUBE_APPS_PROPERTIES);
|
||||
logger.info("GeoExplorer end point updated!");
|
||||
} catch (PropertyFileNotFoundException e) {
|
||||
logger.error("Error on reset GeoExplorerEndPoint ",e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the gis viewer application url.
|
||||
*
|
||||
|
@ -168,9 +197,40 @@ public class GisResolver extends HttpServlet{
|
|||
logger.info("Updated GisViewerApplication cache! Scope "+scope+" linking "+url);
|
||||
return url;
|
||||
}else
|
||||
logger.info("Cache Gis viewer application is not null using it");
|
||||
logger.info("Cache for GisViewerApplication end point is not null using it");
|
||||
|
||||
return gisViewerAppHostname;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the geo explorer application url.
|
||||
*
|
||||
* @param scope the scope
|
||||
* @return the geo explorer application url
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
protected String getGeoExplorerApplicationURL(String scope) throws Exception{
|
||||
|
||||
if(cachedGeoExplorerApplHostname==null)
|
||||
reseCacheGeoExplorerApplicationHostname();
|
||||
|
||||
logger.info("Tentative of recovering geo explorer application hostname from cache for scope: "+scope);
|
||||
String geoExplorerApplicationHostname = cachedGeoExplorerApplHostname.get(scope);
|
||||
if(geoExplorerApplicationHostname==null){
|
||||
logger.info("GeoExplorer application hostname is null, reading from application profile..");
|
||||
if(geoEplorerAppPropertyReader==null)
|
||||
resetGeoExplorerAppEndPoint();
|
||||
|
||||
ApplicationProfileReader reader = new ApplicationProfileReader(scope, geoEplorerAppPropertyReader.getGenericResource(), geoEplorerAppPropertyReader.getAppId(), true);
|
||||
String url = reader.getApplicationProfile().getUrl();
|
||||
cachedGeoExplorerApplHostname.put(scope, url);
|
||||
logger.info("Updated GeoExplorerApplication cache! Scope "+scope+" linking "+url);
|
||||
return url;
|
||||
}else
|
||||
logger.info("Cache for GeoExplorerApplication end point is not null using it");
|
||||
|
||||
return geoExplorerApplicationHostname;
|
||||
|
||||
|
||||
}
|
||||
|
@ -182,47 +242,75 @@ public class GisResolver extends HttpServlet{
|
|||
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
||||
logger.info("The http session id is: " + req.getSession().getId());
|
||||
|
||||
String gisUUID = req.getParameter(GIS_UUID);
|
||||
|
||||
if (gisUUID == null || gisUUID.equals("")) {
|
||||
logger.debug("GIS UUID not found");
|
||||
sendError(resp, HttpServletResponse.SC_BAD_REQUEST, GIS_UUID+" not found or empty");
|
||||
return;
|
||||
}
|
||||
|
||||
logger.info("GIS UUID is: " + gisUUID);
|
||||
|
||||
String scope = req.getParameter(SCOPE);
|
||||
|
||||
if (scope == null || scope.equals("")) {
|
||||
logger.debug("Scope not found");
|
||||
if (scope == null || scope.isEmpty()) {
|
||||
logger.error(SCOPE+" not found");
|
||||
sendError(resp, HttpServletResponse.SC_BAD_REQUEST, SCOPE+" not found or empty");
|
||||
return;
|
||||
}
|
||||
|
||||
logger.info("SCOPE is: " + scope);
|
||||
|
||||
boolean isGisLink = false;
|
||||
boolean isGeoExplorerLink = false;
|
||||
String gisUUID = req.getParameter(GIS_UUID);
|
||||
|
||||
if (gisUUID == null || gisUUID.isEmpty()) {
|
||||
logger.debug(GIS_UUID+" not found");
|
||||
}else
|
||||
isGisLink = true;
|
||||
|
||||
logger.info(GIS_UUID +" is: " + gisUUID);
|
||||
|
||||
String geoExplorerUUID = req.getParameter(GEO_EXPLORER_LAYER_UUID);
|
||||
|
||||
if (geoExplorerUUID == null || geoExplorerUUID.isEmpty()) {
|
||||
logger.debug(GEO_EXPLORER_LAYER_UUID+ " not found");
|
||||
}else
|
||||
isGeoExplorerLink = true;
|
||||
|
||||
logger.info(GEO_EXPLORER_LAYER_UUID +" is: " + geoExplorerUUID);
|
||||
|
||||
if(!isGisLink && !isGeoExplorerLink){
|
||||
String err = GIS_UUID+" and "+GEO_EXPLORER_LAYER_UUID+" not found or empty";
|
||||
logger.error(err);
|
||||
sendError(resp, HttpServletResponse.SC_BAD_REQUEST, err);
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
ScopeProvider.instance.set(scope);
|
||||
ServerParameters geonetworkParams = getCachedServerParameters(scope);
|
||||
String wmsRequest = getLayerWmsRequest(scope, gisUUID, geonetworkParams);
|
||||
logger.info("wms url is: " + wmsRequest);
|
||||
wmsRequest = URLEncoder.encode(wmsRequest, UTF_8);
|
||||
logger.info("encoded WMS url is: " + wmsRequest);
|
||||
|
||||
String gisPortletUrl = getGisViewerApplicationURL(scope);
|
||||
logger.info("Gis Viewer Application url is: " + gisPortletUrl);
|
||||
gisPortletUrl+="?rid="+new Random().nextLong()
|
||||
+"&wmsrequest="+wmsRequest
|
||||
+"&uuid="+URLEncoder.encode(gisUUID, "UTF-8");
|
||||
if(isGisLink){
|
||||
ScopeProvider.instance.set(scope);
|
||||
ServerParameters geonetworkParams = getCachedServerParameters(scope);
|
||||
String wmsRequest = getLayerWmsRequest(scope, gisUUID, geonetworkParams);
|
||||
logger.info("wms url is: " + wmsRequest);
|
||||
wmsRequest = URLEncoder.encode(wmsRequest, UTF_8);
|
||||
logger.info("encoded WMS url is: " + wmsRequest);
|
||||
|
||||
/*resp.setContentType(TEXT_PLAIN);
|
||||
resp.setCharacterEncoding(UTF_8);
|
||||
PrintWriter out = resp.getWriter();
|
||||
out.println(gisPortletUrl);
|
||||
logger.info("returning link: " + gisPortletUrl);
|
||||
out.close();*/
|
||||
urlRedirect(req, resp, gisPortletUrl);
|
||||
String gisViewerPortletUrl = getGisViewerApplicationURL(scope);
|
||||
logger.info("Gis Viewer Application url is: " + gisViewerPortletUrl);
|
||||
gisViewerPortletUrl+="?rid="+new Random().nextLong()
|
||||
+"&wmsrequest="+wmsRequest
|
||||
+"&uuid="+URLEncoder.encode(gisUUID, "UTF-8");
|
||||
|
||||
/*resp.setContentType(TEXT_PLAIN);
|
||||
resp.setCharacterEncoding(UTF_8);
|
||||
PrintWriter out = resp.getWriter();
|
||||
out.println(gisPortletUrl);
|
||||
logger.info("returning link: " + gisPortletUrl);
|
||||
out.close();*/
|
||||
urlRedirect(req, resp, gisViewerPortletUrl);
|
||||
}
|
||||
|
||||
if(isGeoExplorerLink){
|
||||
ScopeProvider.instance.set(scope);
|
||||
String geoExplorerPortletUrl = getGeoExplorerApplicationURL(scope);
|
||||
logger.info("GeoExplorer Application url is: " + geoExplorerPortletUrl);
|
||||
geoExplorerPortletUrl+="?rid="+new Random().nextLong()
|
||||
+"&luuid="+URLEncoder.encode(geoExplorerUUID, "UTF-8");
|
||||
urlRedirect(req, resp, geoExplorerPortletUrl);
|
||||
}
|
||||
|
||||
} catch (IllegalArgumentException e){
|
||||
logger.error("IllegalArgumentException:", e);
|
||||
|
@ -334,7 +422,6 @@ public class GisResolver extends HttpServlet{
|
|||
*/
|
||||
protected void urlRedirect(HttpServletRequest req, HttpServletResponse response, String redirectTo) throws IOException {
|
||||
response.sendRedirect(response.encodeRedirectURL(redirectTo));
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -366,27 +453,36 @@ public class GisResolver extends HttpServlet{
|
|||
return url.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* The main method.
|
||||
*
|
||||
* @param args the arguments
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
GisResolver gisResolver = new GisResolver();
|
||||
String scope = "/gcube/devsec/devVRE";
|
||||
String UUID = "177e1c3c-4a22-4ad9-b015-bfc443d16cb8";
|
||||
try {
|
||||
ScopeProvider.instance.set(scope);
|
||||
ServerParameters geonetworkParams = gisResolver.getCachedServerParameters(scope);
|
||||
String wmsRequest = gisResolver.getLayerWmsRequest(scope, UUID, geonetworkParams);
|
||||
logger.info("Final url is: " + wmsRequest);
|
||||
wmsRequest = URLEncoder.encode(wmsRequest, UTF_8);
|
||||
logger.info("Encoded WMS request is: " + wmsRequest);
|
||||
String gisPortletUrl = gisResolver.getGisViewerApplicationURL(scope);
|
||||
logger.info("Gis Viewer Application url is: " + gisPortletUrl);
|
||||
// logger.info("WmsRequest is: " + wmsRequest);
|
||||
// wmsRequest = encodeURLWithParamDelimiter(wmsRequest);
|
||||
// logger.info("Encoded url is: " + wmsRequest);
|
||||
// wmsRequest = appendParamReplacement(wmsRequest);
|
||||
gisPortletUrl+="?wmsrequest="+wmsRequest;
|
||||
|
||||
System.out.println(gisPortletUrl);
|
||||
// ScopeProvider.instance.set(scope);
|
||||
// ServerParameters geonetworkParams = gisResolver.getCachedServerParameters(scope);
|
||||
// String wmsRequest = gisResolver.getLayerWmsRequest(scope, UUID, geonetworkParams);
|
||||
// logger.info("Final url is: " + wmsRequest);
|
||||
// wmsRequest = URLEncoder.encode(wmsRequest, UTF_8);
|
||||
// logger.info("Encoded WMS request is: " + wmsRequest);
|
||||
// String gisPortletUrl = gisResolver.getGisViewerApplicationURL(scope);
|
||||
// logger.info("Gis Viewer Application url is: " + gisPortletUrl);
|
||||
//// logger.info("WmsRequest is: " + wmsRequest);
|
||||
//// wmsRequest = encodeURLWithParamDelimiter(wmsRequest);
|
||||
//// logger.info("Encoded url is: " + wmsRequest);
|
||||
//// wmsRequest = appendParamReplacement(wmsRequest);
|
||||
// gisPortletUrl+="?wmsrequest="+wmsRequest;
|
||||
//
|
||||
// System.out.println(gisPortletUrl);
|
||||
// urlRedirect(req, resp, gisPortletUrl);
|
||||
|
||||
ScopeProvider.instance.set(scope);
|
||||
String geoExplorerURL = gisResolver.getGeoExplorerApplicationURL(scope);
|
||||
logger.info("GeoExplorer url is: " + geoExplorerURL);
|
||||
} catch (Exception e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
|
|
|
@ -6,33 +6,36 @@ import java.util.Properties;
|
|||
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
|
||||
/**
|
||||
* The Class GisViewerAppGenericResourcePropertyReader.
|
||||
* The Class ApplicationProfileGenericResourcePropertyReader.
|
||||
*
|
||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||
* Jan 13, 2016
|
||||
* Mar 9, 2017
|
||||
*/
|
||||
public class GisViewerAppGenericResourcePropertyReader {
|
||||
public class ApplicationProfileGenericResourcePropertyReader {
|
||||
|
||||
protected static final String GENERIC_RESOURCE_GCUBE_APPS_PROPERTIES = "gisviewerappgenericresource.properties";
|
||||
//protected static final String GENERIC_RESOURCE_GCUBE_APPS_PROPERTIES = "gisviewerappgenericresource.properties";
|
||||
protected static final String SECONDARY_TYPE = "SECONDARY_TYPE";
|
||||
protected static final String APP_ID = "APP_ID";
|
||||
|
||||
|
||||
private String appId;
|
||||
private String genericResource;
|
||||
|
||||
private Logger logger = Logger.getLogger(GisViewerAppGenericResourcePropertyReader.class);
|
||||
|
||||
|
||||
private Logger logger = Logger.getLogger(ApplicationProfileGenericResourcePropertyReader.class);
|
||||
|
||||
|
||||
/**
|
||||
* Instantiates a new gis viewer app generic resource property reader.
|
||||
*
|
||||
* @param fileNameProperty the file name property
|
||||
* @throws PropertyFileNotFoundException the property file not found exception
|
||||
*/
|
||||
public GisViewerAppGenericResourcePropertyReader() throws PropertyFileNotFoundException {
|
||||
public ApplicationProfileGenericResourcePropertyReader(String fileNameProperty) throws PropertyFileNotFoundException {
|
||||
|
||||
Properties prop = new Properties();
|
||||
try {
|
||||
InputStream in = (InputStream) GisViewerAppGenericResourcePropertyReader.class.getResourceAsStream(GENERIC_RESOURCE_GCUBE_APPS_PROPERTIES);
|
||||
InputStream in = ApplicationProfileGenericResourcePropertyReader.class.getResourceAsStream(fileNameProperty);
|
||||
// load a properties file
|
||||
prop.load(in);
|
||||
// get the property value - the application Id
|
||||
|
@ -44,7 +47,7 @@ public class GisViewerAppGenericResourcePropertyReader {
|
|||
throw new PropertyFileNotFoundException("An error occurred on read property file "+e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the app id.
|
||||
*
|
||||
|
@ -62,7 +65,7 @@ public class GisViewerAppGenericResourcePropertyReader {
|
|||
public String getGenericResource() {
|
||||
return genericResource;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
public static void main(String[] args) {
|
||||
try {
|
|
@ -0,0 +1,11 @@
|
|||
# Property files
|
||||
#
|
||||
# author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||
# created 02/2013
|
||||
#
|
||||
# The generic resource that describes the properties to open
|
||||
# an item from workspace
|
||||
#
|
||||
|
||||
SECONDARY_TYPE = ApplicationProfile
|
||||
APP_ID = org.gcube.portlets.user.geoexplorer.server.GeoExplorerServiceImpl
|
|
@ -23,15 +23,21 @@ public class GeonetworkQueryTest {
|
|||
|
||||
//private String[] scopes = {"/gcube/devNext/NextNext"};
|
||||
|
||||
//private String[] scopesProd = {"/d4science.research-infrastructures.eu/gCubeApps/BiodiversityLab"};
|
||||
//private String[] scopesProd = {"/d4science.research-infrastructures.eu/gCubeApps"};
|
||||
|
||||
private String[] scopesProd = {"/d4science.research-infrastructures.eu/gCubeApps/SIASPA"};
|
||||
//private String[] scopesProd = {"/d4science.research-infrastructures.eu/gCubeApps/fisheriesandecosystematmii"};
|
||||
|
||||
private LoginLevel loginLevel = LoginLevel.CKAN;
|
||||
private String[] scopesProd = {"/d4science.research-infrastructures.eu/D4Research"};
|
||||
|
||||
//private String[] scopesProd = {"/d4science.research-infrastructures.eu"};
|
||||
|
||||
private LoginLevel loginLevel = LoginLevel.SCOPE;
|
||||
|
||||
private Type accountType = Type.SCOPE;
|
||||
|
||||
@Test
|
||||
private String textToSearch = "salinity";
|
||||
|
||||
//@Test
|
||||
public void getCount() throws Exception{
|
||||
try{
|
||||
for(String scope:scopesProd){
|
||||
|
@ -79,10 +85,93 @@ public class GeonetworkQueryTest {
|
|||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void getLayersBySearch() throws Exception{
|
||||
try{
|
||||
for(String scope:scopesProd){
|
||||
ScopeProvider.instance.set(scope);
|
||||
GeoNetworkPublisher reader=GeoNetwork.get();
|
||||
|
||||
|
||||
|
||||
Configuration config = reader.getConfiguration();
|
||||
Account account=config.getScopeConfiguration().getAccounts().get(accountType);
|
||||
|
||||
//System.out.println("User: "+account.getUser()+", Pwd: "+account.getPassword());
|
||||
System.out.println("Admin: "+config.getAdminAccount().getUser()+", Pwd: "+config.getAdminAccount().getPassword());
|
||||
|
||||
try{
|
||||
String decryptedPassword = StringEncrypter.getEncrypter().decrypt(account.getPassword());
|
||||
System.out.println("Decrypted Password: "+decryptedPassword);
|
||||
}catch(Exception e){
|
||||
System.out.println("ignoring exception during pwd decrypting");
|
||||
}
|
||||
|
||||
|
||||
// req.addParam("keyword", "Thredds");
|
||||
//final GNSearchRequest req=new GNSearchRequest();
|
||||
final GNSearchRequest req = getRequest(true, textToSearch);
|
||||
// req.addParam(GNSearchRequest.Param.any,"Thredds");
|
||||
GNSearchResponse resp = reader.query(req);
|
||||
int publicCount=resp.getCount();
|
||||
reader.login(loginLevel);
|
||||
int totalCount=reader.query(req).getCount();
|
||||
System.out.println("QUERY "+textToSearch);
|
||||
System.out.println("SCOPE "+scope+" found "+totalCount+" (public : "+publicCount+", private :"+(totalCount-publicCount)+")");
|
||||
|
||||
// if(totalCount==0)
|
||||
// return;
|
||||
// try{
|
||||
// int last = totalCount>MAX?totalCount:MAX;
|
||||
//
|
||||
// for(int i=0; i<last; i++){
|
||||
// //String xml = reader.getByIdAsRawString(resp.getMetadata(i).getUUID());
|
||||
// GNMetadata xml = resp.getMetadata(i);
|
||||
// //System.out.println(i+") is Thredds? "+containsString(xml, "Thredds"));
|
||||
// System.out.println(xml.toString());
|
||||
// }
|
||||
// }catch(Exception e ){
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
|
||||
}
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private boolean containsString(String txt, String value){
|
||||
return txt.contains(value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the request.
|
||||
*
|
||||
* @param sortByTitle the sort by title
|
||||
* @param textToSearch the text to search
|
||||
* @return the request
|
||||
*/
|
||||
public GNSearchRequest getRequest(boolean sortByTitle, String textToSearch) {
|
||||
|
||||
GNSearchRequest req = new GNSearchRequest();
|
||||
|
||||
if(sortByTitle)
|
||||
req.addConfig(GNSearchRequest.Config.sortBy, "title");
|
||||
|
||||
if(textToSearch==null || textToSearch.isEmpty()){
|
||||
req.addParam(GNSearchRequest.Param.any, textToSearch);
|
||||
System.out.println("search by any text");
|
||||
}else{
|
||||
req.addParam(GNSearchRequest.Param.title, textToSearch);
|
||||
req.addConfig(GNSearchRequest.Config.similarity, Integer.toString(1));
|
||||
System.out.println("search by title");
|
||||
}
|
||||
System.out.println("text to search "+textToSearch);
|
||||
|
||||
return req;
|
||||
}
|
||||
|
||||
|
||||
// @Test
|
||||
public void getCountProd() throws Exception{
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
@ -11,29 +12,29 @@
|
|||
public class GisResolverTest {
|
||||
|
||||
|
||||
// public void resolve(){
|
||||
// GisResolver gisResolver = new GisResolver();
|
||||
// String scope = "/gcube/devsec/devVRE";
|
||||
// String UUID = "177e1c3c-4a22-4ad9-b015-bfc443d16cb8";
|
||||
// try {
|
||||
// ServerParameters geonetworkParams = gisResolver.getCachedServerParameters(scope);
|
||||
// String wmsRequest = gisResolver.getLayerWmsRequest(scope, UUID, geonetworkParams);
|
||||
// System.out.println("Final url is: " + wmsRequest);
|
||||
// wmsRequest = URLEncoder.encode(wmsRequest, UTF_8);
|
||||
// System.out.println("Encoded WMS request is: " + wmsRequest);
|
||||
// String gisPortletUrl = gisResolver.getGisViewerApplicationURL(scope);
|
||||
// System.out.println("Gis Viewer Application url is: " + gisPortletUrl);
|
||||
//// logger.info("WmsRequest is: " + wmsRequest);
|
||||
//// wmsRequest = encodeURLWithParamDelimiter(wmsRequest);
|
||||
//// logger.info("Encoded url is: " + wmsRequest);
|
||||
//// wmsRequest = appendParamReplacement(wmsRequest);
|
||||
// gisPortletUrl+="?wmsrequest="+wmsRequest;
|
||||
//
|
||||
// System.out.println(gisPortletUrl);
|
||||
//// urlRedirect(req, resp, gisPortletUrl);
|
||||
// } catch (Exception e) {
|
||||
// // TODO Auto-generated catch block
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// }
|
||||
/*public void resolve(){
|
||||
GisResolver gisResolver = new GisResolver();
|
||||
String scope = "/gcube/devsec/devVRE";
|
||||
String UUID = "177e1c3c-4a22-4ad9-b015-bfc443d16cb8";
|
||||
try {
|
||||
ServerParameters geonetworkParams = gisResolver.getCachedServerParameters(scope);
|
||||
String wmsRequest = gisResolver.getLayerWmsRequest(scope, UUID, geonetworkParams);
|
||||
System.out.println("Final url is: " + wmsRequest);
|
||||
wmsRequest = URLEncoder.encode(wmsRequest, UTF_8);
|
||||
System.out.println("Encoded WMS request is: " + wmsRequest);
|
||||
String gisPortletUrl = gisResolver.getGisViewerApplicationURL(scope);
|
||||
System.out.println("Gis Viewer Application url is: " + gisPortletUrl);
|
||||
// logger.info("WmsRequest is: " + wmsRequest);
|
||||
// wmsRequest = encodeURLWithParamDelimiter(wmsRequest);
|
||||
// logger.info("Encoded url is: " + wmsRequest);
|
||||
// wmsRequest = appendParamReplacement(wmsRequest);
|
||||
gisPortletUrl+="?wmsrequest="+wmsRequest;
|
||||
|
||||
System.out.println(gisPortletUrl);
|
||||
// urlRedirect(req, resp, gisPortletUrl);
|
||||
} catch (Exception e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue